软件工程概论总结第五章

第五章  软件工程中的形式化方法

形式化方法基本概念

形式规约

当规格说明用非形式化方法描述时,可称之为“规格说明”,当规格说明用形式化方法描述时,可称之为“形式规约”。

形式证明与验证

形式证明与验证技术主要包括模型检测和定理证明。模型检测是一种基于有限状态模型并检验该模型的性质的技术。定理证明采用逻辑公式来表示系统规约及其性质。

程序求精

程序求精是将自动推理和形式化方法相结合,从抽象的形式规约推演出具体的面向计算机的程序代码的全过程。程序求精的基本思想是用一个抽象程度低、过程性强的程序去代替一个抽象程度高、过程弱的程序,并保持它们之间功能的一致性。

时态逻辑

Kripke结构    三元组M=(W,R,L)称为模型逻辑的一个模型,或者Kripke结构,其中W是可能世界的非空集合;R包含于W×W是可能世界W上的二元关系;L:W→2^p(P是原子公式集合)是标记函数,它是对各可能世界的真值指派,即对每个模态逻辑公式,指明它在每个可能世界中取真值还是假值。

一阶线性时态逻辑

一阶线性时态逻辑公式,简称FOLTL公式,定义如下:

①原子谓词公式是FOLTL公式;

②如果A、B是FOLTL公式,那么(A)、(A∧B)、(A∨B)、(A→B)、(A↔B)是FOLTL公式;

③如果A是FOLTL公式,x是A中出现的变量(个体变元),则彐x·A、x·A是FOLTL公式;

④如果A、B是FOLTL公式,那么(◇A)、(□A)(○A)、(A?B)是FOLTL公式;

⑤当且仅当有限次地使用①②③④所组成的符号串是FOLTL公式。

计算树逻辑

计算树逻辑(CTL)是一种离散、分支时间、命题时态逻辑。一般讲CTL和CTL*统称为计算树逻辑。

计算树逻辑公式,简称CTL公式,定义如下:

①原子命题(命题变量或变量)是CTL公式;

②如果φ、ψ是CTL公式,那么(φ)、(φ∧ψ)、(φ∨ψ)、(φ→ψ)、(φ↔ψ)是CTL公式;

③如果φ、ψ是CTL公式,那么(A○ψ)、(E○ψ)、(A◇ψ)、(A□ψ)、(E□ψ)、(A(φ?ψ))、(E(φ?ψ))是CTL公式;

④当且仅当有限次使用①②③所组成的符号串是CTL公式。

 模型检测

标记算法是模型检验的一个简单算法,其基本原理在于:对于给定的CTL*公式φ,将其列写成A◇,E◇,E○,∧,,nil(假)连接的等值CTL*公式Φ;对Kripke结构中Φ的子公式满足的状态进行标记,直到Φ得到标记;所有标记为Φ的状态就是φ得到满足的状态。

Z语言

   Z语言为系统建立基于状态的模型。模型的三个主要组成部分是输入、输出和状态,它们均有相应的数学概念来描述。Z语言形式规约由数学语言描述和自然语言注释两部分组成。其中数学语言描述部分是核心,它是精确、简练地描述系统性质和自动推理的保证。自然注释部分则用于解释说明数学部分的内容。

Z语言表示

1.集合、关系及函数

集合、幂集、元组和笛卡儿积、关系与函数、队列和包

2.自由类型和模式

Petri网

Petri网结构 

Petri网结构是一个三元组N=(P,T,F),其中,

①P={p1,p2,...,pn}是有限库所集合;

②T={t1,t2,...,tn}是有限变迁集合(P∪T≠∅,P∩T=∅);

③F包含于(P×T)∪(T×P)为流关系。

前集和后集

对于一个Petri网结构N=(P,T,F),设x∈(P∪T),令

·x={y|彐y:(y,x)∈F}

x·={y|彐y:(x,y)∈F}

那么称·x为x的前集或输入集,称x·为x的后集或输出集。

顺序关系:若Petri网中存在变迁t1和t2,在某一时刻,t1就绪,而t2未就绪,且t1点火引发t2就绪,即t2的就绪以t1的点火为条件,则t1和t2具有顺序关系。

并发关系:若Petri网中存在变迁t1和t2,在某一时刻,t1,t2同时就绪,它们中任一变迁的点火都不会影响另一个变迁的就绪,则称t1和t2具有并发关系。

冲突关系:若Petri网中存在变迁t1和t2,在某一时刻,t1,t2同时就绪,它们中任一变迁的点火都会导致另一个变迁离开就绪状态,则称t1和t2具有冲突关系。

混惑关系:在某些情况下,一个Petri网中可能同时存在并发和冲突,并且并发变迁的点火会引起冲突的消失或出现。。

时间: 2024-10-12 22:48:15

软件工程概论总结第五章的相关文章

《软件工程概论》第五章总结

模态逻辑是经典命题逻辑和一阶谓词逻辑的拓展形式. 一阶线性时态逻辑(FOLTL)是一阶谓词逻辑的扩展. 计算树逻辑(CTL)是一种离散.分支时间.命题时态逻辑. Z语言为系统建立基于状态的模型.模型的三个主要组成部分是输入,输出和状态. Z语言表示抽象的要素总体上可分为两类:基于集合理论的集合.关系.函数.序列和包,以及Z独有的模式. Z语言中,自由类型用于递归定义新类型. 自由类型::=常量1|...|常量n|函数1<输入对象1>|...|函数m<输入对象m> Petri网分为位

《软件工程概论》第五章 软件工程中的形式化方法

形式化方法的基本概念: 形式规约 形式证明与验证 程序求精 一阶线性时态逻辑: 队列及其操作 汉诺塔操作规划问题 计算树逻辑 模型检测 Z语言概述: Z语言为系统建立基于状态的模型.模型的三个主要组成部分是输入.输出和状态,它们均有相应的数学概念来描述. Z语言表示: 集合.关系及函数 自由类型和模式 Petri网定义: 任何事物都可抽象为两类元素:状态和事件.在某种状态下,相应的事件便可发生.然后状态发生变化,于是又有一些新的事件可以发生.如此反复不已. (1)       Petri网结构

《软件工程》总结——第五章

本章的主要内容是软件工程中的形式化方法 形式化方法基本概念       形式规约 软件规格说明是对软件系统对象,对象的操作方法,以及对象行为的描述. 当规格说明用非形式化方法描述时,可称之为“规格说明”,当规格说明用形式化方法描述时,可称之为“形式规约”. 非形式化的规格说明可用自然语言.图.表等形式来描述.因为其具有严格的语法和语义定义,从而准确的描述系统模型,排出了矛盾.二义性.含糊性等情况. 目前,已建立了多种适用于软件规格说明的形式化方法.从形式规约到目标软件系统的可实现和可执行角度,可

软件工程概论总结第十一章

 第十一章 软件演化 软件演化的特性: 1.软件维护是一个必然的过程. 2.软件的不断修改会导致软件的退化. 3.软件系统的演化特性是在早期的开发阶段建立起来的. 4.软件开发的效率与投入的资源无关. 5.在软件系统中添加新的功能不可避免地产生新的缺陷,因此在一个发布的新版本中有较大的功能增量将会意味着需要发布下一个版本,该版本中的新增功能较少,而主要是修补这些新产生的软件缺陷. 软件维护 软件维护是指在软件运行或维护阶段对软件产品所进行的修改. 1.改正性维护 2.适应性维护 3.完善性维护

软件工程概论总结第七章

第七章  面向对象分析  分析类   在分析对象模型中,分析类是概念层次上的内容,用于描述系统中较高层次的对象. 实体类:表示系统存储和管理的永久信息: 边界类:表示参与者与系统之间的交互: 控制类:表示系统在运行过程中的业务控制逻辑. 分析活动  需求分析的重点在于理解系统本身,它将需求获取阶段产生的用例和场景转换成分析模型. 识别分析类 识别边界类 通常,一个参与者与一个用例之间的交互或通信关联对应一个边界类.边界类收集来自参与者的信息,这些信息可以被实体类和控制类使用. 识别控制类  控制

《软件工程概论》第六章 面向对象基础

面向对象方法概述:面向对象=对象+类+继承+通信 面向对象技术的发展历史: 初始阶段——20世纪60年代末 发展阶段——20世纪80年代中期到90年代 成熟阶段——20世纪90年代后 面向对象的软件工程方法: 面向对象分析 面向对象设计 面向对象编程 面向对象测试 面向对象维护 面向对象基本概念: 对象 类 封装 继承 消息 关联 聚合 多态性 软件建模的重要性: 软件系统越来越大 没有参加开发的人员无法直接理解程序代码 人们需要一种描述复杂系统的简单方法 UML概念模型: 视图 图 模型元素

《软件工程概论》第四章核心内容

结构化设计方法是在模块化.自顶向下逐步细化及结构华程序设计技术基础之上发展起来的.结构化设计方法可以分为两类,一类是根据系统的数据流进行设计,称为面向数据流设计或称过程驱动设计:另一类是根据系统的数据结构进行设计,成为面向数据结构设计,或称数据驱动设计.  软件设计过程包括一套原理.概念和实践,可以指导高质量的系统或产品开发.  软件设计的原则:分而治之.模块独立性(耦合和内聚).提高抽象层次.复用性设计.灵活性性设计(降低耦合提高内聚.建立抽象.不要将代码写死.抛出异常.使用并创建可复用代码)

《软件工程概论》第六章核心内容

软件测试是在软件投入生产性运行之前,对软件需求分析.设计规格说明和编码的最终复审,是软件质量控制的关键步骤.  软件测试的对象:需求分析.概要设计.详细设计及程序编码等阶段所得的文档资料,包括需求规格说明.概要设计规格说明.详细设计规格说明以及源程序.  确认是一系列的活动和过程,目的在于证实在一个恰当的外部环境中软件的逻辑正确性,分为静态确认和动态确认.  验证是试图证明在软件生存期各个阶段以及阶段间的逻辑协调性.完备性和正确性.确认与测试都属于软件测试.  黑盒测试:已知产品的功能设计规格,

《软件工程概论》第七章 面向对象分析

分析类: 实体类:用于描述必须存储的信息及其相关行为. 边界类:用于描述外部参与者与系统之间的交互. 控制类:用于描述一个用例所具有的事件流控制行为. 分析活动: 需求分析的重点在于理解系统本身,它将需求获取阶段产生的用例和场景转换成分析模型. 识别分析类: 识别边界类 识别控制类 识别实体类 定义交互行为:顺序图 建立分析类图: 定义关系和属性 应用分析模式 评审分析模型