文档章节

【转】OOA方法的评价和一般步骤

abcijkxyz
 abcijkxyz
发布于 2016/07/08 16:29
字数 1059
阅读 3
收藏 0

使人们从面向过程程序设计往面向对象程序设计方法转换的原因,是因为面向对象方法更适应于解决当今的庞大、复杂和易变的系统模型。自80年代后期以来,相继出现了许多OOA和OOD方法,例如:Booch方法(OOD)、Cood-Yourdon方法(OOAD)、Jacobson方法(OOSE)、Rumbaugh方法(OMT)、Wassman-Pircher(OOSD)等。

  OOA的各种方法尽管在概念和模型上不尽相同,但都是为建立系统的面向对象模型目标而进行的探索。评价分析方法主要是看它是否具有OOA的如下优点:

OOA步骤

  面向对象分析的关键是对问题域中事物的识别和它们之间相互关系的判定。根据设计进程和分析问题的繁简程度,把系统或问题分解成为一些对象,并以消息的形式在各对象间建立联系。

  基于面向对象的方法学原则进行系统分析时,我们一般要进行下列活动,或者说是如下的步骤:

  1. 分析确定并标识构成系统的各个组成部分(即对象),并进行抽象分类;划分主题及类,是从大的单元来理解系统的方法,主题是一组类与对象。主题的大小应合适地选择。
  2. 分析确定每一组成部分(即对象)的结构。具体的分析原则:第一是按照一般-特殊结构,确定标识类间的继承关系;第二是按照整体-部分结构,确定一个对象怎样由其它对象组成,或者是如何将一些对象组合成大对象。
  3. 认识并建立每一对象及其相互之间关系;以应用为基础标识对象,定义对象的内部特征(属性、方法),建立消息连接,实例连接。
  4. 分析对象的动态行为,规划并建立各组成部分(即对象)间的通信关系和接口协议形式;
  5. 进一步协调和优化各个组成部分的性能及相互关系,精炼候选的类/对象,使系统成为由不同部分(即对象)组成的最小集合。
  6. 分析、设计每个组成部分(即对象)的功能实现细节,检查分析模型的一致性和完整性。

  在OOA中,同样要强调软件工程的事务分离原则(Principle of Separation of Concerns),即将基本需求与实现区别开来,建立分析模型时主要精力应集中于捕捉那些本质的或逻辑的系统需求,确定系统的基本行为。

  1. 是在人类思维组织的基本方法框架下定义并表达需求,直观性好。因为在分析工作中,人与人之间的交流除了“非技术因素”外,还需要一套有共同的思维方法和便于交流的共同语言,而OOA则比较好地改进了分析人员之间的交流。
  2. 集中精力于问题空间的理解和分析,有利于超越系统的复杂性困难。所建立的系统模型清晰,问题模型与程序中的类相对应,系统扩充和改造较为方便。
  3. 把属性和有关服务方法作为对象整体来看待,比较自然。特别重要的是,对象在问题论域中比较稳定,当需求变化时,可能需要增加新的对象,但原有的基本对象还可保留使用。
  4. 使用对象间的最小相关性来分析和说明。这有利于实行封装性原则,并使OOA适应开发需求的变化,也有利于制作和提取可复用的部件。
  5. 通过对共性的显式表示而提高表达能力。抽象层次与后续OOP结合,编程思路清晰,特别是有利于提高程序效率。
  6. 分析法与设计法的一致性,密切配合建造一个问题域模型。
  7. 对系统族的适用性和可扩展性强。

本文转载自:http://blog.csdn.net/yuwenruli/article/details/7063042

共有 人打赏支持
abcijkxyz
粉丝 60
博文 6196
码字总数 1876
作品 0
深圳
项目经理
分析模型和设计模型

面向对象分析产生三种分析模型 功能模型(即用例模型à作为输入) 对象模型:对用例模型进行分析,把系统分解成互相协作的分析类,通过类图/对象图描述对象/对象的属性/对象间的关系,是系统的...

青夜之衫
2017/12/06
0
0
2、面向对象的分析与设计方法

面向对象的方法是当前应用最广的程序设计方法 在软件的模块化、可重用性、可扩展性等方面体现出强大的优势。 面向对象的要素: 对象:客观世界里的任何实体都可以称之为对象; 封装: 把对象...

把南墙撞开
2016/04/13
70
0
SQLite设计问题

本人开发一个基于Android 4.2.2 的 Ticcit-system(demo) 用于学校学生自学计算机技术 数据库:SQLite3 平台:ADT 物理机:win7 (run ADT) ip:A 虚拟机 :ubuntu (run NFS sever) IP B OOA...

JoneWisso
2014/02/27
265
0
软考之UML图深入学习(1)

前言 软考的准备已经过去了2个月零8天,倒计时8天(11月11日)。通过近年试题的分析,面向对象技术试题在150分中占据了大约1/3的比重,足见其重要性和基础性。下午试题中的UML图面向对象设计...

m18633778874
2017/11/03
0
0
面向对象的OOA、OOD、OOP

OOA   Object-Oriented Analysis:面向对象分析方法   是在一个系统的开发过程中进行了系统业务调查以后,按照面向对象的思想来分析问题。OOA与结构化分析有较大的区别。OOA所强调的是在...

ke_ry
2017/01/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

c语言之内存分配笔记

先看一个数组: short array[5] = {1,2} // 这儿定义的一个int类型的数组,数组第1和第2个元素值是1和2.其余后面默认会给值为0; 或者 short array[] = {1,2};//这儿数组第1和第2个元素,数组...

DannyCoder
43分钟前
0
0
Shell | linux安装包不用选择Y/N的方法

apt-get install -y packageOR echo "y" | sudo apt-get install package

云迹
今天
1
0
Hadoop的大数据生态圈

基于Hadoop的大数据的产品圈 大数据产品的一句话概括 Apache Hadoop: 是Apache开源组织的一个分布式计算开源框架,提供了一个分布式文件系统子项目(HDFS)和支持MapReduce分布式计算的软件架...

zimingforever
今天
4
0
八大包装类型的equals方法

先看其中一个源码 结论:八大包装类型的equals方法都是先判断类型是否相同,不相同则是false,相同则判断值是否相等 注意:包装类型不能直接用==来等值比较,否则编译报错,但是数值的基本类型...

xuklc
今天
2
0
NoSQL , Memcached介绍

什么是NoSQL 非关系型数据库就是NoSQL,关系型数据库代表MySQL 对于关系型数据库来说,是需要把数据存储到库、表、行、字段里,查询的时候根据条件一行一行地去匹配,当量非常大的时候就很耗...

TaoXu
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部