OO第十二次作业

OO第十二次作业

规格化设计

规格化设计是为了将模块的功能通过抽象和层次分类来表达清楚,为程序设计提供分解、精化和抽象的一种手段。在撰写代码规格的过程中,需要对其组成部件进行抽象。 否则, 如果每一个组成部件都以自己特有的行为方式运转, 不同的组成部件交织在一起, 那么规格的撰写可能同软件实现一样复杂。

近现代,面向对象的设计开始在业界大行其道,相比于单纯的结构化设计,面向对象的设计从审视问题的角度上就有了差异,程序发生了从围绕“行为”执行到围绕“客体”执行的变化,随之而来的,就是封装性地提高,可重用性的提高,可以说,面向对象进一步实现了结构化设计,是结构化设计更进一步的实现。说明是类型定义和操作描述,解决方案设计只关注说明,实现时引用或者设计体。体的更改、置换不影响规格说明,保证了可移植性。支持多机系统,但要同样环境。此时产生了划时代的面向对象技术。在结构化越加明确的同时,开发者与设计者,开发者与用户,开发者与开发者之间的交流,就需要“抽象”来实现,因为彼此间不需要关心对方的实现方法,而只需要知道这个模块的接口有什么要求,会改什么,能做什么就行。通过规格化抽象,我们就能将这种交流变得高效,同时也降低了维护和修改的难度。

所以,规格化设计是一个自然而然的过程。当人们发现仅靠语言和文档的沟通已经无法满足大规模代码的合作开发需要的时候,规格便应运而生。规格化设计有利于做到设计与实现分离,虽然前期撰写规格花费了一定的时间,但换来了后续代码实现的顺畅,因此得到了人们的重视。

BUG分析

第九次

第十次

接单地点输出有误:错误原因在于对象拷贝时使用了赋值语句而没有拷贝
流量统计方式:采用GUI原版而未按500ms的要求

第十一次

规格BUG分析

第九次

EFFECTS过度使用自然语言
EFFECTS应为布尔表达式:\result == x 而不是单等于

第十次

EFFECTS过度使用自然语言

第十一次

EFFECTS和方法不匹配,对于能处理异常的方法,应有单独的EFFECT

REQUIRES的改进

错误示例


太过简略

其他错误归纳

使用自然语言

实现方式不符

描述太随意

出现未复查的笔误

EFFECTS的改进

错误示例


太过简略

错误示例


使用了单等于

其他错误归纳

使用自然语言

没有异常处理

出现未复查的笔误

聚焦关系

第九次

功能BUG:无
规格BUG:EFFECTS过度使用自然语言
规格BUG:EFFECTS应为布尔表达式:\result == x 而不是单等于

第十次

功能BUG:接单地点输出有误:错误原因在于对象拷贝时使用了赋值语句而没有拷贝
功能BUG:流量统计方式:采用GUI原版而未按500ms的要求
规格BUG:EFFECTS过度使用自然语言

第十一次

功能BUG:无
规格BUG:EFFECTS和方法不匹配,对于能处理异常的方法,应有单独的EFFECT

总结关系

由上表看出,功能Bug和规格Bug的聚集关系并不大。原因也许是,功能Bug的测试较为困难,但许多规格Bug是显而易见的,因此测试者偏向于更多地去报规格Bug,而只能在边角处挑一些功能Bug;这些边角功能所在的方法都比较简短,通常不存在规格Bug。

思路与体会

我认为对于JSF的扣分应有足够的规范,现在的样子过于缺乏管制了。
此外,教会同学认真对待规格,模块化编程本是好事,这是从学生代码走向工程性代码的必经之路,然而,不少多写方法,多写JSF的同学,因为课程制度问题,反而受到了损害,这是不公平的。

猜你喜欢

转载自www.cnblogs.com/Andyson/p/9102994.html