当前位置:文档之家› 第二十一章 形式化建模与验证

第二十一章 形式化建模与验证


1
21.1 净室策略
净室方法使用第2章所介绍的增量过程模型的专 业版。一个“软件增量的流水线”[Lin94b]由若干小 的、独立的软件团队开发。每当一个软件增量通过认 证,它就被集成到整体系统中。因此,系统的功能随 时间增加。
增量1 RG
BSS
FD
CV
TP
CG
CI
SUT
C
增量2 SE RG BSS FD CV TP BSS FD CV TP 净室过程模型
清晰盒包含了对状态盒的过程设计。
2014年12月11日星期四
Data Mining: Concepts and Techniques
6
CB1.1.1.1 BB1.1.1 SB1.1.1 CB1.1.1.2
BB1.1 BB1
BB1.2
BB1.1.2 BB1.1.3
CB1.1.1.3
BB1.n
盒结构求精
2014年12月11日星期四 Data Mining: Concepts and Techniques 14
Cont:[y2≤x]
y=y+1
21.4 净室测试

传统的测试方法导出一组测试用例,以发现设计和编码
错误;净室测试的目的是通过证明用例的统计样本的成 功运行来确认软件需求。
2014年12月11日星期四
得多,这种严格需要更多的工作量,单从一致性和完整性 的提高方面得到的好处在很多类型的应用中得到证明。
2014年12月11日星期四
Data Mining: Concepts and Techniques
24
21.7

形式化规格说明语言
形式化规格说明语言通常由3个主要成分构成:
(1)语法,定义用于表示规格说明的特定表示方法; (2)语义,帮助定义用于描述系统的“对象的全域”; (3)一组关系,定义确定哪个对象真正满足规格说明规则。

OCL、Z、LARCH及VDM,都具有前面所述特性。
2014年12月11日星期四
Data Mining: Concepts and Techniques
25
21.7.1 对象约束语言

对象约束语言(OCL)是成熟的形式化表示法,UML的
使用者可以想他们的规格说明中加入更精确的内容。次 语言具有逻辑数学及离散数学的所有优势。然而,OCL 的设计者决定在OCL语句中只能使用ASCII字符,而不 能使用传统的数学表示方法。
2014年12月11日星期四
Data Mining: Concepts and Techniques
4

代码生成、检查和验证——
统计测试策略——策划并设计一组测试用例,以测
试使用情况的“概率分布”(21.4节)。

统计使用测试——统计使用技术执行由统计样本到
处的一系列测试。

认证——对增量进行集成前的认证工作。
2014年12月11日星期四 Data Mining: Concepts and Techniques 8
21.2.2 状态盒规格说明

状态盒可以与黑盒g结合使用。来自某一外部源及一组 内部状态T的触发S被输入到黑盒中。Mills给出了包含在 状态盒内的黑盒函数f的数学描述:
g:S* x T* RxT
Data Mining: Concepts and Techniques
15
21.4.1 统计使用测试


统计使用测试“等同于以用户试图使用软件的方式来测 试软件”。 确定一个“使用概率分布”
——分析规范来确定一组触发。 ——给出每个触发的概率分布百分数。 ——创建使用场景。 ——根据分布区间选择合适的触发。 ——生成符合使用概率分布的使用测试用例。
第二十一章 形式化建模与验证

两种高级软件工程方法——净室软件工程方法和形式化方法。
——两种方法都要求特殊的规格说明方法,并且每种方法 都适合于一种独特的验证方法。 ——两种方法都非常严格,都没有被软件工程团体广泛使 用。
2014年12月11日星期四
Data Mining: Concepts and Techniques
2014年12月11日星期四
Data Mining: Concepts and Techniques
13
21.3.2

设计验证
entry:[x≥0]
sqrt
y=0
int:[x≥0,and y=0] loop:[y2 ≤x] (y+1)2≤x yes:x不变且y≤x<x exit:x不变且y2≤x<(y+1)2 计算平方根的整数部分
21.7.2

Z规格说明语言
schema的一般结构如下:
schemaName 声明(declarations) 不变式(invariant)
2014年12月11日星期四
Data Mining: Concepts and Techniques
28
21.8小结

净室软件工程是软件开发的一种形式化方法,它可以生成

Z规格说明被组织为一组schema——用于说明变量及这
些变量之间关系的语言结构。一个schema实质上类似
于程序设计语言构建的形式化规格说明。采用与使用构 件系统相同的方式,schema用于构造形式化规格说明。
2014年12月11日星期四 Data Mining: Concepts and Techniques 27
21.6 应用数学表示法描述形式 化规格说明

为了说明数学表示法在软件构件的形式化规格说明中的使
用,计算器操作系统中有一个重要构件,它维护用户创建 的文件。块处理器维护一个未用块池,并同时保持对当前 已使用的块跟踪。当块从被删除文件释放时,他们通常被 加入到等待进入未用块池的块队列中。

块队列的数学规格说明比自然语言叙述或图形模型要严格
高质量的软件,使用盒结构规格说明进行分析和设计建模, 并且强调将正确性验证(而不是测试)作为发现和消除粗 无的主要机制。运用统计使用测试来获取失效率信息,对 认证被交付的软件的可靠性是必需的。
Data Mining: Concepts and Techniques
11
21.3.1 设计求精

每个清晰盒规格说明代表了一个完成状态盒转换所需的过
程的设计。在清晰盒中,使用结构化程序设计结构和逐步 求精表示过程细节。

每个求精层次,净室团队执行一次形式化正确性验证。为 此,将一组通用正确性条件附加到结构化程序设计结构上。
SE—系统工程 RG —需求收集 CV —正确性验证 CG —代码生成 TP —测试策划 BSS —盒格式规格说明 FD —形式化设计 CI—代码检查 SUT —统计使用测试 C —认证
CG
CI
SUT
C
增量3 RG
CG
CI SUT C



增量策划——采用增量策略的计划。 需求收集——开发更详细的客户级需求描述。 盒结构规格说明——描述功能规格说明。 形式化设计——对规格说明(称为黑盒)进行迭代 求精(在一个增量内)类似于体系结构设计和构建 级设计(分别称为状态盒和清晰盒)。 正确性验证——验证从最高层次的盒结构开始,然 后移向设计细节和代码。
2014年12月11日星期四
Data Mining: Concepts and Techniques
17
21.4.2

认证
认证方法包括5个步骤:
1、必须创建使用场景。 2、指定使用概貌。 3、从概貌中生成测试用例。 4、执行测试,记录并分析失效数据。 5、计算并认证可靠性。
2014年12月11日星期四

状态T
S
黑盒:g
R
状态盒规格说明
2014年12月11日星期四 Data Mining: Concepts and Techniques 9
21.2.3 清晰盒规格说明

清晰盒规格说明是与过程设计及结构化编程紧密关联的。 实质上,状态盒中的子函数g被实现g的结构化编程结构 化所代替。
状态T
S
黑盒:g
状态T
R S g12 g11 cg1 R
g13
状态盒规格说明
2014年12月11日星期四
清晰盒规格说明
Data Mining: Concepts and Techniques 10
21.3 净室设计

净室软件工程主要运用结构化设计原理,但是,在这里
结构化程序设计应用的更严格。
2014年12月11日星期四
2014年12月11日星期四
Data Mining: Concepts and Techniques
5
21.2 功能规格说明

净室软件工程使用3种类型的盒:黑盒、状态盒、清晰盒。 ——黑盒刻画系统行为或部分系统的行为。 ——状态盒以类似于对象的方式封装状态盒的输出(触发)
和输出(反映)。
——在清晰盒中定义状态盒所蕴含的专函功能,简单的说,
Data Mining: Concepts and Techniques
20
21.5 形式化方法的概念

符号表
——数据不变式是一个条件,它在包含一组数据的系统的
执行过程中总保持为真。
——另一个重要的概念是状态。形式化语言,如OCL使用
第7章所讨论的状态概念,系统可能处于多种状态之一,
每一种状态都表示外部可观察到的行为模式。在Z语言中, 系统的状态由系统的存储数据来表示。 ——最后一个概念是操作,这是在系统中发生的读写数据 的动作。
22
21.5 形式化方法的概念
未用块 13469 已用块 2 5 7 8 10 11 12
当文件被删除时,块 被释放到队列中
相关主题