从零开始的软件构造复习[总集篇]

2022春软件构造

软件构造的知识框架十分明确,大体就三个部分:基础知识(就靠背),ADT+OOP,复用维护和健壮性正确性。(也就是下图的三块),按照知识体系复习比较容易一点,如果可以的话至少要把PPT全部看完一遍,好多小的内容都是PPT的原句,甚至和PPT给的例题都十分相似,虽然很多英文,但是内容依旧很重要,不能忽视掉PPT的重要性,这是唯一的官方的复习资料。

如果考试还是按照2021春季学期期末考试题型的话,选择题细致一些,大题快点答,多留一些时间给选择题是因为选择实在有太多不好敲定的内容,思来想去就很费时间。大题认真做即可,每道题都要能想到对应的知识点(例如问是否符合LSP就得回想里氏替换原则都提出了哪些要求)。

上学期最后发的期末考试复习PPT十分有帮助,上边给出了每章节对应的知识点,这些知识点必须掌握,几乎考试都涉及到了(或多或少)。

下面是我自己考试之前准备的复习内容提纲。。。直接搬到这了。。。内容当时是给自己看的 所以很杂乱… 都是重点内容的提取 可以大概扫一眼…

总结:PPT是真的很有用,强烈建议完整看一遍 对了还有习题课的内容最好要看并且研究明白。还有就是研究透往年习题(没有答案就很坑,但是可以研究出题的特点)

2022春季学期 软构期末 复习提纲(仅供参考)

考试基本概况

一三讲 没大题 全是选择 大题基本上都在第二部分(确定)

三 四部分主要是测试
预测:会有一道设计模式的大题;

复习

第一章

代码开发阶段 一定考 100%考 三维视图要记 每个维度都是什么意思
三维视图

质量属性区分内部质量属性和外部属性
eg:代码多少行(LOC):内部属性

第三章

软件配置管理的不同工具 重点
集中式和可分布式
git commit -m -a等等常用操作都是怎么用的
git结构
每次commit都是一个git对象 都是一个树形结构
git最大的变化:存储的是改变后的文件,B版本不会出现A版本没改变的文件,只是一个指针指向A版本的文件
eg. 判断题:一个文件可以出现在不同版本中 (x)
git的版本可以有0个父对象 (他自己就是父对象)
可以有1个
还可以有2个 原因: merge 两个版本合并
只能0 1 2个父对象
可以有多个子版本
请添加图片描述

第4-8章

java有些错误在运行阶段,有写在编译阶段出错。
最容易静态检测出错的就是类型错误 不匹配
两个集合类,泛型类型不一样,那么他们没有任何父子关系

mutable immutable 考点:defensive copy和表示泄露
表示泄露 100%考
给你个情况,判定是否泄露?
出现了咋办?
为啥没出现?
return一个immutable 不会表示泄露
return一个mutable,就会泄露
防止方法:防御式拷贝

final:引用的改变就会出错

final a指向一个空间,改变他的指向,就会出错。但是改变空间内的值,不会出错

Snapshot diagram必考 100%

前置 后置条件不会让你写 让你判断 (圈的大小,规约强弱)

送分题: ADT操作的四种类型 都是啥 给你一个代码你得知道他是哪个类型(creator observer等)

RI 100%考
看习题课代码题,里边有题要求写RI,停车位

习题课写的很详细

override overload 必考

泛型 必考

两个集合元素父子关系,但是他们没有父子关系!!!不能错!

判定相等
请添加图片描述

第九章

LSP肯定考
考察方式:给你2个类类 问你满不满足LSP 必考,大题
看ppt概念 父子类是否符合LSP
例如:符合override限制 子类规约比父类强 前置弱 后置强……PPT太详细了
异常:子类的异常不能更粗,得更细
父类抛出异常,子类只能抛出更具体的

协变反协变考小题
协变一般对应override
反协变java不支持,认为是重载,而不是重写

委托
一个类调用另一个类,就是委托。给你一堆类,判定是不是委托

CRP:java不允许对多个类继承,但是允许多个接口实现

白盒黑盒框架 —继承委托
请添加图片描述

第10-11章

可维护性的常见度量指标

耦合度聚合度 没啥考点

正则表达式:PPT
两种考法考一个:

给你一段话,请给其写出表达式
给一个表达式 问你这个表达式描述的是什么
设计模式
给你个需求,问你应该用哪一种设计模式实验
adapter 适配器 接口匹配
装饰器 增加功能 例如stack里push pop太简单了,我想扩充这就是装饰
模板 某一些自定义功能可以用户实现,但是父类,大的流程要固定
工厂
visitor:这个要注意 用来干嘛的得知道 对某一个类来扩充的 扩充功能点
功能先不实现,给他放着,之后再扩充(也就是放一个接入点,之后再写代码)
visitor看ppt
请添加图片描述

第2 12讲

正确性:断言—太简单了没啥说的(注:这句话不是我说的,是当时老师的原话,我全记下来了而已),注意一点:可以关闭 抛出assert error
健壮性:异常
error也可以catch 但是没有意义,那都是程序之外的(内存不足等),不需要捕获,捕获了也没有意义
异常:runtime异常不用捕获
checked异常要捕获 证明程序没错,外部环境(用户)错了

黑盒测试:要考
白盒测试 了解概念就ok

测试是一种破坏性的测试(找错误而不是证明正确)
无法进行完备的测试

请添加图片描述
祝大家该过的过,该高分的高分!!!

END

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值