OO第十二次作业(第三次博客作业)
针对第三单元的三次作业和课程内容,撰写技术博客
(1)调研,然后总结介绍规格化设计的大致发展历史和为什么得到了人们的重视
随着计算机技术的发展,结构化设计语言和结构化分析无法满足用户的需求,OOP由此应运而生,即面向对象的程序设计。OOP的诞生是程序设计方法学的一场革命,大大提高了开发效率,减少了软件开发的复杂性,提高了软件的可维护性,可拓展性。1990年以来,面向对象分析、测试、度量和管理研究都得到长足发展。规格化设计伴随OOP而生,为了提高程序的规范性,对类、方法等进行规范化设计,有利于程序的模块化划分。这样设计程序的数据更加安全可控,测试也变得容易,软件的维护性得到提高,因而受到程序设计人员的重视。
(2)按照作业,针对自己所被报告的规格bug以及雷同的规格bug(限于bug树的限制,对手无法上报),列一个表格分析规格bug类别(采用bug树上的名称)、每个出现所对应方法的代码行数
只有一个:第十一次作业,@EFFECTS不完整
(3)分析自己规格bug的产生原因
@EFFECTS不完整的方法,要么是纯方法,并不会直接对数据进行修改,要么是实在难以用逻辑阐述,如处理输入的方法。
(4)分别列举5个前置条件和5个后置条件的不好写法,并给出改进写法
前置条件:
- 不写前置条件
改进方法,写上 - 前置条件使用自然语言,如 a非空
改进方法,改为 a!={}; - 前置条件中只写出了有限制的参数名,却没有写上具体的限制
改进方法,补上限制 - 将方法中的中间变量加入了前置条件
改进方法,去掉它 - 将@REQUIRES与@MODIFIES混淆
改进方法,不要混淆
后置条件:
- 不写后置条件
改进方法,写上 - 后置条件直接复制实现代码
改进方法,不要复制 - 后置条件使用自然语言
改进方法,不要使用 - 后置条件中忘记对exceptional behaviour进行描述
改进方法,补上 - 后置条件中出现没有意义的恒等式,如a==a
改进方法,去掉
(5)按照作业分析被报的功能bug与规格bug在方法上的聚集关系,即给出表格:方法名、功能bug数、规格bug数
功能bug与规格bug在方法上不存在聚集关系
(6)归纳自己在设计规格和撰写规格的基本思路和体会
写的详细一点,尽量用张玉平老师教导的数理逻辑方法来写