软件工程导论第11章

上传人:鲁** 文档编号:578886476 上传时间:2024-08-25 格式:PPT 页数:44 大小:213KB
返回 下载 相关 举报
软件工程导论第11章_第1页
第1页 / 共44页
软件工程导论第11章_第2页
第2页 / 共44页
软件工程导论第11章_第3页
第3页 / 共44页
软件工程导论第11章_第4页
第4页 / 共44页
软件工程导论第11章_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《软件工程导论第11章》由会员分享,可在线阅读,更多相关《软件工程导论第11章(44页珍藏版)》请在金锄头文库上搜索。

1、第11章 面向对象设计11.1 面向对象设计的准则 1. 模块化 面向对象的软件开发模式,支持了系统模块化的原则:对象就是模块。它把数据结构和操作(方法)紧密地结合在一起构成模块。软件工程导论第11章2. 抽象 类实际上是一种抽象数据类型,它对外开放的公共接口构成了类的规格说明(协议),这种接口规定了外界可以使用的合法操作符,利用这些操作符可以对类的实例中包含的数据进行操作。 软件工程导论第11章3. 信息隐蔽 在面向对象方法中,信息隐蔽通过对象的封装性实现:类结构分离了类的接口与类的实现,从而支持了信息隐蔽。 软件工程导论第11章4. 弱耦合 弱的耦合可以提高软件模块的独立性,避免某一部分模

2、块发生变化对其它模块有较大的影响。软件工程导论第11章一般来说,对象间的耦合有两大类: A交互耦合:对象间的耦合通过信息连接来实现。应使交互耦合尽量松散。 B继承偶合:与交互耦合相反,应该提高继承耦合的程度。因为通过继承关系结合起来的基类和派生类,结合得越紧密越好。软件工程导论第11章5. 强内聚面向对象设计中存在三种内聚: A服务内聚:一个服务应该完成一个且完成一个功能。 B类内聚:一个类应该只有一个用途,它的属性和服务应该是高内聚的。 C一般特殊内聚:即基类派生类的内聚。 软件工程导论第11章6. 可重用 使用已经存在的类(包括开发环境提供的类库,及以往开发相似系统时创建的类),可以提高软

3、件重用性,提高软件生产率。 软件工程导论第11章11.2 启发规则 人们在面向对象方法中也积累了一些经验,总结出几条启发规则: 1. 设计结果应该清晰易懂; 1)用词一致; 2)使用已有的协议; 3)减少消息模式的数目; 4)避免模糊的定义。软件工程导论第11章 2. 一般特殊结构的深度应适当中等规模的系统中,类等级层次数应保持为72。不是必要情况,不应该随意创建派生类;软件工程导论第11章3. 设计简单的类:设计小而简单的类,便于开发和管理; 1)避免包含过多的属性; 2)有明确的定义; 3)尽量简化对象之间的合作关系; 4)不要提供太多服务。软件工程导论第11章4. 使用简单的协议:设计简

4、单的类接口,发送的消息中参数要少。5. 使用简单的服务:编写实现每一个服务时,避免复杂的语句和结构;6. 把设计变动减至最小。软件工程导论第11章11.3 软件重用11.3.1 概述 1. 重用 重用的三个层次: 1)知识重用; 2)方法和标准的重用; 3)软件成分的重用。软件工程导论第11章2. 软件成分的重用级别: 1)代码重用 a. 源代码剪贴; b. 源代码包含; c. 继承; 2)设计结果重用 3)分析结果重用软件工程导论第11章 3. 典型的可重用软件成分 1)项目计划; 2)成本计划; 3)体系结构; 4)需求模型和规格说明; 5)设计; 6)源代码; 7)用户文档和技术文档;8

5、)用户界面; 9)数据; 10)测试用例。软件工程导论第11章11.3.2 类构件1. 可重用软构件应具备的特点 1)模块独立性强 2)具有高度可塑性 3)接口清晰、简明、可靠软件工程导论第11章2. 类构件的重用方式 1)实例重用 2)继承重用 3)多态重用软件工程导论第11章1、可以使用适当的构造函数,按照需要创建类的实例。然后向所创建的实例发送适当的消息,启动相应的服务,完成需要完成的工作。2、可以用几个简单的对象作为类的成员,创建出一个更复杂的类。实例重用软件工程导论第11章继承重用1 1、为提高继承重用的效果,关键是设计一个合理的、具有一定深度的类构件继承层次结构。2 2、这样做有下

6、述两个好处:每个子类在继承父类的属性和服务的基础上,只加入少量新属性和新服务。降低了每个类构件的接口复杂度表现出一个清晰的进化过程,提高了每个子类的可理解性为软件开发人员提供了更多可重用的类构件为多态重用奠定了良好基础。软件工程导论第11章多态重用1 1、使对象的对外接口更加一般化,从而降低了消息连接的复杂程度。2 2、提供一种简便可靠的软构件组合机制。3 3、设计类时,应注意以下可能影响重用性的操作:与表示方法有关的操作。例如,不同实例的比较、显示、擦除等等。与数据结构、数据大小等有关的操作。与外部设备有关的操作。例如,设备控制。实现算法在将来可能会改进(或改变)的核心操作软件工程导论第11

7、章11.3.3 软件重用的效益1.质量:每一次重用,都会发现错误并清除,构件质量也随之改善。2.生产率:每一次重用,都会减少重用部分的工作,软件生产率也随之提高。3.成本:重用所带来的净成本C=Cs-Cr-Cd(Cs是项目从头开发时所需要的成本;Cr是与重用相关联的成本;Cd是交付给客户的软件的实际成本。软件工程导论第11章11.4 系统分解类与对象层人机交互部分问题域部分任务管理部分数据管理部分主题层结构层属性层服务层图11.2 典型的面向对象设计模型软件工程导论第11章1、子系统之间的两种交互方式A.客户供应商关系B.平等伙伴关系2、组织系统的两种方案A.层次组织:下层为上层提供服务封闭式

8、:每层子系统仅仅使用其直接下层提供服务开放式:可以调用下层任何子系统B.块状组织:子系统相互独立,弱耦合软件工程导论第11章11.5 设计问题域子系统 在设计问题域部分时,仅需要从实现的角度对问题域模型(对象模型、动态模型、功能模型)作一些补充、修改,主要是增添、合并或分解类与对象、属性和服务,调整继承关系等。软件工程导论第11章1. 调整需求2. 重用已有的类3. 组合问题域的类4. 增添基类以定义公共函数集合5. 调整继承层次 1)使用多重继承机制 2)使用单继承机制软件工程导论第11章软件工程导论第11章软件工程导论第11章6. ATM系统实例软件工程导论第11章11.6 设计人机交互子

9、系统 在面向对象分析中,已经对用户界面需求作了初步分析,在面向对象设计过程中,要对系统人机交互部分进行详细设计,其中包括指定窗口和报表的形式、设计命令层次等等。 软件工程导论第11章设计人机交互子系统的策略: 1)分类用户; 2)描述用户; 3)设计命令层次; 4)设计人机交互类。软件工程导论第11章11.7 设计任务管理子系统 任务可视作进程(Process)1. 分析并发性 基于动态模型分析并发性,如果对象间不存在交互,或不同时接受事件,则是并发的。 并发任务可以在不同的处理器上实现,也可以在单个处理器上利用多任务操作系统实现。软件工程导论第11章2. 设计任务管理子系统 1)确定事件驱动

10、型任务:主要完成通信工作 工作过程:睡眠等待来自数据线的中断任务唤醒、接收数据通知相应对象继续睡眠 2)确定时钟驱动型任务 每隔一定时间触发执行某些任务。 3)确定优先任务软件工程导论第11章4)确定关键任务5)确定协调任务 当同时运行的任务较多时(3个以上),一般设计协调任务,会增加系统开销,但有利于封装不同任务间的协调控制。6)尽量减少任务数7)确定资源需求 计算系统载荷(单位时间处理业务数),估算所需CPU性能。软件工程导论第11章11.8 设计数据管理子系统11.8.1 选择数据存储管理模式 1. 文件管理系统 2. 关系数据库管理系统 3. 面向对象数据库管理系统软件工程导论第11章

11、11.8.2 设计数据管理子系统 1. 设计数据格式 2. 设计相应的服务软件工程导论第11章11.8.3 ATM系统实例 采用成熟的商品化关系数据库。根据数据库范式设计,保持数据一致性、完整性。 处理并发事务时,每个事务作为一个不可分割的批操作来处理,由事务封锁帐户,直至事务结束。软件工程导论第11章11.9 设计类中的服务11.9.1 确定类中应有的服务11.9.2 设计实现服务的方法 1. 设计实现服务的算法 1)算法复杂度; 2)容易理解、容易实现; 3)容易修改; 2. 选择数据结构 3. 定义内部类和内部操作软件工程导论第11章11.10 设计关联 1、关联关系反映对象之间相互依赖

12、、相互作用的关系。2、在面向对象设计过程中,设计人员必须确定实现关联的具体策略。关联的遍历实现单向关联实现双向关联关联对象的实现软件工程导论第11章1、关联的遍历 1)单向遍历:实现简单2)双向遍历:实现麻烦软件工程导论第11章2、实现单向关联1)用指针可以方便地实现单向关联。2)如果关联的阶是一元的,则实现关联的指针是一个简单指针;如果阶是多元的,则需要用一个指针集合实现关联。 软件工程导论第11章3、实现双向关联 实现双向关联有下列三种方法:1.只用属性实现一个方向的关联,当需要反向遍历时就执行一次正向查找。 2.两个方向的关联都用属性实现,这种方法能实现快速访问。3.用独立的关联对象实现

13、双向关联。关联对象不属于相互关联的任何一个类,它是独立的关联类的实例 。软件工程导论第11章软件工程导论第11章4、关联对象的实现 关联对象的实现方法取决于关联的阶数:一对一关联:关联对象可以与参与关联的任一个对象合并。一对多关联:关联对象可以与“多”端对象合并。多对多关联:通常使用一个独立的关联类来保存描述关联性质的信息,这个类的每个实例标示一条具体的关联链及该链的属性。 软件工程导论第11章11.11设计优化 1、确定优先级 2、提高效率的几项技术1)增加冗余关联以提高访问效率2)调整查询次序3)保留派生属性 3、调整继承关系 1)抽象与具体2)为提高继承程度而修改类定义3)利用委托实现行

14、为共享软件工程导论第11章练习题填空题:1、大型、复杂系统的对象通常由下述5个层次组成:( )、类与对象层、( )、( )和( )。2、软件重用是提高软件( )和目标系统( )的重要途径,它基本上始于设计。其中软件成分重用可划分成以下3个级别即代码重用、设计成果重用和分析结果重用。3、面向对象设计的6个准则:( )、( )、( )、弱耦合、( )和( )。4、一般来说,对象之间的耦合分为两大类:( )和( )。5、在面向对象设计中存在三种内聚:( )、( )和( )。6、通过积极的软件重用能够获得可观的商业效益,( )、开发生产率和( )都得到了改善。7、大多数系统的面向对象设计模型,在逻辑上都由4大部分组成,它们分别是( )、( )、( )和( )。软件工程导论第11章

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号