第4章软件工程

合集下载

软件工程第四章 结构化分析

软件工程第四章 结构化分析

软件需求分析阶段的工作,可以分成以下四个方面 :对问题的识别、分析与综合、制定规格说明以及 ( )。 A.总结 B.实践性报告 C.需求分析评审 D.以上答案都不正确
答案:C
需求验证应该从下述几个方面进行验证:(C ) A 可靠性、可用性、易用性、重用性 B可维护性、可移植性、可重用性、可测试性 C一致性、现实性、完整性、有效性 D 功能性、非功能性
3、需求分析步骤
1、需求获取
3、亲身实践:观察用户工作流程
优点: 1. 通过直接观察提取用户或系统的特性; 2. 有助于理解难以用语言描述清楚的复杂业务。 3. 更加准确和真实 缺点:
1. 观察可能使用户紧张,从而表现与往常不同。 2. 比较费时间
3、需求分析步骤
1、需求获取
3、需求分析步骤
3、需求分析步骤
3 需求描述
1. 又叫:需求规约
2. 是分析任务的最终产物,给出对目标软件的 各种需求。
3. 需求规约作为用户和开发者之间的一个协议 (需求规格说明书),在之后的软件工程各 个阶段发挥重要作用
软件需求分析阶段的目的是澄清用户的要求 ,并把双方共同的理解明确地表达成一份书 面文档——(软件需求规格说明书)。
经调查,系统分析员给出有问题的初略陈述, 其中部分描述如下:某商场的采购部门要求每 天开出定购清单,交采购员输入系统;仓库管 理员还要将库存信息此输入系统,经库存业务 (进贷或出贷)处理后输出。从这段描述可知 该部分数据流图中的外部项为:
A.采购员、仓库管理员 B.定购清单、库存业务 C.库存业务 D.定购清单、采购员 答案A
3、需求分析步骤
4、需求验证
1. 进行需求评审
2. 验证需求的一致性
3. 验证需求的现实性

软件工程 第4章 形式化说明技术

软件工程 第4章 形式化说明技术

行为建模
1)
2)
3)
系统的需求规格说明通常是用自然语言来叙 述的,但是用自然语言描述往往会出现二义 性。 为了直观地分析系统的动作,从特定的视点 出发描述系统的行为,需要采用动态分析的 方法。 最常用的动态分析方法

有穷状态机

时序图 Petri网
状态迁移图
状态迁移图是通过描述系统的
状态及引起系统状态转换的事 件来表示系统的行为。
形式化方法
形式化方法是建立在严格数学基础上、具有精确数学语义 的开发方法,即就是用数学语言来描述软件的设计规约。 形式化方法可以分为形式化描述和建立在形式化描述基础之 上的形式化开发 形式化的描述:用形式化的语言(具有严格的语法语义定 义的语言)描述描述软件系统及其行为模式,以更好地刻 画软件系统的性质。 形式化的开发:用形式化的语言来描述软件需求和特征, 并且通过推理验证来保证最终的软件产品是否满足这些需 求和具备这些特征,符合给定的行为模式。
应用形式化方法的准则





应该选用适当的形式化方法:主要包括有限状态机、时 序图、Petri网、Z、VDM等。 应该形式化,但不要过分形式化 应该估算成本 应该有形式化方法顾问随时提供咨询 不应该放弃传统的开发方法 应该建立详尽的文档 不应该放弃质量标准 不应该盲目依赖形式化方法 应该测试、测试再测试 应该重用
半形式化方法
软件工程使用方法可分成:非形式化、半形式化和形式化 半形式化: 结构化分析(SA)方法 利用图形等半形式化的描述方式表达需求:用数据流图、 状态转换图或实体-联系图建立数据、行为和功能模型, 形成需求说明书中的主要部分。 利用结构化语言描述加工逻辑:结构化语言是介于自然 语言和形式语言之间的一种半形式语言。加工逻辑结构 可分成外层和内层两层:外层用来描述控制结构,采用 顺序、选择、重复三种基本结构;内层对于顺序执行和 循环执行的动作,用结构化语言描述。 缺点:可能存在矛盾、二义性、含糊性、不完整性及抽 象层次混乱等问题。

软件工程第4章 软件设计

软件工程第4章  软件设计

5. 设计软件结构 通常程序中的一个模块完成一个适当的子功能。应 该把模块组织成良好的层次系统,顶层模块调用它 的下层模块以实现程序的完整功能,每个下层模块 再调用更下层的模块,从而完成程序的一个子功能, 最下层的模块完成最具体的功能。
6. 设计数据库 对于需要使用数据库的那些应用系统,软件工程师 应该在需求分析阶段所确定的系统数据需求的基础 上,进一步设计数据库。
高内聚也有两类:如果一个模块内的处理元素和同 一个功能密切相关,而且这些处理必须顺序执行 (通常一个处理元素的输出数据作为下一个处理元 素的输入数据),则称为顺序内聚。根据数据流图 划分模块时,通常得到顺序内聚的模块,这种模块 彼此间的连接往往比较简单。如果模块内所有处理 元素属于一个整体,完成一个单一的功能,则称为 功能内聚。功能内聚是最高程度的内聚。
(2) 用户手册根据总体设计阶段的结果,修改更正 在需求分析阶段产生的初步的用户手册。
(3) 测试计划包括测试策略,测试方案,预期的测 试结果,测试进度计划等等。 (4) 详细的实现计划 (5) 数据库设计结果
9. 审查和复审 最后应该对总体设计的结果进行严格的技术审查, 在技术审查通过之后再由使用部门的负责人从管理 角度进行复审。
为什么模块的独立性很重要呢?主要有两条理由: 第一,有效的模块化(即具有独立的模块)的软件比 较容易开发出来。这是由于能够分割功能而且接口 可以简化,便于多人分工合作开发同一个软件。
第二,独立的模块比较容易测试和维护。这是因为 相对说来,修改设计和程序需要的工作量比较小, 错误传播范围小,需要扩充功能时能够“插入”模块。
(2)详细设计。详细设计阶段的根本目标是确定 应该怎样具体地实现所要求的系统,也就是说,经 过这个阶段的设计工作,应该得出对目标系统的精 确描述,从而在编码阶段可以把这个描述直接翻译 成用某种程序设计语言书写的程序。 详细设计阶段的任务还不是具体地编写程序,而是 要设计出程序的“蓝图”,结果基本上决定了最终 的程序代码的质量。

软件工程 第四章 概要设计

软件工程 第四章 概要设计
4.控制耦合 模块之间传递的不是数据信息,而是控制信息如标志、开关量,一个模块控制了另一模块 的功能。
第4章
4.4 模块的独立性
15
4.4.1 耦合性(Coupling)
5.外部耦合 一组模块都访问同一全局简单变量,而且不通过参数表传递该全局变量的信息,则称之为 外部耦合。 6.公共耦合
若一组模块都访问同一全局数据结构,则称之为公共耦合。公共数据环境可以是全局数据
4
4.2.1 概要设计的任务
概要设计的基本任务是: (1)设计软件系统结构; (2)数据结构及数据库设计; (3)编写概要设计文档;
(4)评审概要设计文档。
第4章
4.2 概要设计的任务与步骤
5
4.2.2 概要设计的步骤
概要设计的一般步骤如下: 1.选定体系结构 2.确定设计方案 3.设计软件结构
4.数据结构及数据库设计
(2)一个模块不通过正常入口而直接转入到另一个模块的内部;
(3)两个模块有一部分代码重叠(该部分代码具有一定的独立功能); (4)一个模块有多个入口。
第4章
4.4 模块的独立性
17
4.4.2 内聚性(Cohesion)
一个模块内各个元素彼此结合的紧密程度用内聚(或称聚合)来度量。一个理想的模块只
完成一个功能,模块设计的目标之一是尽可能高内聚。
第4章
4.4 模块的独立性
21
4.4.2 内聚性(Cohesion)
5.通信内聚
指模块内所有处理功能都通过公用数据而发生关系。即模块内各个组成部分都使用相同的 输入数据或产生相同的输出结果。
第4章
4.4 模块的独立性
22
4.4.2 内聚性(Cohesion)

软件工程第4章

软件工程第4章
试用有穷状态机说明上述的图书流通系统。
4-5 试用Petri网说明第4题所述图书馆中一本书的循 环过程。在规格说明中应该包括操作H、C及R。
4-6 试用Z语言对第4题所述图书馆图书流通系统做一 个完整的规格说明。

生 活 中 的 辛 苦阻挠 不了我 对生活 的热爱 。20.12.2820.12.28Monday, December 28, 2020
第二条和第三条规则,分别对应于电梯即将下降 或者没有待处理的请求的情况。
4.2.3 评价
有穷状态机方法采用了一种简单的格式来描述规 格说明:
当前状态+事件+
这种形式的规格说明易于书写、易于验证,而且 可以比较容易地把它转变成设计或程序代码。
有穷状态机方法比数据流图技术更精确
4.3 Petri网
4.3.1 概念
所有按钮的集合,因此,Z规格说明开始于: 〔Button〕 2. 状态定义 一个Z规格说明由若干个“格(schema)”组成,每个 格含有变量说明和限定变量取值范围的谓词。例如, 格S的格式如图4.12所示。
图4.12 Z格S的格式
3. 初始状态 对于电梯问题来说,抽象的初始状态为:
ˆ Button_Init Button_State|pushed=Φ〕
第4章 形式化说明技术
4.1 概述 4.2 有穷状态机 4.3 Petri网 4.4 Z语言 4.5 小结 习题
按照形式化的程度,可以把软件工程使用的方 法划分成非形式化、半形式化和形式化3类:
• 用自然语言描述需求规格说明,是典型的非形式 化方法。
• 用数据流图或实体-联系图建立模型,是典型的 半形式化方法。
有穷状态机对本产品进行规格说明: 这个问题中有两个按钮集。

《软件工程》第4章软件总体设计

《软件工程》第4章软件总体设计

《软件工程》第4章软件总体设计软件总体设计是软件工程的一个重要环节,它涉及到软件系统的整体结构和架构的定义,以及软件模块之间的关系和接口的设计。

软件总体设计的目标是确保软件系统能够满足用户需求,并且具有高性能和可扩展性,同时保证系统的可维护性和可测试性。

软件总体设计的过程包括以下几个步骤:1.确定系统的功能需求:根据用户需求和系统分析的结果,定义系统应该具备的功能和特性。

2.划分系统结构:将系统划分为多个模块和子系统,确定各个模块之间的关系和层次结构。

3.定义模块接口:对每个模块定义清晰的接口,包括输入参数、输出参数和功能描述,以便模块之间的协作和集成。

4.设计系统架构:选择合适的架构风格和模式,确定系统的整体结构和组成,包括数据流、控制流和模块之间的通信。

5.设计数据结构和算法:根据系统需求和性能要求,设计合适的数据结构和算法,以满足系统的功能和性能要求。

6.设计系统界面:设计系统与用户和外部系统的界面,包括图形界面、命令行界面和数据交换接口。

7.考虑系统安全性和可靠性:在设计阶段考虑系统的安全性和可靠性需求,设计对应的安全和可靠性机制。

8.进行评审和验证:对软件总体设计进行评审和验证,确保设计的可行性和完整性。

软件总体设计的核心是系统架构设计,系统架构设计要考虑系统的功能需求、性能要求、可扩展性、可维护性、可测试性等因素。

常用的软件架构风格包括层次架构、客户端-服务器架构、分布式架构、面向服务的架构等。

选择合适的架构风格可以提高系统的灵活性和可维护性。

在软件总体设计过程中,还需要考虑到软件的适应性和可移植性。

软件应该能够适应不同平台和操作系统的要求,并能够方便地移植到其他环境中。

为了提高软件的可移植性,可以采用标准化的接口和协议,避免使用具体的硬件和操作系统依赖。

此外,软件总体设计还需要考虑到系统的可维护性和可测试性。

软件系统通常需要进行修改和维护,因此设计时需要考虑到系统的可扩展性和模块之间的解耦。

软件工程实用案例 第4章 结构化需求分析

软件工程实用案例 第4章 结构化需求分析
2 项目前景 2.1 前景概述 2.2 主要特性
3项目范围 3.1 第一版范围 3.2 后续版本范围 3.3 限制与排除
4项目环境 4.1 操作环境 4.2 涉众 4.3 项目属性
词汇表 参考资料 附录
4.3 需求获取
4.3.3 选择信息的来源
• 1. 涉众
• 包括用户、客户、领域专家、用户替代源(市场人员、销售人员) 等。
4.4 需求分析
4.4.1 过程建模
4.4.1.1 数据流图
3. 分层结构 (3)N层图
图4-12 功能分解示意图
4.4 需求分析
4.4.1 过程建模
4.4.1.1 数据流图
3. 分层结构 (3)N层图
图4-13 食物订货系统的1层图
4.4 需求分析
4.4.1 过程建模
4.4.1.2 微规格说明
正式规定文档所需具有的条件或能力。
(3) 对(1)或(2)所描述的条件或能力的文档化表述。 其中,(1)是从用户角度定义的,(2)是从开发人员、
系统的角度定义的。
4.1 需 求
4.1.2 需求的层次
需求通常体现为三个层次:业务需求、用户需求和系 统需求。
4.1 需 求
4.1.2 需求的层次
4.3 需求获取
4.3.2 定义项目前景和范围
• 1.明确问题
P1 决策者:生产的废品过多。
• 2.发现业务需求
BR1:提供销售订单的准确性,减少因此而产生废品。
BR2:提供销售订单的准确性,在使用后3个月内,减少50%因此而产生 的废品。
4.3 需求获取
4.3.2 定义项目前景和范围
• 3.定义解决方案及系统特性
4.3 需求获取
4.3.4 需求获取的方法

软件工程第4章习题解答

软件工程第4章习题解答
解:(1)判定表:
说明:1,每一笔交易有3种属性:“交易金额”、“每股售价”、“股数”。
2,“交易总额”有3种值;“每股售价”有3种值;“股数”有2种值。所以每笔交易有18种状态。(表有19列,第1列是说明列)
3,每种状态有一个决策公式。判定表中的决策方案有18行。
4,每个计算公式中只有一个变量“交易金额”,设为a。
教师的工资档案存储在行政办公室的磁带上,档案中有目前的年工资、赡养的人数、雇佣日期等信息。需要写一个计算程序计算并印出每名教师的原有工资和调整后的新工资。要求:
⑴画出此系统的数据流图;
⑵写出需求说明;
⑶设计上述的工资调整程序(要求用判断表描述),设计时请分别采用下述两种算法,并比较这两种算法的优缺点;
set START to (I+1)
else if TABLE(I) > ITEM then
set FINISH to (I-1)
endif
enddo
if TABLE(I) = ITEM or TABLE(START) = ITEM or TABLE(FINISH) = ITEM then
set FLAG to 1
解:
⑴ 系统的数据流图
⑵ 需求说明:(略)
⑶ 程序框图:
算法说明:1 此算法是先找出工资少于$26,000的人, 再进行工资调整,属算法a
2 算法a适于数据库的记录不太多的情况,在数据库中查找较费时。
但是,调整系统的主要部分少一个判断,结构清晰一些。
3 算法b适于数据库的记录较多的情况,利用数据库的排序功能可很快地将教师的档案数据按工资大小排好序,调整程序只对前若干个记录进行操作。这个算法对于修改数据库回更便捷些。
交易
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

7
• 应该建立详尽的文档。
• 不应该放弃质量标准。
• 不应该盲目依赖形式化方法。
• 应该测试、测试再测试。
• 应该重用。
2013-7-10
湖南科技大学 计算机学院 戴祖雄
8
4.2 有穷状态机
利用有穷状态机可以准确地描述一个系统,因
此是表达规格说明的一种形式化方法。
4.2.1
本概念。
基本概念
RL:电梯按钮或楼层按钮被按下进入打开
状态,登录需求。
2013-7-10
湖南科技大学 计算机学院 戴祖雄
24
最后,给出电梯的状态转换规则。为简单起 见,这里给出的规则仅发生在关门之时。 S(U,e,f)+DC(e,f)M(U,e,f+1)
S(D,e,f)+DC(e,f)M(D,e,f-1)
EBON(e,f):电梯按钮(e,f)打开 EBOFF(e,f):电梯按钮(e,f)关闭 如果电梯按钮(e,f)发光且电梯到达f层,该按钮将熄灭。 相反如果按钮熄灭,则按下它时,按钮将发光。上述描述中包 含了两个事件,它们分别是:
2013-7-10
湖南科技大学 计算机学院 戴祖雄
15
图4.2 电梯按钮的状态转换图
2013-7-10
湖南科技大学 计算机学院 戴祖雄
10
图4.1 保险箱的状态转换图
2013-7-10
湖南科技大学 计算机学院 戴祖雄
11
表 14.1 保险箱的状态转换表 当前状态 次态 保险箱锁定 转盘动作 1L A 1R 报警 2L 报警 2R 报警 3L 报警 3R 报警
A 报警 报警 报警 报警 报警 B
2013-7-10
湖南科技大学 计算机学院 戴祖雄
22
图4.4 电梯的状态转换图
2013-7-10
湖南科技大学 计算机学院 戴祖雄
23
图4.4中包含了下述三个可触发状态发生
改变的事件: DC(e,f):电梯e在楼层f关上门。 ST(e,f):电梯e靠近f层时触发传感器,电 梯控制器决定在当前楼层电梯是否停下。
2013-7-10
湖南科技大学 计算机学院 戴祖雄
16
EBP(e,f):电梯按钮(e,f)被按下 EAF(e,f):电梯e到达f层 为了定义与这些事件和状态相联系的状态转换规 则,需要一个谓词V,(e,f),它的含义如下: V(e,f):电梯e停在f层 如果电梯按钮(e,f)处于关闭状态[当前状态],而 且电梯按钮(e,f)被按下[事件],而且电梯e不在f层[谓 词],则该电梯按钮打开发光[下个状态]。状态转换规 则的形式化描述如下: EBOFF(e,f)+EBP(e,f)+not V(e,f)EBON(e,f) 反之,如果电梯到达f层,而且电梯按钮是打开的,于 是它就会熄灭。这条转换规则可以形式化地表示为: EBON(e,f)+EAF(e,f) EBOFF(e,f)
当前状态[菜单]+事件[所选择的项]+谓词下个状态
2013-7-10
湖南科技大学 计算机学院 戴祖雄
14
4.2.2
例子(电梯问题)
电梯按钮的状态转换图如图4.2所示。令EB(e,f)表示按
下电梯e内的按钮并请求到f层去。EB(e,f)有两个状态,分别
是按钮发光(打开)和不发光(关闭)。更精确地说,状态是:
2013-7-10
湖南科技大学 计算机学院 戴祖雄
27
4.3 Petri网
4.3.1 基本概念
下面通过一个简单例子介绍有穷状态机的基
2013-7-10
湖南科技大学 计算机学院 戴祖雄
9
一个保险箱上装了一个复合锁,锁有三个 位置,分别标记为1、2、3,转盘可向左(L)或 向右(R)转动。这样,在任意时刻转盘都有6种 可能的运动,即1L、1R、2L、2R、3L和3R。 保险箱的组合密码是1L、3R、2L,转盘的任何 其他运动都将引起报警。图4.1描绘了保险箱的 状态转换情况。 图4.1是一个有穷状态机的状态转换图。 状态转换并不一定要用图形方式描述,表4.1的 表格形式也可以表达同样的信息。
T是一个从(J-F)×K到J的转换函数;
S∈J,是一个初始状态;
FJ,是终态集。
2013-7-10
湖南科技大学 计算机学院 戴祖雄
13
当前状态[菜单]+事件[所选择的项]下个状态
为了对一个系统进行规格说明,通常都需要 对有穷状态机做一个很有用的扩展,即在前述的 5元组中加入第6个组件——谓词集P,即把有穷状 态机扩展为一个6元组,其中每个谓词都是系统 全局状态Y的函数。转换函数T现在是一个从(JF)×K×P到J的函数。现在的转换规则形式如下:
2013-7-10
湖南科技大学 计算机学院 戴祖雄
26
有穷状态机方法比数据流图技术更精确, 而且和它一样易于理解。不过,它也有缺点: 在开发一个大系统时三元组(即状态、事件、 谓词)的数量会迅速增长。此外,和数据流图方 法一样,形式化的有穷状态机方法也没有处理 定时需求。下节将介绍的Petri网技术,是一种 可处理定时问题的形式化方法。
在讨论电梯按钮状态转换规则时定义的谓 词V(e,f),可以用谓词S(d,e,f)重新定义如下: V(e,f)=S(U,e,f)or S(D,e,f)or S(N,e,f)
2013-7-10
湖南科技大学 计算机学院 戴祖雄
21
下面定义电梯的三个状态: M(d,e,f):电梯e正沿d方向移动,即将到达的是第f层;
FBON(d,f)+EAF(1··n,f)+S(d,1··n,f)FBOFF(d,f) 其中,d=UorD。
2013-7-10
湖南科技大学 计算机学院 戴祖雄
20
也就是说,如果在f层请求电梯向d方向运 动的楼层按钮处于关闭状态,现在该按钮被按下, 并且当时没有正停在f层准备向d方向移动的电 梯,则该楼层按钮打开。反之,如果楼层按钮已 经打开,且至少有一部电梯到达f层,该部电梯将 朝d方向运动,则按钮将关闭。
其中1··n表示或为1或为2…或为n。
2013-7-10
湖南科技大学 计算机学院 戴祖雄
18
图4.3 楼层按钮的状态转换图
2013-7-10
湖南科技大学 计算机学院 戴祖雄
19
为了定义与这些事件和状态相联系的状态转换规 则,同样也需要一个谓词,它是S(d,e,f),它的定义如下。 S(d,e,f):电梯e停在f层并且移动方向由d确定 为向上(d=U)或向下(d=D)或待定(d=N)。 这个谓词实际上是一个状态,形式化方法允许把 事件和状态作为谓词对待。 使用谓词S(d,e,f),形式化转换规则为: FBOFF(d,f)+FBP(d,f)+not S(d,1··n,f)FBON(d,f)
S(N,e,f)+DC(e,f)W(e,f)
第一条规则表明,如果电梯e停在f层准备向 上移动,且门已经关闭,则电梯将向上一楼层移动。 第二条和第三条规则,分别对应于电梯即将下降 或者没有待处理的请求的情况。
2013-7-10
湖南科技大学 计算机学院 戴祖雄
25
4.2.3
评价
有穷状态机方法采用了一种简单的格式来描述规 格说明: 当前状态+事件+谓词下个状态 这种形式的规格说明易于书写、易于验证,而且 可以比较容易地把它转变成设计或程序代码。事实上, 可以开发一个CASE工具把一个有穷状态机规格说明直 接转变为源代码。维护可以通过重新转变来实现,也就 是说,如果需要一个新的状态或事件,首先修改规格说 明,然后直接由新的规格说明生成新版本的产品。
教学内容 4.1 概述 4.2 有穷状态机
4.3 Petri网
4.4 Z语言 4.5 小结
2013-7-10
湖南科技大学 计算机学院 戴祖雄
3
第4章 形式化说明技术
根据形式化的程度,可以把软件工程方法 划分成非形式化、半形式化和形式化三类。使 用自然语言描述需求规格说明,是典型的非形 式化方法。使用数据流图或实体—关系图等图 形符号建立模型,是典型的半形式化方法。 用于开发计算机系统的形式化方法,是描 述系统性质的基于数学的技术,也就是说,如果 一个方法有坚实的数学基础,那么它就是形式化 的。
2013-7-10
湖南科技大学 计算机学院 戴祖雄
6
4.1.3
应用形式化方法的准则
应用形式化方法的几条准则:
• 选择适用于当前项目的符号系统。
• 应该形式化,但不方法的顾问。
• 不要放弃传统的开发方法。
2013-7-10
湖南科技大学 计算机学院 戴祖雄
2013-7-10
湖南科技大学 计算机学院 戴祖雄
4
4.1 概述
4.1.1 非形式化方法的缺点
基本上使用自然语言描述的系统规格 说明,可能存在矛盾、二义性、含糊性、不 完整性以及抽象层次混杂等问题。
2013-7-10
湖南科技大学 计算机学院 戴祖雄
5
4.1.2
形式化方法的优点
数学最有用的性质之一是,它能够简洁、准确地 描述物理现象、对象或动作的结果,因此是理想的建 模工具。 在软件开发过程中使用数学的另一个优点是,可 以在软件工程活动之间平滑地过渡。不仅功能规格 说明,而且系统设计也可以用数学表达,当然,程序代 码也是一种数学符号。 数学作为软件开发工具的最后一个优点是,它提 供了高层确认的手段。可以使用数学方法证明,设计 符合规格说明,程序代码正确地反映了设计结果。
S(d,e,f):电梯e停在f层,将朝d方向移动(尚未关门);
W(e,f):电梯e在f层等待(已关门)。 其中S(d,e,f)状态已在讨论楼层按钮时定义过,但是, 现在的定义更完备一些。 图4.4是电梯的状态转换图。注意,三个电梯停止状 态S(U,e,f)、S(N,e,f)和S(D,e,f)已被组合成一个大的状态, 这样做的目的是减少状态总数以简化流图。
相关文档
最新文档