软件工程-实践者的研究方法讲义_第九章 构件级设计
软件工程
第9章 构件级设计
主要内容什么是构件 设计基于类的构件 实施构件级设计 设计传统构件 基于构件的开发 小结
构件级设计
一套完整的软件构件是在体系结构设计过 程中定义的。但是没有在接近代码的抽象 级上表示内部数据结构和每个构件的处理 细节。构件级设计定义了数据结构、算法、 接口特征和分配给每个软件构件的通信机 制。
构件级设计
必须能够在建造软件之前就确定该软件是 否可以工作。为了保证设计的正确性,以 及与早期设计表示(即数据、体系结构和 接口设计)的一致性,构件级设计需要以 一种可以评审设计细节的方式来表示软件。 它提供了一种评估数据结构、接口和算法 是否能够工作的方法。
构件级设计
数据、体系结构和接口的设计表示构成 了构件级设计的基础。每个构件的类定义 或者处理叙述都转化为一种详细设计,该 设计采用图形或基于文本的形式来详细说 明内部的数据结构、局部接口细节和处理 逻辑。设计符号包括UML图和一些辅助表 示。通过使用一系列结构化编程结构来说 明过程设计。通常的做法是采用现有的可 复用软件构件,而不是开发新的构件。
构件级设计建模每个构件的设计都以图形的、图表的或基 于文本的方式表示,这是构件级设计阶段 产生的主要工作产品。 采用设计走查或审查机制。对设计执行检 查以确定数据结构、接口、处理顺序和逻 辑条件等是否都正确,并且给出早期设计 中与构件相关的数据或控制变换。
构件级设计
体系结构设计第一次迭代完成之后,就应 该开始构件级设计。在这个阶段,全部的 数据和软件的程序结构都已经建立起来, 其目的是把设计模型转化为运行软件。但 是现有设计模型的抽象层次相对较高,而 可运行程序的抽象层次相对较低。这种转 化具有挑战性,因为可能会在软件过程后 期阶段引入难于发现和改正的微小错误。
构件级设计
用编程语言表示构件级设计是可以的。其 实,程序的创建是以体系结构设计模型作 为指南的。一种可供考虑的方法是使用某 些能够容易转化为代码的中间表示来表示 构件级设计。无论采用何种机制来表示构 件级设计,定义的数据结构、接口和算法 应该遵守各种已经精心规定好的设计指导 准则,以避免在过程设计演化中犯错误。
什么是构件通常来讲,构件是计算机软件中的一个模 块化的构造块。OMG UML规范将构件定 义为“系统中模块化的、可部署的和可替 换的部件,该部件封装了实现并暴露一系 列接口”。 构件存在于软件体系结构中,因而构件在
完成所建系统的需求和目标中起重要作用。 由于构件驻留于软件体系结构的内部,它 们必须与其他的构件和存在于软件边界以 外的实体进行通信和合作。
面向对象的观点
在面向对象软件工程环境中,构件包括一个 协作类集合。构件中的每一个类都被详细阐 述,包括所有的属性和与其实现相关的操作。 作为细节设计的一部分,所有与其他设计类 相互通信协作的接口必须予以定义。为了完 成这些,设计师从分析模型开始,详细描述 分析类(该类与问题域相关)和基础类(该 类为问题域提供了支持性服务)。
面向对象的观点
考虑为一个高级印刷车间构建软件。软件 的目的是为了收集前台的客户需求,对印 刷业务进行定价,然后把印刷任务交给自 动生产设备。在需求工程中得到了一个被 称为PrintJob的分析类,如图9-1所示。 PrintJob有两个接口:computeJob具有 对任务进行定价的功能,initiateJob能够 把任务传给生产设备。
面向对象的观点
图9-1设计构件的细化
面向对象的观点构件级设计将由此开始。必须对PrintJob构件 的细节进行细化,以提供指导实现的充分信息。 通过不断补充作为构件PrintJob的类的全部属 性和操作,来逐步细化最初的分析类。 对于体系结构设计组成部分的每一个构件都要 实施细化。细化一旦完成,要对每一个属性、每 一个操作和每一个接口进行更进一步的细化。适 合每个属性的数据结构必须予以详细说明。另外 还要说明实现与操作相关的处理逻辑的算法细节。 最后是实现接口所需机制的设计。对于面向对象 软件,还包含对实现系统内部对象间消息通信机 制的描述。
传统观点
在传统软件工程环境中,一个构件就是程序的 一个功能要素,程序由处理逻辑及实现处理逻辑 所需的内部数据结构以及能够保证构件被调用和 实现数据传递的接口构成。传统构件也被称为模 块,作为软件体系结构的一部分,它承担如下三 个重要角色之一:(1)控制构件,协调问题域中 所有其他构件的调用;(2)问题域构件,完成部分 或全部用户的需求;(3)基础设施构件,负责完成 问题域中所需相关处理的功能。
传统观点与面向对象的构件相类似,传统的软件构件也 来自于分析模型。不同的是在该种情况下,是以 分析模型中的数据流要素作为导出构件的基础。 数据流图最低层的每个变换都被映射为某一层次 上的模块。一般来讲,控制构件位于层次结构顶 层附近,而问题域构件则倾向位于层次结构的底 层。为了获得有效的模块化,在构件细化过程中 采用了功能独立性的设计概念。
…… 此处隐藏:352字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [教育文库]夜场KTV服务员的岗位职责及工作流程[1]
- [教育文库]企划、网络、市场绩效考核方案
- [教育文库]学党史、知党情、强党性--“党的基本理
- [教育文库]2016年高考物理大一轮总复习(江苏专版
- [教育文库]干部廉洁自律自查自纠的报告
- [教育文库]2010年北京大学心理学系拟录取硕士研究
- [教育文库]资金时间价值练习题及答案
- [教育文库]保护环境的心得体会
- [教育文库]英语角内容:英语趣味小知识
- [教育文库]档案收集与管理工作通知
- [教育文库]劳动规章制度范本范本
- [教育文库]高考物理一轮复习课后限时作业1运动的
- [教育文库]机械工艺夹具毕业设计195推动架设计说
- [教育文库]通用技术教学比赛说课稿2
- [教育文库]2018年四年级英语下册 Module 7 Unit 2
- [教育文库]第2章 宽带IP网络的体系结构
- [教育文库]九年级化学第五单元课题3《根据化学方
- [教育文库]小学英语六年级情态动词用法归纳
- [教育文库]甲级单位编制窑井盖项目可行性报告(立
- [教育文库]2016-2021年中国城市规划行业全景调研
- 高考英语听力十大场景词汇总结
- 全省领导班子思想政治建设座谈会会议精
- 人教版新课标高一英语提优竞赛试题 下
- 江西省2014年生物中考试题
- 长沙镇食品药品安全事故应急预案
- 《金刚石、石墨和C60》片段教学设计
- 福州教育学院(王旭东)
- 基于EDA音乐播放器的设计
- 9、古诗两首《夜书所见》《九月九日忆
- 小学语文课外阅读有效策略探讨
- 贵州文化产业发展成支柱产业的问卷调查
- 膀胱类癌的诊治体会(附3例报告)
- 发动机积碳产生的原因
- Configuring Code Composer Studio for
- 学生良好的心理素质如何培养点滴谈
- 46 电沉积法制备锂离子电池用硅-锂薄膜
- 美舍雅阁公司管理中各部门职责
- 去壳剥皮的小妙招
- 六自由度运动平台的仿真研究
- Pride and Prejudice(傲慢与偏见)




