OO第四次博客作业

1.论述测试与正确性论证的效果差异,比较其优缺点

  测试是指依据方法规格分情况构造测试数据来验证输出与输入是否有正确的对应关系

  优点在于能够在很短的时间内暴露程序的错误

  缺点在于只能暴露程序的错误,不能彻底地证明程序的正确性

  正确性论证是人工对代码实现逻辑的正确性进行论证

  优点在于覆盖了所有可能的情况,能够完全严谨地证明程序的正确性

  缺点在于花费时间长,效率低


 2.调研OCL语言,并比较其与课程所介绍的JSF规格之间的相似和不同之处

  OCL(Object Constraint Language)是一种对象约束语言,在UML中,OCL是说明类的不变量、前置条件、后置条件以及其他各种约束条件的标准语言

  它必须遵守以下原则:

  必须是一种类型化的语言,可以用来表达一些额外但又必须的信息

  必须是精确的、无二义性的语言,同时又是很容易使用的语言

  必须是声明性的语言,也就是说OCL是没有副作用的纯表达式语言。对OCL表达式的计算不会改变系统状态

  OCL与JSF相似之处在于二者都具有对不变式、前置条件、后置条件的约束,都是建立在数理逻辑的基础之上,都要保证无二义性

  不同之处在于OCL定义了很多数据类型和更加明确的书写规范,相比于JSF来说更加完善,JSF则相对来说是一种轻量级的语言


3.根据第十四次作业的单电梯系统,针对调度器、电梯、请求队列和请求,至少整理出一幅UML类图、一幅顺序图和一幅状态图,并使用图(graph)来表示出模型

 


4.整理总结一个学期所学所练

4.1阐述四个单元模块知识点之间的关系

  第一单元主要是对代码能力的训练以及从面向过程向面向对象的思维上的转化,让我们从对象的角度理解和分析问题以及编写程序

  第二单元主要是在第一单元的基础上引入多线程,提高程序的并发性的同时更让我们关注到线程安全问题

  第三单元引入规格化的程序设计,主要是基于JSF

  第四单元是单元测试和正确性论证

  总的来说四个单元的知识点涵盖了软件工程的各个环节,让我对软件工程有一个基本的认识

4.2梳理自己所设计实现的程序,分析自己在设计、测试和质量上的进步

  十几次作业,从一开始的纯面向过程式的写法到后来以对象的角度来进行设计、编写代码,并且有意识地控制代码规模,这样一次次实践下来,我对面向对象程序设计有了一个清楚的认识。测试上一直都是测数据+读readme+读代码的模式,并没有什么改变。质量方面一直都还好,除了有时候因为手残漏写代码导致出bug的情况

4.3阐述自己对工程化开发的理解

  在明确统一的规格约束下,模块化的进行开发,使代码易于读懂和维护

4.4对课程的任何期望或建议

  只是希望课程组能更认真地管一管恶意扣分的问题,恶意扣分的情况空耗学生的时间与精力,非常有害

原文地址:https://www.cnblogs.com/Groexhy/p/9224087.html