需求工程第三讲需求分析与建模
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据登录/更新/读取 的结果
业务处理开始 数据存取请求
业务处理结束
数据存取程序
2020/6/29
分析4:开发互补的系统建模
• 互补的系统模型可以解释系统规格说明的不同方 面。系统模型用来表达系统规格说明的行为视图 或者结构视图。
• 系统模型的例子
– 数据处理模型 – 组合模型 – 分类模型 – 刺激-响应模型 – 过程模型
• 根据逻辑存储,进一步作数据分析,向数 据库数据过渡;
• 根据数据流向,定出存取方式; • 对应一个处理过程,用相应的语言,判定
表等工具来表达处理方法。
2020/6/29
数据需求—数据字典
• 数据字典是一个系统组织的、叙述性的数 据说明
• 效益
– 保证名字使用的一致性,避免名字重复使用和误解。 – 有助于提高系统需求、设计和实现维护过程中的可跟
➢主要作为核对清单,以说明应开发什么。而 其中对这些功能的详细说明构成了功能需求 的主要部分
➢开发人员可以方便的检查产品是否实现每一 个功能
➢用户能够在某种程度上确认业务事件和任务 列表
• 通过一致性检查确定列表是否完备
2020/6/29
功能需求举例-活动图
开始
把需求从数据库中移走
从文档中移走需求
2020/6/29
分析3:系统体系结构建模
• 效益
– 体系结构模型有助于划分系统需求 – 体系结构模型说明了系统功能的概况 – 体系结构模型有助于需求工程师找出那些涉及多个
子系统的需求
• 体系结构模型描述方式-方框图
2020/6/29
系统体系结构“标准”模式
• 客户机-服务器
– 通用服务器提供共享的系统功能
对数据流图中包含的所有元素的定义的集合构成了数据词典。它有四类 条目:数据流、数据项、文件及基本加工。在定义数据流或文件时,使用表 2-1给出的符号。将这些条目按照一定的规则组织起来,构成数据词典。
符号
=
+ [•••|•••]
{•••} m{•••}n或{•••}N
m
(•••) “•••”
••
2020/6/29
2020/6/29
系统建模
• 系统模型描述了系统的某个特殊方面,在需求文 档中对自然语言描述的系统需求加入补充信息。
• 系统模型的界定 • 需求规格说明中应该包含的高层次的模型
– 表示系统运行环境的模型 – 说明系统如何分解为子系统的体系结构模型
• 系统建模需要注意的事项
2020/6/29
需求分析前的工作
结构化分析方法是面向数据流的需求分析方法,是20世纪70年 代末由Yourdon,Constaintine及DeMarco等人提出和发展,并得到广 泛的应用。它适合于分析大型的数据处理系统,特别是企事业管理 系统。
SA法也是一种建模的活动,主要是根据软件内部的数据传递、 变换关系,自顶向下逐层分解,描绘出满足功能要求的软件模型。
表 2-1
含义
例及说明
被定义为
与 或 重复 重复 可选 基本数据元素
X=a + b 表示X由a 和 b 组成
X=[a | b] 表示X由 a或 b组成
X={a} 表示X由 0个或多个 a 组成
X=2{a}6
或
x={a}
6 2
表示重复2~5次 a
X=(a) 表示 a 可在X中出现,也可不出现
X=“a” 表示X是取值为字符a 的数据元素
2020/6/29
分析1:定义系统的边界
• 评估原始需求,定义将要开发的计算机系 统的边界。
– 确定哪些是系统需求 – 哪些是和系统相关的操作过程的需求 – 哪些在系统范围之外的需求
• 原则
2020/6/29
分析2:系统环境建模
• 环境模型是系统将要使用的语境模型,应该是最 先开发的系统模型之一。
告、中央监视、更新日志4个加 工。这层的分解是关键。
第二层:加工“中央监视”分解
第一层
1 局部监视
病员极限
3.1 开解信号 病员数据
脉搏
体温 血压
3.2
病员极限
生理信号 极限值
病员 护士
病员 数据
报警
3 中央监视
病症报告
生理信号 极限值
格式化 病员数据
3.3 产生 报警信息
报警
计算超过 极限值否
超过极限值
HTML、 ActiveX、 Script
用户界面层
ASP、 XML
应用逻辑层 数据层
输入数据
表 示 层
输出数据
请求按钮
业务处理请求和业 务处理所需的全部
输入数据
业务处理开始 数据存取请求
全部处理结束
业务处理结束
业务处理程序
SQL请求开始
数据登录/更新/读取
数
的请求
据
层
DBMS执行SQL
SQL请求结束
一、数据流图的图符
四种基本图形符号:
还有一些辅助的图例:
数据流 数据流名 箭 头
加工
加工名 圆或椭圆
数据存储
单或双杠
文件名
A C
*T
B
B
AT+
C
B A
T*
C
A C
+T
B
A C+TB NhomakorabeaB
A T
+
C
数据源点 202或0/6终/29 点
实体名
矩形框
* 与 +或
+ 互斥
举例:图书预订系统
画图步骤 :
1、确定外部实体(顾客、出版社)及输入、输出数据流(订单、出版 社订单)。
2020/6/29
从文档中找到需求引用
没有 了
还有
从文档中得到需求文本
不空
空
退出
分析6:数据需求
• 数据模型 • 数据流图(状态图、活动图) • 数据字典 • 虚拟窗口(原型界面)
2020/6/29
数据需求—数据模型
• 数据模型说明了系统所要存储的数据以及 数据之间的关系
• 提供了对数据的高级“体系结构”视图, 也可以描述信息的细节。
2020/6/29
需求分析的方法
• 绘制系统关联图 • 创建用户接口原型 • 分析需求可行性 • 确定需求的优先级别 • 为需求建立模型 (模型包括数据流图、实体关系
图、状态变换图、对话框图、对象类及交互作用图 )
• 创建数据字典 • 使用质量功能调配
2020/6/29
需求分析方法(细节)
• 采用SRS模板 • 指明需求的来源 • 为每项需求注上标号 • 记录业务规范 • 创建需求跟踪能力矩阵 • 审查需求文档 • 以需求为依据编写测试用例 • 编写用户手册 • 确定合格的标准。
踪性。
2020/6/29
数据需求—数据字典(续)
• 数据字典应具有的信息
– 模型中的实体的名字 – 名字的别名或其它变体 – 命名的实体类型 – 命名实体和为何将它引入系统模型的描述 – 对于命名实体的约束 – 指向相关实体的联接
2020/6/29
数据词典(DD)
分层数据流图只是表达了系统的“分解”,为了完整地描述这个系统, 还需借助“数据词典”(data dictionary)和“小说明”对图中的每个数据 和加工给出解释。
• 分层系统
– 系统功能通过调用更低层次所提供的功能来实现
• 基于库的系统
– 子系统通过一个共享库进行通信
• 管道系统
– 系统中的每个部件都进行一定的计算,并将结果传 给其他部件以进行进一步的操作
2020/6/29
体系结构建模举例
浏览器
HTTP请 求
HTTP应 答
WEB服 务 器
应用服务器
数据库服务器
血压、体温、 护士 脉搏 3.4
要求报告
2 生成报告
日志数据
日期
格式化 病员数据
格式化
时钟 时间
病员数据
病员日志
4 更新日志
以4个加工中最重要的加工“中央 2监020视/6/2”9 为例,进行第二层分解。
数据流图的用处
• 系统分析员用这种工具可以自顶向下分析 系统信息流程;
• 可在图上划出需要计算机处理的部分和需 要修改的部分;
2020/6/29
内容
• 需求分析概述 • 结构化需求分析方法 • 面向对象需求分析方法
2020/6/29
需求分析的过程
分类筛选 合并 排序
2020/6/29
需求分析成功的条件
甲方明确的 建设目标
乙方正确的 方法论
2020/6/29
需求分析
分析什么?
业务流程优化 关键问题
怎么分析?
结构化分析法 面向对象分析法
2020/6/29
分析5:事件列表与功能列表
• 事件就是要求系统执行某项功能的请求 • 业务事件与产品事件 • 对复杂的业务任务采用任务说明、用例说
明或数据流图等方法进行解释。 • 对复杂的功能采用数据流图、算法描述、
活动图、数学说明等进行解释
2020/6/29
事件列表与功能列表(续)
• 事件及功能列表的优点
2、确定分解顶层的加工(验证订单、汇总订单)。 3、确定使用的文件(图书目录文件、顾客档案等5个文件)。 4、用数据流将各部分连接起来,形成数据封闭。
图书目录文件
出版社档案文件
顾 订单 验证 正确
客
订单 订单
出版社
一批 订单
汇总 订单
订单 出 版 社
顾客档案 待处理订单文件 订货存根文件
加工和文件还有 其他一些图例:
• 模型:E-R模型、概念模型 • 数据模型的优缺点
2020/6/29
数据需求—数据模型
客人 入住 客房状态 客房
2020/6/29
服务
服务类别
数据流图
数据流图(Data Flow Diagram,DFD)是描述系统中数据流程的图 形工具,它标识了一个系统的逻辑输入和逻辑输出,以及把逻辑输入转 换为逻辑输出所需的加工处理。
连接符
X=1 • • 8 表示X可取1到8中的任意一个 值
数据流条目
数据词典类型
给出了DFD图中数据流的定义,通常列出该数据流的各组成数据项。
例如,数据流“乘客名单”由若干“乘客姓名”、“单位名”和“等级 ”组成,则词典中的“乘客名单”条目是:
乘客名单={乘客姓名+单位名+等级}
又如, 报名单=姓名+单位名+年龄+性别+课程名
• 结构化方法是一种系统分析和设计的方 法,包括定义、开发和确认系统模型过 程中用到的表示法、指南和规则。
• 功能需求分析与建模方法
– 功能需求说明数据的用途,以及如何记录、 计算、转换、修改及传输数据等。
• 数据需求分析与建模方法
– 数据需求指定系统的存储数据
2020/6/29
结构化分析方法
结构化开发方法(Structured Developing Method) 是现有的软 件开发方法中最成熟、应用最广泛的方法,主要特点是快速、自然 和方便。结构化开发方法由结构化分析方法(SA法)、结构化设计 方法(SD法)及结构化程序设计方法(SP法)构成的。
➢ 说明产品的范围
• 优点:
➢ 上下文图为开发人员概括了所有的接口,在开发中 或开发后,方便地验证是否已处理了所有接口
➢ 用户能不费力地理解上下文图,并发现遗漏的接口 。
2020/6/29
系统环境建模案例
• 邮件传阅系统环境建模
– 企业OA办公系统 – 图书管理系统 – 操作管理员 – 一般工作人员
2020/6/29
更新病历
监护系统分层DFD图
医院病房监护系统分层DFD图
顶层确定了系统的范围,其外部实体为病员和护士。
顶层
病员 护士
2020/6/29
病员监 护系统 要求报告
病症报告 报警
病员日志
护士
医院病房监护系统顶层
监护系统分层DFD图
医院病房监护系统分层DFD图
第一层分解为局部监视、生成报
• 需求(系统)分析与建模
– 理解真实世界中的问题和用户的需要并提出 满足这些需要的解决方案的过程。
• 分析前的准备
– 确认系统的参与者 – 确认系统的运行环境 – 确认系统的约束
2020/6/29
内容
• 需求分析概述 • 结构化需求分析方法 • 面向对象需求分析方法
2020/6/29
需求分析与建模—结构化方法
编号
加工名
编号
加工名
加工
注意20:20/标6/29注各加工框及数据流名称。
文件名
文件名
文件
实例:医院病房监护系统
监视病情
产生 病情报告
经过初步的需求分析,得到系统功能要求: 1、监视病员的病症(血压、体温、脉搏等)。 2、定时更新病历。 3、病员出现异常情况时报警。 4、随机地产生某一病员的病情报告。
• 效益:记录必须说明接口的外部系统 • 模型包括:
– 和正在说明的系统直接交互的其他系统 – 其他有可能和本系统共存并发生交互的系统 – 系统所在的业务过程(定义涉及的行为、它们的输入
和输出、负责这些过程的人以及支持这些过程的软件 )
2020/6/29
系统环境建模-上下文图
• 作用:
➢ 上下文图能很好地概括产品的必要接口,初步确新 产品包含了哪些内容,产品之外又包含哪些内容。 即说明产品及其环境的图示
文件条目
给出某个文件的定义,文件的定义通常是列出文件记录的组成数据流 。例如,某销售系统的订单文件:
2020/6/29
SA法的基本思想
结构化分析方法的基本思想是“分解”和“抽象”。
分解:对于一个复杂的系统,为 了将复杂性降低到可以掌握的程度, 可以把大问题分解成若干小问题, 然后分别解决(如右图)。
x
1
3
2
1.1
1.2
1.3
2.1 2.3
2.2
1.1 1.3
抽象:分解可以分层进行,即先考虑问题最本质的属性,暂把细节略 去,以后再逐层添加细节,直至涉及到最详细的内容,这种用最本质的 属性表示一个系统的方法就是“抽象”。