采用面向对象思想的需求分析技术概论
采用面向对象思想的需求分析技术概论
随着软件工程方法论与工程技术的发展,需求工程的概念应运而生,这不仅体现出需求的重要性,而且其规范性得到长足发展。
需求工程:旨在了解软件系统设计的真实意图,具体功用及限制条件,并精确定义上述因素与系统行为的关系及系统随时间和产品线变化而发生的各种演变。
需求工程的内容:
主要目标最终建立一个分析模型——基于场景,基于类、行为和面向数据流的模型元素集合。主要的活动可分为两方面:
1,需求开发:问题获取,分析,编写规格说明书,验证(评审)
2,需求管理:定义基线,变更控制,需求跟踪,版本控制
需要建立的模型:
1,基于场景建模:表述系统的主要功能,用户(包括外部系统)如何与系统交互,和并进一步描述交互过程。
使用技术:用例图,活动图,泳道图
解释:活动图与泳道图是用例图的补充,当用例叙述或者用例场景使用文字描述困难的时候可以使用两者,泳道图主要用来描述重要的
业务流程,更具体的情况下,就可以使用时序图与系统的用户(包括一些外部交互系统)描述之间的交互过程。
2,基于类的建模:表示了系统操作的对象、应用于对象间能有效控制的操作(方法或服务)、这些对象间(某种层次)的关系以及已定义类
之间的协作
使用技术:类图,类的职责协作者(CRC)模型、协作图和包图
解释:CRC正如其名包括关于类的简要说明,类的职责,及部分协作者
3,基于流程的建模:尽管数据流图及相关的图和信息不是UML的正式组成部分,但是我们可以补充UML图并提供对系统需求和流程的补充认识。
使用技术:数据流图,状态图(补充)
解释:状态图用来处理事件驱动的问题,这类问题会产生控制信息,并且非常关注时间和性能,即需要状态图表现其中的控制流流向。
文档的格式:
1,用例描述文档
用例标识:UC_XXX |
简要说明:描述用例实现的功能 |
执行者:说明主要执行者和辅助执行者 |
前置条件:执行用例之前系统必须所处的状态 |
后置条件:用例执行完毕后系统可能出于的一组状态 |
事件流: 基本流程:
扩展流程: |
特殊需求:描述与该用例相关的非功能性需求(包括性能、可靠性、可用性和可扩展性等)和设计约束(指出所使用的操作系统、开发工具等) |
2,CRC(Class-Responsibility-Collaborator)格式
类名: |
|
说明:概述类的功能 |
|
职责: |
协作者:指协作的类 |
职责A |
协作职责A的类B |
|
|
|
|
3,需求规格说明书:
见文件SRS
4,需求跟踪能力矩阵:
用例标识 |
功能需求项 |
设计项 |
代码部分 |
测试用例 |
|
|
|
|
|
|
|
|
|
|
5,用户表:
用户类型 |
用户对应角色 |
用户特点 |
|
|
|
|
|
|
|
|
|
|
|
|
参考资料:
软件工程——实践者的研究方法
UML和模式应用
UML基础和应用