OO Summary Ⅲ】的更多相关文章

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