- 博客(6)
- 收藏
- 关注
原创 HIT 软构--6 抽象数据类型ADT
抽象类型:强调“作用于数据上的操作”,程序员和client无需关心数据如何具体存储的,只需设计/使用操作即可。方法:选择某种特定的表示方式R,进而指定某个子集是“合法”的(RI),并为该子集中的每个值做出“解释”(AF)——即如何映射到抽象空间中的值。需要尤其注意表示泄露的问题。因为既破坏了表示独立性,即让客户端接触到了本不应泄露的数据,同时也有破坏保持不变量的风险。返回的值是一个新定义的同类型数据,其值克隆原本的数据,但是可以保证数据不被泄露,不能更改。则是改变了构造对象本身的一个可变类型的属性的值。
2024-05-26 22:37:07 340
原创 Hit 软构--5 设计规约
Spec,是一种程序与客户端之间达成的契约,给供需双方都确定了责任,双方都要遵守。spec讲述了方法输入和输出的数据类型,方法的功能和正确性。两个方法的内部行为可能不同,但是对于客户端来说,可能作用是相同的。一般来说,两个方法的规约相同,那么他们就是等价的。当前置条件更弱,后置条件更强时,整个规约的强度就更强,就可以用于替代之前的。也就是说对客户端的要求更少了,但是方法仍然可以返回正确的值。在设计时最常用的方法是抛出异常,这样能够满足client对前置条件的需求,实现方面也更方便check。
2024-05-26 20:28:27 316
原创 HIT 软构--4 数据类型与类型检验
以本课程使用的java语言为例,数据类型是一组值,以及可以对这些值执行的操作。变量是用特定数据类型定义,可存储满足类型约束的值。java语言的数据类型分为两种,基本数据类型和对象数据类型。其中,对象数据类型形成层次结构。比如extends(继承)关系,它允许一个类(子类)继承另一个类(父类)的属性和方法。所谓检查,检查的是”型“与”值“的匹配性。java是一种静态类型语言,因此,在编译阶段就会进行类型检查,也就是说,当输入的类型与数值不匹配时,编译器就会报错。而动态类型语言,只有运行时才会报错。
2024-05-25 23:10:42 916
原创 HIT 软构--3 软件构造过程与配置管理
同时,git具有以下特点:其中指针指向的是具体文件存储,也就是说,与之前commit文件相比未发生过更改的部分,指针是不需要改变的。同样的文件,也不需要在不同的版本中重复存储。图中,一个commit指向一个parent。当多个commit指向同一个parent时,表示的是分支。当一个commit有多个parent时,表示的是合并。三个阶段:modified,staged,committed。三个区域:工作目录,暂存区,仓库(本地,远程)
2024-05-25 20:53:22 270
原创 HIT 软构--2 软件测试与测试优先的编程
通过等价类划分:选择测试用例:相似的输入,将会展示相似的行为。故可从每个等价类中选一个代表作为测试用例即可。(3)两种划分的覆盖方式:笛卡尔积全覆盖;覆盖每个取值最少一次即可。3.写代码、执行测试、有问题再改、再执行测试用例,直到通过它。记录测试策略,可以提高可读性和供别人测评。使用assert方法。2.再写符合spec的测试用例。(2)划分要包含边界。
2024-05-25 19:03:12 369
原创 HIT 软构--1 软件构造的多维度视图和质量目标
保证正确性(软件的行为要严格的符合规约中定义的行为);健壮性(:出现规约定义之外的情形的时候,软件要做出恰当的反应);正确的软件开发过程中,开发者应该将不同质量因素之间如何做出折中的设计决策和标准明确的写下来。memory dump:硬盘上的一种文件,包含进程内存内容的副本,当进程因某些内部错误或信号而中止时产生。源代码在物理上被组织成文件,这些文件进一步按目录组织;文件被封装到包中,从逻辑上讲,被封装到组件中。被基础地组织起来的代码块,比如:函数,类,方法,接口等等。描述“随时间变化”的视图。
2024-05-25 18:34:41 451
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人