软件构造学习笔记(一)————软件构造的质量目标

外部质量因素:是关系到用户的(使用体验),例如运行速度或者使用是否方便;

内部因素:是由软件的开发者决定的,影响软件本身和它的开发者,例如软件的模块化和可读性

tip:外部质量取决于内部质量

主要的外部因素如下:

1、正确性:这是首先需要保证的,是最重要的质量指标,需要编写的代码和结果符合制定的规约,假定一个软件系统是分层开发的,每层都要确保自己和其下层是正确的,即确保每层都是正确的。

达到正确性的方法:测试调试并改错、防御式编程、形式化开发。

2、健壮性:是软件针对异常情况(超出规约范围之外的情况)的处理能力,健壮性是对正确性的补充。健壮性就是要让这些异常情况不产生灾难性的后果,让软件依然能够正常运行而不会崩溃。例如对超出边界,非法输入的处理。

正确性是指让软件做符合规约的行为,健壮性指让软件处理规约之外的行为。

3、可扩展性:指软件通过调整以适应变化的能力,即对软件的规约进行修改,是否足够容易。在开发和使用过程中可能会出现一些新的要求,而这些要求一开始并没有在原软件中被考虑到,可扩展性便是针对这种情况。其中,规模越大越难扩展。

如何提高可扩展性:简约主义设计——简化软件本身

                                 分离主义设计——提高模块的自主性

4、复用性:使开发更加便捷,即一次开发,多次使用。利用共性来开发一套代码适用于多种场景,从而避免代码的重复实现。

5、兼容性:不同的软件系统之间相互可容易的集成。其难点在于不同软件有不同的规定。

提高兼容性的方法:保持设计的同构性、设计标准化

6、效率:效率是软件对硬件资源(时间,占用内存等)尽可能少的需求的能力。对性能的关注 要与其他质量属性进行折中,不能过于追求性能而忽视其他目标。

7、可移植性:可移植性是指软件可方便的在不同的技术环境(硬件、操作系统)之间移植的能力。

8、易用性:指用户是否容易掌握软件的使用,比如包括安装、运行和监控。

提高易用性方法:给用户提供详细的指南,结构简洁,了解用户,站在用户的角度进行软件的设计

9、功能性:即功能的多少。功能越来越多会影响其他指标例如易用性,因此需要集中实现主要功能,增加其他功能的同时要确保其他质量指标不会收到太大影响。

10++、及时性、可验证性,完整性、可修复性、经济性

一些示例:

化学物理实验软件:正确性、健壮性、效率

单机游戏软件:可扩展性(添加mod)、效率

办公软件:兼容性、易用性

老人机、儿童机:易用性

高端电子产品:功能性、效率

内部质量因素:

内部质量因素通常用作外部质量因素的部分度量。

例如代码行数、圈复杂度、高内聚低耦合(独立性)、可读性(容易理解)、复杂度、大小等

折中:

软件的质量目标间常常需要折中,之间互相影响,或者矛盾或者相关。保证某一目标的同时可能需要舍弃其他目标,遇到实际问题时需要根据实际情况做决策,但正确性是放在首位的,绝不能与其他质量目标折中。

OOP是如何提升质量指标的:

五个关键的质量标准:

易于理解

可扩展性

可复用性

健壮性

效率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值