测试,就是通过自己对某个函数或者方法的功能,来自己构造测试数据,自己提前在脑子里想好结果,然后,检查自己脑子里的结果和程序运行的结果是否一样。如果一样且覆盖率达到了足够多的成都,表明程序大概率正确。这种方法我认为有以下几个优点:
正确性论证,也就是分析需求、撰写规格后,通过严密的逻辑论证来验证程序的正确性,这要求我们完全理解需求,正确撰写规格,同时全面细致的分析代码是否实现了需求和规格,理论上说,它可以检查出所有的逻辑bug。
正确性论证,检查的是代码逻辑是否正确。
测试,检查的是代码实现是否正确。
二者缺一不可。双剑合璧,才能写出100%正确的代码。
仅仅通过测试,可能某些逻辑还是有错,尤其是边界情况。
仅仅通过正确论证,代码可能写错了。
因此,两个都非常重要!!!OO这门课实在是很严谨!点赞啊!!!
OCL(Object Constraint Language)语言是面向对象设计中对图形符号的补充,能够完善建模元素的相关细节。其与JSF规格有相似之处,也有不同。
对象约束语言是一种形式化语言,它主要用于表示UML模型中施加于模型上的约束。OCL具有如下特点:
OCL与JSF的相同点在于他们都是形式化的约束语言。OCL包括的不变量、前置、后置条件、监护规则对应着JSF中的repOK、REQUIRES、EFFECTS、MODIFIES。不同点在于OCL相比JSF要复杂的多。
这个学期真的学会了非常多。对这门课的理解绝不是Java和面向对象那么简单。这门课很牛逼, it's more than java and OO.
还教大学生学会了做人。太牛逼了这门课!!!
第一单元,让我们了解面向对象,初步认识它。
第二单元,认识了多线程编程。
第三单元,知道了设计方法和原则。
第四单元,学会了正确性论证。
他们循序渐进,缺一不可!过度很自然,老师讲的非常好!非常喜欢OO老师和助教!
工程化开发需要遵循一些特定的规则,不仅方便自己审查代码,也方便代码的交流理解,毕竟程序有不确定性且代码规模日益增大,所以需要提高开发效率,降低维护难度,这是必行之举。
工程化开发的一般流程:
需求分析-->概要设计-->详细设计-->编码-->测试-->验收-->维护
需求设计:深入了解和分析用户的需求,避免设计时不必要的改动。
概要设计:确定设计层次、模块划分、接口规范、数据结构、出错处理等。
详细设计:实现概要设计中各个模块的算法、调用关系、说明每一个程序的设计考虑。
编码:根据详细设计补充代码、完成系统的功能。
测试:对编写好的代码进行初步测试,通过后交给用户,由其确认各项功能得到正确实现。
验收:用户验收软件。
维护:根据用户需求和环境的变化,对程序进行部分或全部的修改。
软件工程化的优势
这门课贼棒!这么好听的课不应该翘掉。应该认真听讲。
如对本文有疑问, 点击进行留言回复!!
Java面向对象中:方法重载和方法重写以及区别、 this关键字和super关键字以及区别
【开源】使用Angular9和TypeScript开发RPG游戏(补充了Buffer技能)
网友评论