type
status
date
slug
summary
tags
category
icon
password
B.1 简答题(40分)
1. 什么是项目?它有哪些特性?(至少2个特性)
定义:项目是为创造独特的产品、服务或成果而进行的临时性工作。
特性:
临时性:有明确的起点和终点。
独特性:不存在2个完全相同的重复的项目。
资源的约束性:有一定的限制条件 。
2. 什么是软件项目?有哪些属性?
定义:软件项目是开发独特的软件产品、服务或成果而进行的临时性工作。
属性:
时间紧迫性:当达到了目标或目标被终止时,项目即告结束,软件项目的紧迫性决定项目的历时有限,有明确起点或终点,不同的解决方案,即使有现成方案,也要根据客户特殊要求做定制。
项目独特性: 软件项目不仅向客户提供产品,更重要是根据客户要求提供。
不确定性:项目不可能完全在规定的时间内,按规定的预算由规定的人员完成。  
3. 什么是项目管理?
定义:将知识、技能、工具与技术应用于项目活动,以满足项目的要求。
核心:在范围、时间、成本和质量的约束下,成功地交付项目目标。
4. 简述项目管理的三大约束及其关系。
三大约束:范围、时间、成本。
关系:三者构成一个相互制约的“铁三角”。任何一个要素的变化,都会影响另外两个。例如,增加范围,通常会导致时间和成本的增加;缩短时间,可能需要增加成本或减少范围。
5. 什么是项目干系人?
定义:任何会受项目影响、能够影响项目或自认为会受项目影响的个人、群体或组织。
常见例子:客户、项目经理、项目团队成员、最终用户、供应商等。
6. 主要从哪些方面进行可行性分析?这些方面主要解决哪些问题?
技术可行性:解决“能否做得出来?”的问题,评估技术能力和资源。
经济可行性:解决“是否值得做?”的问题,进行成本效益分析,评估投资回报。
操作可行性:解决“做出来能用吗?”的问题,评估在组织环境中的可接受度和使用便利性。
法律/社会可行性:解决“做出来合法合规吗?”的问题,评估是否符合法律、法规和社会道德。
7. 有哪些选择项目的方法?常用的有哪几种,其核心思想是什么?
常见方法:头脑风暴法、德尔菲法、评分模型、成本效益分析法、投资回收期、净现值法等。
常用方法及其核心思想:
成本效益分析法:
核心思想:量化项目的所有成本和收益,通过计算投资回报率(ROI) 或收益成本比率(BCR) 来选择经济效益最高的项目。
评分模型:
核心思想:制定一套评价标准(如技术、风险、战略重要性等),并为每个标准分配权重,对候选项目打分,选择总分最高的项目。
投资回收期法:
核心思想:计算项目需要多长时间才能收回初始投资。选择回收期短的项目,以降低风险。
8. 什么是项目范围管理?为什么要进行范围管理?
定义:确保项目做且只做成功完成项目所需的全部工作的管理过程。
目的/原因:
防止范围蔓延:避免未经控制的需求变更导致项目失控。
明确项目边界:让团队清楚知道“做什么”和“不做什么”。
为成本、进度估算奠定基础:准确的范围是估算时间和成本的前提。
9. 比较瀑布模型、生鱼片模型、包含子项目的瀑布模型、可以降低风险的瀑布模型的优劣。
模型名称  | 优势  | 劣势  | 
瀑布模型  | - 阶段清晰,易于管理- 文档完备  | - 需求变更困难- 风险晚期才暴露- 客户反馈迟  | 
生鱼片模型(重叠式瀑布模型)  | - 阶段部分重叠- 比纯瀑布开发速度快  | - 需要更多的沟通- 返工风险依然存在  | 
包含子项目的瀑布模型  | - 将大项目分解,便于并行开发和管理- 降低了单个项目的复杂性  | - 子项目间集成接口复杂- 管理和协调难度大  | 
可以降低风险的瀑布模型(如带原型的瀑布模型)  | - 在早期通过原型验证需求和设计- 降低了因需求不明确导致的重大风险  | - 增加了原型开发的时间和成本- 对项目管理要求更高  | 
10. 什么是软件需求?
定义:用户为了解决特定问题或达成特定目标,所需要的软件必须满足的条件或能力。
11. 需求有哪三个层次,有什么关系?
三个层次:
业务需求:反映组织或客户的高层次目标(为什么要做这个项目)。
用户需求:描述用户使用软件后需要完成的任务(做什么)。
功能需求:规定开发人员必须在软件中实现的软件功能(怎么做)。
关系:这是一个从抽象到具体的分解过程。业务需求决定用户需求,用户需求再细化为具体的功能需求(以及非功能需求)。
12. 什么是软件需求工程?
定义:一个系统化的、面向工程的过程,涵盖了所有涉及需求定义、文档化、和维护的活动。
核心阶段:包括需求获取、需求分析、需求规格说明、需求验证和需求管理。
13. 简单说明软件项目的 LOC 和 FP 两种估算方法的区别与相同处。
LOC:代码行估算。以软件最终的物理代码行数作为估算基础。
FP:功能点估算。以软件提供给用户的功能数量(如输入、输出、文件等)作为估算基础。
区别:
估算基础不同:LOC依赖技术实现,FP依赖用户视角的功能。
语言无关性:FP与编程语言无关,更适用于早期估算;LOC严重依赖具体编程语言。
相同处:
目的相同:都是通过对软件规模的间接度量来估算项目的工作量、成本和进度。
都需要历史数据:都需要依赖组织的历史项目数据库来进行准确的转换(如LOC/人月,FP/人月)。
14. 软件成本估算模型主要有哪些?简要说明
- 基于算法/方程的模型:
 - 核心思想:使用经验公式(通常形式为:工作量 = a × (规模)^b × 乘数)来估算成本。
 - 著名模型:
 - COCOMO模型:最著名的模型系列,分为基本、中间、详细三个层次,考虑规模和各种成本驱动因子。
 - Walston-Felix模型、Bailey-Basili模型等。
 
- 非算法模型:
 - 核心思想:依靠专家的经验和判断。
 - 著名方法:
 - 专家判断法:由多位专家根据经验直接估算。
 - 类比估算法:与过去类似的项目进行比较得出估算。
 - Parkinson法则:基于给定的资源和时间来决定工作范围(不科学,但现实中存在)。
 
15. 软件项目进度安排有哪几种常用的网络图?各有什么特点?
- PDM前导图法:
 - 特点:节点表示活动,箭线表示逻辑关系。
 - 优点:最常用,可以表示四种依赖关系(完成-开始,开始-开始,完成-完成,开始-完成),逻辑清晰。
 
- ADM箭线图法:
 - 特点:箭线表示活动,节点表示事件(时刻点)。
 - 优点:引入了“虚活动”来表示逻辑关系,能清晰显示关键路径。
 - 缺点:绘图较复杂,不如前导图法直观。
 
- CDM条件箭线图法:
 - 允许活动序列相互循环与反馈,从而形成许多条件分支。
 
16. 甘特图有哪些优势和不足?
优势:
直观易懂:能清晰地展示活动的开始、结束日期和持续时间,以及进度状态。
便于沟通:非常适合于向管理层和项目干系人汇报进度。
不足:
不能清晰地表示活动间的依赖关系。
难以表示任务的并行、重叠关系。
无法直接显示关键路径和时差。
17. 有哪些类别的项目资源?
- 人力资源:项目团队成员。
 
- 设备资源:开发、测试所需的硬件和设备。
 
- 材料资源:消耗性物资。
 
- 资金资源:项目预算。
 
- 技术/信息资源:软件工具、库、专利、知识。
 
18. 项目活动资源数量和质量对项目有什么影响?
资源数量影响:
- 数量不足:导致活动延期,甚至项目整体延误。
 
- 数量过剩:可能造成资源浪费,增加成本,并带来沟通和管理上的复杂性。
 
资源质量影响:
- 质量高(如经验丰富的员工):能提高工作效率,减少缺陷,降低风险。
 
- 质量低:可能导致工作效率低下,产品质量不合格,增加返工和风险。
 
19. 资源调度对关键路径和关键活动有什么影响?
影响:资源约束可能导致关键路径发生改变。
具体表现:当一个关键活动因资源被占用而无法开始时,它就会延迟。如果延迟时间超过其总浮动时间,那么该活动所在路径就会成为新的关键路径,原来的非关键活动可能因此变成关键活动。
20. 简述软件项目风险管理的概念。
定义:通过风险识别、风险分析、风险规划和风险监控等一系列过程,对项目风险进行管理,以增加有利于项目目标实现的积极事件的概率和影响,减少不利于项目目标实现的消极事件的概率和影响。
21. 风险的属性是什么?风险有哪些特征?
风险的三要素(属性):
- 风险事件:可能对项目产生影响的特定事件。
 
- 风险概率:风险事件发生的可能性。
 
- 风险影响:风险事件发生后对项目目标造成的损失程度。
 
风险的特征:
- 客观性:风险是客观存在的。
 
- 不确定性:风险事件是否发生、何时发生、产生何种影响都是不确定的。
 
- 可预测性:可以通过经验和数据对风险进行预测和管理。
 
- 损失性:风险一旦发生,就会对项目造成负面影响。
 
22. 什么是软件质量保证?
定义:一套系统性的活动,旨在确保项目生命周期中的过程和产品都符合预定的标准、规程和需求。
核心思想:“预防缺陷” 而非“检测缺陷”,侧重于过程改进。
23. 有哪些类型的软件项目团队,各有什么特点?
团队类型  | 特点  | 
民主式团队  | - 无固定领导,决策由集体共同做出。- 沟通良好,成员参与度高;但决策可能较慢。  | 
主程序员式团队  | - 以一位核心专家(主程序员)为中心,其他成员提供支持。- 决策高效,责任明确;但对主程序员依赖过高。  | 
矩阵型团队  | - 成员来自不同职能部门,同时向项目经理和职能经理汇报。- 资源共享,技术全面;但双重汇报易导致冲突和优先级混乱。  | 
敏捷团队  | - 小型、跨职能、自组织的团队。- 沟通直接,响应变化快;对成员能力和主动性要求高。  | 
24. 什么是软件外包?它的好处是什么?
定义:组织将软件项目的全部或部分工作,以合同形式交由外部服务提供商完成。
好处:
降低成本:利用外包商所在地的人力资源成本优势。
专注核心业务:使组织能集中资源于自身的核心竞争优势上。
获取专业技能:获得组织内部不具备的技术或领域知识。
25. 什么是软件项目团队?软件项目团队有什么特点?
定义:为完成特定软件项目而组建的临时性组织。
特点:
临时性:随着项目开始而组建,随着项目结束而解散。
目标导向性:所有工作都围绕项目目标的实现。
智力密集型:主要依赖成员的知识、技能和经验。
需要紧密协作:成员之间需要高度的沟通与协作。
26. 什么是软件配置项?如何有效地标识配置项?
定义:在软件生命周期中产生的、被指定为需要独立管理和控制的一切工作产品(如代码、文档、数据等)。
有效标识方法:
制定命名规则:为每个配置项分配一个唯一的、有意义的名称。
使用版本号:通过版本号(如 V1.0, V1.1, V2.0)来区分配置项的不同演化状态。
27. 什么是基线?它的作用是什么?
定义:一个或多个配置项在生命周期某个特定时间点被正式评审和批准通过的稳定版本。此后对它的任何变更都必须遵循正式的变更控制流程。
作用:
建立稳定性:为后续的开发工作提供一个稳定、一致的基准。
控制变更:防止对已批准的工作成果进行随意修改,确保变更的可控性和可追溯性。
28. 软件开发中可能用到的主要生存期模型有哪些?(至少3个模型)
- 瀑布模型:线性顺序开发,阶段划分严格,文档驱动。
 
- 迭代模型:将项目分解为一系列小循环(迭代),每个迭代都完成一个可执行的子集,逐步完善产品。
 
- 敏捷模型(如Scrum, XP):以人为核心,采用迭代、渐进的方式,通过紧密协作和快速反馈来应对变化。
 
29. 有哪些类型的软件项目团队?(至少2个)
民主式团队:无固定领导,决策由团队集体商议决定。
主程序员式团队:以一位核心技术人员(主程序员)为中心进行设计和决策,其他成员提供支持。
30. 软件成本估算方法有哪几种?(至少4种)
算法模型法(如COCOMO模型):使用数学模型(工作量 = a × (规模)^b)进行估算。
专家判断法:依赖领域专家的经验和直觉进行估算。
类比估算法:将新项目与一个或多个类似的历史项目进行比较,得出估算。
自下而上估算法:先将项目分解为具体任务,分别估算每个任务,最后汇总得出总估算。
31. 什么是风险?
定义:一种不确定性的事件或条件,一旦发生,会对项目的至少一个目标(如范围、时间、成本、质量)产生积极的或消极的影响。
核心三要素:事件本身、发生的概率、发生后造成的影响。
B.2 问答题( 30 分)
1.项目管理有哪九大知识领域?它们有什么关系?
九大知识领域:
- 项目整合管理:协调所有其他知识领域的活动,确保项目各部分有机衔接。
 
- 项目范围管理:确保项目做且只做所需的工作。
 
- 项目进度管理:确保项目按时完成。
 
- 项目成本管理:确保项目在批准的预算内完成。
 
- 项目质量管理:确保项目成果满足既定的质量标准。
 
- 项目资源管理:识别、获取和管理所需的人力与物质资源。
 
- 项目沟通管理:确保项目信息及时且恰当地生成、收集、分发、存储和处置。
 
- 项目风险管理:识别、分析、应对和控制项目风险。
 
- 项目采购管理:从外部获取产品或服务。
 
关系:
这九大领域并非孤立,而是相互关联、相互制约的有机整体。
- 核心关系:范围、进度、成本构成项目的“铁三角”,是项目的基本约束。任何一方的变化几乎都会影响另外两者,并最终波及质量。
 
- 支撑作用:资源、沟通、风险、采购管理为达成“铁三角”目标提供支持和保障。例如,资源不足会影响进度,沟通不畅会引发风险。
 
- 整合管理作为核心,贯穿始终,负责统筹和平衡其他八个领域之间的关系,确保项目整体成功。
 
2. 某学院原来属于政府管辖,现在独立办学,但是工资单仍然由政府的计算机中心生成,现在政府对这一服务进行收费。因而学校考虑是否自行采用一个现成的系统来管理这些数据,该项目包含那些阶段?
该项目是一个典型的系统引进项目,可遵循以下项目生命周期阶段:
- 启动阶段:
 - 定义项目目标:明确新工资系统的业务需求(如降低成本、掌握自主权、提高效率)。
 - 进行可行性研究:从经济(购买/维护成本 vs 政府收费)、技术(现有产品是否满足需求)、操作(校内人员能否胜任)等方面分析项目是否可行。
 - 立项:获得批准,正式启动项目。
 
- 规划阶段:
 - 需求分析:详细调研用户(如财务处、人事处)对新系统的功能和非功能需求。
 - 供应商与产品选型:评估市场上的现成系统,选择最适合的软件供应商。
 - 制定项目计划:包括采购计划、实施进度计划、成本预算、人员配置计划、数据迁移计划、风险应对计划等。
 
- 执行与监控阶段:
 - 采购与签订合同:与选定的供应商完成商务流程。
 - 系统部署与配置:安装软件,并根据学校情况进行初始化配置。
 - 数据迁移:将历史工资数据从政府系统安全、准确地导入新系统。
 - 测试:进行单元测试、集成测试和用户验收测试,确保系统运行正确。
 - 培训:对最终用户进行系统操作培训。
 - 全程监控:对比项目计划,监控进度、成本和质量,处理过程中出现的问题和变更。
 
- 收尾阶段:
 - 系统上线与切换:正式启用新系统,停止使用政府服务。
 - 项目验收:获得用户和发起人的正式签字认可。
 - 项目总结:归档项目文档,总结经验教训。
 - 后续维护移交:将系统移交至运维团队,进入日常维护阶段。
 
3. 什么是螺旋模型?有哪些优势和限制?
- 定义:螺旋模型是一种风险驱动的软件开发过程模型。它将开发过程表现为一个逐步展开的螺旋线,每个循环(螺旋)都包括四个阶段:
 - 制定计划:确定项目目标、方案和约束。
 - 风险分析:识别并评估所有潜在风险,制定风险应对策略。
 - 工程实施:开发和验证该螺旋的产物(如原型、子系统)。
 - 客户评估:评估工程成果,计划下一轮的工作。
 
- 优势:
 - 高风险项目的理想选择:在风险造成重大危害之前就对其进行识别和应对。
 - 灵活性高:支持需求的变化,适用于大型、复杂、需求不明确的项目。
 - 客户参与度高:每个循环都包含客户评估与反馈,确保产品始终朝着客户满意的方向演进。
 - 逐步构建:通过多个循环逐步深化,最终构建出完整的系统。
 
- 限制:
 - 复杂且成本高:风险分析和原型构建需要投入大量时间和资源,不适用于小项目。
 - 对风险管理技能要求高:风险分析的有效性高度依赖于开发团队的风险评估能力。
 - 合同管理困难:循环和可变的特点使得在项目初期确定准确的预算和工期变得困难。
 
4. 什么是WBS?请举例说明如何表达WBS?
- 定义:工作分解结构(WBS) 是项目管理中一种以可交付成果为导向的分解技术,它将项目工作和项目目标分解为更小、更易于管理的组成部分。它位于规划过程的中心,是制定进度、成本和资源计划的基础。
 
- 核心思想:100%规则——WBS必须包含项目的全部工作范围,包括内部、外部和临时的所有工作。
 
- 举例说明(以“开发一个工资管理系统”为例):
 
WBS通常以树形结构图或列表缩进式来表达。
树形结构图表达法:
列表缩进式表达法(更常用且易于书写):
5. X 学院是以Y高校为最大股东成立的公办民助学校,在很多方面具有独立性,只是自成立到现在,该学院一直使用Y学校的教务管理系统。如今随着学院规模的扩张,这种情况给学院的教学管理带来了不便,因此学院委托W公司为自己开发一个更加符合自身需要的教务管理系统。请识别这个项目的风险,列一个风险检查清单(要求对风险进行优先级排序,并制定各项风险的应对策略和措施)
风险排序原则:综合考虑风险发生概率和影响程度,高优先级风险通常具有高概率和高影响。
优先级  | 风险类别  | 具体风险描述  | 应对策略  | 应对措施  | 
高  | 需求风险  | 需求不明确、频繁变更。学院作为用户可能无法一次性清晰表达所有需求,或在开发过程中提出大量变更。  | 减轻  | 1. 采用原型法,让用户早期体验系统,明确需求。2. 建立严格的变更控制流程,任何变更需经双方确认并评估对成本、进度的影响。  | 
高  | 技术风险  | 新系统与Y学校现有系统的数据接口与兼容性问题。需要从原系统迁移历史数据,可能存在技术障碍。  | 减轻  | 1. 在合同签订前,进行详细的技术可行性分析,明确数据格式和接口方案。2. 在早期开发一个数据迁移原型进行验证。  | 
高  | 合作方风险  | W公司开发能力不足或对教育业务不熟悉,导致产品无法满足学院实际工作需要。  | 转移/减轻  | 1. 转移:在合同中明确功能、性能、验收标准及违约条款。2. 减轻:选择供应商时严格评估其资质和过往案例;在开发过程中,学院方深度参与评审和测试。  | 
中  | 管理风险  | 项目范围蔓延。用户可能不断提出“小而合理”的新需求,导致项目超出预算和工期。  | 规避/减轻  | 1. 规避:在项目初期明确界定项目范围,并得到双方签字认可。2. 减轻:建立WBS,严格按范围基准进行管理,将新需求纳入二期或未来版本。  | 
中  | 用户风险  | 最终用户抵制使用新系统。教务管理人员和教师已习惯原有系统,对新系统有抵触情绪,导致上线失败。  | 减轻  | 1. 从项目启动就让关键用户代表参与需求调研和设计。2. 提供充分、及时的培训。3. 制定详细的系统上线和推广支持计划。  | 
低  | 外部风险  | 关键人员变动。学院或W公司的项目负责人、核心技术人员离职,导致项目知识和进度中断。  | 接受/减轻  | 1. 减轻:建立良好的项目文档体系,确保知识得以保留。2. 在团队内进行人员备份和交叉培训。  | 
6. 简述软件过程能力成熟度等级。
软件过程能力成熟度模型(通常指CMMI)将组织的软件开发过程能力分为五个等级,每个等级代表过程改进的一个台阶。
- 初始级:
 - 特征:过程是无序的、临时的,甚至混乱的。成功高度依赖于个人的能力和英雄主义。
 - 结果:项目不可预测,难以重复成功。
 
- 已管理级:
 - 特征:在项目层面上,已建立了基本的项目管理过程来跟踪成本、进度和功能。能对必要的过程纪律进行规划和管理。
 - 结果:项目能按计划执行,对类似的重复性项目可重复成功。
 
- 已定义级:
 - 特征:过程已被标准化、文档化,并集成为组织的标准过程。所有项目均使用经批准、剪裁的组织标准过程来开发和维护软件。
 - 结果:过程在整个组织内保持一致,质量和效率得到提升。
 
- 量化管理级:
 - 特征:为过程和产品建立了量化的质量目标,并利用统计技术对过程和产品进行量化管理。
 - 结果:过程是量化的、可预测的,并能通过细微调整实现预期的质量目标。
 
- 优化级:
 - 特征:专注于过程的持续改进。利用来自过程和试点新思想、新技术的量化反馈,能够持续地改进过程。
 - 结果:组织能够主动地改进过程,应对变化,并防止缺陷发生。
 
7. 需求管理的困难性主要体现在哪些方面?(5个以上的原因)
需求管理困难是软件项目失败的主要原因,其困难性主要体现在:
- 需求的模糊性和主观性:用户的需求通常最初是模糊的、不完整的,并且基于他们的主观感受和经验,难以精确地转化为技术规格。
 
- 需求的不稳定性和易变性:在项目开发过程中,市场环境、业务规则和用户认知都会发生变化,导致需求随之改变,即“需求蔓延”。
 
- 沟通鸿沟:用户和开发人员处于不同的领域,使用不同的“语言”。用户懂业务但不熟技术,开发人员懂技术但不理解业务深层逻辑,容易产生误解。
 
- 利益相关者的多样性和冲突:不同用户角色(如管理者、操作者)对系统有不同的期望和需求,这些需求之间可能存在冲突,难以调和。
 
- 需求分析的复杂性:大型系统的需求数量庞大,之间存在复杂的逻辑关联和依赖关系,梳理清楚并保证其一致性和完整性是一项艰巨的任务。
 
- 对需求的重要性排序困难:在资源有限的情况下,难以科学地确定哪些需求是核心的、必须实现的,哪些是可以延迟或削减的,这影响到项目的范围和计划。
 
- 金本位:个别拥有决策权的权威人物(如高级管理者)可能会提出不切实际或片面的需求,干扰了基于集体共识的需求分析过程。
 
B.3 计算分析题( 15 分)
1.画出下表所列活动的网络图,并计算其关键路径和项目花费的时间。







2. 陈经理邀请 3 位专家,为即将进行的 X 中学生学籍管理系统估算项目成本, A 专家给出的乐观成本为 7 万、最可能成本为 8 万、悲观成本为 9 万, B 专家给出的成本分别为 6 万、 8 万、 10 万, C 专家给出的成本分别为 5万、 7 万、 9 万,请问该项目的估算成本是多少?请写出详细的计算过程。
计算分析题解答
为了估算X中学生学籍管理系统的项目成本,陈经理邀请了三位专家(A、B、C)分别给出了乐观成本(O)、最可能成本(M)和悲观成本(P)。使用PERT(Program Evaluation and Review Technique)方法进行成本估算,PERT期望成本的计算公式为:
其中,E表示期望成本。
步骤1:计算每位专家的期望成本
- 专家A:O = 7万, M = 8万, P = 9万
 
- 专家B:O = 6万, M = 8万, P = 10万
 
- 专家C:O = 5万, M = 7万, P = 9万
 
步骤2:计算项目的总体估算成本
项目的估算成本为三位专家期望成本的平均值:
保留两位小数,约为 7.67万。
最终答案
该项目的估算成本为 7.67万。
B.4 案例分析题( 15 分)
1. 在一些大中型软件项目中,经常会出现一些混乱和差错,如标识混乱、版本错误、数据不一致等。在软件的开发过程中,随着工作的进展也会产生许多信息,如可行性分析、规格说明、设计说明、源程序、数据等技术性文档,以及合同、计划、会议记录、报告等管理性文档。对于一个大中型软件项目来说,这些信息文档的数量可以达到几百甚至上千个,如果没有一套严谨、科学的管理办法,出现混乱和差错几乎是必然的;而且,在软件开发过程中,各种变更是不可避免的,如何才能将其影响降到最低也是管理面临的主要问题。软件配置管理为软件开发提供了一套管理办法和原则,以防止混乱和差错的产生,并且适应软件的各类变更。典型的配置问题有:多重维护、共享数据、同时修改、丢失版本号或者没有版本号。一般地,实施软件配置管理应完成以下几方面的任务:确定软件配置管理计划,确定配置标识规则,实施变更控制,报告配置状态,进行配置审核,进行版本管理和发行管理。
回答问题:
(1) 软件配置管理的一个重要内容就是对变更加以控制,使变更对成本、工期和质量的影响降到最小。请说明软件配置管理中“变更管理”的主要任务。
(2) 为了有效地进行变更控制,通常会借助“配置数据库”。请说明配置数据库的主要作用及其分类。
(3) 变更管理对于大型软件开发项目的成功起着至关重要的作用,应遵循统一的处理过程。请说明实施变更管理的流程。 
(4) 从案例可以发现,混乱随处可能发生,因此,软件项目管理要适应、控制这些变化,就必须实施软件配置管理。请说明软件配置管理的主要任务。
案例分析题解答
(1) 软件配置管理中“变更管理”的主要任务
变更管理是软件配置管理的核心,旨在对变更请求进行系统化控制,以最小化对成本、工期和质量的影响。主要任务包括:
- 变更请求识别与记录:及时识别并记录所有变更请求,确保每个请求有唯一标识。
 
- 变更影响分析:评估变更对项目范围、成本、进度、质量和现有系统的影响,提供决策依据。
 
- 变更审批决策:由变更控制委员会(CCB)或授权人员审查变更请求,决定批准、拒绝或延期。
 
- 变更实施与跟踪:对批准的变更安排实施,监控变更过程,确保按计划执行。
 
- 变更验证与测试:验证变更是否正确实施,并通过测试确保没有引入新缺陷。
 
- 变更文档化与沟通:记录变更详情,更新配置项,并通知所有相关干系人变更状态。
 
(2) 配置数据库的主要作用及其分类
配置数据库(CMDB)是存储配置项信息的核心数据库,主要作用包括:
- 作用:
 - 集中存储配置信息:记录所有配置项的属性、版本、依赖关系和状态。
 - 支持变更影响分析:提供数据以评估变更的潜在影响。
 - 跟踪配置历史:维护配置项的变更记录,便于审计和回溯。
 - 促进版本控制:确保使用正确的配置项版本,避免混乱。
 
- 分类:
 - 开发库:用于开发人员日常工作的动态库,存储正在开发的配置项。
 - 受控库:存储已通过测试和审核的配置项,用于正式构建和测试。
 - 产品库:存储最终发布的软件产品版本,用于交付和部署。
 
(3) 实施变更管理的流程
变更管理应遵循统一的处理过程,确保变更受控和可追溯。典型流程包括:
- 变更申请:用户或项目成员提出变更请求,填写变更申请单。
 
- 变更记录与分类:配置管理员记录请求,并分类为紧急、常规等优先级。
 
- 初步分析:评估变更的可行性、成本、进度和资源影响。
 
- 变更评审:变更控制委员会(CCB)召开会议,审查分析结果,做出批准或拒绝决定。
 
- 变更实施:如果批准,开发团队实施变更,并更新相关配置项。
 
- 验证与测试:测试团队对变更进行验证,确保符合要求且无副作用。
 
- 变更关闭:更新配置数据库,文档化变更结果,通知干系人,并关闭变更请求。
 
- 后续监控:监控变更后的系统稳定性,必要时进行调整。
 
(4) 软件配置管理的主要任务
软件配置管理通过一系列任务确保软件项目的有序性,防止混乱和差错。主要任务包括:
- 制定配置管理计划:定义配置管理的目标、策略、流程、角色和职责。
 
- 配置标识:识别所有配置项(如代码、文档),并制定命名和版本规则。
 
- 变更控制:建立变更控制流程,管理所有变更请求,确保变更受控。
 
- 配置状态报告:定期报告配置项的状态、变更历史和当前版本,提高可视性。
 
- 配置审核:进行功能配置审核和物理配置审核,验证配置项是否符合需求和标准。
 
- 版本管理:控制配置项的版本变化,确保版本一致性和可追溯性。
 
- 发行管理:管理软件的构建、打包、发布和交付过程,确保发布版本的正确性。
 
2. 马工为某系统集成公司项目经理,负责某国有企业信息化项目的建设。马工在带领项目成员进行业务需求调研期间,发现客户的某些部门对于需求调研不太配合,时常上级推下级,下级在陈述业务时经常因为工作原因在关键时候要求离开去完成其他工作,而某些部门对于需求调研只是提供一些日常票据让其进行资料收集,为此马工非常苦恼。勉强完成了需求调研后,项目组进入了软件开发阶段,在软件开发过程中,客户经常要求增加某个功能或对某个表进行修改,这些持续不断的变更给软件开发小组带来了巨大的修改压力,软件开发成员甚至提到该项目就感觉没动力。项目期间由于客户需求变更频繁,马工采取了锁定需求的办法,即在双方都确认变更后,把变更内容一一列出,双方盖上公司印章生效,但是这样做还是避免不了需求变更,客户的变更列表要求对方遵守承诺,客户却认为这些功能是他们要求的,如果需要新的变更列表,他们可以重新制作并加盖印章。马工对此很无奈。最终在多次反复修改后,项目勉强通过验收,而马工对于该项目的后期维护仍然感到担忧。
 (1) 请分析案例中变更管理存在的问题。
 (2) 如果你是马工,可以采取哪些措施解决遇到的问题?
案例分析题解答
(1) 案例中变更管理存在的问题
- 需求调研阶段缺乏有效沟通与承诺:
 - 客户部门对需求调研不配合,说明项目未能获得关键干系人的认可与支持。
 - 需求收集方法单一(仅依靠票据),未能深入理解业务流程和真实需求。
 
- 缺乏正式的变更控制流程:
 - 变更请求以非正式方式提出(口头要求),未经过规范的影响分析和审批。
 - 仅通过“变更列表+盖章”的方式试图锁定需求,但缺乏对变更范围、成本和进度的综合评估。
 
- 变更管理策略僵化且被动:
 - “锁定需求”的方式不符合软件开发灵活性要求,反而引发客户反感。
 - 未能建立变更优先级机制,所有变更被平等对待,导致开发团队不堪重负。
 
- 缺乏变更影响分析和沟通:
 - 未向客户清晰说明变更对项目目标(成本、进度、质量)的影响。
 - 客户认为“重新制作变更列表”即可实现变更,说明未建立变更的成本意识。
 
- 团队士气与资源配置问题:
 - 频繁变更导致开发团队产生倦怠情绪,缺乏有效的激励和资源调整。
 
(2) 解决措施
- 改进需求获取与分析方法:
 - 采用联合需求规划(JRP)会议、原型法等主动沟通方式,邀请关键用户参与设计。
 - 通过业务流程图、用例分析等方法系统性梳理需求,确保双方对需求理解一致。
 
- 建立正式的变更控制机制:
 - 成立变更控制委员会(CCB),明确变更审批权限和流程。
 - 所有变更必须提交书面《变更申请单》,附详细说明和业务理由。
 
- 实施变更影响分析与沟通:
 - 对每个变更进行成本、进度和技术可行性分析,形成《变更影响报告》。
 - 将分析结果可视化(如“变更影响矩阵”),帮助客户理解变更后果。
 
- 采用灵活的变更管理策略:
 - 建立变更优先级标准(如紧急/重要程度),对非核心变更建议纳入后续版本。
 - 推行迭代开发模式,通过短期交付获取持续反馈,减少后期大规模变更。
 
- 加强合同与范围管理:
 - 在项目章程中明确范围边界,约定变更处理机制和成本承担原则。
 - 对重大变更签订补充协议,明确资源调整和交付时间变更。
 
- 团队管理与维护准备:
 - 建立变更预留缓冲时间,避免频繁打断开发节奏。
 - 完善项目文档和版本管理,为后期维护提供完整基线。
 
- 持续干系人管理:
 - 定期向客户管理层汇报变更累积影响,争取高层对流程规范的支持。
 - 对积极配合的部门给予认可,建立合作共赢的项目文化。
 
- 作者:EageYren
 - 链接:https://www.eageyren.top//learning/management
 - 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
 






