软件架构————软件质量概述

软件质量特性

软件同时具有外在的和内在的质量特性。外在特性是指该产品的用户所能感受的部分:

1、正确性:指系统规范、设计和实现方面的错误的稀少程度

2、可用性:用户学习和使用一个系统的容易程度

3、效率

4、可靠性

5、完整性

6、适应性

7、精确性:精确性与正确性的不用在于,前者是用来判断系统完成工作的优劣程度,而后者是判断系统是否被正确开发出来。

8、健壮性:

内在特性:

1、可维护性

2、灵活性

3、可移植性

4、可重用性

5、可读性

6、可测试性

7、可理解性

改善软件质量的技术

1、软件质量目标,改善软件质量的一种强有力的方法,就是根据软件的外在和内在特性,明确定义出软件质量的目标。

2、明确定义质量保证工作,将质量保证工作明确下来,可以清楚地表现事情的优先程度。

3、测试策略,执行测试可以为产品的可靠性进行详细的评估。

4、软件工程指南,在开发过程中,指南应当控制软件的技术特性,应该贯彻到所有的开发活动中去。

5、非正式技术复查

6、正式技术复查,管理一个关键工程过程的工作之一,就是要在低成本的环节里抓出问题

7、外部审查,它是一种用于确定一个已开发项目或产品的状态的特殊技术复查方法

开发过程

1、对变更进行控制的过程,实现软件质量目标的拦路虎之一就是失控的变更。

2、结果的量化,除非质量保证计划的结果经过实际测量,否则将完全不知道这个计划是否有效。量化结果能够了解到计划是否成功,并允许用可控的方法来调整计划。

3、制作原型,它是指开发出系统中关键功能的实际模型。

设置目标

明确设置质量目标是开发高质量软件的一个简单而清晰的步骤,但它常常被忽视。而且不同目标有时候是相互冲突的,软件通常不可能在放放面面都做的很好。

不同质量保障技术的相对效率

缺陷检测率:单单使用一种方法来进行代码检测的监测效果不是很好,当多种检测方法融合在一起的时候进行测试的覆盖率才会提高。

找出缺陷的成本:某些缺陷检测方法的成本比其他方法要高。最经济的方法是找出缺陷的最低成本。研究发现,阅读代码每小时能检测出来的缺陷要比测试高出80%左右,而测试来检测缺陷的成本是检查的6倍。

修正缺陷的成本:一个缺陷存在时间越长,消除它的代价就越高,因此尽早发现错误的检测方法可以降低修正缺陷的成本。

一个有效的软件质量项目的底线,必须包括在开发的所有阶段联合使用多种技术:

1对所有的需求、架构以及关键部分的设计进行审查

2建模或者创建原型

3代码阅读或者检查

4执行测试

什么时候进行质量保证工作

缺陷可能在任何阶段渗透到软件中。因此,需要在早期阶段就开始强调质量保证工作,并且将其贯彻到项目的余下部分中。在开工之时,这一工作就应该纳入计划当中,在项目进行中作为技术脉络的一部分,并且应该作为项目的结束点,当整个工作结束时候检验产品的质量。

软件质量的普遍原理

效果最明显的缩短开发周期的办法就是改善产品的质量,由此减少花费在调试和软件返工上面的时间总量。与传统的"编码——测试——调试"相比,先进的软件质量计划可能更省钱。这种计划把投入到调试和重构的资源重新分配到前期的质量保证工作中,而前期工作在产品质量上体现的作用要比后期工作更为明显,因此把时间投入到前期工作中,能让程序员在后期工作中节省更多的时间。

时间: 2024-10-16 13:53:18

软件架构————软件质量概述的相关文章

《Code Complete》ch.20 软件质量概述

WHAT & WHY ? 软件质量的特性 外在特性 正确性(Correctness) 可用性(Usability) 效率(Efficiency) 可靠性(Reliability) 完整性(Integrity) 适应性(Adaptability) 精确性(Accuracy) 健壮性(Robustness) 内在特性 可维护性(Maintainability) 灵活性(Flexibility) 可移植性(Portability) 可重用性(Reusability) 可读性(Readability)

软件质量之道

我曾与一些资历非常高但毫无实际经验的人共事过,也曾与一些只有很少或根本没有资历但才华横溢的工程师一起工作过,我也曾经不得已跟一些并不想用心做事.也对学习新东西丝毫不感兴趣的人共事过.如果说我们这个职业是一张纸,那么这些人就好比纸上的污点.软件开发业的低劣性不能完全怪罪于那些无知的经理.狡猾的市场营销人员以及总是急不可耐的用户,实际上很大程度上要归咎于这个行业的某些从业人员,他们应该去从事一些即使玩忽职守也不会造成像软件业里这样大的危害的行当,而不应该混迹于这个聚集着人类想象力的最复杂的创造性的行

《代码大全2》学习笔记3

第三.四部分--变量.语句 "在声明变量时初始化"--减少未赋值的风险. "尽可能减少变量的存活时间"--感觉如果按照推荐,一般子程序都写的很短,那么这个也就不重要了吧. "一个好记的名字反应的通常是问题,而不是解决方案,是what而不是how" "避免使用相似含义的名字,如果你能让2个变量交换名字还不妨碍理解的话,就说明都要重新改名了."--越功能简单越名字容易相似,哪那么好改啊. "避免使用数字,什么file1,

《代码大全》阅读笔记-目录

第一部分:打好基础 第一章:欢迎进入软件构建的世界 第二章:用隐喻来更充分地理解软件开发 第三章:三思而后行:前期准备 第四章:关键的"构建"决策 第二部分:创建高质量的代码 第五章:软件构建中的设计 第六章:可以工作的类 第七章:高质量的子程序 第八章:防御式编程 第九章:伪代码编程过程 第三部分:变量 第十章:使用变量的一般事项 第十一章:变量名的力量 第十二章:基本数据类型 第十三章:不常见的数据类型 第四部分:语句 第十四章:组织直线型代码 第十五章:使用条件语句 第十六章:控

《代码大全》第五部——代码改善

工欲善其事,必先利其器.本文主要是解释通过代码优化,提升代码性能的操作:也主要是对所学知识的一个整理. 一.软件质量概述 我们在软件的开发过程应该需要对变更控制,有效地管理和控制变更是实现代码高质量的关键一步:我们要提升软件质量,还需要对结果进行量化,只有进行结果的量化才能有效地反馈计划的成功与否:在开发过程中,制作原型也是很重要的一步,原型是指开发出系统中关键功能的实际模型,构建原型能产生更完善的设计,更贴近用户的需求,以及更好的可维护性.软件质量的普遍原理就是改善质量以降低开发成本. 二.开

合格大数据分析师应该具备的技能

阶段一.业务数据分析师 课程一.数据挖掘/分析师之硬技能 - 必备常用工具使用与高级技巧 本部分内容主要介绍了数据挖掘.分析师.数据产品经理必备的常用工具的,主要有 Excel,Visio,Xmind,PPT的涉及图表数据分析方面的高级技巧,包括但不限于:数据透视表演练.Vision跨职能流程图演练.Xmind项目计划导图演练.PPT高级动画技巧等! 一.Excel 1)数据分析工具EXECL入门介绍2)数据透视表演练 3) 数据处理4) EXECL报告自动化5) PPT报告数据自动化 二.Vi

『互联网架构』软件架构-spring源码之spring结构概述

spring从07年接触到目前2018年也差不多10年了,一个java的框架为什么能火这么多年.很多人对spring的使用轻车熟路,但是从未解读过spring的源码,老铁跟我一起看看源码,了解下内部的构造,只有源码读过的人才能获得上乘武功,软件开发不只是搬砖的老铁.内功熟悉原理,外功是灵活使用.内功好比电力,外功好比电机.内功的电力越强,电机的马力越大才能发挥巨大作用,相反如果电力弱,马力在强也是不行的.spring从单一的jar包,发展到现在十多个jar包,spring mvc 到spring

软件架构设计

软件架构概述 软件架构是具有一定形式的结构化元素,即构件的集合,包括处理构件.数据构件和连接构件.处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把架构的不同部分连接起来.软件架构是软件设计过程的一个层次,这一层次超越计算过程中的算法设计和数据库设计.架构问题包括总体组织和全局控制.通信协议.同步.数据存取,给设计元素分配特定功能,设计元素的组织,规模和性能,在各设计方案间进行选择等.软件架构处理算法与数据结构之上关于整个系统结构设计和描述方面的一些问题,如全局组织和全局控制结构.关

单元测试软件工程概述

软件工程简介 软件工程(Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的.实用的和高质量的软件的学科.它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面. 在现代社会中,软件应用于多个方面.典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏等.同时,各个行业几乎都有计算机软件的应用,比如工业,农业,银行,航空,政府部门等.这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活