哈工大软件构造1-4章复习心得

1.软件的多维度视图

1.1构建时视图 

Code-level view:源码、类结构;代码变化

表示代码的逻辑组织

Component-level view:文件、目录、包、库、静态链接、测试项;配置项、版本

表示代码的物理组织

Moment view:源码、类结构;文件、目录、包、库、静态链接、测试项

表现源码和组件在特定时刻的软件形态

Period view:代码变化;配置项、版本

表现软件形态随时间的变化 

1.2运行时视图

Code-level view:代码快照、内存转储;堆栈轨迹、并发线程
逻辑实体在内存中如何呈现

Component-level view:包、库、动态链接、数据库、网络、硬件;事件日志、多进程、分布式程序
物理实体在物理硬件环境中如何呈现

Moment view:代码快照、内存转储;包、库、动态链接、数据库、网络、硬件
逻辑/物理实体在内存/硬件环境中特定时刻的形态

Period view:堆栈轨迹、并发线程;事件日志、多进程、分布式程序
逻辑/物理实体在内存/硬件环境中的形态随时间的变化

1.3视图之间的转换

2.软件的质量因素

2.1外部质量因素

可被用户感知的因素,如软件速度、易用性;影响用户

1.正确性 Correctness
i. 遵守规格说明书
ii. 分层:从底层到顶层,都要正确
iii. 设法测试
2.鲁棒性 Robustness
健壮性:对异常情况做出适当反映
异常取决于规格说明,是其没有涉及的部分
3.易扩展性 Extendibility
易于调整、适应变化(软件是易变的)
改变的多少(与规模密切相关、越大越难以扩展)
Decentralization 离散化:模块自治性越强,变化时对其余模块影响越小
4.复用性 Reusability
利用已有的、复用性好的程序,开发成本少
相似的模式、利用共性
模块化
5.兼容性 Compatibility
软件元素融合
关键:标准化
6.效率 Efficiency
对硬件资源尽可能少的需求
与其他存在矛盾
7.可移植性 Portability
便于将软件产品移植到各种环境
8.易用性 Ease of use
用户:轻松掌握使用、包括安装、运行、GUI等
9.功能性
(冲突)过多新功能 --> 损失一致性(兼容性)、影响易用性
先实现主要功能、提高质量,再丰富功能
10.时效性 Timeliness

2.2内部质量因素

作为软件产品的质量,如代码可读性;影响软件本身和它的开发者

外部质量取决于内部质量。

1.LOC
lines of code
2.Cyclomatic Complexity 圈复杂度
衡量一个模块判定结构的复杂程度
3.Architecture-related factors
Coupling 耦合度 --> 低
Cohesion 内聚度 --> 高
矛盾
4.可读性
5.易理解性
6.清晰 Clearness
7.复杂度
8.大小 Size

3.软件测试

3.1测试和调试的区别

        测试:发现是否存在错误

        调试:识别错误根源,消除错误

3.2静态/动态

静态测试:在编写代码的阶段由程序员或是代码编辑器、编译器等工具进行检查(如语法检查、代码评审)
动态测试:通过测试用例实际执行了编写的代码
动态测试可能在程序完全编写完成前就用于测试代码的特定节

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值