第四次oo博客
论述测试与正确性论证的效果差异
单元测试利用测试者构造的测试用例来检查类或方法的正确性,一般来说所需要测试的用例是无穷多的,通过人为构造代表性的测试用例来尽量测试所有代码。测试的优点在于不易出错,只要能正确确定测试结果就行了,但是缺点在于难以考虑到所有的代表性用例,在复杂工程中,完全周密的测试是几乎不存在的,测试者不能保证没有不被考虑到的用例。
而正确性论证是逻辑论证,从代码层面出发,用自然语言来描述程序的运行正确性。优点是逻辑论证可以完全覆盖类或方法的运行过程,但是缺点是自然语言论证本身就是不能保证正确的,无法与单元测试的机器运行相媲美。
OCL与JSF的比较
OCL是对象约束语言,可以应用与任何实现方式的非正规语言。对象约束语言对UML中图形或其他组件都没有控制权,他只是在使用时返回值。OCL、并不能修改对象的状态,而是用来指示对状态的修改何时发生。而JSF更加强调对代码功能的说明,OCL是形式化语言,JSF是半形式化语言,可以使用自然语言;OCL表达式的值可以有不同的类型,JSF表达式的类型都是布尔型。共同点在于OCL和JSF都可用于描述规格的前置条件和后置条件。
UML图
整理总结
阐述四个单元模块知识点之间的关系:第一个单元应该是整个java编程的基础,初步了解面向对象编程的过程,帮助大家熟悉Java语言的使用情况。第二单元和第三单元都着重于多线程编程,先利用电梯作业体验简单的多线程编写,只限于三个电梯和楼层间信息交换,开始设计进程同步等知识,而到了第三单元将多线程复杂化为更多的出租车和地图,加大多线程编程的难度。第四单元着重于规范化代码的编写,对JSF、规格文档、正确性论证进行训练。
梳理自己所设计实现的程序:以第十四次作业为例,我完全重写了第三次作业的代码,第三次作业的类图如下:
第三次作业的数据管理非常非常混乱,共享的数据分布在各个类中都有定义,其中还AskDisposeOverride的长度达到了四百多行,可读性基本为0。而在第十四次作业中,我将共享数据集中在一个类中进行管理,每个方法的长度都控制在五十行以内,代码的规范度有了质的提升。同时重写后的方法使用了完全不同的调度方法,更加贴合多线程运行的实际情况,请求管理也使用了ArrayList,代码更加方便维护。
阐述自己对工程化开发的理解:而在企业项目中,代码的规格化尤为重要,一个项目大多都是由一个团队来完成,如果没有统一的代码规范,那么每个人的代码必定会风格迥异。且不说会存在多个人同时开发同一模块的情况,即使是分工十分明晰的,等到要整合代码的时候也有够头疼的了。大多数情况下,并非程序中有复杂的算法或是复杂的逻辑,而是去读别人的代码实在是一件痛苦的事情。统一的风格使得代码可读性大大提高了,人们看到任何一段代码都会觉得异常熟悉。显然的,规格化的代码在团队的合作开发中是非常有益而且必要的。
对课程的任何期望或建议:强烈建议对于部分测试删除互测阶段,对于JSF、规格检查,互测其实无可厚非,这些内容有些时候就是用来给别人看的,但是第一、二、三单元完全可以依靠公测进行测试,指导书统一输入方式和输出结果就行了。课程组可能对于匿名后的学生素质期望过高,乱扣bug是一个低风险的行为,除了一些明显无理由的bug外,大部分互测争端是助教难以评判的,而且工作量巨大。所以强烈建议前一二三单元使用公测进行测试,这三个单元的作业更加注重结果的正确性而非规范性。
第四次oo博客的更多相关文章
- 第四次oo博客作业
(1)本单元是撰写UML数据分析器,架构大致如下,在指导书要求的函数外,对于UmlClass类,Umlinterface类,以及状态机,顺序图这四个类重现构造一个类,这个类里有他们所需要的全部信息,另 ...
- OO博客总结——OO落下帷幕
OO博客总结--OO落下帷幕 凡此过往,皆为序章. 不知不觉OO课程即将落下帷幕,一路坎坎坷坷磕磕绊绊,可算是要结束了,心里终于松了一口气,也有小小的不甘和遗憾.凡此过往,皆为序章.特殊的线上OO课程 ...
- Beta版本——第四次冲刺博客
我说的都队 031402304 陈燊 031402342 许玲玲 031402337 胡心颖 03140241 王婷婷 031402203 陈齐民 031402209 黄伟炜 031402233 郑扬 ...
- 第十四次ScrumMeeting博客
第十四次ScrumMeeting博客 本次会议于12月3日(日)22时整在3公寓725房间召开,持续30分钟. 与会人员:刘畅.辛德泰.张安澜.方科栋. 1. 每个人的工作(有Issue的内容和链接) ...
- 第四次ScrumMeeting博客
第四次ScrumMeeting博客 本次会议于10月28日(六)22时整在3公寓725房间召开,持续15分钟. 与会人员:刘畅.辛德泰.窦鑫泽.张安澜.赵奕. 1. 每个人的工作(有Issue的内容和 ...
- OO博客作业-《JML之卷》
OO第三单元小结 一.JML语言理论基础以及应用工具链情况梳理 一句话来说,JML就是用于对JAVA程序设计逻辑的预先约定的一种语言,以便正确严格高效地完成程序以及展开测试,这在不能容忍细微错误的工程 ...
- 做个开源博客学习Vite2 + Vue3 (四)实现博客功能
我们再来看一下管理类的设计. Composition API,就是组合API的意思,那么是不是应该把js代码分离出来,做成独立的管理类的形式呢? 这样代码可以更整洁一些,主要是setup里面的代码就不 ...
- OO博客作业1:第1-3周作业总结
(1)基于度量来分析自己的程序结构 注:UML图中每个划分了的圆角矩形代表一个类或接口,箭头可代表创建.访问数据等行为.类的图形内部分为3个部分,从上到下依次是类的名称.类包含的实例变量(属性).类实 ...
- 接着继续(OO博客第四弹)
.测试与JSF正确性论证 测试和JSF正确性论证是对一个程序进行检验的两种方式.测试是来的最直接的,输入合法的输入给出正确的提示,输入非法的输入给出错误信息反馈,直接就能很容易的了解程序的运行情况.但 ...
随机推荐
- sql prompt 缩写 快捷键
快捷键代码 1. df DELETE FROM 2. ssf SELECT * FROM 3. be BEGIN END 4. ij INNER JOIN 5. ap ALTER PROCEDU ...
- [20190214]11g Query Result Cache RC Latches.txt
[20190214]11g Query Result Cache RC Latches.txt --//昨天我重复链接http://www.pythian.com/blog/oracle-11g-qu ...
- 语句调优基础知识-set statistics profile on
set statistics profile on 获取语句真实的执行计划信息 set statistics profile on go select distinct Productid,unitp ...
- SQL Server的实例恢复解析
同Oracle一样,SQL Server在非一致性关闭的时候也会进行实例恢复(Instance Recovery),本文根据stack overflow的文章介绍一些SQL Server实例恢复的知识 ...
- JAVA API的下载和中文查看API
一.JAVA API的下载 1.1 JAVA由SUN公司开发,2006年SUN公司宣布将Java技术作为免费软件对外发布,标志着JAVA的公开免费.2009年,SUN公司被甲骨文公司收购,因此我们现在 ...
- 复制 cmd 窗口文本三步曲:
1:右键菜单点"标记": 2:按住左键选文字: 3:选完右键点一下! (关键一步,只需点一下就好!!) so 待选文字就跑到剪切板上了
- MATLAB常微分方程数值解——欧拉法、改进的欧拉法与四阶龙格库塔方法
MATLAB常微分方程数值解 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 1.一阶常微分方程初值问题 2.欧拉法 3.改进的欧拉法 4.四阶龙格库塔 ...
- Fetch请求后台的数据
<style> #btn{ width: 50px; height: 50px; background-color: red; } #output{ width: 100px; heigh ...
- Ubuntu 普通用户无法启动Google chrome
删除 /home/你的用户名/.config/google-chrome文件,再打开就好了 root@ecos:cd /home/ecos/.config root@ecos:~/.config# r ...
- C#深度学习の枚举类型(IEnumerator,IEnumerable)
一.关于枚举的含义 .Net提供了可枚举类型的接口IEnumerable和枚举器接口IEnumerator,程序集System.Collections 另: IQueryable 继承自IEnumer ...