面向对象设计方案.ppt
《面向对象设计方案.ppt》由会员分享,可在线阅读,更多相关《面向对象设计方案.ppt(65页珍藏版)》请在三一办公上搜索。
1、第7章 面向对象设计,4学时,引言面向对象的设计,物理结构设计,子系统层次设计,用例设计,类设计,数据库设计,界面设计,设计模型,设计规范/模版,按照规范把分析模型转化为设计模型,第7章 面向对象设计,1)面向对象设计方法和步骤2)面向对象设计的概念3)面向对象设计规格说明书的主要内容,理解了解了解,要求,7.1 面向对象设计的概念,面向对象设计强调定义软件对象,并且使这些软件对象相互协作来满足用户需求。面向对象分析和设计的界限是模糊的,从面向对象分析到面向对象设计是一个逐渐扩充模型的过程。分析的结果通过细化直接生成设计结果,在设计过程中逐步加深对需求的理解,从而进一步完善需求分析的结果。分析
2、和设计活动是一个反复迭代的过程。面向对象方法学在概念和表示方法上的一致性,保证了各个开发阶段之间的平滑性。,面向对象设计的四个层次:确定系统的总体结构和风格,构造系统的物理模型,将系统划分成不同的子系统。中层设计:对每个用例进行设计,规划实现用例功能的关键类,确定类之间的关系。进行底层设计:对每个类进行详细设计,设计类的属性和操作,优化类之间的关系。补充实现非功能性需求所需要的类。,面向对象设计与结构化设计的过程和方法完全不同,要设计出高质量的软件系统,记住:对接口进行设计发现变化并且封装它先考虑聚合然后考虑继承,强内聚,类内聚设计类的原则是一个类的属性和操作全部都是完成某个任务所必须的,其中
3、不包括无用的属性和操作。例如设计一个平衡二叉树类,该类的目的就是要解决平衡二叉树的访问,其中所有的属性和操作都与解决这个问题相关,其他无关的属性和操作在这里都是垃圾,应该清除。,弱耦合,在面向对象设计中,耦合主要指不同对象之间相互关联的程度。如果一个对象过多地依赖于其它对象来完成自己的工作,则不仅使该对象的可理解性下降,而且还会增加测试、修改的难度,同时降低了类的可重用性和可移植性。对象不可能是完全孤立的,当两个对象必须相互联系时,应该通过类的公共接口实现耦合,不应该依赖于类的具体实现细节。,耦合(续),交互耦合如果对象之间的耦合是通过消息连接来实现的,则这种耦合就是交互耦合。在设计时应该尽量
4、减少对象之间发送的消息数和消息中的参数个数,降低消息连接的复杂程度。,耦合(续),继承耦合继承耦合是一般化类与特殊化类之间的一种关联形式,设计时应该适当使用这种耦合。在设计时要特别认真分析一般化类与特殊化类之间继承关系,如果抽象层次不合理,可能会造成对特殊化类的修改影响到一般化类,使得系统的稳定性降低。另外,在设计时特殊化类应该尽可能多地继承和使用一般化类的属性和服务,充分利用继承的优势。,可重用性,软件重用是从设计阶段开始的,所有的设计工作都是为了使系统完成预期的任务,为了提高工作效率、减少错误、降低成本,就要充分考虑软件元素的重用性。重用性有两个方面的含义:尽量使用已有的类,包括开发环境提
5、供的类库和已有的相似的类;如果确实需要创建新类,则在设计这些新类时考虑将来的可重用性。设计一个可重用的软件比设计一个普通软件的代价要高,但是随着这些软件被重用次数的增加,分摊到它的设计和实现成本就会降低。,框架,框架是一组可用于不同应用的类的集合。框架中的类通常是一些抽象类并且相互有联系,可以通过继承的方式使用这些类。例如,Java应用程序接口(API)就是一个成功的框架包,为众多的应用提供服务,但一个应用程序通常只需要其中的部分服务,可以采用继承或聚合的方式将应用包与框架包关联在一起来获得需要的服务。一般不会直接去修改框架的类,而是通过继承或聚合为应用创建合适的GUI类。,面向对象设计的活动
6、,系统构架设计用例设计类设计数据库设计用户界面设计。,7.2 构架设计,构架设计的目的是要勾画出系统的总体结构,这项工作由经验丰富的构架设计师主持完成。该活动以用例模型、分析模型为输入。输出:物理结构、子系统及其接口、概要的设计类。,第1步:构造系统的物理模型首先用UML的配置图描述系统的物理构架将需求分析阶段捕获的系统功能分配到这些物理节点上。配置图上可以显示计算节点的拓扑结构、硬件设备配置、通信路径、各个节点上运行的系统软件配置、应用软件配置。一个图书馆信息管理系统的物理模型如图示,配置图中考虑到图书馆内部用户如果也通过互联网使用系统,效率会受影响。这个系统中设计了三种访问模式:一种是远程
7、读者,通过Internet访问系统,实现查询图书、预借图书的功能;第二种是本单位其他部门的读者,通过单位局域网查询、预借图书;第三种是图书馆内部工作人员,在局域网上完成日常的借还书、采编、图书管理等工作。,第2步 设计子系统,对于一个复杂的软件系统来说,将其分解成若干个子系统,子系统内还可以继续划分子系统或包,这种自顶向下、逐步细化的组织结构非常符合人类分析问题的思路。每个子系统与其它子系统之间应该定义接口,在接口上说明交互信息,注意这时还不要描述子系统的内部实现。,1)划分各个子系统的方式:按照功能划分,将相似的功能组织在一个子系统中;按照系统的物理布局划分,将在同一个物理区域内的软件组织为
8、一个子系统;按照软件层次划分子系统,软件层次通常可划分为用户界面层、专用软件层、通用软件层、中间层和数据层,具体的表达方式见图。,用户界面层是与用户应用有密切关系的内容,主要接受用户的输入信息,并且将系统的处理结果显示给用户。这部分变化通常比较大,所以建议将界面层剥离出来,用一些快捷有效的工具实现。,专用软件层是每个项目中特殊的应用部分,它们被复用的可能性很小。在开发时可以适当地减小软件元素的粒度,以便分离出更多的可复用构件,减少专用软件层的规模。,通用软件层是由一些公共构件组成,这类软构件的可复用性很好。在设计应用软件时首先要将软件的特殊部分和通用部分分离,根据通用部分的功能检查现有的构件库
9、。如果有可用的构件,则复用已有的构件会极大地提高软件的开发效率和质量。如果没有可复用的构件,则尽可能设计可复用的构件并且添加到构件库中,以备今后复用。,数据层主要存放应用系统的数据,通常由数据库管理系统管理,常用的操作有更新、保存、删除、检索等。,在图书馆图书信息管理系统层次划分:系统层采用微软的Windows操作系统和SQL Server数据库。数据层主要是建立应用数据库,包括数据库表、视图等。中间层使用微软的ADO.NET,实现对数据库的插入、修改、删除的事务处理。通用软件层实现权限管理、用户登录、通用查询类。专用软件层实现读者查询、借书、还书、处罚、预订、通知等处理。界面层实现查询界面、
10、借书界面、还书界面、预订界面、通知界面等用户界面。,2)定义子系统之间的关系:划分子系统后,要确定子系统之间的关系。子系统之间的关系:“请求服务”关系,“请求”子系统调用“服务”子系统,“服务”子系统完成一些服务,并且将结果返回给“请求”子系统。平等关系,每个子系统都可以调用其它子系统。如果子系统的内容相互有关联,就应该定义它们之间的依赖关系。在设计时,相关的子系统之间应该定义接口,依赖关系应该指向接口而不要指向子系统的内容。,注意:,如果两个子系统之间的关系过于密切,则说明一个子系统的变化会导致另一个子系统变化,这种子系统理解和维护都会比较困难。解决子系统之间关系过于密切的办法基本上有两个:
11、重新划分子系统,这种方法比较简单,将子系统的粒度减少,或者重新规划子系统的内容,将相互依赖的元素划归到同一个子系统之中;定义子系统的接口,将依赖关系定义到接口上;,3)定义子系统的接口。每个子系统的接口上定义了若干操作,体现了子系统的功能,而功能的具体实现方法应该是隐藏的,其他子系统只能通过接口间接地享受这个子系统提供的服务,不能直接操作它。,第3步 非功能需求设计,分析阶段定义了整个系统的非功能需求,在设计阶段要研究这些需求,设计出可行的方案。非功能需求包括:系统的安全性,错误监测和故障恢复,可移植性和通用性等等。具有共性的非功能需求一般设计在中间层和通用应用层,目的是充分利用已有构件,减少
12、重新开发的工作量。,7.3 进一步细化用例,根据分析阶段产生的高层类图和交互图,由用例设计师研究已有的类,将它们分配到相应的用例中。检查每个用例功能,依靠当前的类能否实现,同时检查每个用例的特殊需求是否有合适的类来实现。细化每个用例的类图,描述实现用例的类及其类之间的相互关系,其中的通用类和关键类可用粗线框区分,这些类将作为项目经理检查项目时的重点。,第1步:通过扫描用例中所有的交互图识别参与用例解决方案的类。在设计阶段完善类、属性和方法。例如,每个用例至少应该有一个控制类,它通常没有属性而只有方法,它本身不完成什么具体的功能,只是起协调和控制作用。每个类的方法都可以通过分析交互图得到,一般地
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 设计方案
链接地址:https://www.31ppt.com/p-6442350.html