【转】OOA方法的评价和一般步骤
2016-07-08 00:00
459 查看
促使人们从面向过程程序设计往面向对象程序设计方法转换的原因,是因为面向对象方法更适应于解决当今的庞大、复杂和易变的系统模型。自80年代后期以来,相继出现了许多OOA和OOD方法,例如:Booch方法(OOD)、Cood-Yourdon方法(OOAD)、Jacobson方法(OOSE)、Rumbaugh方法(OMT)、Wassman-Pircher(OOSD)等。
OOA的各种方法尽管在概念和模型上不尽相同,但都是为建立系统的面向对象模型目标而进行的探索。评价分析方法主要是看它是否具有OOA的如下优点:
OOA步骤
面向对象分析的关键是对问题域中事物的识别和它们之间相互关系的判定。根据设计进程和分析问题的繁简程度,把系统或问题分解成为一些对象,并以消息的形式在各对象间建立联系。
基于面向对象的方法学原则进行系统分析时,我们一般要进行下列活动,或者说是如下的步骤:
分析确定并标识构成系统的各个组成部分(即对象),并进行抽象分类;划分主题及类,是从大的单元来理解系统的方法,主题是一组类与对象。主题的大小应合适地选择。
分析确定每一组成部分(即对象)的结构。具体的分析原则:第一是按照一般-特殊结构,确定标识类间的继承关系;第二是按照整体-部分结构,确定一个对象怎样由其它对象组成,或者是如何将一些对象组合成大对象。
认识并建立每一对象及其相互之间关系;以应用为基础标识对象,定义对象的内部特征(属性、方法),建立消息连接,实例连接。
分析对象的动态行为,规划并建立各组成部分(即对象)间的通信关系和接口协议形式;
进一步协调和优化各个组成部分的性能及相互关系,精炼候选的类/对象,使系统成为由不同部分(即对象)组成的最小集合。
分析、设计每个组成部分(即对象)的功能实现细节,检查分析模型的一致性和完整性。
在OOA中,同样要强调软件工程的事务分离原则(Principle of Separation of Concerns),即将基本需求与实现区别开来,建立分析模型时主要精力应集中于捕捉那些本质的或逻辑的系统需求,确定系统的基本行为。
是在人类思维组织的基本方法框架下定义并表达需求,直观性好。因为在分析工作中,人与人之间的交流除了“非技术因素”外,还需要一套有共同的思维方法和便于交流的共同语言,而OOA则比较好地改进了分析人员之间的交流。
集中精力于问题空间的理解和分析,有利于超越系统的复杂性困难。所建立的系统模型清晰,问题模型与程序中的类相对应,系统扩充和改造较为方便。
把属性和有关服务方法作为对象整体来看待,比较自然。特别重要的是,对象在问题论域中比较稳定,当需求变化时,可能需要增加新的对象,但原有的基本对象还可保留使用。
使用对象间的最小相关性来分析和说明。这有利于实行封装性原则,并使OOA适应开发需求的变化,也有利于制作和提取可复用的部件。
通过对共性的显式表示而提高表达能力。抽象层次与后续OOP结合,编程思路清晰,特别是有利于提高程序效率。
分析法与设计法的一致性,密切配合建造一个问题域模型。
对系统族的适用性和可扩展性强。
OOA的各种方法尽管在概念和模型上不尽相同,但都是为建立系统的面向对象模型目标而进行的探索。评价分析方法主要是看它是否具有OOA的如下优点:
OOA步骤
面向对象分析的关键是对问题域中事物的识别和它们之间相互关系的判定。根据设计进程和分析问题的繁简程度,把系统或问题分解成为一些对象,并以消息的形式在各对象间建立联系。
基于面向对象的方法学原则进行系统分析时,我们一般要进行下列活动,或者说是如下的步骤:
分析确定并标识构成系统的各个组成部分(即对象),并进行抽象分类;划分主题及类,是从大的单元来理解系统的方法,主题是一组类与对象。主题的大小应合适地选择。
分析确定每一组成部分(即对象)的结构。具体的分析原则:第一是按照一般-特殊结构,确定标识类间的继承关系;第二是按照整体-部分结构,确定一个对象怎样由其它对象组成,或者是如何将一些对象组合成大对象。
认识并建立每一对象及其相互之间关系;以应用为基础标识对象,定义对象的内部特征(属性、方法),建立消息连接,实例连接。
分析对象的动态行为,规划并建立各组成部分(即对象)间的通信关系和接口协议形式;
进一步协调和优化各个组成部分的性能及相互关系,精炼候选的类/对象,使系统成为由不同部分(即对象)组成的最小集合。
分析、设计每个组成部分(即对象)的功能实现细节,检查分析模型的一致性和完整性。
在OOA中,同样要强调软件工程的事务分离原则(Principle of Separation of Concerns),即将基本需求与实现区别开来,建立分析模型时主要精力应集中于捕捉那些本质的或逻辑的系统需求,确定系统的基本行为。
是在人类思维组织的基本方法框架下定义并表达需求,直观性好。因为在分析工作中,人与人之间的交流除了“非技术因素”外,还需要一套有共同的思维方法和便于交流的共同语言,而OOA则比较好地改进了分析人员之间的交流。
集中精力于问题空间的理解和分析,有利于超越系统的复杂性困难。所建立的系统模型清晰,问题模型与程序中的类相对应,系统扩充和改造较为方便。
把属性和有关服务方法作为对象整体来看待,比较自然。特别重要的是,对象在问题论域中比较稳定,当需求变化时,可能需要增加新的对象,但原有的基本对象还可保留使用。
使用对象间的最小相关性来分析和说明。这有利于实行封装性原则,并使OOA适应开发需求的变化,也有利于制作和提取可复用的部件。
通过对共性的显式表示而提高表达能力。抽象层次与后续OOP结合,编程思路清晰,特别是有利于提高程序效率。
分析法与设计法的一致性,密切配合建造一个问题域模型。
对系统族的适用性和可扩展性强。
相关文章推荐
- Websphere 6.1 集群环境搭建问题集
- Mongodb开启与关闭
- FastDFS的配置、部署与API使用解读(5)FastDFS配置详解之Tracker配置
- JVM调优总结(一)-- 一些概念
- CAS向客户端传递参数乱码问题
- win7下安装非关系型数据库MongoDB
- Java生成缩略图之Thumbnailator
- 使用java读取大文本文件(2G)
- WebSphere Application Server 概要(Profile)理解入门,第 1 部
- 电话号码正则表达式(支持手机号码,3-4位区号,7-8位直播号码,1-4位分机号)
- 说说IO(五)- 逻辑卷管理
- 如何查看linux发行版版本信息
- 使用 Apache Solr 实现更加灵巧的搜索,第 2 部分: 用于企业的 Solr
- mongodb like查询
- WS-Trust1.4-第三章
- CAS 服务器在WAS V7中集群将票据保存到数据库
- 不可不学的摄影技巧.1—构图
- Eclipse控制台乱码
- 了解 Web 服务规范: 第 1 部分:SOAP
- Java深度历险(六)——Java注解