您的当前位置:首页面向对象分析与设计—OOD部分

面向对象分析与设计—OOD部分

2021-05-10 来源:爱问旅游网
⾯向对象分析与设计—OOD部分

第三部分 ⾯向对象设计

3.1 ⾯向对象设计(OOD)的定义?

  在⾯向对象分析阶段,已经针对⽤户需求建⽴起⽤⾯向对象概念描述的系统分析模型。在设计阶段,要考虑为实现系统⽽采⽤的计算机设备、操

作系统、⽹络、数据库管理系统以及所采⽤的编程语⾔等有关因素,进⼀步运⽤⾯向对象的⽅法对系统进⾏设计,最后形成⼀个可以实现的设计模型,即⾯向对象设计模型。

3.2 ⾯向对象设计(OOD)与⾯向对象分析(OOA)的关系?

  在⾯向对象分析阶段,针对的是现实世界,把需求转化为⾯向对象概念所建⽴的模型,以易于理解问题域和系统责任,最终建⽴⼀个映射问题

域,满⾜⽤户需求,独⽴于实现的OOA模型,⾯向对象的设计就是在⾯向对象分析的基础上运⽤⾯向对象⽅法主要解决与实现有关的问题,⽬标是产⽣⼀个符合具体实现条件的OOD模型。由于OOD以OOA为基础,且OOA与OOD采⽤⼀致的表⽰法,使得从OOA到OOD不存在转换,只需做必要的修改与调整。OOA与OOD之间不存在传统⽅法中分析与设计之间的鸿沟,⼆者能够紧密衔接。OOA与OOD之间不强调阶段划分,但是OOA与OOD有着不同的侧重点和不同的分⼯,并因此具有不同的开发过程及具体策略。“分析”只针对问题域和系统责任,不考虑实现有关的因素,建⽴⼀个独⽴于实现的OOA模型;”设计“则考虑与实现有关的问题,如选⽤的编程语⾔、数据库系统和图形⽤户界⾯等,建⽴⼀个针对具体实现的OOD模型。

3.3 ⾯向对象设计(OOD)的特点?

以⾯向对象的分析为基础,⼀般不依赖结构化分析

与相应的OOA⽅法共同构成OOA&D⽅法体系,OOA和OOD采⽤⼀致的概念与原则,但属于软件⽣命周期的不同阶段,有不同的⽬标和策略较全⾯地体现了⾯向对象⽅法的概念与原则

⼤多数OOD⽅法独⽴于编程语⾔,但是具体应⽤OOD时,则要考虑特定编程语⾔,因为它通过⾯向对象的设计所得到的系统模型,要由确定的编程语⾔实现

3.4 ⾯向对象设计(OOD)过程以及过程模型?

  在OOA 阶段只考虑问题域和系统责任,在OOD阶段则要考虑与具体实现有关的问题,这样做的⽬的是

使反映问题域本质的总体框架和组织结构长期稳定,⽽细节可变

把稳定部分(问题域部分)与可变部分(与实现有关的部分)分开,使得系统能从容地适应变化有利于同⼀个分析模型⽤于不同的设计和实现⽀持系统族和相似系统的分析与设计

使⼀个成功的系统具有超出其⽣存期的可扩展性  为达到上述⽬的,设计如下的⾯向对象设计模型

  从⼀个侧⾯观察OOD模型,它包括⼀个核⼼部分,即问题域部分;还包括四个外围部分,即⼈机交互部分、控制驱动部分、数据管理部分以及

构件及部署部分。初始的问题域部分即为OOA模型,要按照实现条件对其进⾏补充与调整;⼈机交互部分即⼈机界⾯设计部分;控制驱动部分即⽤来定义和协调并发的各个控制流;数据管理部分⽤来对永久对象的存取建模;构件及部署部分中的构件模型⽤于描述构件以及构件之间的关系,部署模型⽤于描述结点、结点之间的关系以及构件在结点上的分布。

  OOD过程

问题域部分的设计⼈机交互部分的设计

控制驱动部分的设计数据管理部分的设计构件及部署部分的设计

3.4.1 问题域部分的设计

  问题域部分是由与问题有关的对象构成,并且在特定的实现平台上提供⽤户所需功能的组成部分。它是在OOA模型基础上按实现的要求进⾏必

要的修改、调整和细节补充⽽得到的。  问题域部分设计过程是:

输⼊OOA模型,并进⾏必要的修改

逐⼀考察影响问题域部分设计的实现条件,对模型作相应的调整与补充建⽴分析⽂档和设计⽂档之间的映射关系   设计内容及策略

(1)针对编程语⾔⽀持能⼒的调整:包括对继承的调整和对多态性的调整(2)增加⼀般类,提供共同协议

(3)为实现复⽤采取的设计策略:直接复⽤;删除可复⽤类的多余信息;通过继承复⽤;删除多余信息,通过继承⽽复⽤(4)提⾼性能:从数据传输时间、数据存取时间、数据处理时间三个⽅⾯考虑(5)为实现对象永久存储所做的修改

(6)完善对象的细节:弥补OOA模型的不⾜;解决OOA结点推迟考虑的问题;设计对象的操作;设计表⽰关联的属性(⼀对⼀、⼀对多);设计表⽰整体-部分关系的属性(7)定义对象实例

(8)修改或补充辅助模型及模型规约

3.4.2 ⼈机交互部分的设计

  ⼈机交互部分突出⼈如何命令系统以及系统如何向⽤户提交信息。设计⼈机交互就是要设计输⼊与输出,其中所包含的对象(称作界⾯对象)以及其间的关系构成了系统的⼈机交互部分的模型。

  ⼈机界⾯的OO设计:⼀般是以⼀种选定的界⾯⽀持系统为基础,利⽤它所⽀持的界⾯构造成分,设计⼀个可满⾜⼈机交互需求、适合使⽤者特点的⼈机界⾯设计模型。

界⾯⽀持系统:包括窗⼝系统、图形⽤户界⾯、可视化编程环境界⾯元素:窗⼝、菜单、对话盒、滚动条、其他  设计过程和策略:

⾯向对象的⼈机界⾯设计是在⼈机交互需求分析的基础上,以选定的界⾯⽀持系统为背景,选择实现⼈机交互所需的界⾯元素来构造⼈机界⾯,并⽤⾯向对象的概念和表⽰法来表⽰这些界⾯元素以及它们之间的关系,从⽽形成整个系统的OOD模型的⼈机交互部分

选择和掌握界⾯⽀持系统:考虑硬件、操作系统以及编程语⾔;界⾯实现的⽀持级别;界⾯风格与视感;其他(软件价格、熟悉哪种操作系统)

根据⼈机交互需求选择界⾯元素:系统的启动;⾼层命令组织结构的实现;基本命令的执⾏;异常命令的输⼊;详细交互过程的输⼊与输出

⽤OO概念表⽰界⾯元素:对象和类;属性与操作;整体-部分结构;⼀般-特殊结构;关联;消息设计原则:尽量减少⽤户输⼊;有效性检查(如格式检查、内容检查);  ⼈机交互部分设计准则

易学、易⽤、操作⽅便尽量保持⼀致性

及时提供有意义的反馈尽量减少⽤户的记忆减少重复的输⼊和操作提供具有语境敏感的功能防⽌灾难性错误ps:命令

基本命令:使⽤⼀项独⽴的系统功能的命令

命令步:在执⾏⼀条基本命令的交互过程中所包含的具体输⼊步骤⾼层命令:⼀条命令是在另⼀条命令的引导下完成的

3.4.3 控制驱动部分的设计

  控制驱动部分由系统中全部主动类构成,这些主动类描述了系统中所有的主动对象,每个主动对象是系统中⼀个控制流的驱动者。⼀个控制流就

是⼀个进程(既是处理机资源的分配单位⼜是其他资源的分配单位)或者线程(仅仅是处理机资源的分配单位)  设计过程和策略:

选择软件体系结构风格:综合考虑各种因素,做出合理的权衡

确定系统分布⽅案:从数据分布和功能分布考虑,包括对象的分布、类的分布、类图的分布和在类规约中的表⽰

识别控制流:以结点为单位识别控制流;从⽤户需求、⽤例来认识控制流;实现并⾏计算、结点之间通信的控制流;对其他控制流进⾏协调的控制流

⽤主动对象表⽰控制流把控制驱动看成⼀个包

3.4.4 数据管理部分的设计

  数据管理部分负责将应⽤系统中的对象在选定的数据管理系统中进⾏存储,并将存储结果恢复到应⽤系统,将实现数据存储、检索、管理、维护

的系统称为数据管理系统,包括⽂件系统和数据库系统两⼤类。

  由于⽬前⾯向对象数据库还没有⼴泛使⽤,所以我们还是以关系型数据库为主,存储检索数据。  数据库(DB):数据库是长期存储在计算机内、有组织、可共享的数据集合

  数据库管理系统(DBMS):DBMS是⽤于建⽴、使⽤和维护数据库的软件。它对数据库进⾏统⼀的管理和控制,以保证数据库的安全性和完整性  关系数据库与⾯向对象⽅法不匹配,原因在于:关系数据库不是全⾯⽀持⾯向对象中的全部概念,如类间关系(继承、多态)  ⾮关系型数据库:优点是存储任何对象,缺点是对⾮关系型数据库很难进⾏结构化操作

  ⾯向对象数据库:采⽤⾯向对象数据模型的数据库称为⾯向对象数据库,⽀持⾯向对象的基本概念  数据库设计的基本流程:

概念设计阶段:将⽤户下信息要求统⼀到⼀个整体逻辑结构中,此结构能表达⽤户的要求,且独⽴于任何DBMS软件和硬件逻辑设计阶段:将概念设计阶段得到的结果转换为与选⽤的DBMS所⽀持的数据模型向符合的逻辑结构

物理设计阶段:对给定的逻辑数据模型选取⼀个最适合应⽤要求的物理结构。数据库的物理结构包括数据库的存储记录格式、存储记录安排、存取⽅法等,它是完全依赖于给定的硬件环境和数据库产品的

3.4.5 构件及部署部分的设计

  构件图和部署图分别⽤于对系统进⾏构件设计和部署设计。

  构件图设计:利⽤构件对⾯向对象系统物理实现⽅⾯建模,其中⼀个主要建模元素是制品,可以把制品分为⼯作产品制品(开发过程的产物,如源代码及数据⽂件等),可部署的制品(如动态链接库dll或可执⾏程序exe⽂件)。对具体的物理构件进⾏建模,直⾄能对产⽣的构件进⾏部署。  部署图设计:对系统的⽹络结构进⾏拓扑,也可以⽤它展⽰部署在结点上的构件。主要⽤于对嵌⼊式系统和分布式系统进⾏建模  具体可参考构件图和部署图的设计参考书籍

《⾯向对象的系统分析》(第2版) 邵维忠 杨芙清 著《UML⾯向对象技术教程》 王少锋 编著

因篇幅问题不能全部显示,请点此查看更多更全内容