一、规格化设计的发展历史
此部分有参考百度、谷歌及其他同学的博客。
最初的软件形式化方法源于二十世纪五十年代,及软件工程这一概念刚刚开始兴起的时代,对于工程间的协调管理,人们提出采用工程方法来组织、管理软件的开发过程并深入探讨程序和程序开发过程的规律,建立严密的理论。这一结构发展至今,规格已经形成一套完整的逻辑体系并融入软件开发的各个步骤,,从需求分析、功能描述(规约)、(体系结构/算法)设计、编程、测试直至维护。
1975—1980年代,第二次分离,规格说明(Spec)和体(body)的分离说明是类型定义和操作描述,体是操作的具体实现。(具体的例子就是C++,Java等面向对象语言的类说明与类实现的分离。)解决方案设计只关注说明,实现时引用或者设计体。体的更改、置换不影响规格说明,保证了可移植性。支持多机系统,但要同样环境。此时产生了划时代的面向对象技术。
1995—2000年代,第三次分离,对象使用和对象实现的分离基于构件开发:标准化的软件构件如同硬件IC,可插拔,使用者只用外特性,不计内部实现。Web Services:软件就是服务。分布式,跨平台,松耦合。
二&三、
这三次作业都没有被找出规格bug,当然,这并不代表着我写出来的代码有多高的质量,对于自己的代码有多烂心里也是清楚的,十分感谢对面仁慈的测试者!!
四、
JSF写的不太好的:
1、使用了许多自然语言 改进方法:使用布尔表达式
2、没有对参数进行范围限制 改进方法:对每个参数判断参数的有效范围
3、JSF的语法不对(例如==和=混淆使用) 改进方法:对JSF的语法规则进一步熟悉
4、逻辑上有错误 改进方法:对每个方法的前置条件和后置条件进行仔细分析
5、条件不完善 改进方法:对代码的结构需要更清晰的了解
五、
由于这三次作业都碰上了对面是极其可爱的仁慈测试者,所以没有被报出功能性bug和规格性bug
六、
这三次作业相对来说代码量没有之前的多,大部分任务都集中在规格的撰写与补充上,个人感觉像是进入了一个新阶段,但是课程对我们的要求却似乎有点操之过急,我们大部分都是第一次接触规格这个东西,从第一次规格作业就开始让我们进行规格方面的互测,而这个阶段我们对自己的规格尚且都不抱有自信,又哪里有这个资格去评判别人的规格呢,所以自知能力不够的我在互测中,这三次作业也都没有挑对面的规格bug。随着作业已经慢慢由代码转为规格,OO课程也将迎来尾声了,这个学期的OO体验还是挺特别的,与其说能力,我觉得OO反而对我的心性有更多的磨练。