软件工程 第13章 软件项目管理
软件工程的项目管理

软件工程的项目管理软件工程是一门跨领域的学科,涉及到软件需求分析、系统设计、编码、测试等多个阶段,同时也涉及到多个团队成员的协作与合作。
为了保证软件项目能够按时交付、符合质量要求,项目管理扮演着重要的角色。
本文将介绍软件工程项目管理的基本概念、方法和工具,以及项目管理在软件开发中的应用。
一、项目管理概述项目管理是一种有组织、有计划、有控制的活动,旨在通过对项目的需求、资源和风险进行有效管理,达成项目目标。
软件工程项目管理则是项目管理的一个特殊领域,注重对软件开发过程中的特定问题和挑战进行管理和解决。
二、软件项目管理的重要性1. 提升项目的可控性:通过制定明确的计划和目标,项目经理能够更好地掌控项目的进度、资源分配和风险管理,从而提升项目的可控性。
2. 保证项目交付质量:项目管理强调全过程的规范和质量控制,能够帮助团队保证项目交付的质量和满足客户需求。
3. 提高团队协作效率:项目管理涉及到团队成员的协作,通过明确角色和责任,设定良好的沟通和决策机制,能够提高团队的协作效率。
三、软件项目管理的基本流程软件项目管理通常包括以下几个基本流程:1. 项目启动:明确项目的目标和范围,制定项目管理计划和组织架构。
这一阶段主要包括项目需求分析、项目规划和项目立项等活动。
2. 项目执行:根据项目计划进行需求分析和设计,进行系统开发、模块测试、集成测试、系统测试等活动。
这一阶段是整个项目的核心执行阶段,需要确保各项工作按时按质量完成。
3. 项目监控与控制:监控项目进展和质量,及时发现和解决问题,确保项目按计划进行。
通过制定适当的指标和控制措施,对项目进行定期评估和跟踪。
4. 项目收尾:完成系统的交付和上线,总结项目经验教训,对项目成果进行验收和归档。
在项目收尾阶段,还需要进行项目评估和知识管理,为以后的项目提供经验借鉴。
四、软件项目管理的方法和工具1. 敏捷开发方法:敏捷开发方法注重迭代开发和持续交付,适用于需求变化频繁的项目。
软件工程项目管理

软件工程项目管理软件工程项目管理是指在软件开发过程中,对项目进行计划、组织、实施、监控和控制的一系列活动。
通过科学的管理方法和技术手段,实现软件项目的高效运作,保证项目的质量、进度和成本达到预期目标。
本文将从项目需求的分析与规划、团队组建与管理、进度控制与风险管理等几个方面来讨论软件工程项目管理的重要内容。
1. 项目需求的分析与规划在开始软件工程项目管理之前,首先要对项目的需求进行全面的分析与规划。
这包括明确项目目标、确定项目范围、制定项目计划和可行性分析等。
项目经理需要与项目相关方深入交流,理解他们的期望和需求,以便明确项目的目标和约束条件。
同时,还需要对项目的可行性进行评估,包括技术可行性、经济可行性和市场可行性等方面。
通过这一阶段的工作,可以为后续的项目实施提供清晰的方向和目标。
2. 团队组建与管理一个高效的团队对于软件工程项目的成功非常重要。
项目经理需要根据项目需求和项目规模,招募合适的团队成员,并对团队进行有效的管理。
团队成员应具备相应的技术能力和专业素养,能够在项目中发挥各自的优势。
项目经理需要指导团队成员,帮助他们明确分工和任务,建立良好的沟通和协作机制。
同时,还需要关注团队成员的培训和激励,提高团队的凝聚力和工作积极性。
3. 进度控制与风险管理软件工程项目的进度控制是项目管理的核心内容之一。
项目经理需要制定详细的项目计划,明确项目各阶段的工作内容和交付物,合理设置里程碑和进度目标。
通过项目管理工具和技术手段,对项目进度进行跟踪和监控,及时发现和解决进度偏差。
此外,还需要进行风险管理,及时识别项目中的风险因素,并制定相应的风险应对策略。
通过有效的项目进度控制和风险管理,可以保证项目按时交付,提高项目的成功率。
4. 质量保障与技术支持软件工程项目的质量保障是项目管理中至关重要的一环。
项目经理需要制定质量标准和评估方法,建立质量控制体系,对项目的各个环节进行质量监控。
此外,还需要为团队提供必要的技术支持,包括软件开发工具和技术培训等。
软件工程第四版课后答案

20
作业及解答(第3章)
ER模型
本问题中共有两类实体,分别是“储户”和“储蓄所”,
E2 业务员
13:07:42
F8储蓄利率
D2存款利率
19
重庆工学院计算机科学与工程学院 李梁(liliang@)
作业及解答(第3章)
F2取款单 无效取款信息 D1存款信息 F7密码 F7密码 P3.2 密码校验 P3.1 输入取款信息 F5存款信息
E1 储户
13:07:42
重庆工学院计算机科学与工程学院 李梁(liliang@)
13:07:42
重庆工学院计算机科学与工程学院 李梁(liliang@)
4
作业及解答(第1-2章)
(1)在1985年对计算机存储容量的需求,估计是
M 4080 e
0.28(19851960)
4080e 4,474,263(字)
7
如果字长为16位,则这个存储器的价格是 19851974
73,577,679条指令。 在1995年一名程序员每天可开发出30条指令,每月可开 发出600条指令,为了开发出可装满整个存储器的程序, 需要的工作量为 73577679 122 629(人月) , 600
13:07:42 重庆工学院计算机科学与工程学院 李梁(liliang@)
13:07:42
重庆工学院计算机科学与工程学院 李梁(liliang@)
15
作业及解答(第3章)
电话号码=[校内电话号码|校外电话号码] 校内电话号码=非零数字+
3 位数字 //后面继续定义 校外电话号码=[本市号码|外地号码] 本市号码=数字零+8位数字 外地号码=数字零+3位数字+8位数字 非零数字=[1|2|3|4|5|6|7|8|9] 数字零=0 3位数字=3{数字}3 //3至3个数字 8位数字=非零数字+7位数字 7位数字=7{数字}7 数字=[0|1|2|3|4|5|6|7|8|9]
第13章软件项目计划与管理

第十三章软件项目管理与计划13.1项目管理的概念软件项目管理的对象是软件工程项目。
它所涉及的范围覆盖了整个软件工程过程。
目的是要以一种更好的方式管理软件开发过程,以便按时交付高质量的产品。
13.1.1项目管理过程为使软件项目开发获得成功,必须对软件开发项目的工作范围、可能遇到的风险、需要的资源(人、硬/软件)、要实现的任务、经历的里程碑、花费的工作量(成本),以及进度的安排等等做到心中有数。
而软件项目管理可以提供这些信息。
这种管理开始于技术工作开始之前,在软件从概念到实现的过程中持续进行,最后终止于软件工程过程结束。
(1)启动一个软件项目通常,软件人员和用户是在系统工程阶段确定项目的目标和范围。
当明确了软件项目的目标和范围后,就应考虑可能的解决方案,标明技术和管理上的要求,确定合理、精确的成本估算,实际可行的任务分解以及可管理的进度安排。
(2)度量度量的作用是为了有效地定量地进行管理。
度量的目的是为了把握软件工程过程的实际情况和它所生产的产品质量。
在对过去未度量过的事项进行度量时,需要解决的问题是;哪些度量适合于过程和产品?如何使用收集到的数据?用于比较个人、过程或产品的度量是否合理?(3)估算在软件项目管理过程中一个关键的活动是制定项目计划。
在做计划时,必须就需要的人力、项目持续时间、成本作出估算。
这种估算大多是参考以前的花费作出的。
管理人员可使用各种估算技术,并可用一种估算技术作为另一种估算技术的交叉检查。
(4)风险分析风险分析对于软件项目管理是决定性的,风险分析实际上就是贯穿在软件工程过程中的一系列风险管理步骤,其中包括风险识别、风险估计、风险管理策略、风险解决和风险监督,它能让人们去主动“攻击”风险。
(5)进度安排软件项目的进度安排与任何一个工程项目的进度安排没有实质上的不同。
首先识别一组项目任务,再建立任务之间的相互关联,然后估算各个任务的工作量,分配人力和其他资源,制定进度时序。
(6)追踪和控制项目管理人员负责追踪在进度安排中标明的每一个任务。
软件工程项目管理

软件工程项目管理软件工程项目管理是指对软件开发过程中的各个环节进行有效管理和协调,以确保项目能够按时、按质、按量完成。
在当今信息技术高速发展的时代,软件工程项目管理显得尤为重要。
本文将从项目规划、需求分析、团队协作和风险管理等方面,探讨软件工程项目管理的重要性和方法。
一、项目规划项目规划是软件工程项目管理的起点。
在项目规划阶段,项目经理需要明确项目的目标、范围和时间计划。
首先,项目经理需要与客户充分沟通,了解客户的需求和期望。
其次,项目经理需要制定详细的项目计划,并确定项目的各个阶段和里程碑。
最后,项目经理需要合理分配资源,包括人力、物力和时间等,以确保项目能够按计划进行。
二、需求分析需求分析是软件工程项目管理中的关键环节。
在需求分析阶段,项目团队需要与客户深入交流,准确理解客户的需求,并将其转化为可执行的软件开发任务。
需求分析不仅包括功能需求,还包括非功能需求,如性能、安全性和可靠性等。
项目经理需要与开发团队密切合作,确保需求分析的准确性和完整性。
三、团队协作团队协作是软件工程项目管理中的重要环节。
一个高效的团队能够提高项目的开发效率和质量。
在团队协作中,项目经理需要明确团队成员的角色和责任,并建立良好的沟通机制。
项目经理还需要激励团队成员,提高他们的工作积极性和创造力。
此外,项目经理还需要解决团队内部的冲突,确保团队能够和谐共事。
四、风险管理风险管理是软件工程项目管理中的重要环节。
在项目开发过程中,难免会遇到各种风险,如技术风险、进度风险和人员风险等。
项目经理需要及时发现和评估风险,并制定相应的应对措施。
风险管理不仅包括预防措施,还包括应急措施。
项目经理需要建立风险管理的体系,确保项目能够在风险控制的范围内进行。
五、质量保证质量保证是软件工程项目管理的核心。
在软件开发过程中,质量是关键因素之一。
项目经理需要制定详细的测试计划,并确保项目团队按计划进行测试工作。
项目经理还需要建立质量评估的机制,及时发现和解决质量问题。
软件工程中的软件项目管理方法(三)

软件工程中的软件项目管理方法在当今信息技术迅速发展的时代,软件工程已成为了许多企业和组织的核心竞争力。
在软件开发过程中,项目管理的重要性不可忽视。
一个成功的软件项目需要合理的规划、组织和控制。
本文将探讨软件工程中的软件项目管理方法,包括敏捷开发、瀑布模型以及增量模型。
一、敏捷开发敏捷开发是一种以人为本、快速迭代的软件开发方法。
它强调团队合作、及时反馈和适应变化。
敏捷开发的核心是迭代开发和增量交付。
团队成员在每个迭代周期内工作紧密,通过短时间的迭代周期,能够快速评估和调整项目的进展。
敏捷开发适用于需求变化频繁的项目,能够快速响应市场需求。
敏捷开发要着重几个方面的工作:首先,建立跨职能的团队,由开发人员、测试人员和产品负责人组成,以促进更好的协作和沟通;其次,采用用户故事作为需求的表达方式,从用户角度定义需求,保证开发出真正满足用户期望的软件;再次,每个迭代周期结束后,进行发布和用户反馈,及时调整和改进产品。
敏捷开发为软件项目的快速交付和持续改进提供了有效的手段。
二、瀑布模型瀑布模型是一种传统的软件开发方法,将软件开发过程划分为不同的阶段,每个阶段顺序依次进行,如需求分析、系统设计、编码、测试等。
瀑布模型适用于需求明确且稳定的项目,能够很好地保证项目的可控性和追踪性。
瀑布模型强调各个阶段的严格划分和文档、合约的书面化。
首先进行需求分析,明确用户需求和系统功能;然后进行系统设计,确定软件架构和模块划分,绘制设计文档;接着进行编码工作,将设计转化为实际代码;最后进行测试工作,确保软件的质量和稳定性。
瀑布模型注重前期规划和文档编写,能够帮助项目团队更好地理解整个项目和任务分工。
三、增量模型增量模型将软件开发过程划分为多个增量阶段,每个增量都是完整的软件功能。
增量模型可以看作是瀑布模型的多次迭代,在每次迭代中开发人员根据需求和设计完成一个完整的软件功能,然后进行测试和交付。
增量模型适用于需求不完全明确或无法完全预测的项目,能够降低项目风险,提高项目的可控性。
第13章 软件配置管理

第27页
三、测试的层次与内容
1.软件测试的层次
软件测试工作包括两个层次:
测试工作的组织与管理,包括制定测试方法与规范、控 制测试进度、管理测试资源。 测试工作的实施,包括编制符合标准的测试文档、研制 测试环境、与开发组织协作实现各阶段的测试活动。
第28页
2.软件测试的内容 软件测试工作可以分为4个方面:
建立控制项; 重构任何修订版的某一项或者某一文件; 利用加锁技术防止覆盖; 当一个修订版时要求输入变更描述; 提供比较任意两个修订版的使用工具,采用增量存储方式; 提供对修订版历史和锁定状态的报告功能;
提供归并功能;
允许在任何时候、任何版本; 控制权限的设置;
渐进模型的建立;
提供各种控制报告。
第18页
实施软件配置管理,主要包括以下活动:
制定配置管理计划;
确定配置标识;
版本管理; 变更控制; 系统整合; 配置审核。
第11页
一、制定软件配置计划
制定配置管理计划的过程就是确定软件配置管理的解决方
案;
项目经理和软件配置管理委员会(SCCB)根据项目的开 发计划确定各个里程碑和开发策略;
一、软件配置管理概述
软件配置管理(SCM)是一组针对软件产品的追踪和控制
活动,它贯穿于项目生命周期的始终,并代表着软件产品接
受各项评审。 IEEE对SCM的论述如下:“软件配置管理由适用于所有 软件开发项目的最佳工程实践组成,无论是采用分阶段开发, 还是采用快速原型进行开发,甚至包括对现有软件产品进行
统,其测试工作涉及大量的人力和物力,有效的测试工作
管理是保证有效测试工作的必要前提。 3)测试环境的建立:设计环境、实施环境和管理环境 。
软件工程项目管理

软件工程项目管理软件工程项目管理1. 简介软件工程项目管理是指通过规划、组织、协调和控制软件工程项目中的各种资源,以确保项目能够按时、按质量、按预算完成的过程。
有效的软件工程项目管理是确保项目成功的关键因素之一,在项目周期的各个阶段都发挥着重要作用。
本文将从项目计划、需求管理、进度管理、风险管理以及团队协作等方面介绍软件工程项目管理的相关内容。
2. 项目计划项目计划是项目管理的第一步,它是为了达成项目目标而制定的一系列有效的步骤和活动的安排。
项目计划包括项目范围、进度计划、资源分配等内容。
在项目计划中,需要明确项目的目标、需求和排期,并与相关团队成员进行有效的沟通和协调。
3. 需求管理需求管理是指对项目需求进行全面、准确、及时的收集、整理、分析和评审的过程。
有效的需求管理可以帮助项目团队准确理解用户需求、明确产品功能和特性,从而指导后续的开发和工作。
4. 进度管理进度管理是指对软件项目的进度进行全面、准确、及时的跟踪和监控,以确保项目按时完成。
在进度管理中,需要制定详细的工作计划与里程碑,并与团队成员进行沟通和协调,及时解决项目进度中的问题和风险。
5. 风险管理软件工程项目中存在着各种各样的风险,包括技术风险、人员风险、需求风险、进度风险等。
风险管理是指通过对风险的识别、评估、规划和控制,减少项目风险对项目进展的负面影响。
在风险管理中,需要建立有效的风险识别和监控机制,并采取相应的措施,有效降低风险发生的可能性。
6. 团队协作团队协作是软件工程项目管理的关键环节之一。
一个高效协作的团队可以更好地完成项目,并在项目开发过程中不断提高团队的能力和合作水平。
在团队协作中,需要明确团队角色和责任,并建立有效的沟通机制,保持团队成员的积极性和合作性。
7. 结论软件工程项目管理是确保项目成功的重要组成部分。
通过项目计划、需求管理、进度管理、风险管理和团队协作等方面的有效管理,可以提高项目的成功率和质量,并在软件开发过程中达到更好的效率和效果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
13.6 软件配置管理
在开发软件的过程中,变化(或称为变动)既是必 要的,又是不可避免的。但是,变化也很容易失去 控制,如果不能适当地控制和管理变化,势必造成 混乱并产生许多严重的错误。 软件配置管理是在软件的整个生命期内管理变化的 一组活动。具体地说,这组活动用来: ①标识变 化; ②控制变化; ③确保适当地实现了变化; ④ 向需要知道这类信息的人报告变化。 软件配置管理的目标是,使变化更正确且更容易被 适应,在必须变化时减少所需花费的工作量。
13.2.3 COCOMO2模型
COCOMO2(构造性成本模型),用于成本估算。 给出了3个层次的软件开发工作量估算模型,对软 件细节考虑的详尽程度逐级增加。这些模型既可以 用于不同类型的项目,也可以用于同一个项目的不 同开发阶段: (1) 应用系统组成模型。这个模型主要用于估算 构建原型的工作量,模型名字暗示在构建原型时大 量使用已有的构件。 (2) 早期设计模型。这个模型适用于体系结构设 计阶段。 (3) 后体系结构模型。这个模型适用于完成体系 结构设计之后的软件开发阶段。
13.8 小结
软件工程包括技术和管理两方面的内容,是技术与 管理紧密结合的产物。只有在科学而严格的管理之 下,先进的技术方法和优秀的软件工具才能真正发 挥出威力。因此,有效的管理是大型软件工程项目 成功的关键。 软件项目管理始于项目计划,而第一项计划活动就 是估算。为了估算项目工作量和完成期限,首先需 要预测软件规模。
4. 配置审计 为了确保适当地实现了所需要的变化,通常从下述 两方面采取措施: ①正式的技术复审; ②软件配 置审计。 正式的技术复审关注被修改后的配置对象的技术正 确性。复审者审查该对象以确定它与其他软件配置 项的一致性,并检查是否有遗漏或副作用。 软件配置审计通过评估配置对象的那些通常不在复 审过程中考虑的特征(例如,修改时是否遵循了软 件工程标准,是否在该配置项中显著地标明了所做 的修改),而成为对正式技术复审的补充。
3. 已定义级 软件机构已经定义了完整的软件过程(过程模型), 软件过程已经文档化和标准化。所有项目组都使用 文档化的、经过批准的过程来开发和维护软件。这 一级包含了第2级的全部特征。 处于3级成熟度的软件机构的过程能力可以概括为, 无论是管理活动还是工程活动都是稳定的。软件开 发的成本和进度以及产品的功能和质量都受到控制, 而且软件产品的质量具有可追溯性。这种能力是基 于在软件机构中对已定义的过程模型的活动、人员 和职责都有共同的理解。
2. 面向FP的估算模型 (1) Albrecht & Gaffney模型 E=-13.39+0.0545FP (2) Maston,Barnett和 Mellichamp模型 E=585.7+15.12FP
这些模型多数都是仅根据若干 应用领域中有限个项目的 经验数据推导出来的,适 用范围有限。因此,必须 根据当前项目的特点选择 适用的估算模型,并且根 据需要适当地调整(例如, 修改模型常数)估算模型。
能力成熟度模型(CMM)是改进软件过程的有效 策略。它的基本思想是,因为问题是管理软件过程 的方法不恰当造成的,所以采用新技术并不会自动 提高软件生产率和软件质量,应该下大力气改进对 软件过程的管理。事实上对软件过程的改进不可能 一蹴而就,因此,CMM以增量方式逐步引入变化, 它明确地定义了5个成熟度等级,一个软件开发组 织可以用一系列小的改良性步骤迈入更高的成熟度 等级。
2. 可重复级 软件机构建立了基本的项目管理过程(过程模型),可 跟踪成本、进度、功能和质量。 处于2级成熟度的软件机构的过程能力可以概括为, 软件项目的策划和跟踪是稳定的,已经为一个有纪 律的管理过程提供了可重复以前成功实践的项目环 境。软件项目工程活动处于项目管理体系的有效控 制之下,执行着基于以前项目的准则且合乎现实的 计划。
3. 变化控制 变化控制把人的规程和自动工具结合起来,以提供 一个控制变化的机制。典型的变化控制过程如下: •接到变化请求之后,首先评估该变化,评估的结 果形成“变化报告” 供“变化控制审批者”审阅。 •为每个被批准的变化都生成一个“工程变化命 令”,其描述将要实现的变化,必须遵守的约束以 及复审和审计的标准。 •把要修改的对象从项目数据库中“提取(check out)”出来,进行修改并应用适当的SQA活动。 •最后,把修改后的对象“提交(check in)”进数 据库,并用适当的版本控制机制创建该软件的下一 个版本。
13.2.2 动态多变量模型
动态多变量模型也称为软件方程式,它是根据从 4000多个当代软件项目中收集的生产率数据推导出 来的。该模型把工作量看作是软件规模和开发时间 这两个变量的函数。动态多变量估算模型的形式如 下: E=(LOC×B0.333/P)3×(1/t)4 (13.2) 其中, E是以人月或人年为单位的工作量; B是特殊技术因子,P是生产率参数, t是以月或年 为单位的项目持续时间;
度量软件规模的常用技术主要有代码行技术和功能 点技术。这两种技术各有优缺点,应该根据项目特 点及从事计划工作的人对这两种技术的熟悉程度, 选用适用的技术。
根据软件规模可以估算出完成该项目所需的工作量, 常用的估算模型为静态单变量模型、动态多变量模 型和COCOMO2模型。为了使估算结果更接近实 际值,通常至少同时使用上述3种模型中的两种。 通过比较和协调使用不同模型得出的估算值,有可 能得到比较准确的估算结果。成本估算模型通常也 同时提供了估算软件开发时间的方程式,这样估算 出的开发时间是正常开发时间,经验表明,用增加 开发人员的方法最多可以把开发时间减少到正常开 发时间的75%。
1. 初始级 软件过程的特征是无序的,有时甚至是混乱的。几 乎没有什么过程是经过定义的(即没有一个定型的 过程模型),项目能否成功完全取决于开发人员的 个人能力。 处于1级成熟度的软件机构,其过程能力是不可预 测的,其软件过程是不稳定的,产品质量只能根据 相关人员的个人工作能力而不是软件机构的过程能 力来预测。
第13章 软件项目管理
13.1 13.2 13.3 13.4 13.5 13.6 13.7 估算软件规模 工作量估算 进度计划 人员组织 质量保证 软件配置管理 能力成熟度模型
所谓管理就是通过计划、组织和控制等一系列活 动,合理地配置和使用各种资源,以达到既定目 标的过程。 软件项目管理先于任何技术活动之前开始,并且 贯穿于软件的整个生命周期之中。 软件项目管理过程从一组项目计划活动开始,而 制定计划的基础是工作量估算和完成期限估算。 为了估算项目的工作量和完成期限,首先需要估 算软件的规模。
4. 已管理级 软件机构对软件过程(过程模型和过程实例)和软 件产品都建立了定量的质量目标,所有项目的重要 的过程活动都是可度量的。 处于4级成熟度的软件机构的过程能力可以概括为, 软件过程是可度量的,软件过程在可度量的范围内 运行。这一级的过程能力允许软件机构在定量的范 围内预测过程和产品质量趋势,在发生偏离时可以 及时采取措施予以纠正,并且可以预期软件产品是 高质量的。
5. 优化级 软件机构集中精力持续不断地改进软件过程。这一 级的软件机构是一个以防止出现缺陷为目标的机构, 它有能力识别软件过程要素的薄弱环节,并有足够 的手段改进它们。 处于5级成熟度的软件机构的过程能力可以概括为, 软件过程是可优化的。这一级的软件机构能够持续 不断地改进其过程能力,既对现行的过程实例不断 地改进和优化,又借助于所采用的新技术和新方法 来实现未来的过程改进。
2. 基线 基线是一个软件配置管理概念, IEEE把基线定义为: 已经通过了正式复审的规格说明或中间产品,它可 以作为进一步开发的基础,并且只有通过正式的变 化控制过程才能改变它。 简而言之,基线就是通过了正式复审的软件配置项。 在软件配置项变成基线之前,可以迅速而非正式地 修改它。一旦建立了基线之后,虽然仍然可以实现 变化,但是,必须应用特定的、正式的过程(称为 规程)来评估、实现和验证每个变化。
13.6.2 软件配置管理过程
软件配置管理是软件质量保证的重要一环,主要有 5项任务: 标识、版本控制、变化控制、配置审计 和报告。 1. 标识软件配置中的对象 为了控制和管理软件配置项,必须单独命名每个配 置项,然后用面向对象方法组织它们。 2. 版本控制 版本控制联合使用规程和工具,以管理在软件工程 过程中所创建的配置对象的不同版本。借助于版本 控制技术,用户能够通过选择适当的版本来指定软 件系统的配置。
1. 面向KLOC的估算模 型 (1) Walston_Felix模型 E=5.2×(KLOC)0.91 (2) Bailey_Basili模型 E=5.5+0.73×(KLOC)1.16 (3) Boehm简单模型 E=3.2×(KLOC)1.05 (4) Doty模型(在 KLOC>9时适用) E=5.288×(KLOC)1.047
13.1 估算软件规模
13.1.1 代码行技术
简单的定量估算软件规模的方法:依据以往开发类 似产品的经验和历史数据,估计实现一个功能所需 要的源程序行数。把实现每个功能所需要的源程序 行数累加起来,就可得到实现整个软件所需要的源 程序行数(单位:KLOC千行代码数)。
13.1.2 功能点技术
功能点技术依据对软件信息域特性和软件复杂性 的评估结果,估算软件规模。这种方法用功能点 (FP)为单位度量软件规模。
13.2 工作量估算
软件估算模型使用由经验导出的公式来预测软件开 发工作量,工作量是软件规模(KLOC或FP)的 函数,工作量的单位通常是人月(pm)。
13.2.1 静态单变量模型
这类模型的总体结构形式如下: E=A+B×(ev)C 其中,A、B和C是由经验数据导出的常数,E是以 人月为单位的工作量,ev是估算变量(KLOC或 FP)。下面给出几个典型的静态单变量模型:
13.7 能力成熟度模型
能力成熟度模型(capability maturity model, CMM),是用于评价软件机构的软件过程能力成熟 度的模型。有助于软件开发机构建立一个有规律的、 成熟的软件过程。改进后的软件过程将开发出质量 更好的软件,使更多的软件项目免受时间和费用超 支之苦。 CMM在改进软件过程中所起的作用主要是,指导 软件机构通过确定当前的过程成熟度并识别出对过 程改进起关键作用的问题,从而明确过程改进的方 一个小的改进 步骤基础上不断进行的渐进过程。CMM把软件过 程从无序到有序的进化过程分成5个阶段,并把这 些阶段排序,形成5个逐层提高的等级。 这5个成熟度等级定义了一个有序的尺度,用以测 量软件机构的软件过程成熟度和评价其软件过程能 力,这些等级还能帮助软件机构把应做的改进工作 排出优先次序。 成熟度等级是妥善定义的向成熟软件机构前进途中 的平台,每个成熟度等级都为软件过程的继续改进 提供了一个台阶。