3.3 需求建模模型的作用建模的原因:
在建模过程中了解系统
通过抽象降低复杂性
有助于回忆所有的细节
有助于开发小组间的交流
有助于与用户的交流
为系统的维护提供文档模型化或模型方法是通过抽象、概括和一般化,把研究的对象或问题转化为本质(关系或结构)相同的另一对象或问题,从而加以解决的方法。模型化方法要求所建立的模型能真实反映所研究对象的整体结构、关系或某一过程、
某一局部、某一侧面的本质特征和变化规律。
模型的类型
数学模型
描述模型
图形模型需求分析的步骤当前系统目标系统物理模型逻辑模型逻辑模型物理模型模型化 抽象化具体化 实例化怎么做做什么当前系统目标系统需求定义逻辑模型和物理模型
模型是对对象系统的形式化的特征抽象,概括性或近似地表示;
构造模型的过程是一个抽象、分析的过程。
对象系统模型系统抽象 (映射)
模型应用模型构造的过程逻辑模型 物理模型
(本质模型、概念模型 ) (实施模型、技术模型 )
现行系统目标系统描述重要的业务功能,无论系统是如何实施的。
描述现实系统是如何在物理上实现的。
描述新系统的主要业务功能和用户新的需求,无论系统应如何实施。
描述新系统是如何实施的(包括技术)。
需求分析过程示意学生
(1) 通过对现实环境的调查,
获得当前系统的物理模型学生购书申请购书单发票领书单 书
107
张教务科
206
王会计室
206
李出纳员
303
赵教材科学生购买教材的物理模型需求分析过程示意
(2) 去掉具体模型中的非本质因素,
抽 象 出当前系统的逻辑模型学生购买教材的逻辑模型学生学生购书申请购书单发票领书单 书审查有效性 开发票开领书单 发书需求分析过程示意
(3) 分析当前系统与目标系统的差别,
建立目标系统的逻辑模型计算机售书系统的逻辑模型学生学生购书单 发票 领书单审查并开发票开领书单无效书单分析阶段中常用的模型(逻辑模型)
数据流图( DFD)?
实体 ― 联系图( ERD )?
类图?
实例图?
时序图?
状态图?
协作图?
事件列表?
数据流定义?
数据元素定义?
……
SafeHomede的第 1层 DFD
控制面板与用户交互 控制面板显示密码电话号码拨音传感器状态显示信息配置请求用户命令和数据配置系统警铃电话线传感器配置信息显示信息和状态监控传感器激活/不激活系统传感器信息密码处理 警告类型检验 id信息开始停止 状态信息客户保险销售人员签订一份保险单销售统计客户统计使用用例图举例
状态图例:
状态 1
Do:活动 1 状态 2.…...
事件 1[条件 1] / 动作 1 结束事件初始事件空闲 可视菜单左边按钮按下 /显示弹出菜单左边按钮弹起 /擦除弹出菜单光标移动 /高亮菜单项弹出菜单动作接电话的顺序图,
受话者 交换机 远程交换机 受话者拿起话筒听通话声拨号码
......
铃响信号 铃响铃响停止信号拿起话筒铃响停止
<10
d
e
a
b
c
{b-a<1}
{e-d<5}
{c-b<10}
路径合作图举例打印机忙保存打印文件队列计算机打印机空闲 打印文件 打印机打印服务器打印文件电梯 状态图举例在一楼 上升停滞下降回到一楼回一楼想要到达楼层想要到达楼层电梯行程开始 向上向上向下
F1:航班信息文件 = {航空公司名称+航班号
+起点+终点+日期 +起飞时间+降落时间 }
航空公司名称= 2{字母 }4
航班号= 3{十进制数字 }3
字母=,A”…,Z”
十进制数字=,0”…,9”
起点=终点= 1{汉字 }10
起飞时间=降落时间=时+分时=,00”…,23”
分=,00”…,59”
日期=年+月+日年= [2000| 2001| 2002| 2004]
月=,01”…,12”
日=,01”…,31”
§ 3.4 分析建摸方法
结构化分析 (传统建模方法 )
面向对象分析
§ 3.4.1 结构化分析方法
(Structured Analisys,SA)
基于数据流技术的分析方法需求获取应遵循的三条基本原则:
分解
抽象
投影分析模型的主要目标
描述用户需要
建立创建软件设计的基础
定义软件完成后可被确认的一组需求分析模型的结构数据字典数据流图E-R图状态 变 迁图加工规约控制规约数据对象描述分析模型的元素
数据字典 (DD),模型核心 (中心库 )
E-R图 (ERD):
数据流图 (DFD)
指明数据在系统中移动时如何被变换 ;
描述对数据流进行变换的功能 ;
DFD中每个功能的描述包含在加工规约
(小说明 )。
状态变迁图 (STD)
指明作为外部事件的结果,系统将如何动作。
3.4.3 数据建模
E-R图是数据建模的基础将分析模型转换为软件设计数据字典数据流图
E-R图状态变迁图加工规约控制规约数据对描述象数 据 设 计体系结构设计接口设计过程设计分析模型 设计模型将设计模型金字塔倒立的后果是什么?
数 据 设 计体系结构设计接口设计过程设计讨论要点
SA方法建立功能模型的描述方法
DFD
DD
其他描述方法
3.4.4 功能建模和信息流基于计算机的系统输入信息信息流模型输出信息 外部实体外部实体外部实体 输入信息外部实体外部实体输出信息输出信息一,数据流图
(DFD,Data Flow Diagram)
描述逻辑模型的图形工具,
表示数据在系统内的变化。
实例 考务处理系统功能
(1)对考生送来的报名单进行检查 ;
(2)对合格的报名单编好准考证号后将准考证送给考生,并将汇总后的考生名单送给阅卷站 ;
(3)对阅卷站送来的成绩单进行检查,并根据考试中心制定的合格标准审定合格者 ;
(4)制作考生通知单 (含成绩及合格 /不合格标志 )送给考生 ;
(5)按地区进行成绩分类统计和试题难度分析,产生统计分析表。
考务处理系统的分层 DFD
顶层数据流图考生考务处理系统考试中心阅卷站不合格报名单报名单准考证考生通知单 成绩清单合格标准错误成绩清单考生名单统计分析表登记报名单报名单准考证
1
统计成绩
2不合格报名单考生通知单成统计分析表
0层 数据流 图考生名册绩清单合格标准考生名单成绩 清单错误一层数据流图 (a)
检查报名单报名单准考证1.1 编准考证号
1.2不合格报名单考生名册考生名单合格报名单登记考生
1.3
一层数据流图 (b)
检查成绩清单
2.1 审定合格者
2.2
考生名册正确成绩清单制作通知单
2.3分析统计成绩
2.4分析试题难度
2.5
试题得分清单考生通知单难度分析表合格标准分类统计表成绩清单错误成绩清单 经审定的成绩清单
DFD可以用来表示一个系统或软件在任何层次上的抽象。 较大型软件系统 DFD分成多层 (子图、
父图概念 ),可以表示数据流和功能的进一步的细节。
S
21
3
2.22.1
2.3
3.1 3.2
顶层
(不编号)
0层
1层数据流和控制流举例
(使用 Ward和 mellor符号)
监控固件和操作接口每个固件状态 动作警告机器人初始化控制操作命令部件状态缓冲器位置命令开始 /停止处理机器人命令机器人命令文件操作设置处理活动记录机器人动作位串数据和控制模型的关系
DFD
加工规约加工模型
DFD
控制规约控制模型数据输出数据条件数据输入控制输入控制输出加工激活者
SafeHomede控制面板与用户交互
SAFEHOME
ARMED POWER
01 1 2 3
4 5 6
7 8 9
* 0 #
OFF ARAY STAY
MAX TEST BYPASS
INSTANT CODE CHIME
READY
panic
alarm
check
fire
away
stay
instant
bypass
not ready
SafeHomede的第 0层DFD
SafeHomede
软件系统用户命令和数据显示信息控制面板传感器 传感器 状态警铃电话线警告类型电话号码拨音控制面板显示
SafeHomede的第 1层 DFD
控制面板与用户交互 控制面板显示密码电话号码拨音传感器状态显示信息配置请求用户命令和数据配置系统警铃电话线传感器配置信息显示信息和状态监控传感器激活/不激活系统传感器信息密码处理 警告类型检验 id信息开始停止 状态信息监控传感器的第 2层 DFD
电话号码拨音传感器状态配置数据显示格式配置信息 产生警告信息拨号评估设置传感器信息读传感器警告类型传感器 id类型传感器 id
类型定位
SafeHomede的第一层CFD
控制面板与用户交互 控制面板显示显示活动状态(完成、在处理中)
配置系统警铃电话线传感器配置信息显示信息和状态监控传感器激活/不激活系统警告信号密码处理传感器事件警告状态超时闪烁标志开/关切换
SafeHomede的状态变迁图读用户输入 超时监视系统状态传感器事件行为显示用户反馈与,用户交互,有关开关 /切换与,监视 &控制系统,有关显示活动状态与,用户交互,有关传感器事件与,显示信息 &状态,有关与,监视 &控制系统,有关传感器事件传感器事件与,监视 &控制系统,有关传感器事件与,显示信息
&状态,有关闪烁与,显示信息 &状态,有关二,数据字典 (DD,DataDictionary)
DD是对所有与系统相关的数据元素的一个有组织的列表,以及 精确的、严格的定义,使得用户和系统分析员对于输入、输出
、存储成分和中间计算有共同的理解数据字典的作用
DFD中的数据流、数据存储表示某个有组织的数据集合,它们要由 SA
的其他描述工具 -需求字典 (数据字典 )
来描述,包括:
词条描述
数据结构描述
加工逻辑说明
DD中数据结构的描述方式
定义式
Warnier图
巴科斯范式( BNF)
F1:航班信息文件 = {航空公司名称+航班号
+起点+终点+日期 +起飞时间+降落时间 }
航空公司名称= 2{字母 }4
航班号= 3{十进制数字 }3
字母=,A”…,Z”
十进制数字=,0”…,9”
起点=终点= 1{汉字 }10
起飞时间=降落时间=时+分时=,00”…,23”
分=,00”…,59”
日期=年+月+日年= [2000| 2001| 2002| 2004]
月=,01”…,12”
日=,01”…,31”
重复项,起点=终点= 1{汉字 }10
航空公司名称= 2{字母 }4
航班号= 3{十进制数字 }3
组合项,日期=年+月+日起飞时间=降落时间=时+分选择项,年= [2000| 2001| 2002| 2004]
原数据项,字母=,A”…,Z”
十进制数字=,0”…,9”
时=,00”…,23”
分=,00”…,59”
月=,01”…,12”
日=,01”…,31”
定义式中使用的符操作符 含义描述
= 定义为
+ 与 (顺序结构 )
{,..} 重复 (循环结构 )
〔,.|,.〕 或 (选择结构 )
〔,.,.,〕
(,.,) 任选
m..n 界域
*,..,* 注释符限制重复次数举例,
{3 5 或 53{ } 表示允许重复 3-5次{ }
3 3 或 33{ } 表示恰好重复 3 次{ }
{ }
{ }
1 表示至少出现 1 次表示允许重复 0至任意 次数据流条目给出 DFD中某个数据流的定义,
通常包括:
数据流标识
数据流来源
数据流去向
数据流的数据组成
流动属性描述:频率、数据量购书单 发票 领书 单审查并开发票开领书单无效书单学生1 2
各班学生用 书 表举例:
学生教材存量表数据流条目说明举例数据流名,发票别名,无简述,学生购书时填写的项目来源,学生去向,加工 1,审查并开发票”
组成,(学号 )+姓名+{书号+数量}
数据流量,1000次 /周高峰值,开学期间 1000次 /天数据存储条目 (数据文件词条 )
对某个文件的定义,包括:
文件名
描述
数据结构
数据存储方式
关键码
存取频率和数据量
安全性要求数据存储条目说明举例文件名,库存记录别名,无简述,存放库存所有可供货物的信息组成,货物名称+编号+生产厂家
+单价+库存量组织方式,索引文件,以货物编号为关键字查询要求,要求能够立即查询数据项条目 (数据元素词条 )
不可再分解的数据单位,包括:
名称
描述
数据类型
长度 (精度 )
取值范围及缺省值
计量单位
相关数据元素及数据结构数据项条目说明举例数据项名,货物编号别名,G-No,G-num
简述,本公司的所有货物的编号类型,字符串长度,10
取值范围及含义,
第 1位,[J| G] (进口 /国产 )
第 2~4位,LB01.,LB29 (类别 )
第 5~7位:,A00”..“A99” (规格 )
第 8~10位:,001”..“999”(品名编号 )
F1:航班信息文件 = {航空公司名称+航班号
+起点+终点+日期 +起飞时间+降落时间 }
航空公司名称= 2{字母 }4
航班号= 3{十进制数字 }3
字母=,A”…,Z”
十进制数字=,0”…,9”
起点=终点= 1{汉字 }10
起飞时间=降落时间=时+分时=,00”…,23”
分=,00”…,59”
日期=年+月+日年=,00”…,99”
月=,01”…,12”
日=,01”…,31”
存折 =户名+所号+帐号+开户日期+性质
+(印密)+ 1{存取行 }50
户名= 2{字母 }24
所号=,001”..“999”( 注:储蓄所编码,
规定三位数字 )
帐号=,00000001”..“99999999”
(注:帐号规定由八位数字组成 )
开户日期=年+月+日性质=,1”..“6”( 注:,1” 表示普通户,
,5” 表示工资户等 )
印密=,0”( 注:印密在存折上不显示 )
存取行=日期+(摘要)+指出+存入+余额
+操作+复核年= [2001| 2002| 2003| 2004]
月=,01”..“12”
日=,01”..“31”
摘要= 1{字母 }4(注:表明该存取是存?是取?
还是换? )
支出=金额 (注,金额规定不超过 9999999.99元 )
存入=金额余额=金额金额=,0000000.01”..“9999999.99”
操作=,00001”..“99999”
复核=,00001”..“99999”
字母= [“a”..“z” |,A”..“Z”]
购书单 缺书 单销售 采购
1 2
第二层 DFD(0层 ) 教材购销系统教材存量表学生
F1
缺书登记表F2
书库保管员进书通知教材入库信息领书单
DF01-10 DF20-02
销售 采购
1.0 2.0
第二层 DFD(0层 ) 教材购销系统教材存量表学生
F1
缺书登记表F2
书库保管员
DF02-20
DF20-10
DF10-01
1 2
XSMD CGMD
DD数据流条目说明举例
〔 图号 〕
DF01-10 /*有效购书单 */
DF01-10 = 学号+姓名
+ {书号+数量 }
加工条目 (加工逻辑说明 )
加工类条目即数据处理描述,也称为小说明 。描述实现加工的策略而不是实现加工的细节。
小说明可认为是 DD的组成部分。
也可在 DD中定义只说明每个加工的组成 (每个处理分解成多少小处理 ),而在小说明中详细描述它的处理逻辑,
加工条目 (加工逻辑说明 )
加工逻辑名,登记报名单编号,1.0
激活条件:收到报名单加工逻辑,{1.1 检查报名单
+ 1.2 编准考证号
+ 1.3 登记考生 }
执行频率,2000次 /日
DD定义方法
找出所有数据元素
(数据流,数据存储,数据项,加工 )
对数据项分类
作结构定义
排序
DD的分类
DD中的命名 (遵守系统开发规范规定 )
DD的实现
(1)人工方法
(2)自动方法 (利用字典管理程序 )
DD应具特点
(1)通过名字可方便查阅数据定义
(2)无冗余
(3)易更新修改
3.小说明 (加工逻辑说明的另一种形式 )
描述的内容:
(1) 处理逻辑描述基本加工如何把输入数据流变化为输出数据流的加工原则,不涉及具体处理方法。
(2) 执行条件
(3) 输入
(4) 输出
(3) 优先级
(4) 执行频率
(5) 出错处理对策小说明举例加工名,分类采购 (CG111MD)
编号,1.1.1
加工激活条件,受到图书采购员分类采购操作命令加工逻辑,(1) 1.1.1.1 预定图书
(2) 1.1.1.2 外采图书
(3) 1.1.1.3 赠送图书执行频率,随时小说明举例处理名,月票额统计 (MHCW713MD)
编号,7.1.3
激活条件,收到每日售票额信息处理逻辑,1 统计月保险金总合月保险金信息 =每日日保险金信息之和
2 统计月合计月合计信息 =每日日合计信息之和执行频率,1次 /月描述加工逻辑的工具:
结构化语言
判定表
判定树结构化语言介于自然语言和形式语言之间的语言结构化语言的特点:
无确定语法
可分层、嵌套处理名,核实订票处理 (MHGP3200MD)
编号,3.2
激活条件,收到取订票信息处理逻辑,1读订票旅客信息文件
2搜索此文件中是否有与输入信息中姓名及身份证号相符的项
IF 有
THEN 判断余项是否与文件中信息相符
IF 是 THEN 输出已订票信息
ELSE 输出未订票信息
ELSE 输出未订票信息执行频率,实时判定表 (决策表 )
描述多条件、多目标动作的形式化工具判定表举例 (计算机票折扣率 )
旅游时间订 票 量折 扣 量
7- 9,12月
≤20 ≤20> 20 > 20
15%5% 20% 30%
条件类别 四种条件组合操作 条件组合下操作的执行
1- 6,10,11月处理名,计算折扣率 (MHGP534MD)
编号,5.3.4
激活条件,收到预订票信息处理逻辑,计算折扣率执行频率,实时旅游时间订 票 量折 扣 量
7- 9,12月 1- 6,10,11月
≤20 ≤20> 20 > 20
15%5% 20% 30%
判定树 (Decision 决策树 )
条件 1 条件 2 结果计 7- 9,订票量 >20,15%
算 12月 订票量 ≤ 20,5%
折扣 1- 6,订票量 >20,30%
量 10,11月 订票量 ≤ 20,5%
二,结构化分析实施步骤
1,确定系统边界,画出系统环境图
2,自顶向下,画出各层数据流图
3,定义数据字典
4,定义小说明三,需求规格说明书 (SRS)
(Software Requirement Specification)
需求分析阶段要完成的文档。
SRS的作用:
开发者与用户间事实上的技术合同书
开发者下一步设计和编码的基础
测试验收目标系统的依据
SRS大纲(模板)
引言
任务概述 (项目概述 )
数据描述 (DFD,DD)
功能描述
接口
性能需求
属性
其它需求三,需求验证
(1) 正确性
(2) 无二义性
(3) 完整性
(4) 可验证性
(5) 一致性
(6) 可理解性
(7) 可修改性
(8) 可被跟踪性
(9) 可跟踪性
(10)设计无关性
(11)注释需求文档的陈述与改进举例( 1)
产品必须在固定的时间间隔内提供状态消息,并且每次时间间隔不得小于 60
秒 。
后台任务管理器 (BTM)应该在用户界面的指定区域显示状态消息。
a,在 后台任务进程启动之后,消息必须每隔 60(?10)秒更新一次,
并且保持连续的可见性。
b,如果正在正常处理后台任务进程,那么后台任务管理器 (BTM)
必须显示后台任务进程已完成的百分比。
c,当完成后台任务时,后台任务管理器 (BTM)必须显示一个,已完成,的消息。
d,如果后台任务中止执行,那么后台任务管理器 (BTM)必须显示一个出错信息。
需求不完整,
导致需求不可验证改进需求文档的陈述与改进举例( 2)
产品必须在显示和隐藏非打印字符之间进行瞬间切换 。
用户在编辑文档时,
通过激活特定的机制,
可以在显示和隐藏所有HTML标记之间进行切换

需求不可行、不完整、
不确定性,导致需求不可验证改进