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