第十章.形式化描述
描述的结构化——将非形式化的接口描述组织成一组抽象数 据类型或对象类 描述的命名——给每个抽象类型描述赋予一个名字,决定它 们是否需要一般性参数,并对确定的类型命名 操作选择——根据识别出的接口功能为每个描述选择一组操 —— 作 非形式化的操作描述——为每个操作写一个非形式化的描述 语法定义——定义每个操作及其参数的语法 公理定义——定义操作的定义,给出每种不同的操作组合需 要满足的条件
• 图10-6
10.3 行为描述
• 代数方法适合于描述操作独立于对象状态 的接口 • 假如某个操作的结果依赖于先前操作的结 果,结果将非常复杂, • 因此在行为描述的采用基于模型的方法 • 常见的方法有VDM方法,B方法,Z方法
• 软件的形式化描述 • 使用一种规范语言,其词汇,语法和语义 都是有严格定义的
• • • • • 1.非形式化方法的缺点 矛盾,指一组相互冲突的陈述。 二义性,指读者可以用不同方式理解的陈述。 含糊性,几乎不可避免地会出现含糊性。 不完整性,不完整性可能是在系统规格说明 中最 常遇到的问题之一。 • 抽象层次混乱, 指在非常抽象的陈述中混进 了一 些关于细节
• 2.形式化的优点 • (1)有能力在需求系统需求中揭示问题和暴露
图10-5 代数描述的结构
描述体的四个组成部分
• 介绍 ——用来声明被定义的尸体种类(类型名) • 描述部分——用于对操作的非形式化描述 • 标记部分——定义对象类或抽象数据类型的接口 语法 • 公理部分——通过一组刻画抽象数据类型的行为 特征的公理来定义操作的定义。
子系统接口的形式化描述的开发过 程的各项活动
问题二义性 • (2)数学能够简洁准确地描述物理现象、对象或 动作的结果,因此是理想的建模工具。 • (3)可以在不同的软件工程活动之间平滑地过渡。 • (4)它提供了高层确认的手段,可以使用数学的 方法证明,设计符合规格说明,程序代码正确地 实现了设计结果
进行软件的形式化描述,它总是在系统描述完成之后,且在详细系统设 计之前,在详细的需求描述和形式化描述之间有一个紧密的反馈回路。 这样使得在系统需求中揭示问题和暴露二义性。
10.1 软件过程中的形式化描述
• 图10-1
软件系统详细描述的形式化方法
• 代数方法 • 基于模型的方法 顺序 代数 基于模型 Larch OBJ Z VDM B 并发 Lotos CSP Petri Nets
10.2 子系统接口描述
• 子系统接口:通常被定义为一组抽象数据 类型或对象,代数方法最初用于定义抽象 数据类型或接口。在抽象数据类型中。类 型是指通过指定类型操作而非类型来表示 定义的。形式化描述的代数方法用类型操 作关系来定义抽象数据类型
10.1 软件过程中的形式化描述
一,软件工程使用方法的分类 软件工程使用方法的分类 • 非形式化,用自然语言描述需求规格 • 半形式化,用数据流图或实体-联系图建立 模型 • 形式化,是描述系统性质的基于数学的技 术,也就是说,如果一种方法有坚实的数 学基础,那么它就是形式化的
• 二,为什么使用形Байду номын сангаас化描述
第十章 形式化描述
卫倩平 胡钦瑞
软件工程使用方法的分类
• 非形式化,用自然语言描述需求规格 • 半形式化,用数据流图或实体-联系图建立 模型 • 形式化,是描述系统性质的基于数学的技 术,也就是说,如果一种方法有坚实的数 学基础,那么它就是形式化的
• 10.1 软件过程中的形式化描述 • 10.2 子系统接口描述 • 10.3 行为描述