第7章 需求的形式化描述

合集下载

第3章 需求分析

第3章 需求分析

第3章需求分析一、填空题(30小题)1、需求分析的困难主要体现在4个方面:问题的复杂性、( )、( )、需求易变性。

答案:交流障碍、不完备性和不一致性2、由于数据流是流动中的数据,所以必须有( )。

除了与( )之间的数据流不用命名外,数据流应该用名词或名词短语命名。

答案:流向、数据存储3、需求分析是指,开发人员要准确理解( ),进行细致的( ),将用户非形式的需求陈述转化为( ),再由( )转换到相应的形式功能规约(需求规格说明)的过程。

答案:用户的要求、调查分析、完整的需求定义、需求定义4、建立数据字典一般的两种形式是( )和( )。

答案:手工建立、利用计算机辅助建立并维护5、在进行可行性研究和软件计划以后,如果确认开发一个新的软件系统是必要的而且是可能的,那么就进入( )阶段。

答案:需求分析6、结构化语言是介于自然语言(英语和汉语)和形式化语言之间的一种半形式语言。

它的结构可分成外层和内层两层,外层用来描述( ),采用( )、( )、( )三种基本结构。

答案:控制结构、顺序、选择、重复7、在SA的需求描述工具中,( )描述系统的分解,即描述系统由哪几部分组成,各部分之间有什么联系等。

( )定义了数据流图中每一个图形元素。

结构化语言、判定表和判定树则详细描述数据流图中不能被再分解的( )。

答案:数据流图、数据字典、每一个加工8、IDEF方法分为以下三部分。

IDEF0:用来描述系统的( ),建立系统的( )。

IDEF1:用来描述系统的( ),建立系统的( )。

IDEF2:用来进行系统的( ),建立系统的( )。

答案:功能活动及联系、功能模型、信息及其联系、信息模型、模拟、动态模型9、三种描述加工逻辑的工具各有优缺点,对于顺序执行和循环执行的动作,用( )描述。

对于存在多个条件复杂组合的判断问题,用( )和( )。

答案:结构化语言、判定表、判定树10、经过需求分析,开发人员已经基本上理解了用户的要求,确定了目标系统的功能,定义了系统的数据,描述了处理这些数据的基本策略。

需求分析简答重点

需求分析简答重点

第一部分软件需求的基本概念*好需求的特征:无歧义、完整、一致、可检验、确定、可跟踪的,正确的,可行的和必要的。

软件开发的目标,简单而言,就是满足用户的需要。

三种最经常使项目“遇到困难"的因素是:⏹缺乏用户介入:占所有项目的13%⏹不完整的需求和规格说明:占所有项目的12%⏹不断改变的需求和规格说明:占所有项目的12%三种项目最主要的“成功因素"是:⏹用户介入:占所有成功项目的16%⏹高层管理的支持:占所有成功项目的14%⏹需求陈述清晰:占所有成功项目的12%高质量的需求过程带来的好处:在开发后期和整个维护阶段的重做的工作大大减少了。

IEEE软件工程标准词汇表定义需求为:1.用户解决问题或达到目标所需的条件或能力。

2.系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或能力.3.一种反映上面(1)或(2)所描述的条件或能力的文档说明.第二章需求的层次*需求是多层次的,包括业务需求、用户需求、功能需求和非功能需求。

业务需求反映了组织机构或客户对系统、产品高层次的目标要求,位于需求链中的最顶层,在项目视图和范围文档中予以说明。

用户需求描述了用户使用产品必须要完成的任务,这在实例文档或方案脚本予以说明。

功能需求定义了开发人员必须实现的软件功能,使得用户完成他们的任务,从而满足了业务需求。

和非功能需求在SRS中说明。

非功能性的需求描述了系统展现给用户的行为和执行的操作等,它包括产品必须遵从的标准、规范和约束,操作界面的具体细节和构造上的限制。

需求路线图:涉众需要-〉系统的特性—〉建立软件需求软件的6个质量特征(非功能性需求):可靠性,可用性,有效性,可维护性,可移植性,约束。

有效性(Efficiency)是在规定的条件下,软件性能水平与所使用资源量之间关系有关的一组属性.可靠性(Reliability)是与在规定的一段时间和条件下,软件维持其性能水平的能力有关的一组属性可维护性(Maintainability)是与进行指定的修改所需的努力有关的一组属性约束定义为:对开发人员在软件产品设计和构造上的限制。

第7章 关系数据库规范化理论

第7章 关系数据库规范化理论
20
7.2.1 关系模式中的码
例:
关系模式S(Sno,Sdept,Sage),单个属性Sno是码
SC(Sno,Cno,Grade)中,(Sno,Cno)是码 关系模式R(P,W,A)
P:演奏者
W:作品
A:听众
一个演奏者可以演奏多个作品 某一作品可被多个演奏者演奏 听众可以欣赏不同演奏者的不同作品 码为(P,W,A),即All-Key
Sno→SName
Sno→Sdept
Sno→Sage
例:SC(Sno, Cno, Grade)
(Sno, Cno)→Grade
8
7.1.2 一些术语和符号
平凡函数依赖与非平凡函数依赖
在关系模式R(U)中,对于U的子集X和Y,
如果X→Y,但Y X,则称X→Y是非平凡的函数依赖
若X→Y,但Y X,
则称X→Y是平凡的函数依赖
例:在关系SC(Sno, Cno, Grade)中,
非平凡函数依赖: (Sno, Cno) → Grade 平凡函数依赖: (Sno, Cno) → Sno
(Sno, Cno) → Cno
如不作特别说明,总是讨论非平凡函数依赖。
9
7.1.2 一些术语和符号
若X→Y,则X称为这个函数依赖的决定属性
24
7.2.1 关系模式中的码
外部码:用于关系表之间建立关联的属性(组)。 关系模式 R 中属性或属性组X 并非 R的码,但 X
是另一个关系模式的码,则称 X 是R 的外部码,也 称外码。
如在SC(Sno,Cno,Grade)中,Sno不是码,
但Sno是关系模式S(Sno,Sdept,Sage)的码, 则Sno是关系模式SC的外部码

《软件工程》自考02333-重点难点汇集

《软件工程》自考02333-重点难点汇集

《软件⼯程》⾃考02333-重点难点汇集《软件⼯程》串讲讲义应考指导⼀、课程介绍1、课程性质《软件⼯程》是全国⾼等教育⾃学考试计算机及应⽤(独⽴本科段)的⼀门专业课。

软件⼯程是研究软件开发的⼀门课程,其主要内容包括:软件开发所需要的过程、活动和任务,以及这些活动和任务的组织、实施和管理。

2、指定教材本课程指定教材为《软件⼯程》,全国⾼等教育⾃学考试指导委员会组编,王⽴福主编,机械⼯业出版社出版,2011年版。

新版教材与2000年版相⽐,⽆论是内容还是内容的组织,都有了很⼤的变化。

整个知识体系、章节安排、内容选取都不⼀样,这是考⽣⼀定要注意的。

新版教材的内容组织特点主要体现在:基于对软件开发本质的认识,讲解软件⼯程的两⼤技术问题:⼀是开发逻辑,⼆是开发途径。

开发逻辑涉及软件⽣存周期过程、软件⽣存周期模型(有关过程、活动和任务的组织框架)以及项⽬软件⽣存周期的规划与监控。

开发途径涉及结构化⽅法和⾯向对象⽅法,以及⽀持软件评估所需要的软件测试技术等。

3、章节体系本课程共有8章:第1章:回答什么是软件开发的本质第2章:软件需求与软件需求规约第3章:结构化⽅法第4章:⾯向对象⽅法-UML第5章:⾯向对象⽅法-RUP第6章:软件测试。

第7章:软件⽣存周期过程及管理第8章:集成化能⼒成熟度模型CMMI⼆、考情分析1.历年真题的分布情况由于教材刚刚经过改版,新教材刚经过2011年10⽉、2012年01⽉、2012年10⽉三次考试。

通过对2011年10⽉、2012年01⽉这两次真题的分析,各章所占分值的分布情况如下表所⽰:25%左右。

第1章和第8章的考核知识点相对较少。

2.题型分析本课程的考试题型分为:(1)单项选择题,共15⼩题,每⼩题2分,共30分(2)填空题,共20个空,每空1分,共20分(3)简答题,共6⼩题,每⼩题5分,共30分(4)综合应⽤题,共2题,每题10分,共20分3.复习⽅法(1)以教学⼤纲为准绳。

软件工程复习资料

软件工程复习资料

第一章绪论什么是软件工程?软件=程序+数据+文档什么是软件危机?软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件,从而导致软件开发与维护过程中出现一系列严重问题的现象。

什么是软件工程?采用工程化的原理和方法对软件进行计划开发和维护。

软件工程三范型:1.过程式编程范型2.面向对象编程范型3.基于构件技术的编程范型软件工程的发展时期:(1)传统软件工程或者经典软件工程:开发过程:结构化分析一>结构化设计一>面向过程的编码一>软件测试(2)面向对象软件工程开发过程:OO分析与对象抽取一》对象详细设计一》面向对象编码与测试(3)基于构件的软件工程:以软件复用为目标、领域工程为基础,其开发过程一般包括包括以下阶段:领域分析和测试计划定制一一》领域设计一一》建立可复用构件库一一》按“构件集成模型,,查找与集成构件第二章生存周期什么是软件生存周期?计划阶段:需求分析,软件分析开发阶段:软件设计,编码(测试)软件测试维护阶段:运行维护模型特点和使用场合可行性研究1.经济可行性2.技术可行性3.运行可行性4.法律可行性第三章结构化分析与设计结构化程序设计的特点以及论述(1)整个程序的模块化(2)每个模块只有一个入口和出口(3)每个模块都应能单独执行,且无死循环(4)采用自顶向下,逐步细化的方法SA结构化分析设计(结构化)从内容分:1.系统结构设计2.接口设计3.数据设计4.过程设计按照步骤分:1.概要设计2.详细设计第四章OO与面向对象+UML OO的特征1.抽象2.封装3.继承4.多态为什么用面向对象1.符合人类习惯的思维方式2.提高软件系统的可复用性3.提高软件系统的可扩展性4.提高软件系统的可维护性UML相关知识静态图1.用例图:描述系统功能2.类图:描述系统的静态结构3.对象图:描述系统在某个时期的静态结构4.构件图:描述实现系统的元素的组织5.部署图:描述系统环境元素的配置动态图1.状态图:描述系统元素的状态条件和相应2.时序图:按照时间顺序描述系统元素间的交互3.协作图:按照连接关系描述系统元素间的交互4.活动图:描述系统元素的活动流程第五章需求建模需求分析的步骤1.需求获取2.需求建模3.需求描述4.需求验证面向对象需求建模1.画用例图2.写用例规约3.描述补充规约4.编写术语表第六章需求分析面向对象的需求分析1.边界类:边界类提供了对参与者或外部系统交互协议的接口。

嵌入式系统设计智慧树知到答案章节测试2023年华东师范大学

嵌入式系统设计智慧树知到答案章节测试2023年华东师范大学

第一章测试1.嵌入式计算机基本架构包括CPU、IO和()A:存储器B:仿真器C:模拟信号D:cache答案:A2.嵌入式系统的实时性可分为软实时和()A:硬实时B:截止时限C:软实时D:周期答案:A3.信息物理融合系统CPS的是指()A:计算与物理成分的融合B:高强度的计算C:连续过程与离散时间的交织D:系统通信与交互方式多变答案:ACD4.“需求”非形式化描述了用户想要什么,为了能够更精确的描述需求,这里可以通过需求表给出需求的描述。

A:对B:错答案:A5.在GPS的结构设计中,需要考虑硬件组件和软件组件。

A:错B:对答案:B第二章测试1.数据、指令存储在同一个存储器中的系统是哈弗结构。

A:错B:对答案:A2.关于汇编语言,对于伪指令的描述下面哪个不对()。

A:保存存储的指令B:定义常数C:定义目前地址D:直接一一对应机器指令答案:D3.在ARM指令执行过程中,通过判断PSR中的条件位域,完成条件执行。

A:对B:错答案:A4.下面哪个是ARM汇编指令的条件码。

A:EQB:LDRC:BD:ADD答案:A5.汇编程序段ADR r4, aLDR r0, [r4]实现了首先将a所在的地址存放在r4寄存器中,然后把r4所指的存储单元的内容存入r0寄存器中。

A:对B:错答案:A第三章测试1.I/O设备的状态寄存器是提供设备运行状态的,所以CPU只能读这些设备,不能写它们。

A:对B:错答案:B2.函数:int peek(char location) {return location; }是实现()A:从相应的I/O寄存器中读数据B:向相应的I/O寄存器中写数据C:向存储单元中写数据D:无意义答案:A3.中断处理程序例程通常也被称为设备驱动程序。

A:错B:对答案:B4.具有缓冲区的中断I/O中,函数void add_char(charachar)A:完成将数据写入I/O数据寄存器B:完成将数据写入I/O状态寄存器C:完成将数据写入缓冲区D:完成将数据写入CPU的寄存器中答案:C5.只有数据会影响高速缓存的命中率。

第7章 面向对象学习方法学

第七章面向对象学习方法学面向对象方法学的出发点和基本原则,是尽可能按照人类的习惯思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是使描述问题域空间与实现解法的解空间在结构上尽可能一致.与传统的结构化方法相比,使用面向对象方法开发的软件,其稳定性,可修改性和可重用性都比较好.本章内容主要包括:传统方法学的缺点,面向对象的基本概念,面向对象模型.7.1 基础知识7.1.1 传统方法学的缺点结构化几其他方法学的本质,是在具体的软件开发之前,通过需求分析预先定义软件需求.然后一个一个阶段地开发用户所需要的软件,实现预先定义的软件需要.过去的经验需要告诉我们,结构化及其他方法学并不能完全消除软件危机.结构化及其他方法学仍然有许多不足之处.1.问题的表现1)生产效率低在生命周期方法学中,特别重视软件开发的阶段性.为了提高了软件开发的效率,减少重大返工次数,强调必须早每个阶段结束之前进行评估.从而开发过程中实行严格的质量管理,确实提高了许多软件的开发的成功率.但是,时间表明,开发高利率仍然很有用.2)不能满足用户需要实践表明,在开发需要模糊或需求动态变化的系统时,软件系统的结果往往不能满足用户需求的变化.主要表现在两个方面:一种是开发人员不能完全获得彻底理解用户的需要,以至开发的软件系统与用户预期的系统不一致;另一种表现是,所开发的系统不能适应用户需求变化,系统的稳定性和可扩充性不能满足需要.3)软件服用就是将已有的软件成分用于构造新的软见系统.软件复用是节约人力,提高软件效率的重要途径.结构分析.设计,几乎每一次开发一个系统时都需要针对这个具体的系统做大量的重复劳动..思维成果的可复用性差.4)软件很难维护实践经验告诉我们,即使是用生命周期方法学开发出来的软件,维护起来仍然相当困难,软件维护成本很高.2.问题的原因1)结构化技术本身的问题结构分析和设计技术的基本思想是从目标系统整体功能的单个处理着手,自顶向下不断的把复杂的处理分解为子处理,一层一层的分解下去,直到剩下若干个容易实现的子处理为止。

软件工程导论知识点总结(整理)

软件⼯程导论知识点总结(整理)《软件⼯程导论》课后习题答案第⼀章软件⼯程概论1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的⼀系列严重问题。

这些问题表现在以下⼏个⽅⾯:(1)⽤户对开发出的软件很难满意。

(2)软件产品的质量往往靠不住。

(3)⼀般软件很难维护。

(4)软件⽣产效率很低。

(5)软件开发成本越来越⼤。

(6)软件成本与开发进度难以估计。

(7)软件技术的发展远远满⾜不了计算机应⽤的普及与深⼊的需要。

2.为什么会产⽣软件危机?(1) 开发⼈员⽅⾯,对软件产品缺乏正确认识,没有真正理解软件产品是⼀个完整的配置组成。

造成开发中制定计划盲⽬、编程草率,不考虑维护⼯作的必要性。

(2) 软件本⾝⽅⾯,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统⼀的、公认的⽅法论和规范指导,造成软件维护困难。

(3) 尤其是随着软件规模越来越⼤,复杂程度越来越⾼,原有软件开发⽅式效率不⾼、质量不能保证、成本过⾼、研制周期不易估计、维护困难等⼀系列问题更为突出,技术的发展已经远远不能适应社会需求。

3.怎样克服软件危机?(1) 充分吸收和借鉴⼈类长期以来从事各种⼯程项⽬中积累的⾏之有效的有效原理、概念、技术与⽅法,特别是吸取⼏⼗年来⼈类从事计算机硬件研究和开发的经验教训。

在开发软件的过程中努⼒作到良好的组织,严格的管理,相互友好的协作。

(2) 推⼴在实践中总结出来的开发软件的成功的技术和⽅法,并研究更好、更有效的技术和⽅法,尽快克服在计算机系统早期发展阶段形成的⼀些错误概念和作法。

(3) 根据不同的应⽤领域,开发更好的软件⼯具并使⽤这些⼯具。

将软件开发各个阶段使⽤的软件⼯具集合成⼀个整体,形成⼀个很好的软件开发⽀环环境。

总之为了解决软件危机,既要有技术措施(⽅法和⼯具),⼜要有必要的组织管理措施。

4.构成软件项⽬的最终产品:应⽤程序、系统程序、⾯向⽤户的⽂档资料和⾯向开发者的⽂档资料。

5.什么是软件⽣存周期?软件⽣存周期是指从软件定义、开发、使⽤、维护到淘汰的全过程。

软件工程题库

第一章一、名称解释1.软件工程是指导计算机软件开发和维护的工程科学。

采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。

一个软件从定义、开发、使用和维护,直到最终被废弃,所经历的整个时期被称为是软件生命周期二、填空题1.构成一个完整计算机系统的两部分是硬件与(软件)。

2.程序设计时代的生产方式是(个体手工劳动)。

3.软件工程涉及到若干个学科,它是一门(综合性交叉)学科。

4.软件开发划分的各阶段任务尽可能独立,同一阶段任务性质尽可能(相同)。

5.将软件生存周期各个活动规定为依线性顺序联接的若干阶段的模型是(瀑布)模型。

6.喷泉模型是一种以用户需求为动力,以(对象)为驱动的模型。

7.结构化方法是一种面向数据流的开发方法。

由结构化分析、(结构化设计)、结构化程序设计构成。

8.软件工程研究的主要内容是软件开发管理和(软件开发技术)两个方面。

9.软件工具是支持软件开发人员的开发和维护活动而使用的(软件)。

10.一个软件项目的开发中,要采用一种生存周期模型,要按照某种(开发方法),使用相应的工具来进行。

11 .瀑布模型本质上是一种(线性顺序)模型。

12.瀑布模型不适应需求可变的软件开发,只有到开发结束时才能见到(整个软件系统)。

13.增量模型在开发过程中以一系列增量方式开发系统,忽略某阶段的细节,从而尽早产生(工作软件)。

14.增量构造模型在分析和设计阶段按整体方式开发,按增量方式开发的是(编码和测试)阶段。

15.演化提交模型中,项目开发各阶段都是按(增量方式)开发的。

16.软件原型是软件的早期可运行版本,反映最终系统的(重要特性)。

17.用原型过程来代替需求分析,使需求说明完整、一致、准确,该原型是(探索型)原型。

18.用原型过程来代替全部开发阶段,这种快速原型是(演化型)原型。

19.若原型不满足需求说明,则根据明确的要求修改(原型)三、选择题1.软件是一种( )产品。

软件需求工程

所谓面向对象就是应用对象类继承封装消息对象或类之间的关系等面向对象的概念对问题进行分析和求解的软件开发技术或者说是以对象类为数据中心对象之间的动态行为模式作为运行机制的一种问题求解方法
软件需求工程
第1章 软件需求工程概述 IEEE 关于软件需求的定义 1) 用户解决问题或达到目标所需的条件或能力;(用户的角度 ) 2) 系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条 ቤተ መጻሕፍቲ ባይዱ或能力。(软件系统的角度 ) 软件需求的分类 1) 目标需求; 2) 业务需求; 3) 功能需求; 4) 性能需求; 5) 约束与限制。 6) 软件需求间的层次关系
复杂的软件系统的描述方法
?当前系统:已经存在的人工系统 ?目标系统:待开发的计算机系统 SA方法的分析步骤如下: 1)理解和分析当前的现实环境,以获得当前系统的具体模型。具体模型必须忠 实地反映人工系统的实际情况,软件开发人员在获得需求信息的基础上,利用DFD将现实环境中的人工系统表达出来。 2)建立当前系统的逻辑模型。从系统的具体模型中抽象出当前系统的逻辑模 型,当前系统的逻辑模型应反映当前系统必须满足的性质。 3)建立目标系统的逻辑模型。主要是分析目标系统与当前系统在逻辑系统的差 别,并建立目标系统的逻辑模型。 4)进一步完善目标系统的逻辑模型,完善的工作大致为: ①至今尚未说明的处理细节,如出错处理 ②某些需要的输入/输出格式或用户界面的说明 ③增加性能需求和其它一些约束限制等 状态转换图 P60-图5-18、P61-图5-19 第6章需求定义 需求规格说明的作用 需求规格说明的作用主要体现在: 1)需求规格说明是软件设计和实现的基础 2)需求规格说明是测试和用户验收软件系统的重要依据 3)需求规格说明能为软件维护提供重要的信息 一个软件系统能否满足用户需求,主要是用户的需求能否全部反映在需求规格说明中。因此,需求规格说明作为需求工程的最 终成果必须具有综合性,必须包括所有的需求,开发人员与客户不能做任何假设。 除了设计和实现的限制,需求规格说明不应包括假设、构造或维护阶段的细节; 需求规格说明=技术合同,是软件开发方与用户达成的一致性文档,是基准的规格说明。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

20
7.5 形式描述语言Z Notation
定义以下一些类型:
ComplaintID == Nat;我们使用自然数来标识不同的投诉。 Complainer == Nat;同样,自然数也可以用来标识投诉人。 ComplaintHandler == Nat;接线员。 ComplaintType == { enquire, complaint };根据投诉的内容,可以分 为咨询与投诉两类。 ComplaintState == { subscribed, pending, resolved };一个投诉可以 处于三个状态:提交、处理中、已处理。

Hoare逻辑 把P {S} Q称为Hoare公式,其中P,Q为 前置和后置条件,S为规格说明(或程序)。 此公式的含意是:当P成立时,执行S后结果 (执行停止后的结果),导致Q也应成立。
2012-8-2
9
7.3基于公理或推理规则的形式化规格 说明

示例:求最小值方法的Hoare逻辑表示 True { if x < y then x < y { z:= x} z := min(x , y) else x > y { z:= y} z := min(x , y) endif }
2012-8-2
17
7.5 形式描述语言Z Notation
6.
常用函数符号 lambda记号
7.
2012-8-2
18
7.5 形式描述语言Z Notation

Z Notation中的图表 一个Z Notation的图表由两部分组成:变量 声明部分与谓词部分。
2012-8-2
19
7.5 形式描述语言Z Notation
lid ' 0
操作Init
2012-8-2
23
7.5 形式描述语言Z Notation
Complain
ComplaintStock
owner? : Complainer type ? : ComplaintType handler ? : ComplaintHandler
stock ' stock (lid , owner , handler , type, subscribed ) lid ' succ(lid )
用户投诉的操作Complain
2012-8-2
24
7.5 形式描述语言Z Notation
HandleComplain
ComplaintStock reply !: ComplaintID
s : stock ( s.status subscribed s.cid reply ! s.type enquire s '.status resolved ) ( s.status subscribed s.type complaint s'.status = pending )

2012-8-2 12
7.4基于代数的形式化规格说明
Var Var Eq Eq Eq Endo E: Element S: Stack pop ( push ( E,S) ) = S top (push( E,S)) = E isempty( create ) = true
2012-8-2
13
7.4基于代数的形式化规格说明
26
2012-8-2
7.6 形式描述语言LOTOS

LOTOS的数据描述语言 LOTOS使用抽象数据类型来表示系统中 需要的数据。要定义一个抽象数据类型,必须 定义其数据类型以及该类型上的操作(运算)。
2012-8-2
27
7.6 形式描述语言LOTOS
一个自然数的抽象数据类型
2012-8-2 28
15
2012-8-2
7.5 形式描述语言Z Notation

1.
Z Notation的数学符号
常用的集合 ● 自然数集合。 ● 整数集合。 ● 实数集合。 代换
2.
3.
幂集 幂集符号PA表示集合A的幂集。
2012-8-2
16
7.5 形式描述语言Z Notation
4.
常用的关系符号
5.
复合关系
形式化规格说明的最简单形式是将一个系 统视为由许多功能组成的集合,然后给各个 功能附加前置和后置条件。
2012-8-2
6
7.3基于公理或推理规则的形式化规格 说明

利用前置和后置条件描述功能规格说明,需注 意如下几点:
1.
2.
3.
确定功能能正确执行的输入参数的范围,把输入参 数的约束条件规定为谓词 ; 在功能正确执行时,把输出数据应满足的条件表示 成谓词 ; 应考虑在函数的输入参数中是否发生值变化的情况, 如果有的话,则应规定在其中放入前置和后置条件。
2012-8-2
21
7.5 形式描述语言Z Notation
Complaint
cid : ComplaintID owner : Complainer handler : ComplaintHandler type : ComplaintType status : ComplaintState
投诉的图表
2012-8-2
31
7.6 形式描述语言LOTOS
我们可以把系统抽象为一个独立运行的进 程,通过三个门:Request, Cancel,Deposit 与用户交互,接受用户的订单请求、取消与入 库等消息,这样可以把整个规约定义如下:
2012-8-2
32
7.6 形式描述语言LOTOS
系统由两个相互通信的并发子进程组成: Order与Stocks,分别负责订单的处理与库存 的管理。

Z Notation规约的实例:投诉处理的软件需求 在这个投诉处理的系统中,用户会通过电 话不断提出各种类型的投诉信息,接线员根据 投诉的类型与内容决定处理方式,如果不能够 立刻处理,则需要启动一个复杂的处理流程, 由多方协助处理。当投诉信息处理完毕后,需 要向投诉人反馈处理结果。
2012-8-2
2012-8-2
37
抽象机的基本结构
第7章 需求的形式化描述
1
第7章 需求的形式化描述
7.1 形式化规格说明及其方法 7.2 形式化规格证明与软件开发 7.3 基于公理或推理规则的形式化规格说明 7.4 基于代数的形式化规格说明 7.5 形式描述语言Z Notation 7.6 形式描述语言LOTOS 7.7 B方法
2012-8-2

1.
抽象数据类型的规格说明的过程
确定所需的全部操作。在这些操作中有生成或更 改类的实体操作等; 根据各种操作的组合导出公理; 补充一些对错误处理的特殊操作,以及追加一些 非形式化的说明,以增强代数规格说明的可理解 性。
2. 3.
2012-8-2
14
7.5 形式描述语言Z Notation

简介 Z Notation是Oxford提出的一种基于集合 论与一阶谓词逻辑的形式化规格说明语言,也 称Z语言。 Z Notation的表示符号主要为数学符号与 图表(Schema)符号。 在Z Notation所描述的系统中,系统的状态 由一些抽象的变量所刻画,这些变量取值的变 化表示系统状态的变迁,而这样的变化则是由 那些对系统施加的操作所造成的。
2012-8-2
22
7.5 形式描述语言Z Notation
ComplaintStock
stock : Complaint
s1 , s2 : stock ( s1.cid s2 .cid s1 s2 )
投诉信息的存储
Init
ComplaintStock' lid ' : ComplaintID stock '
2012-8-2
7
7.3基于公理或推理规则的形式化规格 说明

示例:栈
Function Pop ( S: Stack) return Stack 前置条件: Isempty (S) = false 后置条件: Push (Top(S), Pop (S)) = S
2012-8-2
8
7.3基于公理或推理规则的形式化规格 说明
2012-8-2
30
7.6 形式描述语言LOTOS
订单定义抽象类型Order如下:
为了表达更清楚,我们为订单的引用、货 物代码与产品数量定义了不同的类型如下:
type Reference renames Nat endtype (* 订单的引用 *) type Product renames Nat endtype (* 货物代码 *) type Amount renames Nat endtype (* 货物数量 *)
2012-8-2
33
7.6 形式描述语言LOTOS
2012-8-2
34
7.7 B方法

B方法简介 B方法(B Method)是目前国际上较流行、 简单易用、较受重视的实用性软件形式化方法 之一,它是由Z语言发展而来的,20世纪80年 代初期对Z规格说明语言的研究形成了B方法 的背景。B的目的是为了增强Z的模块化能力, 因为Z语言对大型系统的模块化处理能力不足。
2
7.1形式化规格说明及其方法


1. 2.
形式化规格说明 由严格的数学符号及由符号组成的规则形 成的规格说明。 形式化规格说明的优点
通过形式化能减少规格说明完成后的错误; 利用数学的方法进行分析,可以证明规格说明的 正确性,或判断多个规格说明间的等价性; 形式化规格说明可用计算机处理。
3.
2012-8-2
投诉处理的过程
ComplaintStock reply !: ComplaintID flowref ? : ComplaintID
相关文档
最新文档