文章目录
- 软件工程
-
- 第6章 面向对象分析
-
- 6.1 面向对象分析过程
-
- 获取需求
- 整理需求
- 建立模型
- 6.2 建立功能模型
- 6.3 建立对象模型
-
- 1.确定分析类
- 2.确定类的关联
- 3.划分主题
- 4.确定属性
- 5.识别继承
- 6.反复修改
- 6.4 建立动态模型
-
- 1.编写典型交互行为脚本
- 2.从脚本中提取事件及相关对象,用顺序图表达
- 3.确定对象状态及状态间转换关系,用状态图描绘
软件工程
第6章 面向对象分析
6.1 面向对象分析过程
- 获取需求
- 整理需求
- 建立模型
- 书写需求规格说明书
- 复审
获取需求
- 与用户交谈,向用户提问题;
- 参观用户的工作流程,观察用户的操作;
- 向用户群体发调查问卷;
- 与同行、专家交谈,听取他们的意见;
- 分析已经存在的同类软件产品,提取需求;
- 从行业标准、规则中提取需求;
- 从Internet上搜查相关资料等。
整理需求
书写需求陈述。
需求陈述内容包括:问题范围,功能需求,性能需求,应用环境及假设条件。
建立模型
抽取整理用户需求建立问题域精确模型。
面向对象分析模型由三个独立模型组成:
- 功能模型:指明系统应“做什么”,由用例图表示。
- 对象模型:描述静态结构, 定义做事情实体,类图和对象图表示。
- 动态模型:描述交互过程, 由状态图和顺序图表示。
6.2 建立功能模型
功能模型用用例图表达,研究需求陈述建立用例图。其步骤如下:
- 识别外部执行者;
- 识别用例;
- 建立用例图;
- 补充用例描述:为建立对象模型和动态模型打基础。
6.3 建立对象模型
对象模型描述类及相互关系,表达目标系统静态结构。建立对象模型步骤:
1.确定分析类
分析模型中,分析类是概念层次上内容,类直接与应用逻辑相关,不关注技术实现。
- 找出候选分析类
- 确定边界类:通常,一参与者与一用例间交互或通信关联对应一边界类。
- 识别控制类:控制类负责协调边界类和实体类,通常在现实世界没有对应的事物。 一般来说,一个用例对应一个控制类。
- 识别实体类:实体类通常是用例中的参与对象,对应着现实世界中“事物”。
- 筛选出正确的类
- 冗余
- 无关
- 笼统
- 属性
- 操作:需求陈述中既作名词又作动词的词,慎重考虑是作类合适,还是作类中操作合适。
- 实现:事务日志、通信链路。
2.确定类的关联
- 初步确定关联
- 动词或动词词组:直接提取动词短语。
- 需求陈述中隐含的关联;
- 与用户及领域专家讨论补充。
- 筛选
- 已删去类之间关联:删掉某候选类,与这个类有关的关联也删去,或重新表达。
- 与问题无关或与实现密切相关的关联删去。
- 瞬时事件
- 三元关联:三个或三个以上对象关联,可分解为二元关联或限定关联。
- 进一步完善
- 正名
- 分解
- 补充
3.划分主题
4.确定属性
需求陈述中的名词
- 误把类当属性
独立存在更重要,则应为类。 - 误把链属性作为属性
属性要依赖某关联链存在,则为关联类的属性。 - 误把限定当属性
属性值固定下来可减少重数,则应为限定。 - 误把内部状态当属性
对象的非公开内部状态不作属性。 - 过于细化
忽略对大多数操作都没有影响的属性。 - 存在不一致属性
分解两个类。
5.识别继承
6.反复修改
6.4 建立动态模型
开发交互式系统,动态模型非常重要。其步骤如下:
1.编写典型交互行为脚本
脚本描述用户与目标系统间的一个或多个典型交互过程。
- 正常情况脚本
- 异常情况脚本
- 错误情况脚本
2.从脚本中提取事件及相关对象,用顺序图表达
从脚本提取所有外部事件,确定每类事件发送和接收对象。针对系统中的典型功能,画出顺序图。
3.确定对象状态及状态间转换关系,用状态图描绘
用一张状态图描绘类的行为,集中考虑具有交互行为类。画出系统中重点类的状态图。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!