面向对象第四次总结

1、 论述测试与正确性论证的效果差别,比较其优缺点java

        两者是对代码正确性论证不一样策略。正则表达式

(1)测试编程

        测试是基于前置条件和后置条件对输入划分并抽样产生测试数据,检查方法执行输出安全

是否知足后置条件。多线程

        • 优势:易于实施,工程广为采用。经过第十四次做业书写正确性论证能够看出来测试相比正确性论证更容易实施,周期更短,对于有时间限制的工程开发来讲是很是高效的。eclipse

• 缺点:没法确保正确性,只能经过的测试发现bug,而不能证实没有bug。编程语言

(2)正确性论证单元测试

论证是针对格式化的规格和代码实现,人工方式对代码逻辑进行分析,确认是否全部学习

知足前置条件的输入都能产生知足后置条件的结果测试

• 优势:折衷,形式验证与天然语言层次逻辑推理相结合。保留了形式化论证的相对按严格验证,同时又保证了相对高效性。

• 缺点:没法确保天然语言层次逻辑推理的严谨性。

 

2、 调研OCL语言,并比较其与课程所介绍的JSF规格之间的类似和不一样 之处

OCL(object constraint language)对象约束语言,一种用来进行约束定义的,形式化的无二义的语言。它是是面向对象设计中对图形符号的补充,可以完善建模元素的相关细节。

(1)二者的类似之处

1)思想相似,都是基于数学中的谓词逻辑,都采用了形式化的数学语言

2)目标相同,都是但愿经过数学化的语言达到理想状况下的无二义性。

3)结构相似,都有前置后置条件

(2)二者的不一样之处:

1)我的理解JSF更加偏向行为描述,而OCL更加偏向于建模过程。

2)由于OCL自己定义了基本数据类型和一些高级数据类型,还有运算符和表达式中的一些书写规范,几乎算得上是一种编程语言,这也正对应OCL的实际含义。因此但从表达能力上来讲OCL更强,书写复杂度比JSF低一些。

3)OCL支持上下文(使用context),可是JSF不支持

4)两者的符号系统不太相同

 

3、 根据第十四次做业的单电梯系统,针对调度器、电梯、请求队列和 请求,至少整理出 一幅UML类图、一幅顺序图和一幅状态图,并使用 图(graph)来表示出模型

UML类图:

 

 时序图:

 状态图:

 

 

4、 整理总结一个学期所学所练

 

   4.1阐述四个单元模块知识点之间的关系

第一单元是面向对象的基础层次,主要经过三个简单的单线程做业训练咱们对java语言的使用以及继承、接口、多态等面向对象基本特征的熟悉与掌握,是整个课程的基础。第二单元进一步贴近真实,强调交互性与多线程,主要训练了咱们的线程安全设计与对象管理能力。在第二单元的最后提出了SOLID原则,这是接下来课程要求设计须要实现的根本准则,为3 4单元打好了基础。第三单元是在代码训练的基础上追求规格化测试,第四单元是测试实践(包括Junit单元测试以及类实现正确性推理)。前两个单元强调在代码层面的练习,后两个单元是更高的层面—设计和测试层面。

 

   4.2梳理本身所设计实现的程序,分析本身在设计、测试和质量上的进步

        很幸运的是去年暑假上了面向对象先导课,让我在一开始第一单元的时候不至于赶不上。这学期有不少东西都是本身从头开始学的:多线程、正则表达式。

        设计上本身的设计思想更加向面向对象思想上靠近,从最初第一单元的伪面向过程代码以及强行为了知足需求进行继承和接口的划分到后来本身能够根据问题抽象天然拆分不一样的类,组织类之间的继承关系,慢慢适应了面向对象编程思想。

        熟悉了多线程编程,掌握了实时交互式程序的编写。

        设计上比之前作的好多了,最初几回做业都是一边写一边改,到中期是简单作了设计写代码发现后期改了需求以后老是要大换血,到后来本身也积累出必定经验,在开始设计的时候就会思考如何提升本身设计的可拓展性来应对各类可能的变动。

        锻炼了自学能力,跟上学期计组课最大的区别就在于这门课的自学只是2要求比较多。没有人再会教你设计的思路和工程化开发的方法,具体的知识点只靠老师上课讲的是远远不能知足做业须要的。这学期自学了很多知识,在写博客写做业的过程当中也本身学会了许多eclipse的插件的使用。

   4.3阐述本身对工程化开发的理解

        提及工程化开发我以为第一次接触到这种思想的仍是在上学期计组课的时候,对于清晰的需求,按照老师讲的工程化设计开发方法当时感受作工程原来没有那么费劲。这学期让我体验到了另一种风格的工程化,体会到了如何在需求不断变动的过程当中实现代码开发。

 

  4.4对课程的任何指望或建议

        在学习过程当中,本身稍微有点体会,如下纯属我的见解。感受设计和编码整个的顺序稍微有点反置了,前两单元重点在训练基本面向对象思想和线程安全设计,第三单元才第一次提出设计,提出规格化的思想。可是其实由于第三单元的做业复杂度实际上是本学期相对比较高的,前两单元大部分同窗并无造成先设计后编码的习惯,致使第三单元上来面对如此复杂的做业经过完整设计和规格写代码你们都有点不是很习惯并且有点困难。就致使了不少人出现了先写代码再补规格的状况。

        我的建议:课程能够考虑一下将设计和规格JSF放在课程开始的比较靠前的位置进行,前3次做业比较简单,能够利用简单做业让你们先熟悉一下怎么按照设计写规格,按照规格写代码的流程,为第三单元复杂做业的设计与规格作好铺垫。

        其余对课程组的指望就是有关需求问题和测试问题,只能说本身不才,这方面只能看到问题,也想不出什么太好的解决方法,在此就再也不说明了。

相关文章
相关标签/搜索