一. 论述测试与正确性论证的效果差异,比较其优缺点
软件测试是用于保证软件质量的测试。它的作用是检查程序所能完成的功能。测试手段包括等价划分和边界值分析。软件测试不能够保证覆盖面完全。
正确性论证是对代码进行输入的划分,依次对输入与输出进行解释。但是对于大型的程序,也许能保证单元测试内部满足代码要求,无法满足在大型程序的不同方法之间传递的内容满足requirement需求。
二. 调研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.
维基百科是这么定义的。翻译一下就是:
OCL是用来描述IBM开发的UML的语言。
OCL有如下的特色:
1、OCL是一种精确的,无二义性的语言。
2、OCL是一种规范说明性语言,所有有关实现的问题都不能用OCL来表达。
3、OCL是一种纯表达式语言,它是具有没有任何副作用的申明性语言。
4、OCL是一种类型化语言,即OCL中的每一个表达式都是具有类的。
5、OCL不是一种程序设计语言,不能用OCL编写程序逻辑和控制流程。
我认为,OCL是严格的语言,而我们所写的JSF是给人读的不精确的语言。JSF的作用很难严格的完全表达全部,因此二义性一定存在。
三. 根据第十四次作业的单电梯系统,针对调度器、电梯、请求队列和请求,至少整理出一幅UML类图、一幅顺序图和一幅状态图,并使用图(graph)类表示出模型
四. 整理总结一个学期所学所练
a) 阐述四个单元模块知识点之间的关系
第一个单元是熟悉java与学习如何使用java,eclipse。
第二个单元是学习使用多线程与线程安全
第三个单元是学习使用规格化的设计方式
第四个单元是学习程序论证及程序测试。
对于工程化的设计,我认为主要目的在于更好的维护代码与更广泛的使用代码。
更好的维护代码是为了在未来可以进行相关的修改,在debug的过程中及运行环境中针对反映出来的问题进行相关的修改及修正。此外,在其他人阅读你的代码,比如结对编程的过程中,能够对你的代码进行差错及勘误。
更广泛的使用代码包括代码重用(减少代码行数)及模板类设计。采用模板类设计可以在用户更改需求的时候(例如重新提出了一些issue等)的情况下进行更加容易的修改。
b) 建议
即使我们电脑带的动,我希望能够对代码复杂度作一定限制。不要一个红绿灯一个线程。