基于SOFL的开发方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于SOFL的开发方法
SOFL是形式化语言中的一种,它集成了数据流图,VDM-SL,Petri网的优势,为规格说明书的创建工作提供图文并茂的形式化标记。

对传统的数据流图进行扩展,并使用Petri网为DFD提供操作语义,形成了CDFD。

它用层次方式进行组织,从而把复杂问题分解成若干组织良好的子CDFD;VDM-SL用表对CDFD里的构建进行形式描述,两者结合,构成了SDFL。

传统开发方法存在问题:
1.软件重用性差
重用性是指同一事物不经修改或稍加修改就可多次重复使用的性质。

软件重用性是软件工程追求的目标之一。

2.软件可维护性差
软件工程强调软件的可维护性,强调文档资料的重要性,规定最终的软件产品应该由完整、一致的配置成分组成。

在软件开发过程中,始终强调软件的可读性、可修改性和可测试性是软件的重要的质量指标。

实践证明,用传统方法开发出来的软件,维护时其费用和成本仍然很高,其原因是可修改性差,维护困难,导致可维护性差。

3.开发出的软件不能满足用户需要
用传统的结构化方法开发大型软件系统涉及各种不同领域的知识,在开发需求模糊或需求动态变化的系统时,所开发出的软件系统往往不能真正满足用户的需要。

用结构化方法开发的软件,其稳定性、可修改性和可重用性都比较差,这是因为结构化方法的本质是功能分解,从代表目标系统整体功能的单个处理着手,自顶向下不断把复杂的处理分解为子处理,这样一层一层的分解下去,直到仅剩下若干个容易实现的子处理功能为止,然后用相应的工具来描述各个最低层的处理。

因此,结构化方法是围绕实现处理功能的“过程”来构造系统的。

然而,用户需求的变化大部分是针对功能的,因此,这种变化对于基于过程的设计来说是灾难性的。

用这种方法设计出来的系统结构常常是不稳定的,用户需求的变化往往造成系统结构的较大变化,从而需要花费很大代价才能实现这种变化。

例如:1.结构化方法是一种传统的软件开发方法,它是由结构化分析、结
构化设计和结构化程序设计三部分有机组合而成的。

它的基本思想:把一个复杂问题的求解过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。

结构化方法的基本要点是:自顶向下、逐步求精、模块化设计。

结构化方法是强调开发方法的结构合理性以及所开发软件的结构合理性的软件开发方法。

结构是指系统内各个组成要素之间的相互联系、相互作用的框架。

结构化开发方法提出了一组提高软件结构合理性的准则,如分解与抽象、模块独立性、信息隐蔽等。

针对软件生存周期各个不同的阶段,它有结构化分析(SA)、结构化设计(SD)和结构化程序设计(SP)等方法。

结构化分析方法给出一组帮助系统分析人员产生功能规约的原理与技术。

它一般利用图形表达用户需求,使用的手段主要有数据流图、数据字典、结构化语言、判定
表以及判定树等。

结构化设计方法的设计原则:
(1)使每个模块执行一个功能(坚持功能性内聚);
(2)每个模块用过程语句(或函数方式等)调用其他模块;
(3)模块间传送的参数作数据用;
(4)模块间共用的信息(如参数等)尽量少。

2.面向对象开发方法;
起初,“面向对象”是专指在程序设计中采用封装、继承、抽象等设计方法。

可是,这个定义显然不能再适合现在情况。

面向对象的思想已经涉及到软件开发的各个方面。

如,面向对象的分析(OOA,Object Oriented Analysis),面向对象的设计(OOD,Object Oriented Design)、以及我们经常说的面向对象的编程实现(OOP,Object Oriented Programming)。

面向对象设计是把分析阶段得到的需求转变成符合成本和质量要求的、抽象的系统实现方案的过程。

从面向对象分析到面向对象设计,是一个逐渐扩充模型的过程。

瀑布模型把设计进一步划分成概要设计和详细设计两个阶段,类似地,也可以把面向对象设计再细分为系统设计和对象设计。

系统设计确定实现系统的策略和目标系统的高层结构。

对象设计确定解空间中的类、关联、接口形式及实现操作的算法。

面向对象设计的准则:
1.模块化
面向对象开发方法很自然地支持了把系统分解成模块的设计原则:对象就是模块。

它是把数据结构和操作这些数据的方法紧密地结合在一起所构成的模块。

2.抽象
面向对象方法不仅支持过程抽象,而且支持数据抽象。

3.信息隐藏
在面向对象方法中,信息隐藏通过对象的封装性来实现。

4.低耦合
在面向对象方法中,对象是最基本的模块,因此,耦合主要指不同对象之间相互关联的紧密程度。

低耦合是设计的一个重要标准,因为这有助于使得系统中某一部分的变化对其它部分的影响降到最低程度。

5.高内聚
1.操作内聚。

2.类内聚。

3.一般——具体内聚。

3.形式化开发方法:
用于开发计算机系统的形式化方法是描述系统性质的基于数学的技术,这样的形式化方法提供了一个框架,可以在框架中以系统的而不是特别的方式刻划、开发和验证系统。

如果一个方法有良好的数学基础,那么它就是形式化的,典型地以形式化规约语言给出。

这个基础提供一系列精确定义的概念,如:一致性和完整性,以及定
义规范的实现和正确性。

形式化方法的本质是基于数学的方法来描述目标软件系统属性的一种技术。

不同的形式化方法的数学基础是不同的,有的以集合论和一阶谓词演算为基础(如Z和VDM),有的则以时态逻辑为基础。

形式化方法需要形式化规约说明语言的支持。

形式化方法的一个重要研究内容是形式规约(Formal Specification,也称形式规范或形式化描述),它是对程序“做什么”(what to do)的数学描述,是用具有精确语义的形式语言书写的程序功能描述,它是设计和编制程序的出发点,也是验证程序是否正确的依据。

对形式规约通常要讨论其一致性(自身无矛盾)和完备性(是否完全、无遗漏地刻画所要描述的对象)等性质。

形式规约的方法主要可分为两类:一类是面向模型的方法也称为系统建模,该方法通过构造系统的计算模型来刻画系统的不同行为特征;另一类是面向性质的方法也称为性质描述,该方法通过定义系统必须满足的一些性质来描述一个系统。

不同的形式规约方法要求不同的形式规约语言,即用于书写形式规约的语言(也称形式化描述语言),如代数语言OBJ、Clear、ASL、ACT One/Two等;进程代数语言CSP、CCS、π演算等;时序逻辑语言PLTL、CTL、XYZ/E、UNITY、TLA 等;这些规约语言由于基于不同的数学理论及规约方法,因而也千差万别,但它们有一个共同的特点,即每种规约语言均由基本成分和构造成分两部分构成。

前者用来描述基本(原子)规约,后者把基本部分组合成大规约。

构造成分是形式规约研究和设计的重点,也是衡量规约语言优劣的主要依据。

软件工程的理论和实践发展到今天,已经有各种各样的软件开发方法可以采用。

如何利用各种方法的长处,从而实现优势互补,是摆在我们面前的一个新的课题。

现在已经有人开始对各种方法的结合进行研究。

S.Y.Liu等人提出了一门SOFL语言和一种集成了结构化方法、面向对象方法和形式化方法于一体的SOFL开发方法学。

SOFL方法学在需求分析和规格说明阶段采用结构化方法,在设计和实现阶段采用面向对象方法,在软件开发全过程中对一些软件质量有重要影响的部分采用形式化方法。

S.Y.Liu还给出了实际系统的开发实例,证明了SOFL方法是一种形之有效的方法。

相关文档
最新文档