- 博客(5)
- 收藏
- 关注
原创 哈工大软件构造复习笔记5
为扩展其功能,我们首先用一个StackDecorator类实现Stack接口,在这个StackDecorator中,我们需要委派一个Stack(实际上总会委派其基本实现ArrayStack):protected final Stack stack. 通过构造方法的参数将其委派进来(aggregation),在实现的push,pop中调用Stack的push,pop,实际上就是最基础的push,pop功能.定义一个用于创建对象的接口,让其子类来决定实例化哪一个类,从而使一个类的实例化延迟到其子类。
2023-05-26 22:28:47
95
1
原创 哈工大软件构造复习笔记4
第二个和第四个红框中,不应写出参数或返回值的类型. @requires和@effects是错误的格式,应该将@requires中的内容写在@param中,把@effects中的内容写在@return中.规约的特性有:规约的确定性, 规约的陈述性, 规约的强度. 规约的特性可以用于判断“哪个规约更好”5.spec也不应过强,太强的 spec ,在很多特殊情况下难以达到,给开发者增加了实现的难度.确定的规约:给定一个满足 precondition 的输入,其输出是唯一的、明确的。
2023-05-24 19:32:22
116
1
原创 哈工大软件构造复习笔记3
这里会提到一个重要的概念,即不变数据类型:一旦被创建,其值不能改变. 如果是引用类型,也可以是不变的——一旦确定其指向的对象,不能再被改变.所以,尽量使用final 变量作为方法的输入参数、作为局部变量。静态类型检查,即在编译阶段进行类型检查(如Java),而类似Pythond的语言则在运行时进行检查,是动态类型检查.静态检查:关于“类型”的检查,不考虑值. 动态检查:关于“值”的检查。改变一个变量的值:将该变量当前指向的值的存储空间中写入一个新的值。改变一个变量:将该变量指向另一个值的存储空间。
2023-05-24 17:15:20
96
1
原创 哈工大软件构造复习笔记2
测试的目的与大多数的活动的目的相反:即破坏、证错、“负能量”,但是再好的测试也无法证明系统中不存在错误,因此一个好的测试需要:1.a high probability of finding an error 能发现错误2.not redundant 不冗余3.be “best of breed” 最佳特性4. be neither too simple nor too complex 别太复杂也别太简单。
2023-05-22 18:58:42
105
1
原创 哈工大软件构造笔记1
外部质量因素: 1.Correctness(正确性) 2. Robustness(鲁棒性) 3. Extendibility(易扩展性)4.Reusability(复用性) 5. Compatibility(兼容性)6. Efficiency(效率)7. Portability(可移植性)8.Ease of use(易用性) 9.Functionality(功能性) 10.Timeliness(时效性)这个阶段主要说明了程序在目标机器中运行时是什么样子的.目标机器需要加载到内存中的所有磁盘文件是什么.
2023-04-29 14:24:06
103
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅