面向对象分析与设计概述

面向对象分析与设计概述

一、概述

面向对象分析与设计(Object Orient Analysis & Design,简称OOAD)是现代软件企业广泛采用的一项有效技术。OOAD方法要求在设计中要映射现实世界中指定问题域中的对象和实体,例如:顾客、汽车和销售人员等。这就需要设计要尽可能地接近现实世界,即以最自然的方式表述实体。所以面向对象技术的优点即为能够构建与现实世界相对应的问题模型,并保持他们的结构、关系和行为模式。

曾经有大师说过:”没有不变的需求,世上的软件都改动过3次以上,唯一一个只改动过两次的软件的拥有者已经死了,死在去修改需求的路上。”

目前众多的软件项目有什么样的问题呢?早些时候上ERP的企业在企业发展的时候发现原有的ERP系统需要改进,可是要改进或者是更改现有的ERP系统,唯一的方法就是重新开发一个ERP系统。这对于企业来说是笔不小的支出。此时,落后的信息系统就成为制约企业发展的重要因素。

是什么原因造成了这种情况呢?主要的因素是传统的系统分析是在假定需求不变的情况下进行的,这样可以把企业的资源配置到最优的程度。可是在现代瞬息万变的社会,一个企业固守旧有模式,势必会在竞争中处于劣势。既然企业的需求是变化的、不稳定的,那么以变化的需求为基础建立起来的企业信息系统当然也就不稳定了。这时候,有个问题就产生了,前面我们已经说过,需求是项目的根本,既然需求都是不稳定的,那么何以建立起稳定的企业信息系统呢?

要回答这个问题,首先要比较面向过程和面向对象的开发方法的差别,传统的面向过程的开发方法为中国企业的信息化建设立下了汗马功劳。之所以称为面向过程,是因为开发的焦点集中于过程,开发者集中于以函数为核心的过程。面向过程的开发语言包括:Cobol、Pascal、C及C的变形语言。

面向对象(Object Oriented,简称OO)是基于一种哲学思想,它认为客观实体和实体之间的联系构成了现实世界的所有问题,而每一个实体都可以抽象为对象。这种思想尽可能地按照人类认识世界的方法和思维方式来分析和解决问题,使人们分析、设计一个系统的方法尽可能接近认识一个系统的方法。因此面向对象是很自然的思想,是符合我们的思维习惯的。面向对象的语言包括了Smalltalk、C++、Java,还有Object Pascal,以及C#等。

需求本身是不稳定的,那么需求之中有没有稳定的东西呢?有,这就是对象。在面向对象的思想中,世界都是由对象组成的,而对象都是持久的,例如动物、植物已经有相当长的时间。

虽然对象也在变化,动物,植物也在不断的进化,但对象在一个相当长的时期内都存在,动植物的存在时间肯定比任何一家企业长久。面向对象的开发方法的精髓就是从企业的不稳定需求中分析出企业的稳定对象,以企业对象为基础来组织需求、构架系统。这样得出的系统就会比传统的系统要稳定得多,因为企业的模式一旦变化,只需要将稳定的企业对象重新组织就行了。这种开发的方法就被称为OOAD。

OOAD是由OOA(Object Oriented Analysis,面向对象分析)与OOD(Object Oriented Design,面向对象设计)组成,OOA和OOD是面向对象软件开发生命周期中两个重要的阶段。

二、OOA-面向对象分析

面向对象分析(OOA)是指利用面向对象的概念和方法为软件需求建造模型,以使用户需求逐步精确化、一致化、完全化的分析过程。

分析的过程也是提取需求的过程,主要包括理解、表达和验证。由于现实世界中的问题通常较为复杂,分析过程中的交流又具有随意性和非形式化等特点,软件需求规格说明的正确性、完整性和有效性就需要进一步验证,以便及时加以修正。

面向对象分析中建造的模型主要有用例模型、类-对象模型、对象-关系模型和对象-行为模型。其关键是识别出问题域中的对象,在分析它们之间相互关系之后建立起问题域的简洁、精确和可理解的模型。

1.用例模型

一个用例模型可由若干幅用例图组成。用例描述了用户和系统之间的交互,其重点是系统为用户做什么。用例模型描述全部的系统功能行为。

2.类-对象模型

描述系统所涉及的全部类以及对象。每个类和对象都通过属性、操作和调研者来进行进一步描述。

3.对象-关系模型

描述对象之间的静态关系,同时定义了系统中所有重要的消息路径,它也可以具体化到对象的属性、操作和协作者。对象-关系模型包括类图和对象图。

4.对象-行为模型

描述了系统的动态行为。对象-行为模型包括状态图、顺序图、协作图和活动图等。

对象模型通常由五个层次组成:类与对象层、属性层、服务层、结构层和主题层,此五个层次对应着在面向对象分析过程中建立对象模型的五项主要活动:发现对象、定义类、定义属性、定义服务、设置结构。

面向对象分析是提取和整理用户需求,并建立问题域精确模型的过程,并不涉及编程概念。OOA主要完成系统分析。

三、OOD-面向对象设计

面向对象设计(OOD)是把分析阶段得到的需求转变成符合成本和质量要求的、抽象的系统实现方案的过程。

从面向对象分析(OOA)到面向对象设计(OOD)是一个逐渐扩充模型的过程,从OOA到OOD不是转换,而是调整和扩充,也可以说面向对象设计是用面向对象观点建立求解域模型的过程。

面向对象分析主要是模拟问题域和系统任务,而面向对象设计是面向对象分析的扩充,主要增加各种组成部分。面向对象设计的模型又由五层组成,在设计期间主要扩充四个组成部分:人机交互部分、问题域、任务管理和数据管理。

  • 人机交互:包括有效的人机交互所必须的实际显示和输入,如界面风格、命令结构层次关系等内容的设计。
  • 问题域:对分析的问题域模型进行需求调整、类的重用、增加一般化类建立协议等,放置面向对象分析结果并管理面向对象分析的某些类和对象、结构、属性和方法。
  • 任务管理:主要是对系统各任务进行选择和调整的过程,包括任务定义、通信和协调、硬件分配及外部系统。
  • 数据管理:设计数据管理子系统,核心是数据存储,包括对永久性数据的访问和管理。

OOD主要负责系统设计。

四、运用UML进行面向对象分析与设计

UML(Unified Modeling Language,统一建模语言)是一种功能强大的、面向对象分析的可视化系统分析的建模语言,它采用一整套成熟的建模技术,广泛地适用于各个应用领域。

运用UML进行面向对象分析与设计,其过程通常由以下3个部分组成:

1.识别系统的用例与角色

首先要对项目进行需求调研,分析项目的业务流程图和数据流程图,以及项目中涉及的各级操作人员,识别出系统中的所有用例和角色;接着分析系统中各角色和用例间的联系,使用UML建模工具画出系统的用例图;最后,勾画系统的概念层次模型,借助UML建模工具描述概念层的类和活动图。

2.进行系统分析、抽象类

系统分析的任务是找出系统的所有需求并加以描述,同时建立特定领域模型。建立域模型有助于开发人员考察用例,从中抽象出类,并描述各个类之间的关系。

3.设计系统、类及其行为

设计阶段由结构设计和详细设计组成。其中结构设计是高层设计,其任务是定义包(子系统)、包括包间的依赖关系和主要的通信机制。包有利于描述系统的逻辑组成以及各部分之间的依赖关系。详细设计主要用来细化包的内容,清晰描述所有的类,同时使用UML的动态模型描述在特定环境下这些类的实例的行为。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值