《软件工程与计算(卷二)》-Chapter17-18-软件构造与代码设计

人走茶凉 提交于 2020-02-16 20:23:52
 A级:
重构:修改软件系统的严谨方法,它在不改变代码的外部表现的情况下改进内部结构
 
测试驱动开发:编写代码之前优先完成该段代码的测试代码
 
结对编程两个程序员挨着坐在一起共同协作进行软件构造活动。分为Driver(驾驶员)负责输入代码和Observer(观察员)进行评审。
 
软件构造的主要活动:
详细设计
编程
测试
调试
代码评审:评审会议
集成构建
构造管理
 
代码设计:(给定代码段示例,对其进行改进或者发现其中的问题)
易读性:
1)格式:使用缩进和对齐、将相关逻辑组织在一起、使用空行分割逻辑、语句分行。
2)变量命名:惯例和规则。
3)注释:文档注释,内部注释
易维护性:
1)小型任务:分解为多个高内聚、低耦合的小型任务。
2)复杂决策:使用布尔变量决策、有意义的名称来封装决策、表驱动编程。
3)数据使用:遍历与目的对应
4)明确依赖关系。
设计可靠的代码:
契约式设计(断言式设计):前置条件满足,后置条件满足
异常:代码开始执行判断前置条件,结束执行后判断后置条件,不符合抛出异常(throw)。
断言:代码开始执行检查前置条件,结束执行后检查后置条件,不符合抛出异常(assert)。
防御式编程外界发生错误,内部不受损害。会增加复杂度降低易读性和性能,但是增加了可靠性。
使用辅助模型:决策表、伪代码、流程图。
考虑: 
1)简洁性、可维护性。
2)使用数据结构消减复杂判定。
3)控制结构、变量使用、语句处理。
4)How to write unmaintainable code
5)防御与错误处理。
 
表驱动编程:(P307)
 
通过计算出决策表(P311)来判断是否发生事件(Level Array)。
 
Java中在Public方法中使用异常,Protected、Private方法中是用断言。
 
单元测试用例设计:(P313)
根据方法规格或者方法的逻辑结构开发单元测试用例。
 
软件构造编码、验证、单元测试、集成测试和调试等工作的结合,生产可工作的软件的过程。简单点说就是以程序员为主完成的综合性任务
 
B级:
 
代码质量:
易读性
易维护型
可靠性
性能
安全性
 
代码复杂度度量:
流程图中V(G)=E-N+2
决策点数量:1开始,遇到if,while,repeat,for加1,case加一
 
C级:
软件构造是设计的延续
设计是规划软件构造方案的过程
源程序是软件构建方案的最后一个规划
编程属于设计活动
 
重构的时机:发现了代码的“坏味道”
例如:
太长的方法:太多任务
太大的类:不是单一职责
太多的方法参数:抽象层次太低
多处相似的复杂控制结构
重复的代码
一个类过多使用其他类的属性
过多的注释
 
测试驱动开发的优点
提高程序的正确性和可靠性
提高设计质量
提高生产力
 
调试:
过程:重现问题、诊断缺陷、修复缺陷
重现问题
控制输入
控制环境
修复缺陷注意事项:
一次只修复一个缺陷
保留旧版本的备份
使用测试和评审验证修复的有效性
检查和修复类似的缺陷
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!