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