- 1、本文档共29页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程课件10详解
软件工程第十章 构件级设计建模 10.1 什么是构件 10.2 设计基于类的构件 10.3 实施构件级设计 10.4 对象约束语言 10.5 设计传统构件 10.1 什么是构件 OMG UML规范:系统中某一定型化的、可配置的和可替换的部件,该部件封装实现并暴露一系列接口。 面向对象的观点:一个互相协作的类的集合。 什么是构件 传统观点:程序的功能要素,程序由处理逻辑、实现处理逻辑所需的内部数据结构、能够保证构件被调用和实现数据传递的接口构成。 承担的重要角色: 控制构件 问题域构件 基础设施构件 什么是构件 过程相关的观点:强调使用已有的构件来构造系统,复用的思想。 10.2 设计基于类的构件基本设计原则 开关原则:构件应该对外延具有开放性,对修改具有封闭性。 基本设计原则 Liskov替换原则:子类可以替换它们的基类; 依赖倒置原则:依赖于抽象,而非具体实现; 接口分离原则:多个用户专用接口比一个通用接口要好; 基本设计原则 打包原则(构件如何打包): 发布复用等价性原则:复用的粒度就是发布的粒度; 共同封装原则:一同变更的类应该合在一起; 共同复用原则:不能一起复用的类不能被分到一组; 10.3 实施构件级设计 步骤1:标识出所有和问题域相对应的设计类; 步骤2:确定所有与基础设施域相对应的设计类; 步骤3:细化所有不能作为复用构件的设计类; 步骤4:说明持久数据源(数据库和文件)并确定管理数据源所需要的类; 步骤5:开发并且细化构件的行为表示。 步骤6:细化部署图以提供额外的实现细节; 步骤7:考虑每一个构件级设计表示,并且时刻考虑其他选择。 10.4 对象约束语言(OCL) 对象约束语言的组成部分: (1)语境:定义哪些情况语句是正确的; (2)特性:描述语境的一些特征; (3)操作:用来操纵和限定一个特性; (4)关键字:用于说明条件表达式。 OCL实例 从computingJobCost状态到formingJob状态有个条件:用户认证。 用OCL表示: customer self.authorizationAuthority=‘yes’ OCL实例 10.5 设计传统构件 也是一种逐步求精的过程 设计传统构件 逻辑构成的元素是传统构件设计的基础,这些逻辑构成元素包括有: 顺序:实现了任何算法规约中的核心处理步骤; 条件:允许根据逻辑情况选择处理的方式; 重复:提供了循环。 图形化设计表示 流程图中,方框表示处理步骤,菱形表示逻辑条件,箭头表示控制流。 顺序由两个表示处理的方框以及连接两者的控制线表示 条件也称if-then-else结构,菱形表示; 重复 结构化的构成元素可以相互嵌套 图形化设计表示 图形化设计表示 表格设计符号? 开发决策表的步骤: 1.列出与特定过程(或模块)相关的动作 2.列出执行该过程时的所有条件(或决策) 3.将特定的条件组合与特定的动作相关联,消除不可能的条件组合;或者找出所有可能的条件排列。 4.定义规则,指出一组条件应对应哪个或哪些动作 反映程序逻辑的决策表 程序设计语言(伪代码) 程序设计语言(PDL)也称为结构化的英语或伪码,是“一种混合语言,采用一种语言的词汇(即英语)和另一种语言的语法(即一种结构化编程语言)” 可随便修改不必担心语法错误,不能编译 程序设计语言 基本的PDL语法: 子程序定义 接口描述 数据声明 针对块构成元素、条件构成元素、重复构成元素和I/O构成元素的技术 PDL实例 以前面提到的SafeHome安全系统的构件设计为例: SafeHome系统监控火、烟、盗贼、水(洪水)和温度(比如冬天房主外出时炉子熄火)等;产生报警信号;调用监控服务,发出合成的语音信息。 PDL实例 PROCEDURE security.monitor; INTERFACE RETURNS system.status; TYPE signal IS STRUCTURE DEFINED Name IS STRING LENGTH VAR; address IS HEX device location; bound.value IS upper bound SCALAR; message IS STRING LENGTH VAR; END signal TYPE; TYPE system.statusISBIT(4); TYPE alarm.type DEFINED smoke.alarm ISINSTANCEOFsignal; fire.alarm IS INSTANCE OF signal; water.alarm IS INSTANCE OF signal; temp.alarm ISINSTANCE
文档评论(0)