第三次博客作业(OO)

一)。规格化设计的大致发展历史

软件形式化方法最早可追溯到20世纪50年代后期对于程序设计语言编译技术的研究,即J.Backus提出BNF描述Algol60语言的语法,出现了各 种语法分析程序自动生成器以及语法制导的编译方法,使得编译系统的开发从“手工艺制作方式”发展成具有牢固理论基础的系统方法。形式化方法的研究高潮始于 20世纪60年代后期,针对当时所谓“软件危机”,人们提出种种解决方法,归纳起来有两类:一是采用工程方法来组织、管理软件的开发过程;二是深入探讨程 序和程序开发过程的规律,建立严密的理论,以其用来指导软件开发实践。前者导致“软件工程”的出现和发展,后者则推动了形式化方法的深入研究。经过30多 年的研究和应用,如今人们在形式化方法这一领域取得了大量、重要的成果,从早期最简单的形式化方法——一阶谓词演算方法到现在的应用于不同领域、不同阶段 的基于逻辑、状态机、网络、进程代数、代数等众多形式化方法。形式化方法的发展趋势逐渐融入软件开发过程的各个阶段,从需求分析、功能描述(规约)、(体 系结构/算法)设计、编程、测试直至维护。

程序规格可能涉及到三个方面:
  1. 对程序需求的陈述
  2. 一个程序的设计的完整表述
  3. 一个程序能够被验证是否正确运行的标准状态的描述。

1995年,Hoffman提出了一种状态抽象模块,它提供了一个好的数学模型,并且提高了抽象规格的清晰性和易用性。状态的抽象提高了接口的抽象程度,但是状态的变化使得模块的接口难以定义。堆方法是基于抽象状态方法扩充出来的另一种思路。堆方法是在对象引用和对象状态之间建立映射,堆中可以找到由区域应用的对象的状态,通过在程序中检验对状态,可以验证程序的正确性和完备性。但是堆方法也有缺陷,它定义的对象过多,容易造成空间爆炸。

在大型项目的开发中,单个项目不可能由一个人完成。多人协作共同完成任务就意味着不仅仅需要知道自己的代码做了什么,还要知道别人的代码做了什么。进行规格抽象,有助于更直观的了解程序功能模块的输入限制、可以实现的功能等等。规格抽象中不关心具体的算法,降低了程序的阅读难度,提高了程序的易读性。从方法规格对模块进行检查,便于保证和验证程序的正确性。对于编程人员,他们可以分工合作,根据统一的规格来完成一个程序。从局部来看,针对一个规格抽象的视线与针对其他规格抽象的实现无关,相互之间不会产生影响。当修改一个规格抽象的实现时,不需要对使用该抽象的其他任何规格抽象及其实现进行调整。这样既保证代码的相异性设计又保证了程序的可维护性。而对于程序的使用者,阅读规格,可以迅速了解程序的功能和作用,提高效率。规格化设计的大致发展历史。

二)。按照作业,针对自己所被报告的规格bug以及雷同的规格bug

因为我在第九~十一此作业,我写不出代码,我无法提供规格的Bug。

三)。分析自己规格bug的产生原因

因为我在第九~十一此作业,我写不出代码,我无法提供规格的Bug。

四)。归纳自己在设计规格和撰写规格的基本思路和体会

在设计一个规格我从课程上机课,一般是先看懂函数的功能,而函数需求的变量是什么。对自己来说我一般遇到困难是在看明白函数的功能。我自己的编成经验也不太多,我也有有很多地方都不知道怎么写。但我通过OO课得到了新的知识,希望从OO这门课对我之后找到的工作岗位有帮助。虽然我在几次作业经常遇到很多困难而且好多作业都写不出来,我还需要坚持而提高自己的编成能力。这门课带给我新的经验因为在工作的时候我们会经常遇到这种情况。希望自己的编成能力有进步。

猜你喜欢

转载自www.cnblogs.com/zhangjinyuan9/p/9112599.html