第四次博客作业
第四次博客作业
16061189 于金泽
1. 测试与正确性论证
论述测试与正确性论证的效果差异,比较其优缺点
测试:
个人理解测试的作用是通过构造相应的测试用例。实现对代码中的语句和分支的覆盖,以此证明代码的实现的正确性,测试代码执行的结果与预期数据相匹配。重点在于测试样例集的正确性以及构造样例的复杂性和边缘数据等,因此测试依赖于测试数据的覆盖率以尽可能实现更加充分的测试,如果测试不充分,则无法发现隐藏的bug,同时即使测试通过也无法证明没有bug的存在。
正确性论证:
正确性论证依赖于代码逻辑和算法的正确性,通过论证,证明自己代码的实现与所预期的正确的算法过程相匹配。因此,通过正确性论证理论上可以保证代码中没有bug的存在。但是,正确性论证需要的时间成本和人力成本过高。
2. OCL语言
调研OCL语言,并比较其与课程所介绍的JSF规格之间的相似和不同之处
对象约束语言(Object Constraint Language),简称OCL,是一种指示用户建模系统中的限制方式。 在对象约束语言中,对象代表了系统的组件,它定义了完善的项目,约束代表限制,而语言并非是指一种正式的计算机语言。
OCL是一种形式语言,可以应用于任何实现方式的非正规语言。对象约束语言对UML中图形或其他组件都没有控制权,它只是在使用时返回值。OCL并不能修改对象的状态,而是用来指示对状态的修改何时发生。
OCL表达式以附加在模型元素上的条件和限制来表现对该对象的约束,其中包括附加在模型元素上的不变量或约束的表达式、附加在操作和方法上的前置条件和后置条件等。
OCL语言虽然是一种形式化语言,但是它既具有形式化语言无二义性的特点,又消除了形式化语言的复杂性。
OCL与JSF相比,约束条件更加充分而且有更高的要求,但是与JSF相比,较为臃肿,JSF更为简洁但是在各方面的要求不高而且不够明确。
3. 第十四次作业
根据第十四次作业的单电梯系统,针对调度器、电梯、请求队列和请求,至少整理出一幅UML类图、一幅顺序图和一幅状态图,并使用图(graph)来表示出模型



4. 整理总结
4.1阐述四个单元模块知识点之间的关系
本课程的四个单元:
- java基础语法和面向对象基本思想
- 多线程程序设计
- 抽象和程序规格
- 单元测试和正确性论证
四个单元的知识点由浅入深,逐渐从入门向深,从简单的程序逐渐向一个较为完整充分的小型项目递进
4.2梳理自己所设计实现的程序,分析自己在设计、测试和质量上的进步
在本学期之前,因为已经选过面向对象的先导课而已经接触了一些面向对象编程的思想,但是当时还没有接触过项目开发等方面的内容,而且对于编程理解等内容也不够深。
因此,在程序设计方面,通过一整个学期的折磨,在程序设计、代码流程设计等方面有了一些进步,在第十四次作业重构自己第三次作业的代码时,感觉自己第三次的代码无论是风格,单个方法代码行数等方面都不如现在,每个类的功能、属性等不够明确,对于java自带的一些方法的使用也不够灵活。
在测试和质量方面,稳定性和可读性都有所提高,虽然个人觉得在算法等方面没有什么进步,依旧是靠自己干想实现的,但是和以前相比,因为更为了解一些可能出现的问题、可优化之处,所以从代码来看应该是有所提高的,尤其是多线程编程方面。
4.3阐述自己对工程化开发的理解
- 在工程开发时,需要注意代码的可重用性和可读性,因此在代码构建的过程中需要注意在之后自己阅读代码、重构代码时的可行性,不要给自己增加负担;而且也要考虑到在让别人后续阅读、维护自己代码的负担,影响遵守一定的规范
- 自己编写的程序,需要提供较为完整的文档说说明,以供后续的编程人员维护,以及使用者使用
- 为了团队协作和个人开发等方面,
4.4对课程的任何期望或建议
- 虽然之前学习过面向对象的先导课,但是还是要说,一上来就假定所有人都了解java语法,会使用java进行编程真的是太折磨了
- 课上对于JSF的讲解完全不够,不知道怎么写,应该是怎么样的,而是“到时候会发JSF的说明,你们自己看就好了”一言以蔽之。但是JSF的说明中,只有关于JSF的内容而没有与代码的结合,并不能体会到如何将JSF与代码对应。而且经过一节课,然后就要求同学们能够完全理解并使用JSF,使用规格设计的相关内容完全是不现实的,只是加以介绍然后就要求完全掌握并能够给已有代码加上JSF的要求个人看来是难以理解的。
- 希望老师和助教能够明确作业指导书的要求,即使无法做到完全消除二义性,也请有统一的、明确的理解与要求,在有人提出issue时有明确、前后不产生矛盾的回复,而不是有人提出一个issue,说是不是怎么怎么做更好啊,然后就要求所有人按照他的理解进行实现。
- 另外,也请维护一个实时更新的在线文档等,把所有的补充内容进行明确,在已有的基础上不断修改,而不是像现在这样,这种要求散落在各个issue、助教群回复等内容中,经常导致有些测试者死抠issue、面向文档debug,以及不同班级要求不同的问题,例如,对于红绿灯而言,有四个班要求所有红绿灯的方向一致,即所有红绿灯都为东西方向允许通过,而我们班的要求是所有红绿灯的变化时间一致,但是初始状态随机指定,即同一时刻有些红绿灯允许东西方向另一些允许南北方向。然后在和助教确认要求到底是怎么样的时候,助教回复“哦,readme“。
强烈建议助教维护一个在线文档或者公开置顶的讨论帖,实时更新新增和修改的内容,以供助教自己和学生查验。

浙公网安备 33010602011771号