一、测试与正确性论证的比较java
测试:多线程
效果直观,便于调试,可操做性强,可是覆盖率不如正确性论证。框架
正确性论证:单元测试
覆盖率高,可靠性高,可是可能会忽略代码实现的错误细节,不够直观,篇幅过长,不易于阅读。学习
比较:测试
测试和正确性论证都是测试工程的好方法,可是面向对象自己就是一种极为具体化的简单设计思路,正确性论证的必要性很小,大多数状况使用单元测试就能很好的应付测试需求。线程
二、OCL和JSF的比较设计
OCL是一种对象约束语言,没有二义性,可以完善建模元素的相关细节。3d
类似之处:思想相似,目标相同,框架相仿。调试
不一样之处:OCL实用性更强,JSF不知所谓;OCL更加完善,JSF表达混乱;OCL用途普遍,JSF……不知道说什么好,先点菜吧。
三、
类图
时序图
状态图
四、总结
四个单元模块:面向对象基础,多线程开发,代码工程化,测试论证。
关系:多线程开发须要前一模块的代码基础;代码工程化须要有线程的代码来工程化,前两个模块就是创造了足够多的代码;测试论证也须要代码,第一个模块提供了这些代码。
梳理:实际上面向对象基础的部分我基本没学到什么东西,写代码挺简单的,也不会有什么BUG,感受花费了不少时间却没有学到知识。多线程开发因为指导书混乱的缘由让人很痛苦,最终选择了比较低劣的同时只有一个线程运行的模式,也没有学到什么东西,真的很惭愧。代码工程化因为JSF这个规格语言太愚蠢也只忙着互测撕逼了。测试论证部分让我很满意,学到了很重要的内容,可是一些同窗在互测中的丑恶嘴脸也尽收眼底,极大地增加了人生阅历,认识到了社会的残酷,改变了对一些平日里看似友善淳朴实则阴险恶毒的同窗的第一印象,让我不只学到了重要的测试方法(真的很重要),也看清了许多同窗的本质面貌,一箭双雕,大快人心。
整体来说,程序设计部分真的没有学到多少东西,多是由于我自己的代码水平就在平均之上。java的学习也很轻松,百度和谷歌是最好的老师。通过OO的锻炼,个人代码能够说有了必定程度的工程化改观,至少不那么难看了,这仍是值得欣慰的。可是本学期花大量时间的JSF在往后一点用处也没有,除了能锻炼钢铁通常的意志以及百折不挠的心态之外我真的想不出这个规格有什么意义。
工程化开发的理解:
你的代码别的开发者能看懂,反之亦然。
你的代码一年以后你本身还能看懂,而不会出现彻底难以维护的情景。
你的建模别的开发者也能看懂,反之亦然、
你的代码简洁而美观,你的代码可读性强,让人有阅读的欲望。
可是OO课程的工程化实在是让人不知道怎么说……先点菜吧。
OO课程的工程化的核心是JSF,可是这个JSF具体怎么样上文已经描述过了,并且实际工做中也不可能有这么愚蠢的规格写法。
对课程的指望和建议:
但愿课程组可以正视多年以来的普遍的批评,仔细思考并处理这些建议,同时要深刻群众,了解同窗们不满的关键。摊开来讲就是,恶意扣分并非同窗们厌恶这门课的首要缘由,首要缘由是由于课程评价机制的不完善,即课程组难以遏制恶意扣分现象。社会是复杂的,只要采用互测的机制就不可能杜绝恶意扣分,因此课程组的体系建设核心应该立足于让恶意扣分的同窗得不偿失,而非如今的试图让同窗没办法恶意扣分。要知道咱们北航的同窗一个比一个精明,钻空子恶意扣分的本领真的是全国首屈一指,课程组的几位老师就算再辛苦再强调也根本没法扑灭互测下的恶意扣分现象。相反,恶意扣分的行为不但得不到惩罚,连被纠正都很难。不少同窗彻底被恶意扣分以后,彻底就是虽然内心很不爽,可是找不到什么反驳的理由,只能一边大骂测试者一边直接申请仲裁,给助教带来了很大的工做负担。另外一方面,有一些同窗心术不正,视规则如无物。有的同窗在发现对方暴露了我的信息以后,即便对面只暴露了学号,他也会不辞辛劳的查找各类资料,千方百计找出这个学号对应哪位同窗,而后还把这个同窗的名字打错了,而后狠狠讹诈这名同窗,恶意扣上十多个BUG,却不申报无效,还无理由的挂了一个CRASH,试图混取大量分数。在遭到申诉以后,这名同窗居然有脸说出我本能够报你一个无效,可是我如今还要处理你的申诉,你这我的怎么能这样呢?这种话。做为一个有意违反了两条规定(故意不申报无效,恶意扣分)的同窗,可以说出这种话也是让人很服气的。我相信若是一个同窗不慎暴露了我的信息,他心中是能够接受被申报无效的,由于这确实是他作的很差。可是,每个有自尊,有契约精神的同窗,都没法容忍上述行径。上述行为一来是对规则的熟视无睹,这样的测试者理应受到制裁,我的认为与“做弊”别无二致。二来是对认真完成做业,却不慎暴露我的信息的同窗的侮辱,由于一份完成度很好的做业,却莫名其妙被冠以十多个莫须有的BUG,这是任何一个有自尊的同窗没法接受的。
所以,我提议,在之后的OO课程中严惩这种不守规则的测试者,对乱扣BUG的行为一经发现,两倍扣分;对故意不申报无效的测试者,直接记测试者无效,以儆效尤。