oo第三次总结
一.(1)规格化设计的大致发展历史
20世纪60年代,随着大容量、高速度的计算机出现,以及大量语言的新增和软件的不可靠,爆发了所谓的“软件危机”。而针对这个问题,人们提出了规格化设计的解决方法。通过把程序分成模块,以模块为单位,每个模块实现相应的功能,使得在进行交流的时候,只需要相应模块的接口就好。
随着规格化设计带来的诸多便利,其在之后30多年的研究和应用期间,让程序的可读性得到不断的增强,并让程序便于进一步修改和移植。而如今规格化设计的发展,已经取得了大量重要的成果,产生了基于逻辑、状态机、网络、进程代数、代数等多种形式的规格说明,为软件的开发和维护带来了巨大便利。
(2)人们重视规格化设计的原因
通过使用规划化设计,在进行交流的时候,彼此之间不需要关心对方的实现方法,只需要关心这个模块的接口的要求,改动以及功能。这样方便多人更快捷清晰地完成任务。在之后对程序的维护和修改过程中,也能更具有针对性,更有效。
二.规格BUG分析
第九次作业为无效作业,在此不做分析。
第十次作业在互测过程中,没有被报规格BUG。
第十一次作业
|
BUG内容 |
BUG类型 |
BUG代码行数 |
BUG原因 |
|
规格检查->抽象对象有效性实现检查:Overview是否明确抽象对象 |
规格 |
n |
Load类没有写类规格,无overview。 |
|
规格检查->抽象对象有效性实现检查:Overview是否明确抽象对象 |
规格 |
n |
Qingqiu类没有写类规格,无overview。 |
|
规格检查->抽象对象有效性实现检查:Overview是否明确抽象对象 |
规格 |
n |
Traceabletaxi类没有写类规格,无overview。 |
三.产生规格BUG的原因
写作业的时候操之过急,忘了给新增的类写类规格。
四.不好写法及其改进
- 前置:传入的参数应该加以限制
错误:

改进:

2.前置:“=”应该为“==”
错误:

改进:

3.前置:前置条件应为布尔表达式
错误:

改进:

4.前置:优先级问题
错误:

改进:

5.前置:前置条件范围错误
错误:

改进:

6.后置:“=”应该为“==”
错误:

改进:

7.后置:未处理异常
错误:

改进:

8.后置:后置条件遗漏修改变量
错误:

改进:

9.后置:后置条件描述不完整
错误:

改进:

10.后置:格式不正确
错误:

改进:

五.功能BUG和规格BUG的聚焦关系
功能BUG和规格BUG没有聚焦关系。规格BUG不是因为功能BUG所导致的。
六.基本思路和体会
基本是先写好方法后,才开始写规格。有尝试按照规格的方式写,但是写着写着就写不下来了,水平不够。以及在写规格时,要注意隐含的前置条件。在修改代码后,要注意修改规格,不然容易忘。
oo第三次总结的更多相关文章
- OO第三次课程总结分析
OO第三次课程总结分析 规格化设计发展历史 在网上找了好久也没找到合适的信息,稍稍参考了同学的博客.大致如下:最初的的软件并没有形式化方法,随着软件工程的兴起,为了便于工程间的协调管理,人们提出采用工 ...
- [BUAA OO]第三次博客作业
OO第三次博客作业 1. 规格化设计的发展 我认为,规格化设计主要源自于软件设计的两次危机.第一次是由于大量存在的goto语句,让当时被广泛应用的面向过程式的编程语言臃肿不堪,在逻辑性上与工程规模上鱼 ...
- OO第三次博客作业——规格
OO第三次博客作业——规格 一.调研结果: 规格的历史: 引自博文链接:http://blog.sina.com.cn/s/blog_473d5bba010001x9.html 传统科学的特点是发现世 ...
- OO第三单元作业总结
OO第三单元作业总结--JML 第三单元的主题是JML规格的学习,其中的三次作业也是围绕JML规格的实现所展开的(虽然感觉作业中最难的还是如何正确适用数据结构以及如何正确地对于时间复杂度进行优化). ...
- 规格化设计——OO第三单元总结
规格化设计--OO第三单元总结 一.JML语言理论基础.应用工具链 1.1 JML语言 JML(java modeling language)是一种描述代码行为的语言,包括前置条件.副作用等等.J ...
- 【OO学习】OO第三单元作业总结
[OO学习]OO第三单元作业总结 第三单元,我们学习了JML语言,用来进行形式化设计.本单元包括三次作业,通过给定的JML来实行了一个对路径的管理系统,最后完成了一个地铁系统,来管理不同的线路,求得关 ...
- OO第三单元(地铁,JML)单元总结
OO第三单元(地铁,JML)单元总结 这是我们OO课程的第二个单元,这个单元的主要目的是让我们熟悉并了解JML来是我们具有规格化编程架构的思想.这个单元的主题一开始并不明了,从第一次作业的路径到第二次 ...
- OO第三单元——基于JML的社交网络总结
OO第三单元--基于JML的社交网络总结 一.JML知识梳理 1)JML的语言基础以及基本语法 JML是用于java程序进行规格化设计的一种表示语言,是一种行为接口规格语言.其为严格的程序设计提供了一 ...
- OO第三单元作业——魔教规格
OO第三单元作业--魔教规格 JML的理论基础和相关工具 JML(Java Modeling Language,Java建模语言),在Java代码种增加了一些符号,这些符号用来标志一个方法是干什么 ...
- OO第三单元个人总结
OO第三单元个人总结 JML理论与基础与应用工具链 JML是什么? Java建模语言(JML)是一种行为接口规范语言,可用于指定Java模块的行为 .它结合了Eiffel的契约设计方法 和Larch ...
随机推荐
- MYSQL实战
基础架构 更新操作 日志模块 redo log 和 binlog 两阶段提交: prepare commit 事务隔离 读未提交:别人改数据的事务尚未提交,我在我的事务中也能读到.读已提交:别人改数据 ...
- IDEA远程调试服务器代码
先在idea添加一个remote,host填服务器ip,port填监听服务器端口,默认5005 然后在服务器tomcat catalina.sh 添加(红色部分): JAVA_OPTS="$ ...
- 【译】索引进阶(六):SQL SERVER索引书签
[译注:此文为翻译,由于本人水平所限,疏漏在所难免,欢迎探讨指正] 原文链接:传送门. 在之前的章节,我们把索引看做一组有序条目的集合,每行数据对应一个索引条目.我们解释了很多关于索引逻辑方面的内容, ...
- windows配置openssl
下载openssl并安装,下载地址:http://slproweb.com/products/Win32OpenSSL.html 假设安装路径为C:\"Program Files" ...
- 搬运,B站up主『凉风有性胖次君』日日日日日日日日日日在校园
这个视频超有毒,简直丧心病狂,我竟无言以对,凉风是有多大的耐性,搜集了这么多元素,哈哈哈~~~赶紧搬运,怕哪天B站都给封了 也就是说世界本来喜欢的是言叶,但是言叶爱上了一直在电车上暗恋她的诚哥,于是世 ...
- Set集合判断对象重复的方法
Set<User> userSet = new HashSet<>(); User user1= new User("aa","11") ...
- yum安装软件报错Segmentation fault处理
yum安装软件报错Segmentation fault处理 在使用yum 更新软件时提示:Segmentation fault 中文错误提示: 段错误 [root@CMS-BAK:/usr/local ...
- 2018年冬季寒假作业4--PTA 打印沙漏
1.实验代码: #include<stdio.h> int main() { int i,j,k,s,t,l,n,res; char a; ]={,,,}; ;i<;i++) { s ...
- Redis数据类型String
set和get Set带空格的字符串值,这时候就需要使用双引号了,否则会出错 getset getset设置某个key-value,然后把设置之前的值返回来 incr,incrby 和 decr,de ...
- 五分钟快速掌握RPC原理及实现
随着公司规模的不断扩大,以及业务量的激增,单体应用逐步演化为服务/微服务的架构模式, 服务之间的调用大多采用rpc的方式调用,或者消息队列的方式进行解耦.几乎每个大厂都会创建自己的rpc框架,或者基于 ...