软件工程导论第11章面向对象设计教学讲义

上传人:yulij****0329 文档编号:140479331 上传时间:2020-07-30 格式:PPT 页数:45 大小:376.50KB
返回 下载 相关 举报
软件工程导论第11章面向对象设计教学讲义_第1页
第1页 / 共45页
软件工程导论第11章面向对象设计教学讲义_第2页
第2页 / 共45页
软件工程导论第11章面向对象设计教学讲义_第3页
第3页 / 共45页
软件工程导论第11章面向对象设计教学讲义_第4页
第4页 / 共45页
软件工程导论第11章面向对象设计教学讲义_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《软件工程导论第11章面向对象设计教学讲义》由会员分享,可在线阅读,更多相关《软件工程导论第11章面向对象设计教学讲义(45页珍藏版)》请在金锄头文库上搜索。

1、第11章 面向对象设计,11.1 面向对象设计的准则 1. 模块化 面向对象的软件开发模式,支持了系统模块化的原则:对象就是模块。它把数据结构和操作(方法)紧密地结合在一起构成模块。,2. 抽象 类实际上是一种抽象数据类型,它对外开放的公共接口构成了类的规格说明(协议),这种接口规定了外界可以使用的合法操作符,利用这些操作符可以对类的实例中包含的数据进行操作。,3. 信息隐蔽 在面向对象方法中,信息隐蔽通过对象的封装性实现:类结构分离了类的接口与类的实现,从而支持了信息隐蔽。,一般来说,对象间的耦合有两大类: A交互耦合:对象间的耦合通过信息连接来实现。应使交互耦合尽量松散。 B继承偶合:与交

2、互耦合相反,应该提高继承耦合的程度。因为通过继承关系结合起来的基类和派生类,结合得越紧密越好。,5. 强内聚 面向对象设计中存在三种内聚: A服务内聚:一个服务应该完成一个且完成一个功能。 B类内聚:一个类应该只有一个用途,它的属性和服务应该是高内聚的。 C一般特殊内聚:即基类派生类的内聚。,6. 可重用 使用已经存在的类(包括开发环境提供的类库,及以往开发相似系统时创建的类),可以提高软件重用性,提高软件生产率。,人们在面向对象方法中也积累了一些经验,总结出几条启发规则: 1. 设计结果应该清晰易懂; 1)用词一致; 2)使用已有的协议; 3)减少消息模式的数目; 4)避免模糊的定义。,11

3、.2 启发规则,2. 一般特殊结构的深度应适当 中等规模的系统中,类等级层次数应保持为72。不是必要情况,不应该随意创建派生类;,3. 设计简单的类:设计小而简单的类,便于开发和管理; 1)避免包含过多的属性; 2)有明确的定义; 3)尽量简化对象之间的合作关系; 4)不要提供太多服务。,4. 使用简单的协议:设计简单的类接口,发送的消息中参数要少。 5. 使用简单的服务:编写实现每一个服务时,避免复杂的语句和结构; 6. 把设计变动减至最小。,11.3 软件重用,11.3.1 概述 1. 重用 重用的三个层次: 1)知识重用; 2)方法和标准的重用; 3)软件成分的重用。,2. 软件成分的重

4、用级别: 1)代码重用 a. 源代码剪贴; b. 源代码包含; c. 继承; 2)设计结果重用 3)分析结果重用,3. 典型的可重用软件成分 1)项目计划; 2)成本计划; 3)体系结构; 4)需求模型和规格说明; 5)设计; 6)源代码; 7)用户文档和技术文档;8)用户界面; 9)数据; 10)测试用例。,11.3.2 类构件,1. 可重用软构件应具备的特点 1)模块独立性强 2)具有高度可塑性 3)接口清晰、简明、可靠,2. 类构件的重用方式 1)实例重用 2)继承重用 3)多态重用,1、可以使用适当的构造函数,按照需要创建类的实例。然后向所创建的实例发送适当的消息,启动相应的服务,完成

5、需要完成的工作。 2、可以用几个简单的对象作为类的成员,创建出一个更复杂的类。,实例重用,18,继承重用,1、为提高继承重用的效果,关键是设计一个合理的、具有一定深度的类构件继承层次结构。 2、这样做有下述两个好处: 每个子类在继承父类的属性和服务的基础上,只加入少量新属性和新服务。 降低了每个类构件的接口复杂度 表现出一个清晰的进化过程,提高了每个子类的可理解性 为软件开发人员提供了更多可重用的类构件 为多态重用奠定了良好基础。,19,多态重用,1、使对象的对外接口更加一般化,从而降低了消息连接的复杂程度。 2、提供一种简便可靠的软构件组合机制。 3、设计类时,应注意以下可能影响重用性的操作

6、: 与表示方法有关的操作。例如,不同实例的比较、显示、擦除等等。 与数据结构、数据大小等有关的操作。 与外部设备有关的操作。例如,设备控制。 实现算法在将来可能会改进(或改变)的核心操作,11.3.3 软件重用的效益,质量:每一次重用,都会发现错误并清除,构件质量也随之改善。 生产率:每一次重用,都会减少重用部分的工作,软件生产率也随之提高。 成本:重用所带来的净成本C=Cs-Cr-Cd(Cs是项目从头开发时所需要的成本;Cr是与重用相关联的成本;Cd是交付给客户的软件的实际成本。,11.4 系统分解,1、子系统之间的两种交互方式 客户供应商关系 平等伙伴关系 2、组织系统的两种方案 层次组织

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

8、象设计过程中,要对系统人机交互部分进行详细设计,其中包括指定窗口和报表的形式、设计命令层次等等。,设计人机交互子系统的策略: 1)分类用户; 2)描述用户; 3)设计命令层次; 4)设计人机交互类。,11.7 设计任务管理子系统,任务可视作进程(Process) 1. 分析并发性 基于动态模型分析并发性,如果对象间不存在交互,或不同时接受事件,则是并发的。 并发任务可以在不同的处理器上实现,也可以在单个处理器上利用多任务操作系统实现。,2. 设计任务管理子系统 1)确定事件驱动型任务:主要完成通信工作 工作过程:睡眠等待来自数据线的中断任务唤醒、接收数据通知相应对象继续睡眠 2)确定时钟驱动型

9、任务 每隔一定时间触发执行某些任务。 3)确定优先任务,4)确定关键任务 5)确定协调任务 当同时运行的任务较多时(3个以上),一般设计协调任务,会增加系统开销,但有利于封装不同任务间的协调控制。 6)尽量减少任务数 7)确定资源需求 计算系统载荷(单位时间处理业务数),估算所需CPU性能。,11.8 设计数据管理子系统,11.8.1 选择数据存储管理模式 1. 文件管理系统 2. 关系数据库管理系统 3. 面向对象数据库管理系统,11.8.2 设计数据管理子系统 1. 设计数据格式 2. 设计相应的服务,11.8.3 ATM系统实例,采用成熟的商品化关系数据库。根据数据库范式设计,保持数据一

10、致性、完整性。 处理并发事务时,每个事务作为一个不可分割的批操作来处理,由事务封锁帐户,直至事务结束。,11.9 设计类中的服务,11.9.1 确定类中应有的服务 11.9.2 设计实现服务的方法 1. 设计实现服务的算法 1)算法复杂度; 2)容易理解、容易实现; 3)容易修改; 2. 选择数据结构 3. 定义内部类和内部操作,37,11.10 设计关联,1、关联关系反映对象之间相互依赖、相互作用的关系。 2、在面向对象设计过程中,设计人员必须确定实现关联的具体策略。 关联的遍历 实现单向关联 实现双向关联 关联对象的实现,38,1、关联的遍历,1)单向遍历:实现简单 2)双向遍历:实现麻烦

11、,39,2、实现单向关联,1)用指针可以方便地实现单向关联。 2)如果关联的阶是一元的,则实现关联的指针是一个简单指针;如果阶是多元的,则需要用一个指针集合实现关联。,40,3、实现双向关联,实现双向关联有下列三种方法: 只用属性实现一个方向的关联,当需要反向遍历时就执行一次正向查找。 两个方向的关联都用属性实现,这种方法能实现快速访问。 用独立的关联对象实现双向关联。关联对象不属于相互关联的任何一个类,它是独立的关联类的实例 。,41,42,4、关联对象的实现,关联对象的实现方法取决于关联的阶数: 一对一关联: 关联对象可以与参与关联的任一个对象合并。 一对多关联: 关联对象可以与“多”端对

12、象合并。 多对多关联: 通常使用一个独立的关联类来保存描述关联性质的信息,这个类的每个实例标示一条具体的关联链及该链的属性。,43,11.11设计优化,1、确定优先级 2、提高效率的几项技术 1)增加冗余关联以提高访问效率 2)调整查询次序 3)保留派生属性 3、调整继承关系 1)抽象与具体 2)为提高继承程度而修改类定义 3)利用委托实现行为共享,练习题,填空题: 1、大型、复杂系统的对象通常由下述5个层次组成:( )、类与对象层、( )、( )和( )。 2、软件重用是提高软件( )和目标系统( )的重要途径,它基本上始于设计。其中软件成分重用可划分成以下3个级别即代码重用、设计成果重用和

13、分析结果重用。 3、面向对象设计的6个准则:( )、( )、( )、弱耦合、( )和( )。 4、一般来说,对象之间的耦合分为两大类:( )和( )。 5、在面向对象设计中存在三种内聚:( )、( )和( )。 6、通过积极的软件重用能够获得可观的商业效益,( )、开发生产率和( )都得到了改善。 7、大多数系统的面向对象设计模型,在逻辑上都由4大部分组成,它们分别是( )、( )、( )和( )。,名词解释: 1、软件重用 2、优秀设计 简述题: 1、简述面向对象方法学的6条启发原则。 2、简述软件重用的3个层次。 3、简述软件成分重用的3个级别。 4、简述类构建重用的3种方式。 5、简述软件系统中子系统之间的两种交互方式。 6、简述组织软件系统的两种方案。 7、P288.第1、2、3题,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

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