精华内容
下载资源
问答
  • 如何衡量软件设计质量

    千次阅读 2015-06-05 15:32:48
    如何衡量软件设计的质量衡量软件设计质量的首要标准是该设计是否能满足软件的功能需求。当然除了功能需求以外,还有很多衡量软件设计质量的标准,如可读性、可复用性、可扩展性、可维护性等。一个好的软件设计一般...

    如何衡量软件设计的质量

    衡量软件设计质量的首要标准是该设计是否能满足软件的功能需求。当然除了功能需求以外,还有很多衡量软件设计质量的标准,如可读性、可复用性、可扩展性、可维护性等。

    一个好的软件设计一般具有以下几个特点:

    可读性:软件的设计文档是否轻易被其他程序员理解。可读性差的设计会给大型软件的开发和维护过程带来严重的危害。

    可复用性:软件系统的架构、类、组件等单元能否很容易被本项目的其它部分或者其它项目复用。

    可扩展性:软件面对需求变化时,功能或性能扩展的难易程度。

    可维护性:软件维护(主要是指软件错误的修改、遗漏功能的添加等)的难易程度。

    但这几个特点可能会比较抽象,不容易考量,那么我们可以根据内聚度与耦合度来考量。

    内聚度:

    内聚度表示一个应用程序的单个单元所负责的任务数量和多样性,内聚与单个类或者单个方法单元相关。好的软件设计应该做到高内聚。

    理想状态下,一个代码单元应该负责一个内聚的任务,也就是说一个任务可以看作是一个逻辑单元。一个方法应该实现一个逻辑操作,一个类应该代表一种类型的实体。

    内聚原则背后的主要原因是重用:如果一个方法或一个类只负责一个定义明确的事情,那么在不同的上下文环境中,它就能更好地被再次使用。

    遵循该规则的另一个优点是,当一个应用程序的某些方面需要做出改变时,我们能够在相同单元中找到所有相关的部分。

    如果一个系统单元只负责一件事情,就说明这个系统单元有很高的内聚度;如果一个系统单元负责了很多不相关的事情,则说明这个系统单元是内聚度很低。内聚度很高的系统单元通常很容易理解,很容易被复用、扩展和维护。

    如果一个方法可以用简单的“动词+名词”的形式来命名(例如,loadFile()、getName()、calcPrice()),或者如果一个类可以用准确的名词来命名(例如,Employee、Student、Teacher),那么这样的类或者方法就是内聚度较高的系统单元;反之,如果类或者方法的名字必须包含“和(and)”、“或(or)”等字样才能准确反映其功能特性的话,这些类或方法的内聚度一般都不会太高。

    耦合度:

    耦合度表示类之间关系的紧密程度,它决定了变更一个应用程序的难易程度。

    在紧密耦合的类结构中,更改一个类会导致其它的类也随之需要做出修改。显然,这是我们在类设计时应该避免的,因为微小的修改会迅速波动影响到整个应用程序。此外,找到需要修改的所有的地方是必须的,实际上就使得修改变得困难并且耗费时间。

    在松散耦合的系统中,我们可以更改一个类,不需要修改其它类,而应用程序仍然能够正常工作。

    概括起来,较低的耦合度和较高的内聚度,也即我们常说的“高内聚、低耦合”是所有优秀软件的共同特征。

    如果一个软件的内聚度和耦合度都符合要求,它也就自然具备了比较好的复用性、可扩展性和可维护性。

    展开全文
  • 衡量软件测试质量的常用指标

     衡量软件测试质量的常用度量指标

     

    指标名称

    定义 度量范围
    工作量偏差((实际工作量-计划工作量)/计划工作量)*100%进度
    测试执行率(实际执行的测试用例数/测试用例总数)*100%测试进度
    测试通过率(执行通过的测试用例数/测试用例总数)*100%开发质量
    需求(测试用例)覆盖率(已设计测试用例的需求数/需求总数)*100%测试设计质量
    需求通过率(已测试通过的需求数/需求总数)*100%进度
    测试用例命中率(缺陷总数/测试用例数)*100%测试用例质量
    二次故障率(Reopen的缺陷/缺陷总数)*100%开发质量
    NG率(验证不通过的缺陷/缺陷总数)*100%开发质量
    缺陷有效率(无效的缺陷/缺陷总数)*100%测试
    缺陷修复率(已解决的缺陷/缺陷总数)*100%开发
    缺陷生存周期缺陷从提交到关闭的平均时间开发、测试
    缺陷修复的平均时长缺陷从提交到修复的平均时间开发
    缺陷关闭的平均时长缺陷从修复到关闭的平均时间测试
    缺陷探测率(测试者发现的缺陷数/(测试者发现的缺陷+客户发现的缺陷))*100%测试质量

    展开全文
  • 衡量软件测试质量的常用度量指标

    千次阅读 2018-06-23 21:20:57
    指标名称 定义 度量范围 工作量偏差 ((实际工作量-计划工作量)/计划工作量)*100% 进度 测试执行率 (实际执行的测试用例数/测试用例... (已设计测试用例的需求数/需求总数)*100% ...

    指标名称

    定义度量范围
    工作量偏差((实际工作量-计划工作量)/计划工作量)*100%进度
    测试执行率(实际执行的测试用例数/测试用例总数)*100%测试进度
    测试通过率(执行通过的测试用例数/测试用例总数)*100%开发质量
    需求(测试用例)覆盖率(已设计测试用例的需求数/需求总数)*100%测试设计质量
    需求通过率(已测试通过的需求数/需求总数)*100%进度
    测试用例命中率(缺陷总数/测试用例数)*100%测试用例质量
    二次故障率(Reopen的缺陷/缺陷总数)*100%开发质量
    NG率(验证不通过的缺陷/缺陷总数)*100%开发质量
    缺陷有效率(有效的缺陷/缺陷总数)*100%测试
    缺陷修复率(已解决的缺陷/缺陷总数)*100%开发
    缺陷生存周期缺陷从提交到关闭的平均时间开发、测试
    缺陷修复的平均时长缺陷从提交到修复的平均时间开发
    缺陷关闭的平均时长缺陷从修复到关闭的平均时间测试
    缺陷探测率(测试者发现的缺陷数/(测试者发现的缺陷+客户发现的缺陷))*100%测试质量
    展开全文
  • 衡量软件质量的指标

    千次阅读 2012-02-17 15:34:02
    每一个软件人,都应该掌握从专业角度评价一款软件质量高低。  每一类事物都有其评价的标准,是好是坏是美或是丑。比如说我们评价一个女生,首先我们通常第一眼看脸,脸蛋漂亮了就差不多算半个美女了,然而光靠...

       每一个软件人,都应该掌握从专业角度评价一款软件的质量高低。

         每一类事物都有其评价的标准,是好是坏是美或是丑。比如说我们评价一个女生,首先我们通常第一眼看脸,脸蛋漂亮了就差不多算半个美女了,然而光靠脸蛋还不够,还得看身材(女人的身材在男人眼里其实相当相当重要,你懂的),如果说脸蛋漂亮而身材实在难以恭维,也不能算正在的美女。一般的,当我们评价一个女生时,我们会从相貌、身材、性格、文化程度、内涵修养等这些要素出发,最终判别该女生属于哪一个层次。同样的,当我们评价一款软件是否属于高质量软件时,我们也要有参考指标。下面是摘自百度文库的软件质量的指标。

     

            尽管软件质量被很多人经常性的挂在口头,但是如果被问到“衡量软件质量的指标有哪些?”相信很多人会说不出话来,为了帮助更多的软件质量人了解衡量软件质量的指标,下面就简要的介绍一下软件质量指标。

      软件质量指标是衡量那些可识别的软件质量特性的项目,有助于软件质量进行度量,选择软件工程方法来达到特定的质量目标。在一个理想的范围内,一个系统总是最大限度的展示所有这些属性的可能价值,系统将随时可用、绝不崩溃、可以立即提供结果、易于使用。
      在 ANSI/IEEE中提到的软件的6个品质要素如下:
      正确性:实现的功能达到设计规范并满足用户需求的程度。
      可靠性:在规定的时间和条件下,维持其性能水准的程度。
      易用性:用户掌握软件操作所要付出的时间及努力程度。
      效率:软件执行某项功能所需的计算机资源和时间的有效程度。
      可维护性:当环境改变或者软件发生错误时,执行修改或者修复所作的努力地程度。
      可移植性:从一个系统 /环境移到另一个系统/环境的容易程度。
      根据这些软件品质要素,我们可以确定一系列的软件质量指标:
       1、功能性的质量指标
      功能的正确性:系统功能和用户的实际需求、已定义的产品规范一致。
      功能的准确性:系统产生的结果在精度允许的误差范围内。
      功能的完整性:所有功能及其定义清楚、可用。
       2、可用性的质量指标
      可操作性:容易使用和操作,包括理解用户界面、适应一些特殊用户的可选项等。
      通用性:数据显示、网络通信接口和用户界面等都遵守已有的软件标准。
      一致性:在软件开发整个生命周期内建立和使用相同的标准,保证全局变量、数据类型、出错处理的命名和使用一致。
       3、可靠性的质量指标
      自我恢复能力:当系统的某个功能失效发生时,系统在当前环境下能实现故障自动转移,重新自动配置、继续执行的能力,软件系统具有自我检测、容错、备份等机制,尽量做到独立于硬件的编码、硬件设备之间的通信协议一致等。
      健壮性:各种恶劣环境(大数据量、大用户量)下系统能正常工作。
      分布性:软件系统的某些子功能或子系统被定位于不同的处理主机、存储设备。
       4、性能的质量指标
      有效性:系统在通信、处理、存储等方面占有很少资源或者对所使用的资源进行了优化。
      完整性:系统具有良好的安全管理,能防止不安全存取系统、防止数据丢失病毒入侵等。
      易存取性:对系统的存取权限设置清楚,存取操作方便,存取操作有记录。
       5、可维护性的质量指标
      模块化:指讲一个复杂的软件系统分解为分别命名并具备最小耦合性、很强凝聚性、结构化的组件。
      灵活性:容易为系统增加一个新功能或者新的数据而不需要进行大量的代码修改或者设计修改。
      可测试性:测试软件组件或者集成产品时查找缺陷的简易程度。
      可追溯性:对一个特殊需求容易找出相应的代码,反之,也可以根据代码找出特定的需求。
      兼容性:软件、硬件、通信系统之间协调及兼容其他系统的能力。
      可解释性:相关文档齐全、符合标准、逻辑清晰、描述准确、用词恰当,容易理解和定位。
       6、可移植性质量指标
      适应性:系统不依赖于环境,即系统不做修改或作很少的修改即可运行在其他环境下。
      易安装性:与在指定的环境下安装软件所需努力有关的软件属性。如在线更新、安装包自动生成等。
      可重用性:一个软件组件除了在最初开发的系统之外应用于其他系统的能力。
      互操作性:软件系统与其他系统交换数据和服务的难易程度。
      可替换性:与软件在该环境中用来替代指定的其他软件的机会和努力有关的软件属性。
      看过读者其他文章的朋友会觉得上面的内容似曾相识,不错,笔者之前的文章《非功能需求的 6种类型》中的内容和此文中的内容遥相呼应,一定程度上也反馈出“质量就是客户满意的程度”的观点。实际上,软件的质量并非静态的而是动态的,假如客户对于某项质量指标没有要求,就没必要花费时间和工作去满足该项质量指标,因此,在具体软件系统的质量指标定义上,一定要结合用户的非功能需求,不但能恰到好处的满足客户需求,也能尽可能的节省开发成本。
    展开全文
  • 5个衡量软件质量的标准

    千次阅读 2012-10-09 21:25:33
    它能体现软件的规模,为项目的发展和计划提供一些数据支撑。例如,我们每个月统计一次代码的行数,我们就能大体知道项目的发展情况。当然,这不是一个值得信赖的标准,因为有重构以及设计的因素。  SLOC 最好是...
  • 如何衡量代码质量

    千次阅读 2015-06-09 22:30:14
    个人观点:软件质量=外部质量+内部质量主要总结为两个方面: 1、外部质量:从用户、使用者角度去衡量; 2、内部质量:从员工、开发者角度去衡量;一、衡量外部质量1、正确性 2、易用性 3、高效率 4、适应性 ...
  • 它能体现软件的规模,为项目的发展和计划提供一些数据支撑。例如,我们每个月统计一次代码的行数,我们就能大体知道项目的发展情况。当然,这不是一个值得信赖的标准,因为有重构以及设计的因素。 SLOC 最好是...
  • 什么软件质量/如何评价软件质量

    万次阅读 2010-01-05 14:23:00
    通常软件的质量有下面几个方面来评价质量的优劣: (1) 软件需求是衡量软件质量的基础,不符合需求的软件就不具备质量设计的软件应在功能、性能等方面都符合要求,并能可靠地运行。 (2) 软件结构良好,易读...
  • 怎样衡量代码质量

    千次阅读 2017-06-15 11:04:00
    软件质量=外部质量+内部质量 主要总结为两个方面: 1、外部质量:从用户、使用者角度去衡量; 2、内部质量:从员工、开发人员角度去衡量; 一、衡量外部质量 1、正确性 2、易用性 3、高效率...
  • OOAD之设计原则

    2021-01-30 16:18:50
    衡量软件设计质量的首要标准是该设计是否能满足软件的功能需求。除了功能需求以外,还有很多衡量软件设计质量的标准,包括可读性、可复用性、可扩展性、可维护性等。可读性:软件的设计文档是否轻易被其他程序员理解...
  • 细说软件质量属性

    千次阅读 2012-11-28 09:23:36
    正确性无疑是第一重要的软件质量属性。如果软件运行不正确,将会给用户造成不便甚至损失。技术评审和测试的第一关都是检查工作成果的正确性。 正确性说起来容易做起来难。因为从“需求开发”到“系统设计”再到...
  • 软件质量的特性

    2020-03-20 11:42:25
    (1) 软件需求是衡量软件质量的基础,不符合需求的软件就不具备质量设计的软件应在功能、性能等方面都符合要求,并能可靠地运行。 (2) 软件结构良好,易读、易于理解,并易于修改、维护。 (3) 软件系统具有...
  • 可用性是软件对服务请求的可操作性和可见程度 也就是软件可用的时间 通常用“9”来衡量,比如说 99.9% 表示正常运行时间的百分比,意味着留给计划维护、升级和故障处理的时间每天只有那0.1%的时间 4.安全性 ...
  • 软件设计的概念与原则

    千次阅读 热门讨论 2016-11-24 14:03:17
    3. 怎样统一衡量软件设计的技术质量。 二、模块化 模块是数据说明、可执行语句等程序对象集合,模块可以单独被命名的而且可通过名字来访问,例如:过程、函数、子程序、宏等等都可以作为模块。 三、抽象与逐步求精 ...
  • 第六章 软件项目质量管理

    万次阅读 多人点赞 2018-07-02 13:48:40
    本章内容提要软件质量管理的基本概念全面软件质量管理缺陷跟踪缺陷移除和... 用户需求是衡量软件质量的基础。除满足明确定义的需求外,还要满足隐含的需求。软件质量的重要性软件质量问题可能导致经济损失甚至灾难性...
  • 如何设计编写软件测试用例[3]软件测试为提高测试效率,软件测试已大力发展自动测试。自动测试的中心任务是编写测试脚本。如果说软件工程中软件...判断软件测试是否完成、衡量测试质量需要一些量化的结果。例:测试覆盖
  • 软件工程的设计意义

    千次阅读 2013-11-07 00:14:28
    良好的软件工程设计具有不可比拟的意义,它胜于执行软件需求、软件编码、软件维护等任何一个环节,这就是设计的优越性。秉承设计优先这一原则,会让软件开发变得简单而高效,可以尽量避免掉因设计失误而导致的缺陷。...
  • 在软件开发中,软件质量衡量软件是否符合需求、标准的重要体现。除了代码质量外,影响软件整体质量的因素还有很多。因此,要确保软件的整体质量,就需要在各个环节严格控制。 本文列出了衡量软件质量的5个最常用的...
  • 软件质量之道

    千次阅读 2014-09-07 16:35:23
    本文主要针对C++的软件质量进行分析,同样也适用于其他语言,在不同的环节提供了一些软件,进行软件质量的控制。使用自动化的集成构建环境,来减少Bug发生,从而提高开发质量
  • 2019软件设计师考试要点

    万次阅读 多人点赞 2019-03-18 22:43:12
    软件设计师笔记 一、计算机系统基础知识 1.CPU 的功能:程序控制、操作控制、时间控制、数据处理。 2.计算机系统组成示意图: 指令寄存器 程序计数器 地址寄存器 指令译码器 3.数据表示:原码、反码、补码、移码。...
  • 软件架构设计

    千次阅读 2015-08-16 21:20:46
    什么是软件架构前言:软体设计师中有一些技术水平较高、经验较为丰富的人,他们需要承担软件系统的架构设计,也就是需要设计系统的元件如何划分、元件之间如何发生相互作用,以及系统中逻辑的、物理的、系统的重要...
  • 1. 软件设计概述 1.1 软件设计的目的 软件设计是在系统设计或者概要设计的基础上,将系统设计进行细化,确定模块划分、模块之间的接口定义、系统中的数据构成等事项,从而确定怎样通过编码来实现系统功能的一个阶段...
  • 软件设计评审的标准

    千次阅读 2019-09-13 08:55:56
    1、设计结果的稳定性,以设计维护不变的时间来衡量,如果因为用户需求的变化或现有的错误或不足必须修改设计,那么修改范围的大小和次数就是影响软件设计质量的重要因素。2、设计的清晰性,指涉及目标描述是否明确,...
  • 常用的软件code质量指标

    千次阅读 2016-01-21 15:30:39
    在软件开发中,软件质量衡量软件是否符合需求、标准的重要体现。除了代码质量外,影响软件整体质量的因素还有很多。因此,要确保软件的整体质量,就需要在各个环节严格控制。  本文列出了衡量软件质量的5个最...
  • 尽管软件质量被很多人经常性的挂在口头,但是如果被问到“衡量软件质量的指标有哪些?”相信很多人会说不出话来,为了帮助更多的软件质量人了解衡量软件质量的指标,下面就简要的介绍一下软件质量指标。软件质量指标...
  • 软件质量管理

    千次阅读 2015-03-17 14:09:49
    【摘要】 软件质量软件产品的灵魂。本文全面介绍了质量的概念,提出了从流程、技术、组织管理、人员技能发展等多个角度提高...【关键字】 质量管理,软件开发过程模型,软件分析和设计方法,软件测试, CMM 如何提
  •  5.4 描绘软件结构的图形工具  5.5 面向数据流的设计方法  5.6小结及作业 总体设计(概要设计或初步设计)的基本目的就是回答“概括地说,系统应该如何实现?” 工作内容:将划分出组成系统的物理元素——...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 32,230
精华内容 12,892
关键字:

如何衡量软件设计的质量