软件工程第三章(需求分析)
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章 软件需求分析
需求分析概述
准确地定义未来系统的目标,确定为了 满足用户的需求,系统必须做什么。用 <需求 规格说明书> 规范的形式准确地表达用户的 需求。
在需求分析阶段,系统分析员的主要焦 点是 “做什么(what)” ,不是 “怎样做 (how)”
下面是一组漫画 这组漫画形象地刻画了一个事实 获取完整正确的需求是一项十分困难的工 作
➢数学模型 ➢描述模型 ➢图形模型
三、模型的作用
• 在建模过程中了解系统 • 通过抽象降低复杂性 • 有助于回忆所有的细节 • 有助于开发小组间的交流 • 有助于与用户的交流 • 为系统的维护提供文档
3.3.2需求分析的过程
(1) 通过对现实环境的调查, 获得当前系统的物理模型
购
学
书 申 请
教务科
某出版社系统调查表
编
提出问题
号
1 您在哪个部门工作?
2 出版业务流程是什么?
3 您每日都处理那些文件、数据、报表?
4 工作中手工处理特别麻烦的事情是什么?
5 工作中手工处理什么问题解决不了?影响 效率的问题有哪些?
6 您认为提高工作效率,节省工作时间,减 轻工作强度可采取哪些办法?
某出版社系统调查表
设计约束或实现约束描述在设计或实现应用 系统时应遵守的限制条件。常见的约束有: 精度;工具和语言约束;设计约束;应该使 用的标准;应该使用的硬件平台。
7. 逆向需求 逆向需求说明软件系统不应该做什么。
8. 将来可能提出的要求
应该明确地列出那些虽然不属于当前系统开 发范畴,但是据分析将来很可能会提出来的 要求。
•关于系统将要完成什么工作…:需求描述了 系统应当完成的任务,不描述系统将如何实现。
•必须经过所有相关人员的认可…:意指需求 必须经过评审,才能成为正式的需求。
•其目的是彻底的解决用户的问题。有助于解 决用户的问题,该需求才有存在的价值。
3.1.2 需求的内容
1. 功能需求 这方面的需求指定系统必须提供的服务。通过需求 分析应该划分出系统必须完成的所有功能。 2. 性能需求 性能需求指定系统必须满足的定时约束或容量约束 ,通常包括速度(响应时间)、信息量速率、主存容
3.1 需求分析的任务
3.1.1 需求的概念
需求(requirements) Jones 定义为用户所需要的软件必须达
到的目标和能力。 Lethbridge定义为需求是关于系统将要
完成什么工作的一段描述,他们必须经过 所有相关人员的认可,其目的是彻底的解 决用户的问题。
• 需求是一段描述…:意思是每个需求是相 对短小简明的一段信息,表现为一个事实。它可 以是一段话或用各种图表示。一组需求的集合成 为需求文档。
购 书 单 会计室
交 款
单 出纳员
领
书
单
书 教材科
学
生
107
张
206
206
王 现李
生
赵
金
学生购买教材的实际处理流程—当前系统物理模型
(2) 去掉具体模型中的非本质因素,
抽取现实系统的实质,抽象出当前系统 的逻辑模型。
购
书
申
学 请 审查 生 有效性
购
书
交
单
款
开交款单 单
开领 书单
领
书
单
书学
发书 生
学生购买教材的逻辑模型
快速原型应该具备的第二个特性是“容 易修改”。在实际开发软件产品时,原 型的“修改—试用—反馈”过程可能重 复多遍,如果修改耗时过多,势必延误 软件开发时间。
3.3 需求建模
3.3.1需求表达的途径 一、建模
所谓模型,就是为了理解事物而 对事物做出的一种抽象,是对事 物的一种无歧义的书面描述。通 常,模型由一组图形符号和组织 这些符号的规则组成。
2、对需求信息的分析和综合——需求规约
– 充分理解需求,包括功能、性能和数据需求 – 采用需求分析方法
3、编制“需求规格说明书”
– 需求规格说明书使用的语言 – 书写要求
4、需求分析的复审
§3.2 需求获取
3.2.1 需求获取的目的
• 清楚地理解所要解决的问题 • 完整准确地表达用户的需求
需求获取面临的挑战
3.1.3 需求的描述方法
分析系统的数据要求,这是软件需求分析的 一个重要任务。分析系统的数据要求通常采 用建立数据模型的方法 (1)结构化语言 (2)图形化表示 (3)数学描述(形式化描述)
3.1.4需求分析的过程
1、对问题的识别和理解——需求获取
– 是一个调查研究的过程 – 分析人员需要具有较高的技能
编
提出问题
号
7 您的部门需要成本核算和统计的内容有哪 些?
8 您的部门采用计算机管理工作情况如何?
9 如何改进业务流程使之更合理?
10 哪些问题是目前传统手工方法根本无法解 决的?
11 出版社计算机管理信息系统需要解决什么 问题?
3.2.3 快速建立软件原型
快速原型就是快的复杂性和对问题空 间
理解的不完备性与不一致性
交流障碍
需求易变性
3.2.2需求获取的常用方法
• (1)个别访谈和召集会议
(2)观察用户工作流程 (3)利用原型 (4)使用实例(用例):用例把系统分 成一组逻辑的、互相联系很少的部分,每 一部分都描述了系统运行的某种方式。因 此容易理解每个用例达到的功能。
构建原型的要点,它应该实现用户看得 见的功能(例如,屏幕显示或打印报表),省 略目标系统的“隐含”功能(例如,修改文件 )。
快速原型应该具备的第一个特性是“快 速”。快速原型的目的是尽快向用户提 供一个可在计算机上运行的目标系统的 模型,以便使用户和开发者在目标系统 应该“做什么”这个问题上尽可能快地 达成共识。
量、磁盘容量、安全性等方面的需求。
3. 可靠性和可用性需求 可靠性需求定量地指定系统的可靠性。
4. 出错处理需求 这类需求说明系统对环境错误应该怎样响应
5. 接口需求 接口需求描述应用系统与它的环境通信的格 式。常见的接口需求有:用户接口需求;硬 件接口需求;软件接口需求;通信接口需求
6. 约束
模型化或模型方法是通过抽象、概 括和一般化,把研究的对象或问题转化 为本质(关系或结构)相同的另一对象 或问题,从而加以解决的方法。
软件开发过程实际是:人通过抽象、归纳把客 观系统变换到软件系统,并保证软件系统的解等价 客观系统的解。
客观系统
变换
软件系统
客观系统的解
解的等价
软件系统的解
二、模型的描述方法
需求分析概述
准确地定义未来系统的目标,确定为了 满足用户的需求,系统必须做什么。用 <需求 规格说明书> 规范的形式准确地表达用户的 需求。
在需求分析阶段,系统分析员的主要焦 点是 “做什么(what)” ,不是 “怎样做 (how)”
下面是一组漫画 这组漫画形象地刻画了一个事实 获取完整正确的需求是一项十分困难的工 作
➢数学模型 ➢描述模型 ➢图形模型
三、模型的作用
• 在建模过程中了解系统 • 通过抽象降低复杂性 • 有助于回忆所有的细节 • 有助于开发小组间的交流 • 有助于与用户的交流 • 为系统的维护提供文档
3.3.2需求分析的过程
(1) 通过对现实环境的调查, 获得当前系统的物理模型
购
学
书 申 请
教务科
某出版社系统调查表
编
提出问题
号
1 您在哪个部门工作?
2 出版业务流程是什么?
3 您每日都处理那些文件、数据、报表?
4 工作中手工处理特别麻烦的事情是什么?
5 工作中手工处理什么问题解决不了?影响 效率的问题有哪些?
6 您认为提高工作效率,节省工作时间,减 轻工作强度可采取哪些办法?
某出版社系统调查表
设计约束或实现约束描述在设计或实现应用 系统时应遵守的限制条件。常见的约束有: 精度;工具和语言约束;设计约束;应该使 用的标准;应该使用的硬件平台。
7. 逆向需求 逆向需求说明软件系统不应该做什么。
8. 将来可能提出的要求
应该明确地列出那些虽然不属于当前系统开 发范畴,但是据分析将来很可能会提出来的 要求。
•关于系统将要完成什么工作…:需求描述了 系统应当完成的任务,不描述系统将如何实现。
•必须经过所有相关人员的认可…:意指需求 必须经过评审,才能成为正式的需求。
•其目的是彻底的解决用户的问题。有助于解 决用户的问题,该需求才有存在的价值。
3.1.2 需求的内容
1. 功能需求 这方面的需求指定系统必须提供的服务。通过需求 分析应该划分出系统必须完成的所有功能。 2. 性能需求 性能需求指定系统必须满足的定时约束或容量约束 ,通常包括速度(响应时间)、信息量速率、主存容
3.1 需求分析的任务
3.1.1 需求的概念
需求(requirements) Jones 定义为用户所需要的软件必须达
到的目标和能力。 Lethbridge定义为需求是关于系统将要
完成什么工作的一段描述,他们必须经过 所有相关人员的认可,其目的是彻底的解 决用户的问题。
• 需求是一段描述…:意思是每个需求是相 对短小简明的一段信息,表现为一个事实。它可 以是一段话或用各种图表示。一组需求的集合成 为需求文档。
购 书 单 会计室
交 款
单 出纳员
领
书
单
书 教材科
学
生
107
张
206
206
王 现李
生
赵
金
学生购买教材的实际处理流程—当前系统物理模型
(2) 去掉具体模型中的非本质因素,
抽取现实系统的实质,抽象出当前系统 的逻辑模型。
购
书
申
学 请 审查 生 有效性
购
书
交
单
款
开交款单 单
开领 书单
领
书
单
书学
发书 生
学生购买教材的逻辑模型
快速原型应该具备的第二个特性是“容 易修改”。在实际开发软件产品时,原 型的“修改—试用—反馈”过程可能重 复多遍,如果修改耗时过多,势必延误 软件开发时间。
3.3 需求建模
3.3.1需求表达的途径 一、建模
所谓模型,就是为了理解事物而 对事物做出的一种抽象,是对事 物的一种无歧义的书面描述。通 常,模型由一组图形符号和组织 这些符号的规则组成。
2、对需求信息的分析和综合——需求规约
– 充分理解需求,包括功能、性能和数据需求 – 采用需求分析方法
3、编制“需求规格说明书”
– 需求规格说明书使用的语言 – 书写要求
4、需求分析的复审
§3.2 需求获取
3.2.1 需求获取的目的
• 清楚地理解所要解决的问题 • 完整准确地表达用户的需求
需求获取面临的挑战
3.1.3 需求的描述方法
分析系统的数据要求,这是软件需求分析的 一个重要任务。分析系统的数据要求通常采 用建立数据模型的方法 (1)结构化语言 (2)图形化表示 (3)数学描述(形式化描述)
3.1.4需求分析的过程
1、对问题的识别和理解——需求获取
– 是一个调查研究的过程 – 分析人员需要具有较高的技能
编
提出问题
号
7 您的部门需要成本核算和统计的内容有哪 些?
8 您的部门采用计算机管理工作情况如何?
9 如何改进业务流程使之更合理?
10 哪些问题是目前传统手工方法根本无法解 决的?
11 出版社计算机管理信息系统需要解决什么 问题?
3.2.3 快速建立软件原型
快速原型就是快的复杂性和对问题空 间
理解的不完备性与不一致性
交流障碍
需求易变性
3.2.2需求获取的常用方法
• (1)个别访谈和召集会议
(2)观察用户工作流程 (3)利用原型 (4)使用实例(用例):用例把系统分 成一组逻辑的、互相联系很少的部分,每 一部分都描述了系统运行的某种方式。因 此容易理解每个用例达到的功能。
构建原型的要点,它应该实现用户看得 见的功能(例如,屏幕显示或打印报表),省 略目标系统的“隐含”功能(例如,修改文件 )。
快速原型应该具备的第一个特性是“快 速”。快速原型的目的是尽快向用户提 供一个可在计算机上运行的目标系统的 模型,以便使用户和开发者在目标系统 应该“做什么”这个问题上尽可能快地 达成共识。
量、磁盘容量、安全性等方面的需求。
3. 可靠性和可用性需求 可靠性需求定量地指定系统的可靠性。
4. 出错处理需求 这类需求说明系统对环境错误应该怎样响应
5. 接口需求 接口需求描述应用系统与它的环境通信的格 式。常见的接口需求有:用户接口需求;硬 件接口需求;软件接口需求;通信接口需求
6. 约束
模型化或模型方法是通过抽象、概 括和一般化,把研究的对象或问题转化 为本质(关系或结构)相同的另一对象 或问题,从而加以解决的方法。
软件开发过程实际是:人通过抽象、归纳把客 观系统变换到软件系统,并保证软件系统的解等价 客观系统的解。
客观系统
变换
软件系统
客观系统的解
解的等价
软件系统的解
二、模型的描述方法