第3章 传统软件需求分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

17




涉众



需求获取 需求分析 需求描述 需求验证
需求开发
需求基线
需求管理
当前基线
修订的基 线
需求变化
变更控制
18
需求获取
• 需求获取
–需求获取是从人、文档、环境当中获取需 求的过程;
• 这个过程包括学习和认知的过程,而学习和认知 是递进的;
–需求工程师必须要利用各种方法和技术来 “发现”需求 ; –需求获取和需求分析是交织在一起的 ;
需求分析
· · 建立分析模型 创建解决方案
需求开发目标
· · 共同的理解 解决方案的描述
24
三种模型
需求获取信息
业务模型
每本书 都有至少一个 作者 书
分析模型
(1, n) (0, n) 作者
写作
计算模型 Book #ISBN Title Varchar(100) „... 1 1..n Wrote Author #ISBN #ID 1 #ID Name Varchar(50) #NUM 0..n „... „...
库存数据
外部项
40
41
42
43
结构化分析过程
• 1、理解当前的现实环境,获得当前系统的具 体模型(物理模型) • 2、从当前系统的具体模型抽象出当前系统逻 辑模型 • 3、分析目标系统与当前系统逻辑上的差别, 建立目标系统的逻辑模型 • 4、为目标系统的逻辑模型作补充
44
例子:排课
• 步骤1. 通过对现实环境的调查,获得当 前系统的物理模型
• 需求验证子活动
–执行验证 –问题修正
29
需求验证的子活动
修改后的软件需求规格说明文档
软件需求规格 说明文档
执行验证
问题、修 改建议
问题修正
30
需求管理
• 需求管理
–需求基线:项目经理、开发者、测试人员、 顾客、维护人员 –需求产生之后 ,需求的影响力贯穿于整个后 续的产品生命周期,而不是单纯地存在于需 求开发阶段
系统整体或系统组成部分应该拥有的性能特征,例如CPU使用率、
内存使用率等。
质量属性(Quality Attribute)
系统完成工作的质量,即系统需要在一个“好的程度”上实现功能
需求,例如可靠性程度、可维护性程度等。
对外接口(External Interface)
系统和环境中其他系统之间需要建立的接口,包括硬件接口、软件
软 件 学 院
国家精品课程
软 件 工 程
云南大学 软件学院 代飞博士 2013年· 秋
1
会泽百家
至公天下
第3章 传统软件需求分析
3.1 需求与需求分析 3.2 需求工程 3.3 结构化分析 技术
2
3.1 需求与需求分析
3.1.1 需求
3.1.2 需求分析
3
3.1.1 需求的定义
• IEEE关于需求的定义 (1)用户为了解决问题或达到目标所需 的条件或能力;(用户的角度 ) (2)系统或系统部件为了满足合同、标 准、规范或其它正式规定文档所需具有 的条件或能力。(开发者的角度) (3) 对(1)或(2)中的一个条件或 一种能力的文档化表述。
50
例子:飞机机票预订系统
订票单
旅行社
分类并 检查
有效订票单
订票 记账文件 机票文件
取票单
有效 取票 单
记账
旅客
账单
38
39
3.3.2系统流程图
系统流程图,是一种描述系统内各单位、人员之间业务关系的 图表,用以描述物理系统的工具。
基本思想:用图形符号以黑盒子形式描绘系统里面的每个部件 (程序,文档,数据库,人工过程等) ,表达信息在各个部 件之间流动的情况,而不是表示对信息进行加工处理的控制过 程。 处理 信息流或物流 加工 的输入与输出 数据或 单据 文档
46
• 步骤3.分析当前系统与目标系统的差别 ,建立目标系统的逻辑模型
软件学 院教务 员
教学 计划 排课表 排课表 排课 (时间) 排课 (时间+地点) 软件学 时间 院教务 地点 处理 员 处理
软件学院 的教师
时间 约束
学校设备 管理科
教室 约束
47
• 步骤4.对目标系统的逻辑模型进行改进 与优化。
15
传统需求分析与需求工程的关系
需求工程
需求分析
16
3.2.2 需求工程过程
需求开发过程 需求管理过程
需求获取
需求分析
需求描述
需求验证
需求管理
经过分析和建模的需求,将被记录和文档化, 并作为正式的规格说明,再经验证后,传递给 软件组织的所有相关人员,形成对系统需求的 正确和一致的理解。
规格说明天 生就是不完 备的; 环境一直在 变;
4
需求概念的外延——需求的分类
功能需求(Functional Requirement)
和系统主要工作相关的需求,即在不考虑物理约束的情况下,用户
希望系统所能够执行的活动,这些活动可以帮助用户完成任务。功 能需求主要表现为系统和环境之间的行为交互。
性能需求(Performance Requirement)
19
需求获取的子活动
收集背景材料
定义项目前景 和范围
选择信息的来 选择获取方法, 源 执行获取
记录获取结果
项目前景和范围文档 用户需求文档(包括问题域特性)
20
定义系统的高层解决方案
新的解决方案
订单输入源 新的销售订单系统 结果订单 合格的销 售订单
订单输入员 检查
检查
检查
包含定价数据的 旧系统
菜单
自助餐厅库存系统
22
23
需求分析
• 需求分析
–通过建模来整合各种信息,以使得人们更 好的理解问题; –检查需求当中存在的错误、遗漏、不一致 等各种缺陷,并加以修正 ; –为问题定义出一个需求集合,这个集合能 够为问题界定一个有效的解决方案;(需求 的基线集)
获取结果
· · 用户的理解 问题的描述
接口、数据库接口等等。
约束
进行系统构造时需要遵守的约束,例如编程语言、硬件wk.baidu.com施等。
5
功能需求——层次性
业务需求 目标 用户需求
任务
系统行为
系统需求
6
业务需求、用户需求、系统需求
业务需求
– 抽象层次最高的需求,是系统建立的战略出发 点,表现为高层次的目标(Objective),它描 述了组织为什么要开发系统 。
• 需求规格说明 的子活动
–模板的选择与裁剪和编写文档
27
需求描述的子活动
标准模版 模版结构 模版的选择 与裁剪 需求规格说 明文档模版
系统模型
知识
编写文档
软件需求规 格说明文档
知识 系统需求
28
需求验证
• 需求验证
–确保需求规格说明文档能正确、准确地反映 用户的意图 –确保文档的高质量
• 文档内每条需求都正确、准确的反映了用户的意 图; • 文档记录的需求集在整体上具有完整性和一致性; • 文档的组织方式和需求的书写方式具有可读性和 可修改性
36
子模 块3
非模块化设计 模块化设计
结构化编程
main
反对GOTO语句
函数a
顺序结构
函数b 函数c
选择结构 循坏结构
函数必须是单入口和单出口的
37
结构化分析
• 结构化分析的要点:根据软件内部数据 传递、变换的关系,采用自顶向下、逐 层分解的方法,经过一系列分解和抽象 ,建立系统的逻辑模型。
• 建立系统逻辑模型的结构化分析技术有 三种: • 1、数据流图 • 2、数据字典 • 3、结构化语言、判定表、判定树
用户需求
–执行实际工作的用户对系统所能完成的具体任 务的期望,描述了系统能够帮助用户做些什么。
系统(级)需求
–用户对系统行为的期望,一系列的系统行为联 系在一起可以帮助用户完成任务,满足用户需 求。
7
例子——业务需求
• 目标:云南大学进入全国50强 • 子目标:学科建设(一级博士点) • 子目标:国家级重点实验室建设 • 子目标:人才建设 • 子目标:学校信息化建设(教务管理系统 、选课系统、研究生系统„)
外部实体
加工
数据流
数据存储
49
1)外部实体:与系统进行交互,但系统不对其 进行加工和处理的实体,用带标记的矩形表示。
2)数据的加工:加工是对数据进行变换和处理 的单元,它接收一定的数据输入,对其进行处理,并 产生输出。
3)数据流:数据流由一组固定的数据组成,用 来指出数据在系统内传播的路径。
4)数据存储:表示信息的静态存储,可以代表文 件、文件的一部分、数据库的元素等,用带标记的双 实线表示。
•结构化设计(Structured Design,SD,70年代初期)
•结构化编程(Structured Programming, SP, 1965) 基本思想:把一个复杂问题的求解过程分阶段进行, 而且这种分解是自顶向下,逐层分解,使得每个阶段 处理的问题都控制在人们容易理解和处理的范围内。 (分而治之的思想) 基本要点:自顶向下、逐步求精;模块化设计;结构 化编程。
8
用户需求
开课 排课 选课
教务秘书
教务科 学生
• 用户需求
–学生:能够进行选课, 知道上课时间和地点 –教务秘书:开课+排时间 –教务科:排课(排地点 )+课程管理 –教师:知道上课时间和 地点
查课表
学生和教师
9
系统需求——查课表
10
3.1.2 需求分析
需求分析:对要解决的问题进行详细的分析,弄 清楚问题的要求。(做什么) 需求分析需达到的三个目标: 1、描述客户的需求; 2、建立创建软件设计的基础 3、定义在软件完成后可以被确认的一组需求
• 需求管理子活动
–建立和维护需求基线集 –建立需求跟踪信息 –进行变更控制
31
3.3 结构化分析
3.3.1 结构化方法概述
3.3.2 系统流程图 3.3.3 数据流图 3.3.4 数据字典 3.3.5 结构化语言
32
3.3.1 结构化方法概述
•结构化分析(Structured Analysis,SA,70年代中期)
25
需求分析的子活动
背景分析 需求建模 确定优先 级 确定系统 边界 需求细化 需求协商
系统用例图 数据流图、ER图、状态转换图、类图
26
需求描述
• 需求规格说明
–需求获取活动---收集了需求信息; –需求分析活动---建立了能够满足用户需求的 软件解决方案; –将上述文档定义和文档化;
• 业务需求被写入项目前景和范围文档 • 用户需求被写入用户需求文档(或者用例文档) • 系统需求被写入需求规格说明
33
自顶向下、逐步求精
抽象和分解是控 顶层 制复杂性的两个 基本手段 抽象:在每个抽 象层次上忽略问 题的内部复杂性, 只关注整个问题 与外界的联系
底层
2 x
1
3
分解:将问题 不断分解为较 小的问题,直 到每个最底层 的问题都足够 简单为止
3.1
3.2
34
35
模块化设计
main
main
子模 块1 子模 块2 子模 块11 子模 块12 子模 块13
需求工程是所有需求处理活动的综合,它收集信息、分析问题、
整合观点、记录需求并验证其正确性,最终反映软件被应用后
与其环境互动形成的期望效应
14
需求工程的内容和目标
• 内容:
– 需求开发和需求管理;
• 目标:
– 需求规格说明书(软件需求规约或功能规格说明
);
– 当需求发生变更时,对需求规格说明进行管理。
解决方案边 界
票据文员 运输员 生产工长
21
上下文图
顾客 注册从工资中 扣除餐费 食物订单 菜单管理人 食物订单 送餐请求 菜单内容 从工资中扣除餐费的请 求 从工资中扣除餐费的响 应 工资系统 付款要求 食物订单 可提供的食物 信息 自助餐厅在 线订餐系统 送餐请求 送餐人员 更新食物状态 付款请求 自助餐厅工作人员 食物订购信息
软件学 院教务 员
教学 计划 反馈 时间 约束 排课表 排课表 排课 (时间) 排课 (时间+地点) 软件学 时间 院教务 地点 处理 员 处理
软件学院 的教师
学校设备 管理科
教室 约束
排课表 (时间+地点)
48
3.3.3 数据流图
数据流图( Data Flow Diagram )是结构化系统分析 的主要工具,它表示了系统内部信息的流向,并表示 了系统的逻辑处理功能。
11
需求分析的过程
可行性 分析模型 需求描述
可行性报告
系统模型
需求规格说明书
12
3.2 需求工程
3.2.1 需求工程的定义
3.2.2 需求工程过程
13
3.2.1 需求工程
• 需求
– 构造任何人工制品之前,其意图(为什么需要 它?它将用于何处?)。
• 工程
– – – – 工程化的方法; 有效的技术; 规范化、标准化的生产过程; 规范化、标准化的产品,强调最终产品的实用 性和目的性。
教学 计划 排课表 排课表(时 (时间) 学校教务 间+地点) 软件 软件学 学院 处(王) 院(代) (黄)
软件 学院 (黄)
45
• 步骤2.去掉具体模型中的非本质因素, 抽取现实系统的实质,抽象出当前系统 的逻辑模型。
软件学 院教务 员
教学 计划
排课表 排课表 排课 (时间) 排课 (时间+地点) 软件学 时间 院教务 地点 处理 员 处理
相关文档
最新文档