面向对象第三次总结作业

一  规格化的历史

       二十世纪中期,计算机从军用向民用转化。六十年代,计算机应用范围扩展,需求急剧上升,传统开发方式不能满足质量效率的需求,出现了“软件危机”。

       为解决这个问题,1968年NATO会议提出“软件工程”的概念,把软件工程从“艺术”和“个体行为”向“工程”和“群体协同工作”转化。

       Dijkstra于1968发表了著名的《GOTO有害论》的论文,引起了长达数年的论战,并由此产生了结构化程序设计方法,70年代风靡PO(面向过程),结构化的分析设计测试。

       软件有别于其他工业产品,非物质,不会磨损,生产进度难以度量。软件工程则要从管理和技术两个角度将其可视化和定量化。软件工程的重点在于软件复用,复用的关键技术有软件构件技术,领域工程,软件体系结构等。

       面向对象带来的对象建模语言等软件开发的新方法和领域。

  软件工程的发展工程中,一些重要的文档格式的标准被确定下来,包括变量、符号的命名规则以及源代码的规范式。后来随着发展,这些规范逐渐形成了软件开发中的规格化设计,并且由于其高效性与高可靠性,越来越受到软件开发人员的重视。

二  规格bug分析

第九次 无

第十次 无

第十一次

require不完整,将在地图内用in map,而没有使用表达式

方法行数:7行

与bug是否有关:无关

三  不好的写法和改进方案

@REQUIRES: p is in map

改进

@REQUIRES: 0<=p.x<size && 0<=p.y<size

对于repOK

@REQUIRES: xxx != null;

@EFFECTS: \result == true;

改进

@EFFECTS: xxx!=null ==> \result == true

@EFFECTS: initialize taxis

改进

详细地写出初始化的内容

@EFFECTS: this == newState(\old(this))

改进

实际上并未定义newState这样的函数,用规格化的语言或自然语言更详细的描述run方法的改变

 

四  思路与体会

       首先设计好类,规定好类的功能和属性,设计出方法的接口,确定好输入和输出,写jsf规格,根据设计好的东西编写程序。

       以上是我觉得理论上应该做的流程。

       实际上的,我有向着这个方向努力,然而我发现用表达式写的话基本和先实现出来没有区别,能做到就只是用自然语言把功能描述一下,到写jsf的时候再根据程序把jsf的表达式填上去。

 

猜你喜欢

转载自www.cnblogs.com/ffiamz/p/9107532.html