欢迎来到天天文库
浏览记录
ID:55836289
大小:104.50 KB
页数:33页
时间:2020-06-09
《《软件工程实用教程》第6 章 面向对象的软件设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第6章面向对象的软件设计本章学习内容:1.理解面向对象软件设计的基本原理2.掌握系统设计的过程与方法3.掌握详细设计的内容与过程4.了解面向对象的实现技术5.了解面向对象测试的概念与方法第6章面向对象的软件设计6.1面向对象软件设计概述6.1.1面向对象设计准则模块化抽象信息隐蔽低耦合高内聚可重用第6章面向对象的软件设计6.1.2面向对象设计的过程1.系统设计(1)首先进行系统架构设计,使系统具有良好的稳定性、开放性和可扩充性(2)如果系统复杂,应将系统划分为若干个子系统(3)给系统分配处理机和任务(4)根据数据结构、文件和数据库选择实现数据存储的基本策略(5)标
2、识全局资源和确定控制访问这些资源的机制(6)选择实现软件控制方法(7)考虑边界条件(8)建立折衷的优先权第6章面向对象的软件设计2.详细设计(1)细化、补充类的属性和操作(2)设计类操作的实现算法(3)优化数据访问路径(4)实现外部交互式的控制(5)调整类结构,增加继承性(6)设计类之间的关联的实现方式(7)确定对象属性的精确表示(8)把类和关联打包归纳到模块中第6章面向对象的软件设计6.2系统设计6.2.1逻辑体系架构设计1.层次模式分析(1)分层模式表示层:图形用户界面、窗口等。应用逻辑层:管理业务过程的任务和规则。对象存储层:持久化存储机制,例如,文件系统、
3、数据库等。第6章面向对象的软件设计(2)设计要求层与层之间的耦合应尽可能地松散;级别相同、职责类似的元素应该被组织到同一层中;复杂的模块应被继续分解为粒度更细的层或子系统;应尽量将可能发生变化的元素封装到一层中;每一层应当只调用下一层提供的功能服务,而不能跨层调用;一层绝不能使用上一层提供的功能服务,即不能在层与层之间造成双向依赖。第6章面向对象的软件设计(3)避免循环依赖第6章面向对象的软件设计2.子系统划分设计准则:子系统应具有良好的接口,通过接口和系统的其他部分通信;除了少数的“通信类”外,子系统中的类应只和该子系统中的其他类协作;子系统的数量不宜太多;可以
4、在子系统内部再次划分,以降低复杂度。第6章面向对象的软件设计6.2.2物理体系结构建模用构件图和部署图来描述系统的物理体系结构1.构件图构件图就是描述构件类及其它们之间的关系。(1)构件间的依赖关系:主要是依赖关系,用来表示一个构件需要另一些构件才能有完整的定义。(2)接口:是一个构件提供给其他构件的一组操作第6章面向对象的软件设计例:第6章面向对象的软件设计2.部署图部署图描述了处理器、设备和软件构件运行时的体系结构。(1)结点:是某种计算资源的物理对象,包括计算机、设备(如打印机、通信设备)等(2)连接:连接用一条直线表示,它指出结点之间存在着某种通信路径,并
5、指出通过哪条通信路径可使这些结点间交换对象或发送消息第6章面向对象的软件设计举例:第6章面向对象的软件设计6.2.3基于构件的建模1.构件的特性独立部署单元可作为第三方的组装单元没有(外部的)可见状态第6章面向对象的软件设计2.设计基于类的构件(1)基本设计原则1)开闭原则:指的是一个模块在扩展性方面应该是开放的,而在更改性方面应该是封闭的。即在设计模块的时候,应该尽量使得模块可以扩展,并且在扩展时不需要对模块的源代码进行修改。第6章面向对象的软件设计2.设计基于类的构件(1)基本设计原则2)Liskov替换原则:指的是子类可以替换父类出现在父类能出现的任何地方。
6、例如,类ClassA要使用ClassB,ClassC是ClassB的子类。如果在运行时,用ClassC代替ClassB,则ClassA仍然可以使用原来ClassB中提供的方法,而不需要做任何改动。第6章面向对象的软件设计3)依赖倒置原则:指的是依赖关系应该是尽量依赖接口(或抽象类),而不是依赖于具体类。在面向对象的设计中,高层的类往往与领域的业务有关,这些类只依赖于一些抽象的类或接口,当具体的实现细节改变时,不会对高层的类产生影响。4)接口分离原则:指的是在设计时采用多个与特定客户类有关的接口比采用一个通用的接口要好。即一个类要给多个客户类使用,那么可以为每个客户
7、类创建一个接口,然后这个类实现所有这些接口,而不要只创建一个接口,其中包含了所有客户类需要的方法,然后这个类实现这个接口。第6章面向对象的软件设计(2)构件级设计指导方针1)保持高内聚性。内聚性指构件或类只封装那些相互关系密切,以及与构件或类自身有密切关系的属性和操作。按内聚程度由高到低的排列顺序是:功能内聚、分层内聚、通信内聚、顺序内聚、过程内聚、暂时内聚和实用内聚。2)保持低耦合性。耦合是构件或类之间彼此联系程度的一种定性度量。随着构件或类相互依赖越来越多,构件之间的耦合度亦会增加。按耦合程度由高到低的排列顺序是:内容耦合、控制耦合、印记耦合、数据耦合、例程调
8、用耦合、类
此文档下载收益归作者所有