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 ...
随机推荐
- CF1153D Serval and Rooted Tree(树形DP)
题目链接: https://www.luogu.org/problemnew/show/CF1153D (cf崩了,贴了个落谷的) 题目大意:给你n个点,然后n-1条边,构成一棵树,每个点是子节点 ...
- centos 6 部署Nodejs
线上环境需要一套nodjs,没话说,那就部署唠. 一.下载编译包.解压.软链 nodjs历史版本连接:https://nodejs.org/zh-cn/download/releases/ cd /u ...
- ubuntu 16.04 安装 kubelet、kubeadm 和 kubectl
解决了***之后,就开始K8S安装的正式旅程,本次记录 kubelet.kubeadm 和 kubectl 的安装: apt-get update && apt-get instal ...
- webpack4 搭建遇到的奇葩问题集合
一.webpack4 打包es6 会报错 需要安装一下插件 https://blog.csdn.net/Beamon__/article/details/85048448二.webpack4 打包动态 ...
- RFB Net笔记
ECCV2018 论文:Receptive Field Block Net for Accurate and Fast Object Detection 论文链接:https://arxiv.org/ ...
- pip install psycopg2出现python setup.py egg_info failed with error code 1 in /tmp/pip-build-YtLeN3/psycopg2错误处理
折腾了一上午flask部署,到最后访问域名还是出现Application Error错误提示.估计是程序还有问题,想着直接clone书中作者的代码先试试能不能部署成功.结果在执行pip install ...
- Mysql err 1055
目录: 错误信息 原因分析 解决方案 操作示例 错误信息 [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause ...
- C#学习-多态
由于可以继承基类的所有成员,子类就都有了相同的行为,但是有时子类的某些行为需要相互区别,子类需要覆写父类中的方法来实现子类特有的行为. 多态即相同类型的对象调用相同的方法却表现出不同行为的现象. 只有 ...
- matplotlib等高线图-【老鱼学matplotlib】
等高线图是在地理课中讲述山峰山谷时绘制的图形,在机器学习中也会被用在绘制梯度下降算法的图形中. 因为等高线的图有三个信息:x, y以及x,y所对应的高度值. 这个高度值的计算我们用一个函数来表述: # ...
- CentOS系统安全加固常见方法
关于Linux系统安全加固的具体实现脚本及基线检查规范,以供主机维护人员参考学习. 其中以下脚本主要实现的功能包括: *加固项包括:密码长度.session超时时间.删除不用的帐号和组.限制root用 ...