1、沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程2/148 罗伯特罗伯特.J.格雷厄姆格雷厄姆(美国著名学者美国著名学者):因为项目是适应环境变化的普遍方式,故因为项目是适应环境变化的普遍方式,故而一个组织的成功与否将取决于其管理项而一个组织的成功与否将取决于其管理项目的水平目的水平 项目管理权威机构项目管理权威机构PMI:项目管理协会:项目管理协会Project Management Institute 项目的定义项目的定义(PMI):一种被承办的旨在创:一种被承办的旨在创造某种独特产品或服务的暂时性努力造某种独特产品或服务的暂时性努力沈阳建筑大学信息与
2、控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程3/148 软件危机后的普遍性结论:软件项目成功软件危机后的普遍性结论:软件项目成功率非常低的原因可能是项目管理能力太弱率非常低的原因可能是项目管理能力太弱 软件项目管理是指软件生存周期中软件管软件项目管理是指软件生存周期中软件管理者所进行的一系列活动,其目的是在一理者所进行的一系列活动,其目的是在一定的时间和预设范围内,有效地利用人力、定的时间和预设范围内,有效地利用人力、资源、技术和工具,使软件系统或软件产资源、技术和工具,使软件系统或软件产品按原定计划和质量要求如期完成品按原定计划和质量要求如期完成 沈阳建筑大学信息与控
3、制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程4/148 软件项目管理概述软件项目管理概述 软件度量软件度量 软件项目估算软件项目估算 项目进度管理项目进度管理 风险管理风险管理 软件项目的组织软件项目的组织 软件质量管理软件质量管理 软件配置管理软件配置管理 小结小结沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程5/148 软件度量软件度量 软件项目估算软件项目估算 项目进度管理项目进度管理 风险管理风险管理 软件项目的组织软件项目的组织 软件质量管理软件质量管理 软件配置管理软件配置管理 小结小结沈阳建筑大学信息与控制工程学院沈阳
4、建筑大学信息与控制工程学院 软件工程课程软件工程课程6/148 项目管理是通过项目经理和项目组织的努项目管理是通过项目经理和项目组织的努力,运用系统理论的方法对项目及其资源力,运用系统理论的方法对项目及其资源进行计划、组织、协调、控制,旨在实现进行计划、组织、协调、控制,旨在实现项目的特定目标的管理方法体系项目的特定目标的管理方法体系(软件软件)项目管理的基本内容:项目管理的基本内容:项目定义、项目计划、项目执行、项目控项目定义、项目计划、项目执行、项目控制、项目结束制、项目结束沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程7/148 人员人员(Peop
5、le)人员是软件工程项目的基本要素和关键因素在对人员进行组织时,有必要考虑参与软件过程(及每一个软件项目)的人员类型 产品产品(Product)定义项目范围,其中包括建立产品的目的和范围、可选的解决方案、技术或管理的约束等 过程过程(Process)通常将项目分解为任务子任务等,其分解准则是基于软件工程的过程 项目项目(Project)采用科学的方法及工具对项目基本内容进行管理 沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程8/148 项目管理人员项目管理人员 负责软件项目的管理工作,其负责人通常称为项目经理 高级管理人员高级管理人员 可以是领域专家,负
6、责提出项目的目标并对业务问题进行定义 开发人员开发人员 掌握了开发一个产品或应用所需的专门技术,可胜任包括需求分析、设计、编码、测试、发布等各种相关的开发岗位 客户客户 一组可说明待开发软件的需求的人,也包括与项目目标有关的其它风险承担者 最终用户最终用户 产品或应用提交后与产品/应用进行交互的沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程9/148 定义项目范围,其中包括建立产品的目的和范定义项目范围,其中包括建立产品的目的和范围、可选的解决方案、技术或管理的约束围、可选的解决方案、技术或管理的约束 目的:从客户的角度定义该产品的总体目标,目的:从客户
7、的角度定义该产品的总体目标,但不必考虑这些目标如何实现但不必考虑这些目标如何实现 软件范围定义了与软件产品相关的数据、功能软件范围定义了与软件产品相关的数据、功能和行为,及其相关的约束:和行为,及其相关的约束:语境(context):说明待建造的软件与其它相关系统、产品或环境的关系,以及相关的约束条件信息目标:说明目标系统所需要的输入数据及应产生的输出数据功能和性能:说明软件应提供的功能来完成输入数据到输出数据的变换以及给出对目标软件的性能要求沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程10/148 对项目进行有计划和可控制的管理对项目进行有计划和可控
8、制的管理 明确目标及过程:充分理解被解决的问题,明确定义项目目标及软件范围,为项目小组及活动设置明确、现实的目标,并充分发挥相关小组的自主性 保持动力:提供激励措施使人员变动最小 跟踪进展:对每个任务的进展进行跟踪,并对其软件过程和质量进行度量 做出聪明的决策:项目管理者和软件小组的决策应该“保持其简单”项目总结:从每个完成的项目中获取可学习的经验沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程11/148选择项目标识项目的范围和目的标识项目基础设施分析项目的特征选择软件过程模型标识项目的产品和活动估计活动的资源评审较低层次的细节标识活动的风险分配资源较低
9、层次的策划评审发布计划执行计划对于每个活动启动软件项目建立项目组织沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程12/148 在软件项目启动前对项目进行可行性分析,以在软件项目启动前对项目进行可行性分析,以明确项目的目标和范围,从而确定:合理精确明确项目的目标和范围,从而确定:合理精确的成本分析;实际可行的任务分解;可管理的的成本分析;实际可行的任务分解;可管理的进度安排进度安排 在多个项目方案中选择一个相对完善的方案在多个项目方案中选择一个相对完善的方案 考虑交付期限、预算、个人能力、技术界面等限制条件 在正式启动软件项目前组成项目组,并召开项在正式启
10、动软件项目前组成项目组,并召开项目启动会议,内容包括:项目组的初步交流;目启动会议,内容包括:项目组的初步交流;进一步对项目目标理解;对组织形式、管理方进一步对项目目标理解;对组织形式、管理方式、方针的一致认识;明确岗位职责式、方针的一致认识;明确岗位职责沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程13/148 在项目经理领导下,组织不同类型的项目组成在项目经理领导下,组织不同类型的项目组成员共同协作完成软件项目员共同协作完成软件项目 存在多种可选的项目组织结构,组织结构的选存在多种可选的项目组织结构,组织结构的选择对项目的成败具有很大影响择对项目的成
11、败具有很大影响 规划软件工程项目组织结构时考虑如下因素:规划软件工程项目组织结构时考虑如下因素:待解决问题的困难程度 目标系统的规模,可用代码行或功能点来度量 项目组的生存期,即项目小组需要共同工作的时间 问题可被分解的程度 对目标系统要求的质量和可靠性 可供开发时间的紧迫性,即交付时间的严格程度 项目组内部的通信的复杂性,即成员(小组)之间正式或非正式通信的机制沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程14/148 项目计划是项目组织根据软件项目的目标及项目计划是项目组织根据软件项目的目标及范围,对项目实施中进行的各项活动进行周范围,对项目实施中进
12、行的各项活动进行周密的计划密的计划 项目计划根据项目目标确定项目的各项任务、项目计划根据项目目标确定项目的各项任务、安排任务进度、编制完成任务所需的资源预安排任务进度、编制完成任务所需的资源预算等算等 项目计划包括:工作计划、人员组织计划、项目计划包括:工作计划、人员组织计划、设备采购计划、变更控制计划、进度控制计设备采购计划、变更控制计划、进度控制计划、财务计划、文件控制计划、应急计划等划、财务计划、文件控制计划、应急计划等沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程15/148 软件度量是指计算机软件范围内的测量,主要是为产品软件度量是指计算机软件
13、范围内的测量,主要是为产品开发的软件过程和产品本身定义相关的测量方法和标度开发的软件过程和产品本身定义相关的测量方法和标度 对软件开发过程度量的目的是为了对过程进行改进 对产品进行度量的目的是为了提高产品的质量,度量的作用是为了有效地采用定量的方式来进行管理度量的作用是为了有效地采用定量的方式来进行管理 管理人员利用度量来了解软件工程过程的执行情况和产管理人员利用度量来了解软件工程过程的执行情况和产品质量品质量 需要考虑:需要考虑:合适的度量是什么 所收集的数据如何使用 用于比较个人、过程或产品的度量是否合理沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程
14、16/148 项目估算是制定项目计划的基础项目估算是制定项目计划的基础 项目所需的人力(以人月为单位)、项目持续时间(以年份或月份为单位)、成本(以元为单位)等 参照以前类似项目中的相关数据进行估算参照以前类似项目中的相关数据进行估算 若存在类似历史项目则可进行类比估算 若缺少可类比的项目数据则采用特定的估算技术(例如功能点估算方法等)通常采用多种估算技术进行交叉检查通常采用多种估算技术进行交叉检查沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程17/148 风险:人员、经费、进度及需求等方面存在风险:人员、经费、进度及需求等方面存在的可能影响项目按计划完
15、成的不确定因素的可能影响项目按计划完成的不确定因素 风险管理:标识软件项目中的风险,预测风风险管理:标识软件项目中的风险,预测风险发生的概率以及风险造成的影响,并对风险发生的概率以及风险造成的影响,并对风险进行评估,找出那些可能导致项目失败的险进行评估,找出那些可能导致项目失败的风险,然后采取相应的措施来缓解风险风险,然后采取相应的措施来缓解风险 风险管理贯彻于整个软件工程过程中风险管理贯彻于整个软件工程过程中沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程18/148 进度安排进度安排 将项目划分成可管理的子项目、任务和活动 确定任务之间的依赖关系,找出
16、影响项目按期完成的关键任务 为每个任务分配时间、工作量以及指定责任人,定义每个任务的输出结果及其关联的里程碑 在项目实施过程中将在进度计划基础上跟在项目实施过程中将在进度计划基础上跟踪实际执行情况,从而及时发现偏差并采踪实际执行情况,从而及时发现偏差并采取措施加以调整以确保项目按期完成取措施加以调整以确保项目按期完成沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程19/148 跟踪是控制的前提,它实际上是在项目实跟踪是控制的前提,它实际上是在项目实施过程中对影响项目进展的内外部因素进施过程中对影响项目进展的内外部因素进行及时的、连续的、系统的记录和报告的行
17、及时的、连续的、系统的记录和报告的活动,其核心在于反映项目变化、提供相活动,其核心在于反映项目变化、提供相关信息的报告关信息的报告 控制是通过工具和技术对项目计划与实际控制是通过工具和技术对项目计划与实际执行进行对比,并对项目的未来走向进行执行进行对比,并对项目的未来走向进行预测,再此基础上进行项目的各种调整预测,再此基础上进行项目的各种调整沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程20/148 Software Confignation Management(SCM)任务:标识和确定系统中的配置项,在系任务:标识和确定系统中的配置项,在系统整个生命
18、期内控制这些项的发布和变更,统整个生命期内控制这些项的发布和变更,记录并报告配置的状态和变更要求,验证记录并报告配置的状态和变更要求,验证配置项的完整性和正确性配置项的完整性和正确性 SCM存在于整个软件过程中,是一种保存在于整个软件过程中,是一种保护性活动护性活动沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程21/148 软件项目管理概述软件项目管理概述 软件项目估算软件项目估算 项目进度管理项目进度管理 风险管理风险管理 软件项目的组织软件项目的组织 软件质量管理软件质量管理 软件配置管理软件配置管理 小结小结沈阳建筑大学信息与控制工程学院沈阳建筑大
19、学信息与控制工程学院 软件工程课程软件工程课程22/148Metric(度量度量):定义测量方法和测量标度:定义测量方法和测量标度Measurement(测量测量):使用一种度量把标度值:使用一种度量把标度值(可以是数字可以是数字或类别或类别)赋予实体的某个属性赋予实体的某个属性Measure(verb 测量测量):执行一次测量:执行一次测量(measurement)Measure(noun 测度测度):通过执行一次测量赋予实体属性的数:通过执行一次测量赋予实体属性的数字或类别字或类别direct measure(直接测量直接测量):不依赖于任何其它属性的测量:不依赖于任何其它属性的测量导出的
20、属性测量导出的属性测量indirect measure(间接测量间接测量):从一个或多个其它属性的测:从一个或多个其它属性的测量导出的属性测量量导出的属性测量internal measure(内部测量内部测量):一种对产品本身的直接或间:一种对产品本身的直接或间接的测量接的测量external measure(外部测量外部测量):一种通过对外系统的测量导:一种通过对外系统的测量导出对产品出对产品(作为系统的一部分作为系统的一部分)的间接测量的间接测量沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程23/148 度量对象:软件产品、软件过程、资源度量对象:软
21、件产品、软件过程、资源 外部属性:面向管理者和用户的属性 体现了软件产品体现了软件产品/软件过程与相关资源和环境的关系,软件过程与相关资源和环境的关系,如成本、效益、开发人员的生产率如成本、效益、开发人员的生产率 通常可采用直接测量的办法进行通常可采用直接测量的办法进行 内部属性:软件产品或过程本身的属性 如软件产品的结构、模块化程度、复杂性、程序长度等如软件产品的结构、模块化程度、复杂性、程序长度等 有些内部属性只能用间接测量的方法度量,需要特定的有些内部属性只能用间接测量的方法度量,需要特定的测量方法或模型测量方法或模型沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程
22、课程软件工程课程24/148 分类分类1:面向规模的度量用于收集与直接度量有关的软件工程输出信息和质量信息面向功能的度量的则集中在程序的“功能性”和“实用性”面向人的度量则收集有关人们开发计算机软件所用方式的信息和人员理解有关工具的方法和效率的信息 分类分类2:软件生产率度量集中在软件工程过程的输出软件质量度量可指明软件满足明确的和隐含的用户需求的程度技术度量主要集中在软件产品的某些特征(如逻辑复杂性、模块化程度)上,而不是软件开发的全过程沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程25/148 软件规模通常是指软件的大小软件规模通常是指软件的大小(s
23、ize),一,一般用代码行度量般用代码行度量 优点:方便、直观 缺点:很大程度上取决于程序设计语言以及软件设计的质量 测量出软件规模后可方便地度量其它软测量出软件规模后可方便地度量其它软件属性,包括:件属性,包括:度量名度量名含义及表示含义及表示LOC或KLOC代码行数或千行代码数生产率PP=LOC/E,E为开发的工作量(常用人月数表示)每行代码平均成本CC=S/LOC,S为总成本文档代码比DD=Pe/KLOC,其中Pe为文档页数代码错误率EQREQR=N/KLOC,其中N为代码中错误数沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程26/148 一种针对
24、软件的功能特性进行度量的方法一种针对软件的功能特性进行度量的方法 主要考虑软件系统的主要考虑软件系统的“功能性功能性”和和“实用实用性性”功能点度量:基于软件信息域的特征功能点度量:基于软件信息域的特征(可可直接测量直接测量)和软件复杂性进行规模度量和软件复杂性进行规模度量 功能点度量方法步骤:功能点度量方法步骤:计算信息域特征的值CT 计算复杂度调整值 计算功能点FP沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程27/148对五个信息域特征及其含义对五个信息域特征及其含义(上表上表)统计相应的特征值,然后根据信息域特征统计相应的特征值,然后根据信息域特
25、征的复杂程度选择适当的加权因子进行计算的复杂程度选择适当的加权因子进行计算(下表下表),得到总计的,得到总计的CT值值测量参数用户输入数用户输出数用户查询数文件数外部接口数总计CT特征值加权因子简单中间复杂结果(=特征值加权因子)346457643751015710沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程28/148复杂度调整值复杂度调整值Fi(i=1到到14)是基于对左表中问题的回答而得是基于对左表中问题的回答而得到的值,对每个问题回答的取值范围是到的值,对每个问题回答的取值范围是0到到5,见右表,见右表问题1234567891011121314
26、总计系统需要可靠的备份和恢复吗?需要数据通信吗?有分布处理功能吗?性能很关键吗?系统是否在一个现存的、重负的操作环境中运行?系统需要联机数据登录?联机数据登录是是否需要在多屏幕或多操作之间切换以完成输入?需要联机更新文件吗?输入、输出、文件或查询很复杂吗?内部处理复杂吗?代码需要被设计成可复用的吗?设计中需要包括转换及安装吗?系统的设计支持不同组织的多次安装吗?应用的设计方便用户修改和使用吗?Fi(0-5)值值定义定义0没有影响没有影响1偶然的偶然的2适中的适中的3普通的普通的4重要的重要的5极重要的极重要的沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程
27、29/148 功能点计算公式功能点计算公式FP=CT*(0.65+0.01*F)其中:CT是步骤1得到的“总计数值”,F是步骤2得到的Fi之和 一旦计算出功能点,则用类似代码行的方法来一旦计算出功能点,则用类似代码行的方法来计算软件生产率、质量及其他属性计算软件生产率、质量及其他属性度量名含义表示生产率PP=FP/E,E为开发的工作量(常用人月数表示)每个功能点成本CC=S/FP,S为总成本每个功能点文档数DD=Pe/FP,其中Pe为文档页数功能点错误率EQREQR=N/FP,其中N为错误数沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程30/148 功能
28、点度量的不足:最初主要用于商业信息系统的度量,功能点度量的不足:最初主要用于商业信息系统的度量,强调数据维,即信息域特征值,而忽略了功能和行为强调数据维,即信息域特征值,而忽略了功能和行为(控制控制)Jones提出了称为特征点提出了称为特征点(Feature Point)的扩展的功能的扩展的功能点度量方法点度量方法 在功能点信息域特征中增加了一个算法特征,并将算法定义为“特定计算机程序中所包含的一个界定的计算问题”测量参数用户输入数用户输出数用户查询数文件数外部接口数算法计数加权因子结果454总计CT773沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程3
29、1/148程序语言程序语言每每FP之之LOC值值平均平均中等中等低低高高Access35381547Ada154104205APS868320184ASP6232127Assembler33731591694C16210933704C+665329178Java63537770COBOL777714400SQL40377110VBScript342750Visual Basic474216158沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程32/148 软件质量定义软件质量定义 ISO/IEC 9126:与软件产品满足明确或隐含需求的能力有关的特征和特性
30、的总和 GB/T 13423:软件产品中能满足给定需求的性质和特性的总和,例如符合规格说明的程度;软件具有所期望的各种属性的组合程度;客户或用户觉得软件满足其综合期望的程度;软件的综合特性,它确定软件在使用中将满足客户预期要求的程度 典型的软件质量模型:典型的软件质量模型:McCall模型、模型、Boehm模型和模型和ISO/IEC9126质量模型质量模型沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程33/148质量要素反映软件的质量,决定产品质质量要素反映软件的质量,决定产品质量的软件属性用作评价准则,量化的度量的软件属性用作评价准则,量化的度量体系可
31、测量软件质量属性的优劣量体系可测量软件质量属性的优劣质量要素评价准则度量度量度量面向管理者的软件质量面向技术、决定产品质量的软件属性可以量化度量的软件属性沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程34/148 软件产品的运行、修改和迁移三个方面软件产品的运行、修改和迁移三个方面 11个软件质量要素个软件质量要素 软件修正性软件转移性软件运行性可维护性灵活性可测试性可移植性可复用性可互操作性正确性完整性可靠性可用性效率沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程35/148正确性正确性(correctness)
32、:一个程序满足它的需求规约和实现客户任务目标:一个程序满足它的需求规约和实现客户任务目标的程度的程度可靠性可靠性(reliability):一个程序期望以所需的精确度完成它的预期功能的:一个程序期望以所需的精确度完成它的预期功能的程度程度效率效率(efficiency):一个程序完成其功能所需的计算资源和代码的数量:一个程序完成其功能所需的计算资源和代码的数量完整性完整性(integrity):对未授权人员访问软件或数据的可控制程度:对未授权人员访问软件或数据的可控制程度可用性可用性(usability):学习、操作、准备输入和解释程序输出所需的工作量:学习、操作、准备输入和解释程序输出所需的
33、工作量可维护性可维护性(maintainability):定位和修复程序中一个错误所需的工作量:定位和修复程序中一个错误所需的工作量灵活性灵活性(flexibility):修改一个运作的程序所需的工作量:修改一个运作的程序所需的工作量可测试性可测试性(testability):测试一个程序以确保它完成所期望的功能所需的:测试一个程序以确保它完成所期望的功能所需的工作量工作量可移植性可移植性(portability):把一个程序从一个硬件和:把一个程序从一个硬件和/或软件系统环境移植或软件系统环境移植到另一个所需的工作量到另一个所需的工作量可复用性可复用性(reusability):一个程序:一
34、个程序(或一个程序的部分或一个程序的部分)可以在另外一个应可以在另外一个应用程序中复用的程度,与程序完成的功能的包装和范围相关用程序中复用的程度,与程序完成的功能的包装和范围相关可互操作性可互操作性(interoperability):连接一个系统和另一个系统所需的工作量。:连接一个系统和另一个系统所需的工作量。沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程36/148其中其中表示正相关,表示正相关,表示负相关表示负相关 沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程37/148 软件质量要素难以直接测量,因此需要
35、为软件质量要素难以直接测量,因此需要为每个质量要素定义一组软件质量属性用作每个质量要素定义一组软件质量属性用作质量要素的评价准则,要求质量要素的评价准则,要求 能够完整、准确地描述软件质量要素 容易量化和测量 McCall定义了定义了21种软件质量属性种软件质量属性沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程38/148(1)可审计性可审计性(auditability)和标准的符合性可被检查的容易程度。和标准的符合性可被检查的容易程度。(2)准确性准确性(accuracy)计算和控制的准确度。计算和控制的准确度。(3)通信共性通信共性(communic
36、ation commonality)标准接口、协议和带宽的使用程度。标准接口、协议和带宽的使用程度。(4)完备性完备性(completeness)所需功能完全实现的程度。所需功能完全实现的程度。(5)简洁性简洁性(conciseness)以代码行数来评价的程序的简洁程度。以代码行数来评价的程序的简洁程度。(6)一致性一致性(consistency)在软件开发项目中一致的设计和文档技术的使用。在软件开发项目中一致的设计和文档技术的使用。(7)数据共性数据共性(data commonality)在整个程序中对标准数据结构和类型的使用。在整个程序中对标准数据结构和类型的使用。沈阳建筑大学信息与控制工
37、程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程39/148(8)容错性容错性(error tolerance)当程序遇到错误时所造成的损失。当程序遇到错误时所造成的损失。(9)执行效率执行效率(execution efficiency)一个程序的运行性能。一个程序的运行性能。(10)可扩展性可扩展性(expandability)结构、数据或过程设计可被扩展的程度。结构、数据或过程设计可被扩展的程度。(11)通用性通用性(generality)程序构件潜在的应用宽度。程序构件潜在的应用宽度。(12)硬件独立性硬件独立性(hardware independence)软件独立于其运行
38、于之上的硬件的程度。软件独立于其运行于之上的硬件的程度。(13)自检测性自检测性(instrumentation)程序监视它自身操作并且标识产生的错误的程度。程序监视它自身操作并且标识产生的错误的程度。(14)模块性模块性(modularity)程序部件的功能独立性。程序部件的功能独立性。沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程40/148(15)可操作性可操作性(operability)程序操作的容易度。程序操作的容易度。(16)安全性安全性(security)控制和保护程序和数据的机制的可用度。控制和保护程序和数据的机制的可用度。(17)自文档
39、性自文档性(self-documentation)源代码提供有意义的文档程度。源代码提供有意义的文档程度。(18)简单性简单性(simplicity)一个程序可以没有困难地被理解的程度。一个程序可以没有困难地被理解的程度。(19)软件系统独立性软件系统独立性(software system independence)程序独立于非标准编程特性、操作系统特性和其他环境限制的程度。程序独立于非标准编程特性、操作系统特性和其他环境限制的程度。(20)可追踪性可追踪性(traceability)从一个设计表示或实际程序部件跟踪到需求的能力。从一个设计表示或实际程序部件跟踪到需求的能力。(21)易培训性易
40、培训性(training)软件支持使得新用户使用系统的能力。软件支持使得新用户使用系统的能力。沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程41/148沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程42/148 处于软件质量度量模型的最底层是处于软件质量度量模型的最底层是 定义了每个质量属性定义了每个质量属性(评价准则评价准则)的可量化的可量化的度量指标的度量指标 通过对这些指标的测量通过对这些指标的测量(可以是主观的,可以是主观的,也可以是客观的也可以是客观的)和加权计算得到质量属和加权计算得到质量属性的测量值性
41、的测量值 在在McCall的模型中未给出具体的度量指标,的模型中未给出具体的度量指标,度量者可根据不同的软件类型定义不同的度量者可根据不同的软件类型定义不同的度量指标体系度量指标体系沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程43/148在计算质量要素值之前,首先要将质量属性的测在计算质量要素值之前,首先要将质量属性的测量值归一化,即将其变换到量值归一化,即将其变换到0到到1范围内的实数范围内的实数假设:假设:Fj是第是第j个质量要素,个质量要素,Mk是第是第k个质量属性个质量属性(评价准则评价准则),Cjk是是Mk在在Fj中的加权系数。那么,中的加权
42、系数。那么,Fj可用下列公式计算:可用下列公式计算:211kkjkjMCF其中:其中:,111 j211 k10kM2111kjkC0jkC当 时表示第j个质量要素与第k个质量属性无关 0jkC沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程44/148 由质量特性、子特性和度量三个层次组成由质量特性、子特性和度量三个层次组成 第一层有第一层有6个质量特性个质量特性 第二层有第二层有21个质量子特性个质量子特性 第三层是由度量者定义的可定量化度量指标第三层是由度量者定义的可定量化度量指标沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程
43、课程软件工程课程45/148 功能性功能性(functionality):与一组功能及其指定的性质有:与一组功能及其指定的性质有关的一组属性关的一组属性 可靠性可靠性(reliability):与在规定的一段时间和条件下,:与在规定的一段时间和条件下,软件维护其性能水平的能力有关的一组属性软件维护其性能水平的能力有关的一组属性 易用性易用性(usability):与一组规定或潜在的用户为使用软:与一组规定或潜在的用户为使用软件所需作的努力和对这样的使用所作的评价有关的一组件所需作的努力和对这样的使用所作的评价有关的一组属性属性 效率效率(efficiency):与在规定的条件下,软件的性能水:
44、与在规定的条件下,软件的性能水平与所使用资源之间有关的一组属性平与所使用资源之间有关的一组属性 可维护性可维护性(maintainability):与进行指定的修改所需的:与进行指定的修改所需的努力有关的一组属性努力有关的一组属性 可移植性可移植性(portability):与软件可从某一个环境移植到:与软件可从某一个环境移植到另一个环境的能力有关的一组属性另一个环境的能力有关的一组属性沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程46/148 适合性适合性(suitability):与规定任务能否提供一组:与规定任务能否提供一组功能以及这组功能的适合程
45、度有关的软件属性功能以及这组功能的适合程度有关的软件属性 准确性准确性(accuracy):与能否得到正确或相符的:与能否得到正确或相符的结果或效率有关的软件属性结果或效率有关的软件属性 互操作性互操作性(interoperability):与同其它指定系:与同其它指定系统进行交互的能力有关的软件属性统进行交互的能力有关的软件属性 依从性依从性(compliance):使软件遵循有关的标准、:使软件遵循有关的标准、约定、法规及类似规定的软件属性约定、法规及类似规定的软件属性 安全性安全性(security):与防止对程序及数据的非授:与防止对程序及数据的非授权的故意或意外访问的能力有关的软件属
46、性权的故意或意外访问的能力有关的软件属性沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程47/148 成熟性成熟性(maturity):与由软件故障引起失:与由软件故障引起失效的频率有关的软件属性效的频率有关的软件属性 容错性容错性(fault tolerance):与在软件故障:与在软件故障或违反指定接口的情况下,维持规定的性或违反指定接口的情况下,维持规定的性能水平的能力有关的软件属性能水平的能力有关的软件属性 易恢复性易恢复性(recoverability):与在失效发:与在失效发生后,重建其性能水平并恢复直接受影响生后,重建其性能水平并恢复直接受影
47、响数据的能力以及为达此目的所需的时间和数据的能力以及为达此目的所需的时间和努力有关的软件属性努力有关的软件属性沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程48/148 易理解性易理解性(understandability):与用户为:与用户为认识逻辑概念及其应用范围所花的努力有认识逻辑概念及其应用范围所花的努力有关的软件属性关的软件属性 易学性易学性(learnability):与用户为学习软件:与用户为学习软件应用应用(例如运行控制、输入、输出例如运行控制、输入、输出)所花的所花的努力有关的软件属性努力有关的软件属性 易操作性易操作性(operabi
48、lity):与用户为操作和:与用户为操作和运行控制所花努力有关的软件属性运行控制所花努力有关的软件属性沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程49/148 时间特性时间特性(time behaviour):与软件执行:与软件执行其功能时响应和处理时间以及吞吐量有关其功能时响应和处理时间以及吞吐量有关的软件属性的软件属性 资源特性资源特性(resource behaviour):与在软:与在软件执行其功能时所使用的资源数量及其使件执行其功能时所使用的资源数量及其使用时间有关的软件属性用时间有关的软件属性沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与
49、控制工程学院 软件工程课程软件工程课程50/148 易分析性易分析性(analysability):与为诊断缺陷或失效:与为诊断缺陷或失效原因及为判定待修改的部分所需努力有关的软件原因及为判定待修改的部分所需努力有关的软件属性属性 易改变性易改变性(changeability):与进行修改、排除错:与进行修改、排除错误或适应环境变化所需努力有关的软件属性误或适应环境变化所需努力有关的软件属性 稳定性稳定性(stability):与修改所造成的未预料结果:与修改所造成的未预料结果的风险有关的软件属性的风险有关的软件属性 易测试性易测试性(testability):与确认已修改软件所需:与确认已修
50、改软件所需的努力有关的软件属性的努力有关的软件属性沈阳建筑大学信息与控制工程学院沈阳建筑大学信息与控制工程学院 软件工程课程软件工程课程51/148 适应性适应性(adaptability):与软件无需采用有别于:与软件无需采用有别于为该软件准备的活动或手段就可能适应不同的为该软件准备的活动或手段就可能适应不同的规定环境有关的软件属性规定环境有关的软件属性 易安装性易安装性(installability):与在指定环境下安装:与在指定环境下安装软件所需努力有关的软件属性软件所需努力有关的软件属性 遵循性遵循性(conformance):使软件遵循与可移植:使软件遵循与可移植性有关的标准或约定的