软件构造课程总结(1)

软件构造课程总结(1)

这里是HIT2021软件构造课程的总结博客,主要书写了本学期软件构造的所有课程内容和实验内容。

第一章、软件构造的多篇维度视图和质量目标

1.软件构造的多重视图:
这一小节主要讲述了软件构造的三视图维度,分别从时间点还是时间段(Moment or Period)、构建还是运行(Build-time or Run-time)以及代码的逻辑结构和物理结构(Code-level or Component-level)讲述了软件构造。

下面是一些比较重要的知识点:
1.Code-level:代码的逻辑结构
2.Component-level:代码的物理结构
3.Moment view:特定时刻的软件形态
4.Period view:软件形态随时间的变化
5.三种形式:词汇层面,语法层面,语义层面
6.AST:语法分析树,在编译原理中十分重要
7.语义:源代码的目标
8.源代码:现实世界的代码
9.Code Churn:结构随着版本的变化的改变
10.Library:库文件,存在静态链接和动态链接两种形式
11.UML:类图
12.Code snapshot:描述程序运行时内存中变量层面的状态。
13.Memory dump:记录运行时的内存信息
14.Log:日志

2.软件构造的质量
这一小节讲述了软件构造时衡量软件质量的几个标准:
1.正确性:
按照软件的规约spec正确的执行。正确性也是最重要的质量标准。
几个保证正确性的方法:
①测试,将详细在第二节中讲解
②防御式编程:相关的知识有防御式拷贝,权限的使用(private关键字)
③checkRep()函数的编写:在程序中我们可以编写一个检查程序,这个方法将时时刻刻检查我们类型中的不变量是否正确。

2.健壮性
健壮性是指程序在遇到不符合spec的规定时仍然能够正确的处理,比如返回异常报错

3.可扩展性
我们有时候需要对软件的规约进行修改、拓展,是否足够容易?这里就需要我们增强程序的可扩展性。一个可扩展性好的程序可以针对用户的需求扩大进行快速的迭代。

4.可复用性
一次开发,多次使用。

5.兼容性

6.同构性

7.性能

8.可移植性

9.易用性

10.及时性

等等。。

我们在编写程序的时候需要对以上这些标准进行衡量,从而构建出一个最能满足客户需求的程序。比如,通常正确性是程序的第一位,而在性能和可扩展性、可复用性的衡量上,则需要根据客户的需求进行设计。
_
_
_
_
_
_

第二章、软件测试和测试优先的编程

这一章主要讲述了如何进行程序测试和测试优先编程的思想。我们测试程序,应该抱着找出错误的决心,这是我们测试的第一要义。
测试程序主要有两个要点:
①等价类
基于等价类划分的测试:将被测函数的输入域划分为等价类,从等价类中导出测试用例。
我们需要针对每个输入数据需要满足的约束条件,划分等价类。
而 每个等价类代表着对输入约束加以满足或违反的有效或无效数据的集合。
而由于等价类的特性,我们只需要从等价类中选择一个来测试即可。
例子:
n是正奇数:
正数:>0、<0
奇数:奇数、偶数
奇数隐含着整数:整数、非整数
或者:
输入的学号no需满足的条件:
长度为10位:10、>10、<10
以118开头:以此开头、以其他开头
之后两位数应为03/36/37:03、36、37、其他
②边界测试
在工程师进行测试时,发现错误往往出现在边界情况上,比如在上面的例子中,n=0就是一个边界情况。边界值分析方法是对等价类划分方法的补充。通过边界测试,可以让我们更好的测试出错误。

_
_
_
_
_
_

第三章、软件构造过程和配置管理

这一章主要介绍了两个重要知识点:敏捷开发和git的结构和使用
①敏捷开发
敏捷开发主要通过快速迭代和小规模的持续改进,以快速适应变化。
在2001年Agile Manifesto发表敏捷宣言。
Agile = 增量 + 迭代
每次迭代处理一个小规模增量

②git
1.git的层次结构:工作目录workspace、暂存区staging、仓库local repository和远程仓库remote repository(通常是github)。所有的操作就在这四个层次上进行。
2.git中文件的结构:我们使用一个树结构来描述git的文件结构:每个commit指向一个父亲;多个
commit指向同一个父亲:分支;一个commit指向两个父亲:合并

以上是我总结的一到三章的重点知识。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值