软件工程与团队开发软件工程
第 2章 软件项目的需求分析本章要点
一、需求概述
二、需求工程
三、需求建模方法
四、需求分析
五、案例分析一、需求概述
1、需求分析的重要性维护产品提交测试编码详细设计概要设计需求分析一、需求概述
2、软件需求的定义及特点
1)定义
软件需求是用户对目标软件系统在功能、行为、性能、设计约束等各方面的期望。
2)特点
软件需求具有模糊性、不确定性、变化性和主观性的特点。
一、需求概述
3)软件需求的层次业务需求用户需求功能需求软件需求规格非功能性 需求质量特性约束和假设系统需求一、需求概述
3、需求分析阶段的任务
通过对问题及其环境的理解与分析,为问题涉及的信息、功能及系统行为建立模型,将用户需求精确化、完全化,最终形成需求规格说明,
这一系列的活动构成需求分析阶段的任务。
二、需求工程
软件需求管理过程需求分析编写需求规格需求验证需求获取需求变更需求确认需求变更三、需求建模的基本方法
需求建模的 3个目标
描述用户的要求
为软件设计提供基础
定义软件需求规格
需求建模方法
过程模型
行为模型
面向对象模型三、需求建模的基本方法
1、过程模型
软件过程模型描述完成软件开发所执行的过程。
软件过程模型包括
任务 -- 椭圆形
产品(文件、数据) -- 矩形
参与者 -- 小人
判断(可选) -- 菱形三、需求建模的基本方法
过程模型的规则和解释
不能用一条弧连接两个任务。任务必须有产品分隔开来。
任务在输入产品存在前不可执行。
每个模型都有一个或多个开始任务,一个或多个最终任务。
所有任务都必须是从开始任务可到达的。
从每个任务到达最终任务都存在一条路径。
三、需求建模的基本方法
例 1:用于单元测试软件的过程模型。
该模型有两个参与者,分别是测试员和项目组领导。当然,单元测试员负责单元测试。单元测试员利用源代码和测试计划来完成单元测试。
这个活动的结果是一个产品,即测试结果。项目组领导评审测试结果,而且相应活动的结果是此单元测试得到认可。这个模型并未明显地说明在此过程不成功时怎么办。不过应该能够推断出测试员会不断测试直至满意为止。类似地,如果项目组领导不打算给与认可,那么此过程将返回去重新进行测试。
三、需求建模的基本方法
答案:单元测试的过程模型图源 代 码测 试 计 划单 元 测 试测 试 结 果测 试 评 审认 可单 元 测 试 员项 目 组 领 导三、需求建模的基本方法
带判断的单元测试过程模型图源 代 码测 试 计 划单 元 测 试测 试 结 果测 试 评 审认 可单 元 测 试 员项 目 组 领 导满 意?
是否三、需求建模的基本方法
练习:画出油漆房间墙壁这个任务的一个过程模型。该过程包括下列任务:选择颜色、购买油漆、清洁墙壁、搅拌油漆、油漆墙壁。
三、需求建模的基本方法
练习答案选 择 颜 色清 洁 墙 面选 择 的 颜 色清 洁 过 的 墙面购 买 油 漆调 整 油 漆 颜色搅 拌 油 漆油 漆 墙 壁搅 拌 过 的 油漆油 漆 过 的 墙壁油 漆 工作业
指导教师在教授一门有远程学习的学生参与的课程是使用了交互式会话。指导教师把学生划分成小组并在 Web页上贴出了问题。各小组利用聊天室讨论问题,利用留言板向指导教师提问,并通过电子邮件提交解决方案。然后,指导教师利用评分表对学生的解决方案进行评分。请画出交互式会画的一个过程模型。
三、需求建模的基本方法
2、行为模型
行为模型描述系统的总体行为
常用的行为模型
数据流模型 — 数据驱动
状态机模型 — 状态驱动三、需求建模的基本方法
1)数据流模型
数据流模型展示了系统中如何进行数据处理。它展示系统中一系列处理步骤中数据是如何流动和处理的,是一种自上而下的方法。而且,数据流模型适用于管理信息系统的表述。
数据流图( DFD)
数据字典( Data Dictionary,DD)
三、需求建模的基本方法
示例:一个旅行社订票的简易的数据流图,它描述了从订票到得到机票,以致最后将机票给旅客的数据流动的过程,其中包括查询航班目录、费用的记账等过程。
旅行社 预定机票 准备机票记账 旅客航班目录记账文件订票单航班费用 机票三、需求建模的基本方法
① 数据流图的元素符号
4种基本元素来描述系统的行为:实体、过程、数据流和数据存储。
实体:位于软件系统边界之外的信息生产者或者消费者。
过程(转换):转换数据流的处理过程,又成为泡。
数据流:在转换之间有向流动的数据项或数据项集合。
数据存储:为一个或多个转换提供数据源或数据存储服务的缓冲区、文件或 数据库。也称为数据源。
实体过程(转换)
数据存储数据流或或或三、需求建模的基本方法
② 数据流图的画法
由外向里画。首先应画出系统的输入数据流和输出数据流。 即先决定系统的范围,然后再考虑系统的内部。同样对每一个转换来说,也是先画出它们的输入输出再考虑这个转换的内部。
画系统的内部,逐步将系统的输入和输出数据流用一连串转换连接起来,一般可以从输入端逐步画到输出端,也可以返回来从输出端追溯到输入端。在数据流的组成或值发生变化的地方应画上一个“转换”,它的作用就是实现这一变化。
画转换的内部,用“由外向里”的方式,可以继续分析每个转换的内部,如果转换的内部还有一些数据流,则可将这个转换用几个子转换代替,并在子转换之间画出这些数据流。
三、需求建模的基本方法
例 2:某培训中心的计算机管理系统
培训中心为有关行业的在职人员开设许多门课程,有兴趣的人可以来电或来函报名选修某门课程,培训中心的学费由学员通过支票付款,学员可以来电或来函查询课程计划等事宜。 培训中心的日常业务是:将学员发来的电报、信件、电话收集分类后,按几种不同情况处理。
报名,将报名数据送给负责报名事务的职员,他们要查阅课程文件,检查某课程是否满额,然后在学生文件、课程文件上登记,并开出报名单交财务部门,财务人员再开出发票经复审后通知学员。
付款,由财务人员在账目文件上登记,再经复审后也给学员一张通知单。
查询,查询部门查阅课程文件后给出答复。
注销,由注销人员在课程、学生、账目文件上作相应修改,经复审后通知学员。
对一些要求不合理的函电,拒绝处理。
三、需求建模的基本方法
解:
学 员
1
分 类
3
付 款
2
报 名
4
查 询
5
注 销
6
开 发 票
7
复 审学 员函 电不 合 理课 程学 员 课 程 账 目学 生课 程账 目
8
拒 绝注 销 申 请报 名 数 据支 票查 询 申 请注销通知单发 票报 名 单付 款 单课 程 信 息通 知 单三、需求建模的基本方法
③ 层次结构的 DFD
i 首先建立顶级数据流图
顶级数据流图只有一个代表目标软件系统的功能转换。
根据软件系统与外部环境的关系确定顶级数据流图的外部实体以及它们与软件系统之间的数据流。
ii 对用户需求的文字描述进行语法分析
名词和名词短语构成潜在的外部实体、数据源或数据流。
动词构成潜在的处理功能。
结合分析人员对问题域和用户需求的理解,确定软件系统的主要功能以及它们之间的数据流。
三、需求建模的基本方法
iii 功能分解
按照“强内聚、松耦合”的原则,对处理功能进行精化;
完成对数据流图的精化,针对被精化的处理功能生成下一级的数据流图。
iv 在精化过程中必须维持各级数据流图的平衡。
v 精化过程应适可而止,避免涉及软件设计细节。
某子功能可以用一段简洁、精确的文字描述清楚,就无需进一步分解了。
三、需求建模的基本方法
层次化结构的 DFD示意图三、需求建模的基本方法
注意事项:
每个实体可以有几个数据流,同时要注意数据流的方向
数据流图描述的是数据流而非控制流
各符号适当地命名,反映出具体的含义
先考虑稳定状态,着重主要的数据流,可以先忽略琐碎的枝节三、需求建模的基本方法
④ 数据字典
数据字典精确、严格地定义了每一个与系统相关的数据元素,并以字典式顺序将它们组织起来,使得用户和分析员对所有的输入、输出、存储成分和中间计算有共同的理解。
数据字典每一条数据条目包含:
名称:数据对象或控制项、数据存储或外部实体的名字;
别名或编号;
何处使用 /如何使用:使用数据或控制项的加工列表,以及如何使用(例如,加工的输入、加工的输出、作为存储、
作为外部实体);
内容描述:描述内容或数据结构等;
补充信息:关于数据类型、预设值、限制或局限等其它信息;
三、需求建模的基本方法数据构造 记号 意义顺序选择重复
=
+
[ | ]
{ }n
( )
*…*
由 …… 构成和或
n次重复可选的数据限定的注释三、需求建模的基本方法
例 3:图书管理系统的数据流图
图书管理系统主要功能是图书管理和信息查询。对于初次借书的读者,系统自动生产读者号,并与读者基本信息(姓名、单位、地址等)一起写入读者文件。系统的图书管理功能分为四个方面:购入新书、读者借书、读者还书以及图书注销。
购入新书 时需要为该书编制入库单。入库单内容包括图书分类目录号、书名、作者、价格、数量和购书日期,将这些信息写入图书目录文件并修改文件中的库存总量(表示到目前为止,购入此种图书的数量)。
读者借书 时需填写借书单。借书单内容包括读者号和所借图书分类目录号。系统首先检查该读者号是否有效,若无效,则拒绝借书;若有效,则进一步检查该读者已借图书是否超过最大限制数(假设每位读者同时借阅的书不超过 5本),若已达到最大限制数,则拒绝借书;否则允许借书,同时将图书分类目录号、读者号和借阅日期等信息写入借书文件中。
读者还书 时需填写还书单。系统根据读者号和图书分类目录号,从借书文件中读出与该图书相关的借阅记录,表明还书日期,再写回到借书文件中,若图书逾期未还,则处以相应的罚款。
注销图书 时需填写注销单并修改图书目录文件中的库存总量。
系统的信息查询 功能主要包括读者信息查询和图书信息查询。其中读者信息查询可得到读者的基本信息以及读者借阅图书的情况;图书信息查询可得到图书基本信息和图书的借出情况。
三、需求建模的基本方法
解:
1,0级 DFD
读 者管理员图 书 管 理 系 统读 者 基 本 信 息入 库 单出 库 单借 书 单还 书 单查 询 条 件读 者查 询 结 果罚 款 单拒 绝 借 书允 许 借 书三、需求建模的基本方法
2,1级 DFD
读 者管理员读 者 文 件图 书 目 录 文 件借 书 文 件读 者 基 本 信 息入 库 单出 库 单借 书 单还 书 单查 询 条 件读 者查 询 结 果罚 款 单读 者注 册读 者 信 息购 买新 书书 目 信 息图 书注 销书 目 信 息读 者借 书读 者还 书信 息查 询借 阅 信 息还 书 信 息读 者 文 件 图 书 目 录 文 件借 书 文 件借 阅 信 息读 者 信 息书 目 信 息允 许 借 书拒 绝 借 书三、需求建模的基本方法
3,2级 DFD
读者借书
读者还书读 者借 书 文 件借 书 单读 者借 阅 信 息检 查读 者 号读 者 号 无 效 拒 绝 借 书检 查 已 借书 数 量读 者 号 有 效已 达 最 大 限 制 数未 达 最 大 限 制 数,允 许 借 书读 者借 书 文 件还 书 单读 者查 询 借 阅记 录借 阅 记 录 / 还 书 日 期检 查 是 否逾 期还 书 日 期生 成 罚 款单逾 期 信 息罚 款 单三、需求建模的基本方法
4、数据字典
0级 DFD的数据字典
1)数据流条目:
①名称:入库单别名:无何处使用 /如何使用:图书管理信息系统的输入描述:入库单 = 图书分类目录号 +书名 +作者 +价格 +数量 +购书日期
2)加工条目:
加工名:图书管理信息系统别名:无输入:读者基本信息;入库单;注销单;借书单;还书单;查询条件。
输出:允许借书提示;拒绝借书提示;罚款单;查询结果。
三、需求建模的基本方法
练习
建立“学生成绩管理系统”的层次结构的 DFD
在该系统中,教务人员录入学生信息、课程信息和成绩信息,学生可以随时查询自己所选课程的成绩。由于学生成绩属于敏感信息,系统必须提供必要的安全措施以防非法存取。
三、需求建模的基本方法
2)状态机模型
状态机模型描述系统队内部或外部事件的反应,模型可以展示系统的所有状态以及导致系统从一个状态到另一个状态的事件。这种模型常常可以对实时系统进行建模,因为这些系统常常是由环境事件驱动的。
三、需求建模的基本方法
3)流程图
流程图是一种表示操作顺序和信息流动过程的图表。
其基本元素或概念用标准化的图形符号来表示,相互关系用连线来表示。流程图是有向图,其中每个节点代表一个或一组操作。
流程图一般分为程序流程图和系统流程图三、需求建模的基本方法
系统流程图
系统流程图表达的是信息在系统各部件之间流动的情况,而不是对信息进行加工处理的控制过程。
三、需求建模的基本方法
流程图的基本结构顺序结构 If结构 While结构 Until结构进 程 1
进 程 1
判 断进 程 1 进 程 2
是 否进 程 1
判 断是否进 程 2
判 断进 程 1
是否进 程 2
三、需求建模的基本方法
例 4:外事部门出访业务需求的描述开 始制 定 出 访 计 划出 访 计 划 表临 时 出 访 计 划表计 划 是 否落 实?
出 访 组 团 登 记结 束是 否 本 单 位人 员?
是 否 需 要办 理 护 照?
申 请 护 照护 照 管 理签 证 管 理结 束申 请 出 国 护 照事 项 表护 照 卡申 请 出 国 签 证事 项 表护 照 登 记 表出 访 团 组 基 本情 况 登 记 表否是是是否否三、需求建模的基本方法
练习 一个简化的机票销售系统
售票员根据旅客需要的航班,首先查询有无该航班机票。若有,则负责录入旅客的基本信息
(姓名、身份证号码、航班号、票价和到达港);保险公司的服务员负责录入保险金额;
售票部经理可随时查询每一个航班的售票情况
(航班号、售出机票的数量及营业额),并在当日结算时能计算出日营业额作业
参考课本 P59页需求,绘制“软件实训管理平台”的 0级和 1级 DFD,并写出 0级 DFD的数据字典。
绘制“软件实训管理平台”的系统流程图。