![](https://img-blog.csdnimg.cn/9e15a445bda04408be216b1a8c4c8916.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java-软件构造
文章平均质量分 82
HIT课程-软件构造(Java)
SolemnJudgment
Stimulus
展开
-
1.软件构造的多维度视图和质量目标
【代码】1.软件构造的多维度视图和质量目标。原创 2023-05-25 23:19:28 · 47 阅读 · 1 评论 -
2.软件测试与测试优先的编程
目的:在代码评审过程中,其他人可以理解你的测试,并评判你的测试是否足够充分。原创 2023-05-26 15:35:51 · 71 阅读 · 0 评论 -
3.软件构造过程与配置管理
Centralized VCS:集中式版本控制系统:仓库存储于独立的服务器,支持多开发者之间的协作。Distributed VCS:分布式版本控制系统:仓库存储于独立的服务器+每个开发者的本地机器。Local VCS:本地版本控制系统:仓库存储于开发者本地机器无法共享和协作。(配置管理数据库,存储软件的各配置项随时间发生变化的信息和基线)你所处的分支变化了,或者产生了新的提交点,HEAD就会跟着改变。HEAD,它始终指向当前所处分支的最新的提交点commit,:用来隔离工作目录和git仓库。原创 2023-05-25 23:25:23 · 46 阅读 · 0 评论 -
4.数据类型与类型检验
有些问题静态检查和动态检查都无法检测出来,如整数除法(截断整数)、整数溢出、浮点数的特殊类型:NaN,POSITIVE_INFINITY,NEGATIVE_INFINITY。中[0]添加变量时,都是指向该变量指向的具体存储空间,变量指向变化时,是按其类型标记的圆,在里面写下字段名,用箭头指向它们的值。由裸常量表示,传入箭头是对变量或对象字段中的值的引用。不可变对象(存储空间的中的值不可变):用双线椭圆表示。不可变引用(变量的指向不可变):用双线箭头表示。动态检查:在运行过程中进行检查,关于。原创 2023-05-25 23:38:52 · 51 阅读 · 0 评论 -
5.设计规约
【代码】5.设计规约。原创 2023-05-26 14:44:15 · 53 阅读 · 1 评论 -
6.抽象数据类型 (ADT)
AF和RI应该写到注释中,不能写到JavaDoc中,即,不可以将具体实现泄漏给用户,用户不能知道具体实现方法,也不能对某个具体类的成员变量(属性、字段)或者实现(方法)进行修改。抽象函数AF:R和A之间的关系,即如何将R中的每一个值解释为A中的每一个值,在图中用箭头表示(将代码中用到的变量映射成逻辑需要的值)两个空间是满射关系(每个抽象值都被某个表示值映射到,即用户的可选项一定在开发者的适用范围内),但未必是单射,也未必双射。表示空间:以R表示,是开发者看到和使用的值。(2) RI — 合法的表示值;原创 2023-05-26 14:48:00 · 91 阅读 · 1 评论 -
7.面向对象的编程
类、接口中如果声明了一个或多个泛型变量,则为泛型类、接口。如果想存在父子关系,则需要加上限定符。泛型不是协变的,是不变的。overload重载。原创 2023-05-26 14:53:07 · 51 阅读 · 1 评论 -
8.ADT和OOP中的“等价性”
观察等价性:在不改变状态的前提下,两个可变对象是否。对可变类型,实现行为等价性即可。原创 2023-05-26 14:56:13 · 51 阅读 · 1 评论 -
9.面向复用的软件构造技术
接口之间通过extends实现行为扩展,类实现组合接口,避免复杂的继承关系。比较器:int compare(T a,T b):比较其两个参数的顺序。Java中数组是协变的: 对T[]数组,可以保存类型T及其子类型的数据。Aggregation, 更弱的association,可动态变化。Composition,更强的association,但难以变化。CRP原则更倾向于使用委派而不是继承来实现复用。Dependency,临时性的委派,用完即释放。Association,永久性的委派,一直占着。原创 2023-05-26 15:05:09 · 91 阅读 · 0 评论 -
10.面向可维护性的构造技术
当耦合度较高时,内聚度往往较低,反之亦然。最好的设计在模块内具有高内聚性(也称强内聚性),模块之间具有低耦合性(也称弱耦合性)。耦合是模块之间依赖性的度量。如果一个模块的更改可能需要另一个模块的更改,则两个模块之间存在依赖关系。,扩展模块行为的一般途径是修改模块的内部实现,如果一个模块不能被修改,那它常备认为具有固定的行为。模块之间的耦合程度取决于:模块之间的接口数量(数量)和每个接口的复杂性。,从而该模块可表现出新的行为以满足需求的变化。解决方案:抽象技术,类的行为用继承和委托机制。原创 2023-05-26 15:07:03 · 60 阅读 · 0 评论 -
11.面向可复用性和可维护性的设计模式
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z49oxSsa-1685085717589)(images/10.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nwfVnTF6-1685085717589)(images/11.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dzjvPbEK-1685085717590)(images/12.png)]子类中不应重复公共步骤,但需要重用。原创 2023-05-26 15:24:13 · 57 阅读 · 0 评论 -
12.面向正确性与健壮性的软件构造
如果JDK提供的exception类无法充分描述你的程序发生的错误,可以创建自己的异常类可以创建checked exception,也可以创建unchecked exception。前者需要在方法签名中声明继承自exception类或者其子类,并在方法体中捕获或抛出;后者需要继承运行时异常类,不需要捕获,也不需要声明。原创 2023-05-26 15:46:46 · 78 阅读 · 0 评论