软件工程导论——3需求分析(上)

在这里插入图片描述

需求分析的概念和过程

什么是需求

软件需求是用户为解决某个问题或实现某个目标,要求软件必须满足的条件和能力。(与技术无关,不关心具体使用什么技术)

需求层次

1、 业务需求
客户管理人员确定的对产品的高层次的目标要求
2、 用户需求
用户协助提供的对软件的功能要求和非功能要求
3、 功能需求和非功能需求
功能需求:开发人员需要开发实现的功能以及对这些功能的补充要求
非功能需求:如响应时间、并发量、可靠性、可维护性等
4、软件需求规格说明
产品遵从的标准、规范和合约说明了外部界面、功能要求、非功能要求等

需求工程

需求工程是指应用已证实有效的技术和方法进行需求的获取和分析,确定客户需求,并通过合适的工具和符号,系统的描述出目标系统及其行为特征和相关约束。
在这里插入图片描述

需求获取

原型化设计方法、

设计部分系统功能,以获得用户反馈

基于用例的方法获取需求(用例图)

用例:
从用户角度描述系统的一项功能,表示参与者与系统之间的交互,系统执行该动作序列为参与者产生结果。
– UML表示:椭圆,用例名称放在椭圆中心或椭圆下方中间的位置
– 用例名称通常使用动词短语或者动名词组:如 选课、存款、登录、查询
– 任何用例都不能在缺少参与者的情况下独立存在
– 任何参与者也必须要有与之关联的用例
基于用例的方法获取需求步骤:
①确定系统边界
②确定系统参与者:系统之外,与系统交互的人员、外部软件系统、硬件设备
③确定和绘制用例图
根据每个参与者去识别用例
理清用例之间的关系
理清参与者之间的关系
合并
④编制用例描述文档(用例规约)
识别用例
– 识别用例的最好方法就是从分析系统参与者开始,在这个过程中往往会发现新的参与者,可以通过以下问题来寻找用例:
①参与者希望系统提供什么功能?
②参与者是否会创建、读取、修改、删除、存储系统 的某种信息?如果是的话,参与者又是如何完成这些操作的?
③参与者是否会将外部的某些事件通知给系统?
④系统中发生的事件是否通知参与者?
⑤是否存在影响系统的外部事件?

例1(小型图书资料管理系统的用例图):
• 实现对图书资料的借出、归还、查询和管理;
• 有图书管理员和普通读者两种用户;
• 图书管理员:
– 添加、更新、删除图书资料信息;
– 登记和查询图书资料的借出和归还情况;
• 普通用户:
– 需要先注册才可以使用该系统;
– 可以按照作者或者主题检索图书资料信息;
– 可以预定目前借不到的图书资料,一旦预定的图书资料 被归还或者购买,则系统通知预订者。

1、确定系统边界和参与者
在这里插入图片描述
2、确定和绘制用例图
理清参与者与用例之间的关系
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
理清参与者与参与者之间的关系
在这里插入图片描述
3、编制用例图描述文档
1.用例说明
本用例允许图书管理员登记普通读者的借书记录
2.事件流
2.1 基本事件流
(1)系统请求图书管理员输入读者的注册号和所借图书的书目
(2)系统产生一个唯一的借书记录号
(3)系统显示新生成的借书记录
(4)图书管理员确认后,系统增加一个新的借书记录
2.2 备选事件流
(1)如果读者没有注册,…
(2)如果所借图书书目不存在,…
3.前提条件
用例开始之前,图书管理员必须在系统登录成功
4.后置条件
如果用例执行成功,该读者的借书记录被更新,否则系统状态不变
5.补充说明

需求分析

建立需求分析模型:核心工作
– 模型:为了理解事物而对事物做出的一种抽象,通常由一组图形符号和组织这些符号的规则组成
– 功能建模、数据建模、行为建模
– 可视化的方式,提供客户、分析人员和开发人员之间沟通的桥梁

分析获取的需求

完整性:每项需求都有清楚完整的描述
正确性:每项需求正确无歧义
合理性
可行性
• 技术可行性
• 经济可行性(成本及收益)
• 社会可行性(无侵权)
充分性:需求全面周到

需求分析的方法

结构化需求分析方法(SA)/传统的需求分析方法
1、流程建模(流程图(4))

不同图形块之间以箭头相连,代表信息在系统内的流动方向,表达数据在系统各部件之间流动的情况,与程序流程图符号类似,但表达不同含义。
在这里插入图片描述

2、功能建模
数据流图(1)

以图形方式展示系统中数据是如何加工处理和流动的。
缺点:无法判断活动的时序关系

在数据流图中应该描绘所有可能的数据流向,而不应该描绘出现某个数据流的条件。
数据流图与程序流程图中用箭头表示的控制流有本质不同
在数据流图中应描绘所有可能的数据流向,而不应该描绘出现某个数据流的条件
处理并不一定是一个程序,可以代表一系列程序、单个程序或者程序的一个模块,甚至人工处理过程
一个数据存储也并不一定是一个文件,它可以表示一个文件、文件的一部分、数据库的元素或记录的一部分等等
在这里插入图片描述
数据流图分层
自顶向下,功能分解
– 顶层数据流图:只含一个加工,表示整个系统
– 中间数据流图:对父图中的某个加工细化形成子图
– 底层数据流图:加工不能再分解,称为“原子加工”
– 注意父图与子图之间的平衡
在这里插入图片描述
例1(招生系统):
招生系统的需求:
– 学校公布招生条件
– 考生根据自己的条件报名
– 系统进行资格审查,给出资格审查信息
– 资格审查合格的考生可以参加答卷
– 系统根据学校提供的试题及答案进行自动判卷 – 给出分数及答题信息,供考生查询
– 系统根据学校的录取分数线进行录取
– 系统将录取信息发送给考生

1、顶层数据流图:
在这里插入图片描述
2、招生系统功能分解:
在这里插入图片描述
招生系统一层数据流图:
在这里插入图片描述
例2(银行储蓄系统):
• 储户填写存款申请单或者取款申请单,由业务员输入系统
• 如果是存款,则
– 系统记录存款人姓名、住址、电话号码、身份证号码、 存款类型、存款日期、到期日期、利率、密码等信息
– 系统进行存款处理,然后印出存款单给储户
• 如果是取款,则
– 系统核对储户密码
– 若密码正确,则系统进行取款处理
– 然后计算利息并印出取款单给储户

银行储蓄系统顶层数据流图:
在这里插入图片描述
银行储蓄系统功能分解:
在这里插入图片描述
银行储蓄系统一层数据流图:
在这里插入图片描述
银行储蓄系统二层数据流图:
在这里插入图片描述
在这里插入图片描述

IPO图(4)

IPO图是输入、处理、输出图的简称,能够方便地描述输入数据、对数据的处理、和输出数据之间的关系
• 基本形式:
– 左边框:列出有关的输入数据
– 中间框:列出主要的处理,次序代表执行次序
– 右边框:列出产生的输出数据
– 使用粗大箭头指出数据通信情况
• 优点:简单易学
• 缺点:不足以精确描述执行处理的详细情况
在这里插入图片描述

3、数据建模
ER图(2)

E-R图也称实体-联系图提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。
• 数据对象(实体);矩形表示
• 数据对象的属性:圆角矩形或椭圆
在这里插入图片描述
例1(选课系统):
在这里插入图片描述
例2(银行储蓄系统):
在这里插入图片描述

数据字典(4)
	以词条方式定义在系统中出现的数据对象 
	• 字典式顺序组织 
		①数据流词条 
		②数据元素词条 
		③加工词条 
		④数据存储文件词条 
		⑤数据源点及数据汇点词条
4、行为建模
状态转移图(3)

STD通过描述系统的状态以及引起系统状态转换的事件,来表示系统的行为。
在这里插入图片描述
例1(电话系统):
在这里插入图片描述
例2(银行储蓄系统):
在这里插入图片描述
在这里插入图片描述

  • 7
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值