oo第四次博客作业
OO第四次博客作业
测试与正确性论证的效果差异
测试:我们需要编写尽可能多的测试样例,来覆盖我们的程序功能,结果直观,调试后容易发现问题,覆盖能力少稍差,决定于测试样例的质量;
论证:逻辑上的论证,需要对代码进行进一步的抽象,免去了编造测试样例的大量工作,覆盖性比较全面,但是比较抽象。
OCL语言与JSF规格
The Object Constraint Language (OCL) is a declarative language describing rules applying to Unified Modeling Language (UML) models developed at IBM and is now part of the UML standard. Initially, OCL was merely a formal specification language extension for UML.[1] OCL may now be used with any Meta-Object Facility (MOF) Object Management Group (OMG) meta-model, including UML.[2] The Object Constraint Language is a precise text language that provides constraint and object query expressions on any MOF model or meta-model that cannot otherwise be expressed by diagrammatic notation. OCL is a key component of the new OMG standard recommendation for transforming models, the Queries/Views/Transformations (QVT) specification.
(摘自维基)
与JSF相似之处
- 均为形式化约束语言,在程序中进行无二义的逻辑约束;
- 结构相似:前置条件,后置条件,不变量……
- 可与代码具体的实现无关;
不同之处
- OCL有更加严格的规范;
- OCL表现力更强;
- JSF是OCL极大自由化的表现形式;
类图
时序图
状态图
学期总结
四个单元模块知识点之间的关系
模块一
重在练习java面向对象程序编写,理解面向对象编程的思想;
模块二
接触多线程,学习多线程的编写,同时开始完善、优化自己的代码设计结构;
模块三
更加深入的了解多线程的编写,更加注重规格的编写,在好的规格风范下,我们的程序有了更好的可读性以及规范;
模块四
主要是对第三次作业进正确性论证,验证前面的设计;
梳理与进步
- 一个学期的学习,我从一个不会java编程的小白,到进行多线程的编写,从三个类到十几个类的增长;
- 对于对象的封装做的更好了,程序也越来越有面向对象的风格。代码规范也向“高内聚,低耦合”的思想靠拢;
- 代码结构变得更加的清晰可读,代码结构有了很大的优化;
- 对功能相对较大,需求更加复杂的程序有了更好的掌控力;
对工程化开发的理解
- 就是不断对新增的要求进行阅读理解,实时修改我们的设计,因此我们的代码的可扩展性要十分的强;
- 对代码有严格的规范控制,符合相同的规范,是自己的代码能够契合他人的程序,是的团结协作变得简单;
期待和建议
对于这门保受非议的课程,我们应该听取群众的呼声,同时也要理解课程组的艰辛。我希望这门课程能够真正作到双向,老师认真听取学生的建议,学生认真完成老师布置的任务。而不是学生一个劲的埋怨,课程组一个劲地解释。oo这门课程其实是一门很有意思的课程,很另类,希望能越办越好。