第6章-面向对象的系统设计ppt课件_第1页
第6章-面向对象的系统设计ppt课件_第2页
第6章-面向对象的系统设计ppt课件_第3页
第6章-面向对象的系统设计ppt课件_第4页
第6章-面向对象的系统设计ppt课件_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、梁昌勇梁昌勇信息系统分析、设计与开发方法第第6 6章章 面向对象的系统分析面向对象的系统分析2/296.1 6.1 从面向对象分析到面向对象设计从面向对象分析到面向对象设计6.2 6.2 面向对象设计的准那么面向对象设计的准那么 6.3 6.3 启发式规那么启发式规那么 6.4 6.4 软件重用软件重用6.5 6.5 系统分解系统分解6.6 6.6 典型的面向对象设计典型的面向对象设计6.7 6.7 类中效力的设计类中效力的设计6.8 6.8 关联设计关联设计6.9 6.9 设计优化设计优化目录目录3/296.1从面向对象分析到面向对象设计从面向对象分析到面向对象设计6.1.1 6.1.1 从

2、面向对象分析到面向对象设计从面向对象分析到面向对象设计 面向对象的系统设计(OOD) 就是在系统分析模型的根底上运用面向对象的方法,来设计产生一个符合详细实现条件的面向对象设计(OOD)模型。 对于面向对象设计方法,虽然分析和设计的定义有明显区别,但是在实践的软件开发过程中二者的界限是模糊的。分析过程的结果可以直接映射成设计的结果,初期的分析过程主要是提取与系统相关的主要类和业务流程,而在设计阶段将一切的类和流程细化,加深和补充对系统需求的了解,从而进一步完善分析结果。 4/29 OOA与与OOD关系关系 它们采用了一样的符号表示,因此相互之间没有它们采用了一样的符号表示,因此相互之间没有明显

3、的分界限,往往是反复重叠地进展。明显的分界限,往往是反复重叠地进展。 系统分析主要思索的是做什么,因此它识别和定系统分析主要思索的是做什么,因此它识别和定义的类义的类/对象,是一些直接反映问题域和系统义务对象,是一些直接反映问题域和系统义务的;而系统设计主要处理系统如何做,所以它识的;而系统设计主要处理系统如何做,所以它识别和定义的类别和定义的类/对象是附加的,反映了需求的一种对象是附加的,反映了需求的一种实现实现(对话层、义务管理层、数据管理层对话层、义务管理层、数据管理层)。 系统分析是在较高的笼统层次上进展,而系统设系统分析是在较高的笼统层次上进展,而系统设计那么在较低的笼统层次上进展。

4、系统分析是独计那么在较低的笼统层次上进展。系统分析是独立于程序设计言语的,初步的系统设计在很大程立于程序设计言语的,初步的系统设计在很大程度上与言语无关,但详细的系统设计那么都会依度上与言语无关,但详细的系统设计那么都会依赖于程序设计言语。赖于程序设计言语。6.1从面向对象分析到面向对象设计从面向对象分析到面向对象设计6.1.1 6.1.1 从面向对象分析到面向对象设计从面向对象分析到面向对象设计5/29 面向对象系统设计的主要任务包括以下几个方面的内容: (1) 设计对象与类。包括分析对象模型,设计对象与类的属性,设计对象与类的实现构造,以及设计音讯与事件的内容和格式。 (2) 设计系统构造

5、。设计系统构造阶段的主要义务是设计组件与子系统以及它们之间的静态和动态关系。对于人机界面、数据管理、义务管理等问题,在面向对象分析阶段普通不提及,而是等到面向对象设计阶段再进展分析。 6.1从面向对象分析到面向对象设计从面向对象分析到面向对象设计6.1.1 6.1.1 从面向对象分析到面向对象设计从面向对象分析到面向对象设计6/29 面向对象系统设计的主要任务包括以下几个方面的内容: (3) 设计人机交互子系统。此阶段的主要义务是设计用户界面,设计人机交互操作命令和操作顺序,设计详细交互过程,设计任务的内容包括用户分类,设计人机交互类等。 (4) 设计数据管理子系统。此阶段主要是确定数据管理方

6、法,设计数据 库与数据文件的逻辑构造和物理构造。面向对象的分析设计方法注重的是问题涉及的对象以及对象的相互关系和相互作用,并在此根底上构造这些问题的模型,以期将要处理的本质问题模型化。6.1从面向对象分析到面向对象设计从面向对象分析到面向对象设计6.1.1 6.1.1 从面向对象分析到面向对象设计从面向对象分析到面向对象设计7/29 简单与复杂简单与复杂 (1) 小规模和小团队开发的系统在整体框架选择和层次构小规模和小团队开发的系统在整体框架选择和层次构造上应尽量简单,而大规模的系统,要思索到众多模块的造上应尽量简单,而大规模的系统,要思索到众多模块的合理配置,需求构建更多的层次,选用成熟的框

7、架体系。合理配置,需求构建更多的层次,选用成熟的框架体系。 (2) 在系统资源有限的硬件平台上运转的系统,例如嵌入在系统资源有限的硬件平台上运转的系统,例如嵌入式系统,在设计时应尽量简单,以提高运转效率;而在式系统,在设计时应尽量简单,以提高运转效率;而在PC机以及效力器上运转的系统,可以采用复杂设计,已机以及效力器上运转的系统,可以采用复杂设计,已获得更好的扩展性。获得更好的扩展性。 (3) 对于运转性能要求高的系统,例如需求提供并发效力对于运转性能要求高的系统,例如需求提供并发效力的效力器系统,那么在访问频繁的模块设计上应遵照简单的效力器系统,那么在访问频繁的模块设计上应遵照简单的原那么。

8、的原那么。6.2 面向对象系统设计的准那面向对象系统设计的准那么么6.2.16.2.1面向对象系统设计准那么面向对象系统设计准那么8/29 简单与复杂简单与复杂 (4) 对于开发程度参差不齐的团队,在开发方案对于开发程度参差不齐的团队,在开发方案的选择上留意选取简单的方案,减少内部培训和的选择上留意选取简单的方案,减少内部培训和交流的代价。而成熟的开发团队,那么可以根据交流的代价。而成熟的开发团队,那么可以根据设计目的灵敏地选择设计方案。设计目的灵敏地选择设计方案。 (5) 在一个系统的设计中,简单和复杂的原那么在一个系统的设计中,简单和复杂的原那么能够是交替作用的,在整体构造复杂的系统中,能

9、够是交替作用的,在整体构造复杂的系统中,能够在关键性能模块的设计上追求简单。而在整能够在关键性能模块的设计上追求简单。而在整体构造简单的系统中,对于某些通用性较强的模体构造简单的系统中,对于某些通用性较强的模块能够采用复杂设计。块能够采用复杂设计。 (6) 即使确定了简单和复杂的原那么,也需求思即使确定了简单和复杂的原那么,也需求思索到索到“度,过度设计只会使得某些超前的设计方度,过度设计只会使得某些超前的设计方案被废弃。案被废弃。6.2 面向对象系统设计的准那面向对象系统设计的准那么么6.2.16.2.1面向对象系统设计准那么面向对象系统设计准那么9/29 模块化模块化 模块化是软件设计方法

10、不断演化所追求的目的之模块化是软件设计方法不断演化所追求的目的之一,软件的模块化使得软件的各个功能在设计时一,软件的模块化使得软件的各个功能在设计时相对独立,可以降低软件设计的复杂度。相对独立,可以降低软件设计的复杂度。 面向对象软件开发方法,对象就是模块。它是把面向对象软件开发方法,对象就是模块。它是把数据构造和操作这些数据的方法严密地结合在一数据构造和操作这些数据的方法严密地结合在一同所构成的模块。同所构成的模块。 对象与单元的区别在于:对象是数据与操作严密对象与单元的区别在于:对象是数据与操作严密结合的,在软件运转中有一定生命周期的实体。结合的,在软件运转中有一定生命周期的实体。而单元只

11、是一组函数功能的集合。而单元只是一组函数功能的集合。6.2 面向对象系统设计的准那面向对象系统设计的准那么么6.2.16.2.1面向对象系统设计准那么面向对象系统设计准那么10/29 笼统化笼统化 面向对象方法不仅支持过程笼统,而且支持数据面向对象方法不仅支持过程笼统,而且支持数据笼统。笼统。 在类的设计中要思索各种类的关系,需求从详细在类的设计中要思索各种类的关系,需求从详细类中笼统出具有共同特性的父类或者接口,子类类中笼统出具有共同特性的父类或者接口,子类承继父类的方法,并可以重构不同的实现。类实承继父类的方法,并可以重构不同的实现。类实践上是一种笼统数据类型,它对外开放的公共接践上是一种

12、笼统数据类型,它对外开放的公共接口口interface构成了类的规格阐明,这种接口构成了类的规格阐明,这种接口规定了外界可以运用的合法操作符,利用这些操规定了外界可以运用的合法操作符,利用这些操作符可以对类实例中包含的数据进展操作。作符可以对类实例中包含的数据进展操作。 6.2 面向对象系统设计的准那面向对象系统设计的准那么么6.2.16.2.1面向对象系统设计准那么面向对象系统设计准那么11/29 弱耦合与信息隐藏弱耦合与信息隐藏 对象间的耦合可分为两大类:对象间的耦合可分为两大类: 1交互耦合。假设对象间的耦合是经过音讯衔接来交互耦合。假设对象间的耦合是经过音讯衔接来实现,那么这种耦合属于

13、交互耦合。交互耦合应该尽能够实现,那么这种耦合属于交互耦合。交互耦合应该尽能够松散。松散。 2承继耦合。承继是普通化类与特殊类间耦合的一承继耦合。承继是普通化类与特殊类间耦合的一种方式,从本质来看,是一种经过承继关系结合起来的基种方式,从本质来看,是一种经过承继关系结合起来的基类和派生类,构成了系统中粒度更大的模块。它们之间是类和派生类,构成了系统中粒度更大的模块。它们之间是结合得越严密越好。结合得越严密越好。6.2 面向对象系统设计的准那面向对象系统设计的准那么么6.2.16.2.1面向对象系统设计准那么面向对象系统设计准那么12/29 信息隐藏 实现弱耦合的重要手段,在面向对象方法中,信息

14、隐藏经过对象的封装性实现. 对象的封装有两种方式: 源代码级的封装; 二进制代码级的封装。 6.2 面向对象系统设计的准那面向对象系统设计的准那么么6.2.16.2.1面向对象系统设计准那么面向对象系统设计准那么13/29 可重用可重用 软件重用是提供高软件开发消费率和目的软件重用是提供高软件开发消费率和目的系统质量的重要途径。派生和承继是代码系统质量的重要途径。派生和承继是代码重用的根底。重用的根底。 重用有两方面的含义:一是尽量运用已有重用有两方面的含义:一是尽量运用已有的类包括开发环境提供的类库,及以往的类包括开发环境提供的类库,及以往开发类似系统时创建的类,二是假设确开发类似系统时创建

15、的类,二是假设确实需求创建新类,那么在设计这些新类的实需求创建新类,那么在设计这些新类的协议时,应该思索未来的可反复运用性。协议时,应该思索未来的可反复运用性。6.2 面向对象系统设计的准那面向对象系统设计的准那么么6.2.16.2.1面向对象系统设计准那么面向对象系统设计准那么14/29 设计结果应该明晰易懂设计结果应该明晰易懂 (1) 用词一致用词一致 (2) 运用已有的协议运用已有的协议 (3) 减少音讯方式的数目减少音讯方式的数目 (4) 防止模糊的定义防止模糊的定义 使类等级中包含的层次数适当使类等级中包含的层次数适当 应该使类等级中包含的层次数适当应该使类等级中包含的层次数适当 ,

16、普通来说,普通来说,在一个中等规模在一个中等规模(大约包含大约包含100个类个类)的系统中,类的系统中,类等级层次数应坚持为等级层次数应坚持为72。 6.3 启发规那么启发规那么15/29 设计简单的类设计简单的类 (1)防止包含过多的属性;防止包含过多的属性; (2)有明确的定义;为了使类的定义明确,分配给每个类的有明确的定义;为了使类的定义明确,分配给每个类的任任 务应该简单,最好能用一两个简单语句描画它的义务。务应该简单,最好能用一两个简单语句描画它的义务。 (3)尽量简化对象之间的协作关系;对象间的协作关系应尽尽量简化对象之间的协作关系;对象间的协作关系应尽可可 能的简单。能的简单。

17、(4)不要提供太多效力;不要提供太多效力; 一个类提供的公共效力不超越一个类提供的公共效力不超越7个个; 在开发大型软件系统时,处理这个问题的方法,是把系统在开发大型软件系统时,处理这个问题的方法,是把系统 中的类按逻辑分组。中的类按逻辑分组。 (5) 运用简单的协议;普通音讯中的参数不要超越运用简单的协议;普通音讯中的参数不要超越3个。个。 (6) 运用简单的效力;运用简单的效力; (7) 把设计变动减至最小。把设计变动减至最小。6.3 启发规那么启发规那么16/29 面向对象方法的一个主要目的,就是提高软件的可重用性。 软件重用就是将已有的软件成分用于构造新的软件系统。可以被重用的软件成分

18、普通称作可重用构件,无论对可重用构件原封不动地运用还是作适当的修正后再运用,只需是用来构造新软件,那么都可称作重用。 重用级别: 代码的重用 设计的重用 分析的重用 测试信息的重用6.4 软件重用软件重用17/29 设计复杂运用系统时,会首先根据功能对系统进展分解,然后再分别设计各子系统。各子系统间经过接口进展衔接和信息传送,接口确定了子系统间的交互方式和需传送的信息。 划分和设计子系统时,应该尽量减少子系统间的耦合度。 6.5 系统分解系统分解18/29 问题域子系统设计;能够对面向对象分析所得出的问题域模型做的补充或修正。 1调整需求 2重用已有类 3组合问题域类 4增添普通化类以建立协议

19、 5调整承继层次6.6 典型的面向对象设计典型的面向对象设计19/29窄菱形方式窄菱形方式阔菱形方式阔菱形方式20/29单承继方式单承继方式21/29 人机交互子系统设计人机交互子系统设计 在面向对象设计过程中,应该对人机交互子系统在面向对象设计过程中,应该对人机交互子系统进展详细设计,以确定人机交互的细节,其中包括进展详细设计,以确定人机交互的细节,其中包括指定窗口和报表的方式、设计命令层次等内容。指定窗口和报表的方式、设计命令层次等内容。 设计人机交互子系统的战略设计人机交互子系统的战略 1分类用户分类用户 2描画用户描画用户 3设计命令层次设计命令层次 4设计人机交互类设计人机交互类6.

20、6 典型的面向对象设计典型的面向对象设计22/29义务管理子系统设计义务管理子系统设计分析并发性分析并发性设计义务管理子系统设计义务管理子系统确定事件驱动型义务确定事件驱动型义务确定时钟驱动型义务确定时钟驱动型义务睡眠形状。睡眠形状。确定优先义务确定优先义务确定关键义务确定关键义务确定协调义务确定协调义务尽量减少义务数尽量减少义务数确定资源需求确定资源需求6.6 典型的面向对象设计典型的面向对象设计23/29 数据管理子系统,是系统存储或检索对象的根本设备,它建立在某种数据存储管理系统之上,并且隔离了数据存储管理方式的影响。 选择数据存储管理方式优点缺点文件管理系统 成本低、简单 级别低,必须

21、编写额外的代码,不同操作系统的文件管理系统差异明显关系数据库管理系统 提供了各种最基本的数据管理功能,提供了一致的接口,标准化的语言 运行开销大,不能满足高级应用的需求,与程序设计语言的连接不自然面向对象数据库管理系统 扩展的关系数据库管理系统,扩展的面向对象程序设计语言6.6 典型的面向对象设计典型的面向对象设计24/29 设计数据管理子系统 设计数据格式,存储管理方式的设计方法: 文件系统:定义1NF表;为每个1NF表定义一个文件; 关系数据库管理系统:定义3NF表;为每个3NF表定义一个数据库表; 面向对象数据库管理系统:扩展的关系数据库途径;扩展的面向对象程序设计言语途径。 设计相应的

22、效力 假设某个类的对象需求存储起来,那么在这个类中添加一个“隐含的属性和效力,用于完成存储对象本身的任务。6.6 典型的面向对象设计典型的面向对象设计25/29下面引见运用不同数据存储管理方式时的设计要点。文件系统:被存储的对象需求知道翻开哪些文件,怎样把文件定位到正确的记录上,怎样检索出旧值,以及怎样用现有值更新它们;应该定义一个ObjectServer类,并创建它的实例,该类提供以下效力:通知对象保管本身,检索已存储的对象。关系数据库管理系统:被存储的对象,应该知道访问哪些数据库表,怎样访问所需求的行,怎样检索出旧值,以及怎样用现有值更新它们;应该定义一个ObjectServer类,并声明

23、它的对象,该类提供以下效力:通知对象保管本身,检索已存储的对象。面向对象数据库管理系统:扩展的关系数据库途径;扩展的面向对象程序设计言语途径。6.6 典型的面向对象设计典型的面向对象设计26/29 设计类中应有的效力设计类中应有的效力 对象的许多效力都与对象接纳到的音讯亲密相对象的许多效力都与对象接纳到的音讯亲密相关,接纳音讯的对象必然有由音讯选择符指定的关,接纳音讯的对象必然有由音讯选择符指定的效力,该效力改动对象形状,并完成对象应做的效力,该效力改动对象形状,并完成对象应做的动作。对象的动作既与音讯有关,也与对象的形动作。对象的动作既与音讯有关,也与对象的形状有关。状有关。 6.7 类中效

24、力的设计类中效力的设计27/29 设计实现效力的方法设计实现效力的方法 1设计实现效力的算法设计实现效力的算法, 设计实现效力的算法时设计实现效力的算法时,应该思索以下几个要素:,应该思索以下几个要素: 算法复杂度。算法复杂度。 容易了解与实现。容易了解与实现。 易修正。易修正。 2选择数据构造选择数据构造,在面向对象设计过程中,那么在面向对象设计过程中,那么需求选择可以方便、有效地实现算法的物理数据构需求选择可以方便、有效地实现算法的物理数据构造。造。 3定义内部类和内部操作定义内部类和内部操作6.7 类中效力的设计类中效力的设计28/29 关联的方式 1关联的遍历;单向遍历和双向遍历。 2

25、实现单向关联 假设关联的重数是一元的,那么实现关联的指针是一个简单指针;假设重数是多元的,那么需求用一个指针集合实现关联。6.8 关联设计关联设计用指针实现单向关联用指针实现单向关联29/293实现双向关联,实现双向关联有以下3种方法:只用属性实现一个方向的关联,当需求反向遍历时就执行 一次正向查找。两个方向的关联都用属性实现。 用独立的关联对象实现双向关联。 用指针实现双向关联用指针实现双向关联 30/29用对象实现关联用对象实现关联 31/294关联对象的实现可以引入一个关联类来保管描画关联性质的信息,关联中的每个衔接对应着关联类的一个对象。实现关联对象的方法取决于关联的重数。对于一对一关

26、联来说,关联对象可以与参与关联的任一个对象合并。对于一对多关联来说,关联对象可以与“ 多 端对象合并。假设是多对多关联,那么关联链的性质不能够只与一个参与关联的对象有关,通常用一个独立的关联类来保管描画关联性质的信息,这个类的每个实例表示一条详细的关联链及该链的属性。 32/29 确定优先级 提高效率的几项技术 添加冗余关联以提高访问效率 调整查询次序 保管派生属性 调整承继关系 笼统与详细 为提高承继程度而修正类定义 利用委托实现行为共享6.9 设计优化设计优化33/29 本章是对面向对象分析的扩展,是一个逐渐扩展模型的过本章是对面向对象分析的扩展,是一个逐渐扩展模型的过程。经过对系统的分析模型进展分

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论