软件构造期末复习1

一.软件多维视图:

软件的多维视图可分为三个层面,即构建时和运行时,代码层面和组件层面,特定时刻和随时间的变化。

构建时

Code-level view:源码、类结构;代码变化
表示代码的逻辑组织

Component-level view:文件、目录、包、库、静态链接、测试项;配置项、版本
表示代码的物理组织

Moment view:源码、类结构;文件、目录、包、库、静态链接、测试项
表现源码和组件在特定时刻的软件形态

Period view:代码变化;配置项、版本
表现软件形态随时间的变化

运行时

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

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

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

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

二.软件的质量因素:

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

包括:正确性,健壮性,可扩展性,可复用性,兼容性,性能,可移植性,易用性,功能性,及时性

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

源码方面:行数(LoC)、逻辑复杂度

结构方面:耦合、内聚

除此之外还有代码可读性、易于理解、清晰、大小等。

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

三.软件测试

测试是提高软件质量的重要手段,确认软件是否达到可用级别(用户需求),它关注系统的某一侧面的质量特性。一个好的测试具有这些特征:能发现错误、不冗余、最佳组合、不能太过复杂也不能太过简单。

测试和调试的区别

测试:发现是否存在错误

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

测试的分类:

从范围上看可分为

单元测试:针对软件的最小单元模型开展测试(一般来说是在单个方法/类的级别),隔离各个模块,容易定位错误和调试

集成测试:将多个程序员/团队编写的类/包/组件/子系统联合起来测试

系统测试:对整个系统进行测试,将硬件、软件、配置信息等看作一个整体

验收测试:产品发布之前所进行的软件测试活动,是技术测试的最后一个阶段,目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务

回归测试:一旦程序被修改,重新执行之前的所有测试以确认修改没有引入新的错误或导致其他代码产生错误

从静态/动态上看

静态测试:在编写代码的阶段由程序员或是代码编辑器、编译器等工具进行检查(如语法检查、代码评审)

动态测试:通过测试用例实际执行了编写的代码
动态测试可能在程序完全编写完成前就用于测试代码的特定节

从结构上看可分为

白盒测试:对程序内部代码结构的测试

黑盒测试:对程序外部表现出来的行为的测试(例如输入输出)

代码的分析工具有如下:

Junit、EclEmma、VisualVM、AppPerfect:动态检查,需要执行代码

EclEmma用于在代码执行阶段给出测试用例的覆盖度,但不能发现代码中潜在的错误

CheckStyle、SpotBugs、PMD:静态检查,无需执行代码

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 构件:是指语义完整,语法正确和有可重用价值的单位软件,是软件重用过程可以明确辨识的系统;结构上,它是语义描述通信接口和实现代码的复合体。2. 构件模型:是对构件本质特征的抽象描述。3. 构件组装:是指将库的构件经适当修改后相互连接,或者将它们与当前开发项目软件元素相连接,最终构成新的目标软件。4. 软件体系结构:Hayes Roth认为软件体系结构是一个抽象的系统规范,主要包括用其行为来描述的功能构件和构件之间的相互连接、接口和关系。5. 面向服务体系结构(SOA):本质上是服务的集合,服务间彼此通信,这种通信可能是简单地数据传送,也可能是两个或更多的服务协调进行某些活动。6. 可靠性:是软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统特性的基本能力。7. 可修改性:是指能够快速地以较高的性能价格比对系统进行变更的能力。通常以某些具体的变更为基准,通过考察这些变更的代价衡量可修改性。可修改性包括:可维护性、可扩展性、结构重组、可移植性。8. 敏感点:是一个或多个构件(和/或构件之间的关系)的特性。9. 权衡点:是影响多个质量属性的特性,是多个质量属性的敏感点。10. 软件产品线:就是在一个公共的软件资源集合基础上建立起来的共享同一个特性集合的系统集合。11. 框架:是封装了特定应用族抽象设计的抽象类的集合,框架又是一个模板,关键的方法和其他细节在框架实例实现。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值