文档介绍:第3章软件需求分析
软件需求
需求分析过程
传统方法的分析建模
举例
1
西安交通大学刘海岩
软件需求
1、需求的概念
需求(requirements): Jones 定义为用户所需要的软件必须达到的目标和能力。Lethbridge定义为需求是关于系统将要完成什么工作的一段描述,他们必须经过所有相关人员的认可,其目的是彻底的解决用户的问题。
•需求是一段描述…:意思是每个需求是相对短小简明的一段信息,表现为一个事实。它可以是一段话或用各种图表示。一组需求的集合成为需求文档。
•…关于系统将要完成什么工作…:需求描述了系统应当完成的任务,不描述系统将如何实现。
•…必须经过所有相关人员的认可…:意指需求必须经过评审,才能成为正式的需求。
•…其目的是彻底的解决用户的问题。有助于解决用户的问题,该需求才有存在的价值。
2
西安交通大学刘海岩
2、需求的类型
(1) 功能性需求:描述系统应该做什么,即为用户和其它系统完成的功能、提供的服务。
(2) 非功能性需求:必须遵循的标准,外部界面的细节,实现的约束条件,质量属性等等。
非功能需求限定了选择解决问题方案的范围,如运行平台、实现技术、编程语言和工具等。
例:将飞机订票系统中的以下方面做如下的划分,F代表“功能性”,NF代表“非功能性”,X代表“不应当是需求”。简要的说明功能性或非功能性需求的种类。对于不应当是需求的方面,说明其原因。
3
西安交通大学刘海岩
•如何输入有关航班、乘客及订票信息。F:输入。
•什么信息要出现在机票和报告中。F:输出。
•如何计算乘机费用。F:计算。
•什么信息必须存储在旅行社和其他人访问的数据库中。
F:数据存储。
•这个系统应该设计成可以处理旅行常客计划。
NF:增强的容限。
•这个系统在任何时候都必须是可用的。一周中只允许有2
分钟宕机时间。 NF:有效性。
•必须使用排序算法根据离开时间对航班排序。
X:这是一个设计问题。
4
西安交通大学刘海岩
3、需求的描述
(1)结构化语言
(2)图形化表示
(3)数学描述(形式化描述)
4、软件需求文档(需求规格化说明)
是需求分析阶段的产品,是所有其他开发和管理活动的基础。对系统开发过程中其他活动的影响:
•项目经理根据它制定或修改开发计划。
•设计人员根据它进行系统设计。
•测试人员根据它编写测试计划,设计测试用例。
•产品发布人员根据它编写产品介绍和用户文档。
•培训人员根据它编写培训教程。
5
西安交通大学刘海岩
IEEE标准为需求文档提出了以下结构,组织机构内部可以基于此标准扩展:
(1)引言
a. 需求文档的目的
b. 文档约定
c. 预期的读者和阅读建议
d. 产品范围
e. 参考文献
(2)综合描述
a. 产品前景
b. 产品功能与优先级
c. 用户特征
d. 运行环境
e. 设计与实现上的限制
f. 假设和依赖性
6
西安交通大学刘海岩
(3)需求描述
a. 功能需求
b. 数据需求:与功能有关的数据定义和数据关系
c. 性能需求:响应时间、容量要求、用户数等
d. 外部接口:用户界面、软硬件接口、通信接口
e. 设计约束:软件支持环境、报表、数据命名等
f. 软件质量属性(可维护性、可靠性、可移植性、
可用性、安全性等等)
g. 其他需求
这一节是文档中最实质性的部分,由于在机构组织的实践中存在极大的变数,对这一节定义的标准结构可以进行增删。
(4)附录(词汇表、分析模型、待定问题列表)
(5)索引
7
西安交通大学刘海岩
需求分析过程
需求分析是指开发人员通过对应用问题及其环境的调查分析,准确的理解用户的需求,将不规范的需求陈述转化为完整的需求定义,再将需求定义编写成需求规格化说明的过程。
对于一些新的复杂的系统,如果没有专门进行可行性研究,需求分析过程前应集中回答以下几个问题:
(1)系统是否符合组织机构的总题目标?(业务需求)。
(2)系统是否可能在现在的技术条件、预算和时间限制内完成?(经济、技术上的可行性)
(3)系统能否与已经存在的其他系统集成?
当收集到信息并评估后,需要对系统是否要开发给出意见和建议,书写可行性报告。该过程可能提出对系统功能范围的修正、对预算和时间安排的调整意见或者是对系统高层需求的建议。
8
西安交通大学刘海岩
1、需求获取
(1)个别访谈和召集会议
(2)观察用户工作流程
(3)利用原型
(4)使用实例(用例):用例把系统分成一组逻辑的、互相联系很少的部分,每一部分都描述了系统运行的某种方式。因此容易理解每个用例达到的功能。
问题分析
问题描述
原型化