第四次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正确性论证是对一个程序进行检验的两种方式.测试是来的最直接的,输入合法的输入给出正确的提示,输入非法的输入给出错误信息反馈,直接就能很容易的了解程序的运行情况.但 ...
随机推荐
- Nosql数据库分类
一.KV存储 包括:Redis,Memcached 特点:使用key快速查到其value,Memcached支持string类型的value,Redis除string类型外还支持set,hash,so ...
- spark查看DF的partition数目及每个partition中的数据量【集群模式】
println("--------------------"+data.rdd.getNumPartitions) // 获取DF中partition的数目 val partiti ...
- Microsoft SQL Server 17导出xlsx文件时报错:The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine. (System.Data)
导出数据时报错: 如果你是导出office 2007格式 TITLE: SQL Server Import and Export Wizard ---------------------------- ...
- MyBatis笔记----报错:Exception in thread "main" org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)解决方法
报错 Exception in thread "main" org.apache.ibatis.binding.BindingException: Invalid bound st ...
- [20180928]如何能在11g下执行.txt
[20180928]如何能在11g下执行.txt --//链接问的问题: http://www.itpub.net/thread-2105467-1-1.html create table test( ...
- webApi添加视图出现/Index.cshtml”处的视图必须派生自 WebViewPage 或 WebViewPage<TModel>。
是因为webApi Views文件夹下缺乏web.config文件,从mvc项目相同目录拷贝一个web.Config文件放入 删除多余的namespaces 即可 web.config配置如下: &l ...
- [HBase_3] HBase 命令
0. 说明 1. HBase 命令 1.1 HBase 与 SQL 的区别 1.2 合并 HBase 中的小文件 major_compact 'test:t1' 1.3 删除数据的区别 HBase 在 ...
- June 7. 2018 Week 23rd Thursday
Half is worse than none at all. 一知半解比一无所知更痛苦. From Westworld. If we go looking for the truth, get th ...
- June 3. 2018 Week 23rd Sunday
You only get one shot; do not miss your chance to blow. 机会只有一次,不要错过. From Eminem, "Lose Yoursel ...
- Unity Shader 基础(1): RenderType & ReplacementShader
很多Shader中都会定义RenderType这个类型,但是一直搞不明白到底是干嘛的,官方文档是这样结解释的:Rendering with Replaced Shaders Rendering wit ...