您的位置:首页 > 其它

面向对象的分析--最简单的知识点总结,给像我一样初学面向对象分析的极客

2010-05-29 22:02 501 查看

面向对象分析

1概述

1.1传统的结构化设计:

自上而下基于结构分解

1.2面向对象设计:

考虑完成服务通常会涉及到那些人或事(对象),每个对象有那些指责

1.3面向对象方法的发展:

面向对象编程(OOP)

面向对象设计(OOD)

面向对象分析(OOA)

1.4主要概念:

对象



封装

!消息:在面向对象设计和实现中,消息的一般形式就是函数调用,采用消息而不是函数调用这个术语的好处在于它更接近于日常术语,它更具有一般性。

继承和多态性

关于

2.迭代开发过程

2.1定义:

根据系统功能子集而不是软件开发活动将项目分解为多个迭代周期,每个迭代周期内又完成需求定义,分析,设计,实现等活动,能够生产经过测试和集成的,可执行的系统子集。

2.2Rational统一过程:

用例驱动:即需求驱动之后的全部软件开发过程

以结构为中心:设计架构必须从全面了解系统的主要用例入手,这些用例构成了系统核心功能,数量可能只占全部用例的10%~20%,然后随着用例的逐步完善,架构将会并行地进行。

2.3敏捷开发过程:《敏捷软件开发宣言》

3..用例模型

3.1系统需求

功能性需求

非功能性需求:系统性能和系统特性

3.2用例

确定谁是参与者

主要参与者和次要参与者

参与者的泛化

确定用例

3.3用例的描述

前置条件和后置条件

主事件流

备选事件流

事件流的书写标准

非功能性需求

3.4建立用例的关系

包含:经过封装后可以在各种不同的基本用例中复用的行为(必不可少)

扩展:扩展用例的缺失不能影响基本用例的完整性

泛化:用一个新的,通常也是抽象的父用例来描述这些共有部分,该用例随后被子用例特殊化。

4.分析模型

4.1从需求到用例

建立分析模型的过程:

(1) 发现领域对象,定义概念类

(2) 识别对象的属性

(3) 识别对象的关系,包括建立类的泛化关系

(4) 建立交互图

4.2定义概念类

4.2.1名词短语策略:先识别有关问题域文本描述中的名词或者名词短语,然后将他们作为候选的概念或者属性。

步骤:

(1) 理解需求文档

(2) 筛选出名词或者短语作为候选对象

(3) 将候选对象分为三类:显而易见的对象,明显毫无意义的对象

(图书状态表示某本书是否在馆内,它总是和具体的图书联系在一起,不是一个独立的对象,而是图书对象的一个属性,因此舍弃);

4.2.2使用概念类别列表

人员;组织;物品;设备;事件;规格说明;业务规则或政策

4.3添加属性

4.3.1发现策略

(1)对象的一般性描述

(2)特定描述性

(3)对象在系统中的责任

(4)对象需要长期保存那些信息

(5)对象处于什么状态

4.3.2保持属性的简单性

(1)仅定义与系统责任和系统目标有关的属性

(2)使用简单数据类型来定义属性

(3)不用可导出熟悉

(4)不为对象关联定义属性:仿照关于数据中的外键模式设计,这样做违反了面向对象的原则。

4.4识别对象的关联

4.4.1定义:关联体现的是对象实例之间的关系,而不表示两个分类之间的关系。

4.4.2特性:关联名称;角色;多重性;导向性;

4.4.3整体-部分关联

4.4.4识别关联

4.5泛化

4.6分析模型

顺序图:画顺序图的关键是要理清对象间的交互,也就是决定消息该发给哪个对象,换句话说要决定某项服务应该由哪个对象来完成。

消息是顺序图的灵魂。

由一个担任总控角色的对象负责将所有消息分发给不同对象,同时该对象也负责处理消息回送的数据。

关联双方占据控制地位的对象分发消息给受控的一方。(此者更符合对象思维,设计出来的系统耦合度相对较低)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: