SlideShare a Scribd company logo
1 of 23
第 3 章 重点回顾
   需求分析的任务 : what functions
    + other requirements
   获取需求的方法
   分析建模与规格说明 : 数据、功能
    和行为模型
       实体 - 联系图 & 数据规范化
       状态转换图其他图形工具
   验证软件需求 : 一致性、完整性、
    现实性和有效性
思考题
   你认为课堂上讲的这些需求分析技术是否
    有效和可行 ? 如不可行你认为应怎样进
    行需求分析 ?
   如果你是一名软件项目经理,你如何组织
    和开展需求分析工作 ( 包括人员组织、方
    法和技术的采用、结果等 )
   需求分析对软件开发的意义何在,有何作
    用?
   请认真理解和领会各种需求分析技术,分
    析各种技术的特点以及在需求分析和描述
    中的作用?
第 4 章



   形式化说明技术
第 4章      形式化说明技术
4.1   概述
4.2   有穷状态机
4.3   Petri 网
4.4   Z 语言
4.5   小结
教学目标

掌握形式化、非形式化方法的定义、优缺点;
了解:有穷状态机、 Petri 网、 Z 语言概念和
 用法;

重点和难点
重点:形式化说明与非形式化说明的比较
难点:对各种形式化说明技术的理解
4.1 概述

什么是形式化方法?
 非形式化 : 自然语言描述需求规格说明

 半形式化 : 数据流图或实体 - 联系图建
  立模型
 形式化 : 描述系统性质的基于数学的技
  术
4.1.1 非形式化方法的缺点

非形式化方法描述系统规格说明书,缺
  点有:
 矛盾:指一组相互冲突的陈述。

 二义性:指读者可以用不同方式理解的
  陈述。
 含糊性:笼统的陈述,没有给出任何有
  用的信息。
 不完整性:如,缺乏对细节的描述。

 抽象层次混乱:指在非常抽象的陈述中
  混进了一些关于细节的低层次陈述。
4.1.2 形式化方法的优点

基于数学的形式化方法优点有:
 数学能够简洁准确地描述物理现象、对
  象或动作的结果,因此比自然语言更适
  合于描述详细的需求,避免二义性,并
  能够验证,从而发现矛盾和不完整性。
 可以在不同的软件工程活动之间平滑地
  过渡。
 提供了高层确认的手段。
4.1.3 应用形式化方法的准则

    提问:既然形式化方法有这么
多优点,是否应该在实际工作中完全采
用这种方法?为什么?什么情况下采用
形式化方法?
4.1.3 应用形式化方法的准则
   应该选用适当的表示方法。
   应该形式化,但不要过分形式化。
   应该估算成本。
   应该有形式化方法顾问随时提供咨询。
   不应该放弃传统的开发方法。
   应该建立详尽的文档。
   不应该放弃质量标准。
   不应该盲目依赖形式化方法。
   应该测试、测试再测试。
   应该重用。
4.2 有穷状态机

什么是有穷状态机?
 一种用简单格式来描述规格说明的方法

 一个保险箱上装了一个复合锁,锁有三
  个位置,分别标记为 1 、 2 、 3 ,转
  盘可向左 (L) 或向右 (R) 转动。这样
  ,在任意时刻转盘都有 6 种可能的运
  动,即 1L 、 1R 、 2L 、 2R 、 3L 和
  3R 。保险箱的组合密码是
  1L 、 3R 、 2L ,转盘的任何其他运动
  都将引起报警。
图 4.1 保险箱的状态转换图
保险箱的有穷状态机的各部分
状态集 J :{保险箱锁定, A , B ,保
 险箱解锁,报警}。
输入集 K :{ 1L , 1R , 2L , 2R ,
 3L , 3R }。
转换函数 T :如表 4.1 所示。
初始态 S :保险箱锁定。
终态集 F :{保险箱解锁,报警}。
有穷状态机优点:
易于书写、易于验证,而且可以比较容
 易地把它转换成设计或程序代码。
   数据结构的描述
    符 号              含 义         举
     例
    =             被定义为
     +              与                 x=
    a+ b
[...,...] 或 [...|...] 或    x = [a ,
   b] , x = [a | b]
{ ... } 或 m{...}n 重复       x = {a} ,
   x = 3{a}8
(...)                 可选        x = (a)
“...”        基本数据元素        x = “a”
   电话号码 =[ 校内电话号码 | 校外电话号码 ]
   校内电话号码 = 非零数字 + 3 位数字           // 后面
    继续定义
   校外电话号码 =[ 本市号码 | 外地号码 ]
   本市号码 = 数字零 +8 位数字
   外地号码 = 数字零 +3 位数字 +8 位数字
   非零数字 =[1|2|3|4|5|6|7|8|9]
   数字零= 0
   3 位数字= 3{ 数字 }3       //3 至 3 个数字
   8 位数字 = 非零数字 +7 位数字
   7 位数字 =7{ 数字 }7
   数字= [0|1|2|3|4|5|6|7|8|9]
作业及解答(第 3 章)
3-3 银行计算机储蓄系统的工作过程大致如下:储户
  填写的存款单或取款单由业务员键入系统,如果是
  存款则系统记录存款人姓名、住址 ( 或电话号
  码 ) 、身份证号码、存款类型、存款日期、到期日
  期、利率及密码 ( 可选 ) 等信息,并印出存单给储
  户;如果是取款而且存款时留有密码,则系统首先
  核对储户密码,若密码正确或存款时未留密码,则
  系统计算利息并印出利息清单给储户。
 请用数据流图描绘本系统的功能,并用实体 - 联系
 图描绘系统中的数据对象。
作业及解答(第 3 章)


E1                             E1
     F1存款单   P0储蓄系统     F3存单
储户   F2取款单            F4利息清单   储户


         F5存款信息 F5存款信息


             D1存款信息
P1               P2
 E1       F1存款单
           F7密码    记录存款信息            打印存单
 储户
                                       F3存单
                   F5存款信息     F5存款信息

                                       E1
                   D1存款信息              储户

   F7密码                                F4利息
F2取款单     F5存款信息          F4利息         P5
                      F4利息
                                     打印利息清单
           P3                P4
          核算密码     F6取款信息            F8储蓄利率
                            计算利息

  E2                P6
          F8储蓄利率            F8储蓄利率   D2存款利率
 业务员               设置利率
作业及解答(第 3 章)

                  P3.1
       F2取款单             F5存款信息
E1              输入取款信息
储户
       无效取款信息
                         D1存款信息


                 F7密码
F7密码     P3.2
        密码校验
作业及解答(第 3 章)
   ER 模型
       本问题中共有两类实体,分别是“储户”和“储蓄所”
        ,在它们之间存在“存取款”关系。因为一位储户可以
        在多家储蓄所存取款,一家储蓄所拥有多位储户,所以
        “存取款”是多对多( M:N )关系。
       储户的属性主要有姓名、住址、电话号码和身份证号码
        ,储蓄所的属性主要是名称、地址和电话号码,而数额
        、类型、到期日期、利率和密码则是关系类型存取款的
        属性。
作业及解答(第 3 章)
4.3 Petri 网

    Petri 网是一种系统的数学和图形
 的描述与分析工具。
        可以有效描述并发活动,适合
 对具有并发、异步、分布、不确定性和
 / 或随机性的信息处理系统建模,以得
 到系统结构和动态行为方面的信息。
4.4 Z 语言

  需要具备集合论、函数、数理逻辑
  等方面的知识。包括 4 个部分:
 给定的集合、数据类型及常数

 状态定义

 初始状态

 操作

More Related Content

More from 浒 刘

软件工程 第十一章
软件工程 第十一章软件工程 第十一章
软件工程 第十一章浒 刘
 
Se2009 ch8
Se2009 ch8 Se2009 ch8
Se2009 ch8 浒 刘
 
软件工程 第七章
软件工程 第七章软件工程 第七章
软件工程 第七章浒 刘
 
软件工程 第五章
软件工程 第五章软件工程 第五章
软件工程 第五章浒 刘
 
软件工程 第二章
软件工程 第二章软件工程 第二章
软件工程 第二章浒 刘
 
软件工程 第一章
软件工程 第一章软件工程 第一章
软件工程 第一章浒 刘
 

More from 浒 刘 (6)

软件工程 第十一章
软件工程 第十一章软件工程 第十一章
软件工程 第十一章
 
Se2009 ch8
Se2009 ch8 Se2009 ch8
Se2009 ch8
 
软件工程 第七章
软件工程 第七章软件工程 第七章
软件工程 第七章
 
软件工程 第五章
软件工程 第五章软件工程 第五章
软件工程 第五章
 
软件工程 第二章
软件工程 第二章软件工程 第二章
软件工程 第二章
 
软件工程 第一章
软件工程 第一章软件工程 第一章
软件工程 第一章
 

Se2009 ch4

  • 1. 第 3 章 重点回顾  需求分析的任务 : what functions + other requirements  获取需求的方法  分析建模与规格说明 : 数据、功能 和行为模型  实体 - 联系图 & 数据规范化  状态转换图其他图形工具  验证软件需求 : 一致性、完整性、 现实性和有效性
  • 2. 思考题  你认为课堂上讲的这些需求分析技术是否 有效和可行 ? 如不可行你认为应怎样进 行需求分析 ?  如果你是一名软件项目经理,你如何组织 和开展需求分析工作 ( 包括人员组织、方 法和技术的采用、结果等 )  需求分析对软件开发的意义何在,有何作 用?  请认真理解和领会各种需求分析技术,分 析各种技术的特点以及在需求分析和描述 中的作用?
  • 3. 第 4 章 形式化说明技术
  • 4. 第 4章 形式化说明技术 4.1 概述 4.2 有穷状态机 4.3 Petri 网 4.4 Z 语言 4.5 小结
  • 5. 教学目标 掌握形式化、非形式化方法的定义、优缺点; 了解:有穷状态机、 Petri 网、 Z 语言概念和 用法; 重点和难点 重点:形式化说明与非形式化说明的比较 难点:对各种形式化说明技术的理解
  • 6. 4.1 概述 什么是形式化方法?  非形式化 : 自然语言描述需求规格说明  半形式化 : 数据流图或实体 - 联系图建 立模型  形式化 : 描述系统性质的基于数学的技 术
  • 7. 4.1.1 非形式化方法的缺点 非形式化方法描述系统规格说明书,缺 点有:  矛盾:指一组相互冲突的陈述。  二义性:指读者可以用不同方式理解的 陈述。  含糊性:笼统的陈述,没有给出任何有 用的信息。  不完整性:如,缺乏对细节的描述。  抽象层次混乱:指在非常抽象的陈述中 混进了一些关于细节的低层次陈述。
  • 8. 4.1.2 形式化方法的优点 基于数学的形式化方法优点有:  数学能够简洁准确地描述物理现象、对 象或动作的结果,因此比自然语言更适 合于描述详细的需求,避免二义性,并 能够验证,从而发现矛盾和不完整性。  可以在不同的软件工程活动之间平滑地 过渡。  提供了高层确认的手段。
  • 9. 4.1.3 应用形式化方法的准则 提问:既然形式化方法有这么 多优点,是否应该在实际工作中完全采 用这种方法?为什么?什么情况下采用 形式化方法?
  • 10. 4.1.3 应用形式化方法的准则  应该选用适当的表示方法。  应该形式化,但不要过分形式化。  应该估算成本。  应该有形式化方法顾问随时提供咨询。  不应该放弃传统的开发方法。  应该建立详尽的文档。  不应该放弃质量标准。  不应该盲目依赖形式化方法。  应该测试、测试再测试。  应该重用。
  • 11. 4.2 有穷状态机 什么是有穷状态机?  一种用简单格式来描述规格说明的方法  一个保险箱上装了一个复合锁,锁有三 个位置,分别标记为 1 、 2 、 3 ,转 盘可向左 (L) 或向右 (R) 转动。这样 ,在任意时刻转盘都有 6 种可能的运 动,即 1L 、 1R 、 2L 、 2R 、 3L 和 3R 。保险箱的组合密码是 1L 、 3R 、 2L ,转盘的任何其他运动 都将引起报警。
  • 13. 保险箱的有穷状态机的各部分 状态集 J :{保险箱锁定, A , B ,保 险箱解锁,报警}。 输入集 K :{ 1L , 1R , 2L , 2R , 3L , 3R }。 转换函数 T :如表 4.1 所示。 初始态 S :保险箱锁定。 终态集 F :{保险箱解锁,报警}。 有穷状态机优点: 易于书写、易于验证,而且可以比较容 易地把它转换成设计或程序代码。
  • 14. 数据结构的描述 符 号 含 义 举 例 = 被定义为 + 与 x= a+ b [...,...] 或 [...|...] 或 x = [a , b] , x = [a | b] { ... } 或 m{...}n 重复 x = {a} , x = 3{a}8 (...) 可选 x = (a) “...” 基本数据元素 x = “a”
  • 15. 电话号码 =[ 校内电话号码 | 校外电话号码 ]  校内电话号码 = 非零数字 + 3 位数字 // 后面 继续定义  校外电话号码 =[ 本市号码 | 外地号码 ]  本市号码 = 数字零 +8 位数字  外地号码 = 数字零 +3 位数字 +8 位数字  非零数字 =[1|2|3|4|5|6|7|8|9]  数字零= 0  3 位数字= 3{ 数字 }3 //3 至 3 个数字  8 位数字 = 非零数字 +7 位数字  7 位数字 =7{ 数字 }7  数字= [0|1|2|3|4|5|6|7|8|9]
  • 16. 作业及解答(第 3 章) 3-3 银行计算机储蓄系统的工作过程大致如下:储户 填写的存款单或取款单由业务员键入系统,如果是 存款则系统记录存款人姓名、住址 ( 或电话号 码 ) 、身份证号码、存款类型、存款日期、到期日 期、利率及密码 ( 可选 ) 等信息,并印出存单给储 户;如果是取款而且存款时留有密码,则系统首先 核对储户密码,若密码正确或存款时未留密码,则 系统计算利息并印出利息清单给储户。 请用数据流图描绘本系统的功能,并用实体 - 联系 图描绘系统中的数据对象。
  • 17. 作业及解答(第 3 章) E1 E1 F1存款单 P0储蓄系统 F3存单 储户 F2取款单 F4利息清单 储户 F5存款信息 F5存款信息 D1存款信息
  • 18. P1 P2 E1 F1存款单 F7密码 记录存款信息 打印存单 储户 F3存单 F5存款信息 F5存款信息 E1 D1存款信息 储户 F7密码 F4利息 F2取款单 F5存款信息 F4利息 P5 F4利息 打印利息清单 P3 P4 核算密码 F6取款信息 F8储蓄利率 计算利息 E2 P6 F8储蓄利率 F8储蓄利率 D2存款利率 业务员 设置利率
  • 19. 作业及解答(第 3 章) P3.1 F2取款单 F5存款信息 E1 输入取款信息 储户 无效取款信息 D1存款信息 F7密码 F7密码 P3.2 密码校验
  • 20. 作业及解答(第 3 章)  ER 模型  本问题中共有两类实体,分别是“储户”和“储蓄所” ,在它们之间存在“存取款”关系。因为一位储户可以 在多家储蓄所存取款,一家储蓄所拥有多位储户,所以 “存取款”是多对多( M:N )关系。  储户的属性主要有姓名、住址、电话号码和身份证号码 ,储蓄所的属性主要是名称、地址和电话号码,而数额 、类型、到期日期、利率和密码则是关系类型存取款的 属性。
  • 22. 4.3 Petri 网 Petri 网是一种系统的数学和图形 的描述与分析工具。 可以有效描述并发活动,适合 对具有并发、异步、分布、不确定性和 / 或随机性的信息处理系统建模,以得 到系统结构和动态行为方面的信息。
  • 23. 4.4 Z 语言   需要具备集合论、函数、数理逻辑 等方面的知识。包括 4 个部分:  给定的集合、数据类型及常数  状态定义  初始状态  操作