软件构造期末复习一:
第一章:多维视图和质量目标
1.软件构造多维度视图
讲述了一个完整的程序的解剖图,不难看出,Code-level是代码逻辑层面,Component-level是代码的物理层面代码本身的文件等等,Moment代表程序在某一时刻的情况,而Period代表程序在生产周期里面相关的事项。Build-time和Run-time就不难理解啦,一个是编译阶段,一个是运行阶段,图上的内容不需要死记硬背,根据特性记忆就可以,唯一需要说的是AST是语法分析树,就是解剖代码的东西,知道了这些,就很好判断位置啦。
2.软件系统的质量
软件系统的质量分为:内部质量和外部质量。
外部质量因素影响用户,内部质量因素影响软件本身和它的开发者外部质量取决于内部质量
外部质量因素:
正确性(Correctness)、健壮性(Robustness)(针对异常情况处理)、可扩展性(Extendibility)、可复用性(Reusability)、兼容性(Compatibility)、性能(Efficiency)、可移植性(Portability)(Java的优点之一)、易用性(Easy of use)、功能性(Functionality)、及时性(Timeliness)
内部质量因素:
代码行数(LOC)、圈复杂度、结构:高内聚低耦合、可读性、可理解性、整洁度、大小折中、妥协
这些质量属性之间往往不能兼得,当某一项满足的足够好的时候有可能其他项的表现极差,因而需要做权衡,使得各部分的表现都较好,在某些特定要求下也可以放弃优化其他项而做到某一项的极致,这需要靠开发者的经验积累来判断。
但是正确性是绝不能与其他质量因素折中的!!!
在OOP开发中,通过封装、模块化、组件、抽象、分散、错误处理、信息隐藏、框架、接口等技术来尽可能地满足上述地质量因素,提高软件的开发质量。