se2009 ch4

23
第 3 第 第第第第 第第第第第第第 : what functions + o ther requirements 第第第第第第第 第第第第第第第第第 : 第第 第第第第第第第 - 第第第 & 第第第第第 第第第第第第第第第第第 第第第第第第 : 第第第 第第第第 第第第第第第第 一、、

Upload: -

Post on 14-Aug-2015

211 views

Category:

Documents


2 download

TRANSCRIPT

第 3 章 重点回顾 需求分析的任务 : what functions + o

ther requirements 获取需求的方法 分析建模与规格说明 : 数据、功能和

行为模型 实体 - 联系图 & 数据规范化 状态转换图其他图形工具

验证软件需求 : 一致性、完整性、现实性和有效性

思考题 你认为课堂上讲的这些需求分析技术是否有

效和可行 ? 如不可行你认为应怎样进行需求分析 ?

如果你是一名软件项目经理,你如何组织和开展需求分析工作 ( 包括人员组织、方法和技术的采用、结果等 )

需求分析对软件开发的意义何在,有何作用? 请认真理解和领会各种需求分析技术,分析

各种技术的特点以及在需求分析和描述中的作用?

第 第 4 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”

.. 连结符 x = 1..9

电话号码=[校内电话号码 |校外电话号码 ] 校内电话号码=非零数字 + 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储户

P0储蓄系统 E1储户

F1存款单F2取款单

F3存单F4利息清单

D1存款信息

F5存款信息 F5存款信息

E1储户

E1储户

F1存款单

F2取款单

F3存单

F4利息

D1存款信息

F5存款信息 F5存款信息

E2业务员

P3核算密码

P4计算利息

P5打印利息清单

P1记录存款信息

P2打印存单

F7密码

D2存款利率F8储蓄利率P6

设置利率 F8储蓄利率

F8储蓄利率F6取款信息

F5存款信息

F7密码

F4利息F4利息

E1储户

F2取款单

D1存款信息

P3.1输入取款信息

F7密码 P3.2密码校验

F5存款信息

F7密码

无效取款信息

作业及解答(第 3章)

ER模型本问题中共有两类实体,分别是“储户”和“储蓄所”,

在它们之间存在“存取款”关系。因为一位储户可以在多家储蓄所存取款,一家储蓄所拥有多位储户,所以“存取款”是多对多(M:N)关系。

储户的属性主要有姓名、住址、电话号码和身份证号码,储蓄所的属性主要是名称、地址和电话号码,而数额、类型、到期日期、利率和密码则是关系类型存取款的属性。

作业及解答(第 3章)

作业及解答(第 3章)

4.3 Petri 网

Petri 网是一种系统的数学和图形的描述与分析工具。

可以有效描述并发活动,适合对具有并发、异步、分布、不确定性和 /或随机性的信息处理系统建模,以得到系统结构和动态行为方面的信息。

4.4 Z 语言

  需要具备集合论、函数、数理逻辑等方面的知识。包括 4个部分:

给定的集合、数据类型及常数 状态定义 初始状态 操作