OO unit3 summary】的更多相关文章

Unit3 ​ JML(Java Modeling Language) 是用于对 Java 程序进行规格化设计的一种表示语言,它对于方法内部具体是如何实现的并无要求,只是对方法的接口以及行为进行限制,具体来说就是对方法里面允许接受的数据,可以做出的改动,必须返回的数据,异常表现等进行限制,最终保证方法的无二义性. ​ 本单元的作业背景是一个简单的社交系统,允许对数据进行有序存储,建立数据之间的关系,以及精确查询,由于已经给出了JML规格,所以并不需要自己从零开始设计架构,只用把需要实现的方法按照…
OO Unit3 总结 OO课Unit3人际关系网JML应用技术回顾 BUAA.1823.邓新宇 2020/5/23 梳理JML语言的理论基础.应用工具链情况 方法规格 JML中,同一个方法在不同的条件下会产生不同的行为,这种行为分为正常行为和异常行为,分别用单成一行的public normal_behavior和public exceptional_behavior作为该行为的描述的声明放在行为描述的最开始,不同的行为之间用also连接.一个方法的描述中可以有多个不同的行为类,而不同的行为类的…
本文是BUAA OO课程Unit3在课程讲授.三次作业完成.自测和互测时发现的问题,以及倾听别人的思路分享所引起个人的一些思考的总结性博客.主要包含JML相关梳理.SMT Solver验证.JML单元测试.设计策略.代码度量.BUG测试和心得体会等内容. 目录 一.JML简单梳理 二.SMT Solver的部署和验证 三.JML单元测试 四.架构设计梳理 五.测试与BUG分析 六.心得体会 一.JML简单梳理 1.1 JML语言理论基础 The Java Modeling Language (J…
Unit 1 summary 一.前言 三周左右的学习,OO第一单元顺利结束了,个人认为有必要写个blog来反思总结一下自己第一单元的学习情况,以便更好地进行后面的学习. 之前从来没有写blog的习惯,这是自己第一次写blog~(^-^) 二.程序结构分析 CogC:它将一段代码被阅读和理解时的复杂程度,估算成一个具体数字. 出现"break"中止了线性的代码阅读理解,如出现循环.条件.try-catch.switch-case.一串的and or操作符.递归,以及jump to la…
Unit4 一.第四单元作业的架构设计 第四单元个人认为主要是考察对于层次结构的理解,即如何理解并处理好UML图的树状结构组织,在理好层次之间以及层次内部的相互关系之后,就只剩下代码实现的问题了.但是不得不说,刚开始接触UML特别是对starUML不熟悉的时候,如果指导书说的不是太清楚,真的很难动手实现,比如说在第一次作业的时候,我就完全理解错了,导致难度飞升,一度怀疑老师所说的"简单".虽然说相比JML是真的不太简单 由于主要架构课程组都已经做好了,所以我们基本不用构思什么架构,只需…
Unit2 一.第一次作业 1.UML 2.Sequence Diagram 3.同步块设置与锁处理 采用了生产者-消费者模式,用共享对象来连接不同的线程. 第一次作业中,我有三个线程:Receiver,Manager,Elevator,用PersonQueue WaitingQueue分别来连接Receiver和 Manager,Manager和Elevator 整个程序中的加锁操作只针对有可能发生数据竞争的连个共享对象:PersonQueue,WaitingQueue 加锁是为了保证之后位于…
测试与正确性论证的效果差异 测试,或者说用断言进行黑箱测试,用大量的数据进行“覆盖性测试”,目的是当分支覆盖率达到100%也就是理论上来说所有可能的输入都已经测试过了,而输出结果均是正确的,那么我们理论上可以说这部分程序是没有问题的.这种测试方法的好处就是,问题暴露得十分明显,某一组数据错了,就知道问题发生的情况是什么了,复现性也很强.其实平时我们自己debug的时候用的就是这种方法,只不过那时我们测试量比较小,并没有做到全覆盖,而是向着我们感觉可能会出错的方向进行测试,导致测试以后仍然感到不安…
规格化设计的发展历史 (这一部分并没有找到答案,于是参考了好黄和温莎莎的blogs) 1950年代,第一次分离,主程序和子程序的分离程序结构模型是树状模型,子程序可先于主程序编写.通过使用库函数来简化编程,实现最初的代码重用.产生基本的软件开发过程:分析—设计—编码—测试,使大型软件系统的开发成为可能 1975—1980年代,第二次分离,规格说明(Spec)和体(body)的分离说明是类型定义和操作描述,体是操作的具体实现.(具体的例子就是C++,Java等面向对象语言的类说明与类实现的分离.)…
[第五次作业——多线程电梯] 类图 度量 协作图 设计分析: 多线程电梯是我第一次接触多线程,因此真的是无(瞎)从(g)下(2)手(写),感觉仿佛只是用一个调度器来调度3部电梯但又总觉得好像哪里不太对,加上清明节还出去浪了三天,回来以后只感觉到深深的凉意.经过了将近一天的设计(不设计好真的是一点一点都不敢写反正也要重构),总算是把大概流程理顺清楚了:输入类(InputHandler)识别输入并生成请求(Request)后加入到请求队列(reqList)中,由调度器(schedule)每次扫描请求…
原贴地址:http://scnblogs.techweb.com.cn/abaplv/archives/127.html 几年前SAP BASIS 4.6为ABAP扩展了OO功能,这是很多传统的ABAP程序员陷入困境.首先对于ABAP程序员来说它们终于可以通过OO这种开发方法得潜在价值来提高 开发效率和所开发程序的可维护性了.然而一直以来习惯于面向过程编程的ABAPER迅速的转向OO模式也不是那么容易,很多人还是坚持使用传统的面向过程 的开发模式,他们觉得不用OO也可以得到他们想要的.这篇文章的…