面向对象分析与设计分析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
概念模型的意义
面向对象的视角
使用OO的思想所建立 的系统模型就是对问 题域的完整、直接的 映射,体现了OO 思想 的关键活动
开发团对的需要
概念模型的建立,其 主要的作用是帮助开 发团队能够对问题域 有一个全貌式的了解
概念模型的详细程度
模型不是我们要生产的目标产物,而 且过程中的一个辅助工作,只要能够 利用其帮助团队更好的开发,详细也 罢、简约也罢,都是好模型
设计良好的继承层次的本质是继承层次中每个抽象层 次应该具有良好定义的目的
OO分析建模核心问题
寻找分析类
使用名词/动词分析寻找类 使用CRC分析寻找类 寻找其他类来源
使用名词/动词分析寻找类
名词/动词分析是分析文本尝试找出类、属 性和职责的方法。
从名词与名词短语中提取对象与属性 从动词与动词短语中提取操作与关联 所有格短语通常表明名词应该是属性而不是对
wk.baidu.com 目的
通过采取确定系统必须处理的核心抽象概念(即在业务建模和需 求活动中确定的概念)的措施来进行分析
必要性
需求和业务建模活动通常会揭示系统必须能够处理的核心概念, 与此同时,这些概念也证实了其自身是核心的设计抽象概念。因
为已经确认,所以没有必要在用例分析活动中重复确认工作。为
了利用现有知识,我们初步确定使用实体分析类,来代表这些以 系统常识(诸如需求、词汇表、特别是领域模型或业务对象模型) 为基础的核心抽象概念
原型开发
结合其他活动反复进行
什么是问题域?
“问题域”是指一个包含现实世界事物与 概念的领域,这些事物和概念与所设计的 系统要解决的问题有关。
建立概念模型,又称为问题域建模、域建 模,也就是找到代表那些事物与概念的 “对象”。
建模OO软件的第一步是澄清问题域。
确定核心的抽象概念
职责是类与其客户的契约或对于客户的义务 职责在语义上是内聚的操作集合 每个类大约有3~5个职责
高内聚。
类的所有特征应该有助于实现其目的
低耦合。
类应该仅同一小部分其他类协作实现其目的
分析类经验法则
每个类大约3~5个职责。 不存在独立的类。 当心很多非常小的类 当心少数几个非常庞大的类 当心“伪类” 当心万能类 避免深度继承树
象
名词/动词分析过程
第一步:尽可能多地收集相关信息
补充需求规格说明 用例 项目词汇表 任何其他信息源(构架、远景文档)
名词/动词分析过程(续)
第二步:使用非常简单方法分析如下内容:
名词 名词短语 动词 动词短语
概念模型建模步骤
1. 找到备选类 2. 决定候选类
使用名词/动词法注意
在使用“名词动词法”寻找类的时候,很 多团队会在此耗费大量的时间,这样很容 易迷失方向。其实我们的主要目的是对问 题域建立概要的了解,无需太过咬文嚼字。
其它方法-CRC分析
脑力风暴技术 过程
要求团队成员命名运转在业务领域的事物 要求团队陈述该事物的职责 要求团队识别可能一起工作的类
并不是每一个备选类都是合适的候选类,有些名词对于要开发 的系统来说并无关紧要,甚至是系统之外的;而有些名词表述 的概念则相对较小,适合于某个候选类的属性
3. 确定类之间的关联 4. 为类添加职责
什么是类的职责呢?它包括以下两个主要内容:
类所维护的知识;(成员变量) 类能够执行的行为。(成员方法)
面向对象分析的主要工作
用例模型
帮助开发团队理解客户对系统的各种功能需求
概念模型(静态模型)
帮助开发团队理解问题领域的各种概念、各种名词、 以及它们之间的各种关系。描述系统的结构特征
动态模型
描述系统的动态行为特征。
这两方面的工作,将帮助开发团队定义问题,也 是分析工作的主要内容
分析与设计过程全景
UML在建模中的使用
面向对象分析过程
定义用例(辅助模型,可选)
用用例对用户需求进行规范化描述
建立类图(基本模型)
发现对象、定义对象类 识别对象的内部特征 识别对象的外部关系
建立交互图、状态图和活动图(辅助模型,可选) 建立详细说明
对模型中的成分进行规范的定义和文字说明 可以集中进行,也可分散在各个活动中
关键抽象的来源
需求 词汇表 领域模型 业务对象模型
什么是分析类?
它代表问题域中的简洁抽象 应该映射到真实世界业务概念 分析类的最重要方面是应该使用清晰的和
无歧义的方法映射到真实世界业务概念
OO分析师的工作
力求把混淆或不恰当的业务概念澄清为能 够形成分析类基础的事物,是OO分析工作 困难的原因。
OO分析的真正目的是找出现实对象的类
分析类的思想
尽力捕获抽象的本质,忽略实现 细节
不是从设计角度考虑而产生的类, 在具体设计时可能一个分析类被精 华为一个或多个设计类
在分析中,在创建概念模型时, 捕获大场景。
分析类的形式
名称 属性 操作
如何产生良好的分析类
名称反映目的。 建模问题域的一个特定元素是简洁的抽象。 清晰地映射到问题域中的可识别的特征。 具有小的、良好定义的职责集合。
OO分析总结
用例模型帮助开发团队明白客户想解决什 么问题
将需求整理归纳成为指导全开发过程的“软件 需求规格说明书
概念模型帮助开发团队了解客户所处的世 界
分析用例(行为分析)
用例模型 补充需求
用例工程师
分析类
业务模型 构架描述
分析用例
用例
用例分析
目的
确定执行用例事件流的类 使用用例实现,将用例行为分配给那些类 确定类的职责、属性和关联关系 记录构架机制的使用情况
举例-创建概念模型
一个爱书之人,家里各类书籍已过千册,而平时 又时常有朋友外借,因此需要一个个人图书管理 系统。该系统应该能够将书籍的基本信息按计算 机类、非计算机类分别建档,实现按书名、作者、 类别、出版社等关键字的组合查询功能。在使用 该系统录入新书籍时系统会自动按规则生成书号, 可以修改信息,但不能够删除记录。该系统还应 该能够对书籍的外借情况进行记录,可对外借情 况列表打印。另外,还希望能够对书籍的购买金 额、册数按特定时限进行统计。