文章目录
第三章 软件需求分析
地位:关系到软件开发成败的关键步骤
基本任务:明确“系统必须做什么”
主要目的:分析用户需求,构建抽象到具体的逻辑模型,写软件需求规格说明书
实质工作:调查研究、分析综合、抽象思维、逻辑推理
用户需求分类:功能需求、非功能需求
3.1 需求分析的任务
主要任务:通过软件开发人员与用户的交流和讨论,准确地获取用户对系统的具体要求。
在正确理解用户需求的前提下,软件开发人员还需要将这些需求准确地以文档的形式表达出来,作为设计阶段的依据。
输出:软件需求规格说明书
需求分析的主要任务:
(1)确定系统的综合需求
①功能需求
②性能需求
③可靠性需求
④接口需求
⑤环境需求
⑥安全性需求
⑦资源需求
⑧成本和进度需求
⑨将来可能提出的要求
(2)分析系统的数据需求
(3)导出系统的逻辑模型
(4)编制需求阶段文档
3.2 需求分析的步骤
(1)通过调查研究,获取用户需求
方式:问卷调查、访谈、实地考察、建立原型、研究资料
(2)去除非本质因素,确定系统的真正需求
(3)描述需求,建立系统的逻辑模型
常用模型:数据流图,E-R图,用例图,状态转换图
(4)书写需求规格说明书,进行需求复审
3.3 需求分析方法和原则
3.3.1 软件需求分析理论
数学方法描述软件需求分析:
将应用软件定义为 S,功能域为 D₁,D₂,D₃…,则:
S = { D₁,D₂,D₃…}
每个功能域D,都存在若干个子功能P₁,P₂,P₃…,则:
D = {P₁,P₂,P₃…}
每个子功能 P 有若干个行为F₁,F₂,F₃…,则:
P = {F₁,F₂,F₃…}
3.3.2 有效性软件需求分析三步法
第一阶段:访谈式
实现手段:访谈、调查表格
输出成果:调查报告、业务流程报告
第二阶段:诱导式
实现手段:拜访(诱导)、原型演示
输出成果:调研分析报告、原型反馈报告、业务流程报告
第三阶段:确认式
实现手段:拜访(回顾、确认)
输出成果:需求分析报告
3.3.3 常用的需求分析方法
(1)结构化分析方法 (SA,Structured Analysis)
类型:面向数据流 需求分析法
基本思想:“抽象”和“分解”,采用“自顶向下、逐层分解”的分析思路,即先把软件系统视为一个抽象的系统,然后自顶向下、分支分层、逐步分解、逐步细化、逐步求精,最后落实到具体加工、基本加工、简单加工,即直到每一个子功能足够简单,能够清楚地被理解和表达为止。
(2)面向对象的分析方法
基本思想:基于面向对象的思想,以用例模型为基础。
(3)原型化分析方法
基本思想:初步获取需求后,快速的开发一个原型系统,进行模拟操作,来对需求进行分析。
3.3.4 需求分析原则
(1)能够表达和理解问题的信息域和功能域
(2)能够对问题进行分解和不断细化,建立问题的层次结构
(3)能够给出系统的逻辑表示和物理表示
3.4 需求分析的 case 工具
3.4.1 层次方框图 (主要)
树形结构,描述复杂数据的层次结构
3.4.2 Warnier图
树形结构表示,描述数据层次结构
3.4.3 IPO图
输入/处理/输出 图的简称
3.4.4 E-R图
实体-联系图
3.4.5 状态迁移图
3.4.6 Petri图
对系统进行需求规格说明
3.5 软件需求验证
3.5.1 软件需求规格说明的主要内容
① 引言
②项目概述
③具体需求
3.5.2 软件需求的验证
(1)有效性验证
(2)一致性验证
(3)完整性验证
(4)可行性验证
(5)可验证性验证
(6)可跟踪性验证
(7)可调节性验证
(8)其他方面验证