在信息系统项目管理师(软考高级)的知识体系中,整体管理起到了"大脑"和"粘合剂"的作用。它不专注于某一具体领域(如只管进度或只管质量),而是负责协调所有其他领域,确保项目各要素能够有机整合为一个整体。
按照薛大龙老师的教学逻辑,整体管理的核心流程可以概括为:制定章程 -> 制定计划 -> 指导与管理工作 -> 管理项目知识 -> 监控项目工作 -> 实施整体变更控制 -> 结束项目或阶段。
下面我将梳理这一全流程,并重点解析关键的输入输出,最后用 Python 代码模拟其中最核心的"变更控制"逻辑。
一、 整体管理七大流程详解
1. 制定项目章程
这是项目的"出生证"。
- 作用:正式批准项目成立,授权项目经理动用组织资源。
- 核心输入:商业论证(为什么要做)、协议(合同)。
- 关键输出:项目章程(包含高层级需求、里程碑名单、预先批准的财务资源)。
- 考点记忆:章程由发起人签发,而不是项目经理。
2. 制定项目管理计划
这是项目的"行动指南"。
- 作用:综合所有子计划(范围、进度、成本、质量等)和基准,确定项目如何执行、监控和收尾。
- 核心输入:章程、其他过程的输出。
- 关键输出:项目管理计划(注意:这是一个包含基准的综合性文件,不是单一的文档)。
3. 指导与管理工作
这是项目的"发动机"。
- 作用:按照计划执行实际工作,产生可交付成果。
- 核心输入:批准的项目管理计划、可交付成果(尚未验证)。
- 关键输出:可交付成果(工作产品数据)、工作绩效数据(原始数据)。
4. 管理项目知识
这是项目的"知识库"。
- 作用:利用现有知识,并生成新知识(经验教训)。
- 核心输入:项目管理计划、工作绩效报告。
- 关键输出:经验教训登记册(非常重要,也是考试常考点)。
5. 监控项目工作
这是项目的"仪表盘"。
- 作用:跟踪、审查和调整项目进展,对比计划与实际的偏差。
- 核心输入:工作绩效数据 -> 转化为 工作绩效信息(对比后的带偏差信息)。
- 关键输出:工作绩效报告(给干系人看的预测、状态报告)。
6. 实施整体变更控制
这是项目的"守门员"。
- 作用:审查所有变更请求,批准或拒绝,并调整基准。
- 核心输入:变更请求、工作绩效报告。
- 关键输出:批准的变更请求、项目管理计划更新、项目文件更新。
- 考点记忆:CCB(变更控制委员会) 是这个过程的关键工具(虽然不是必需的,但在软考中常考)。
7. 结束项目或阶段
这是项目的"终点站"。
- 作用:正式结束项目或阶段,移交成果,释放资源,总结经验。
- 核心输入:验收的可交付成果。
- 关键输出:最终产品、服务或成果移交、组织过程资产更新(主要是历史信息)。
二、 核心数据流转逻辑(考点速记)
软考非常喜欢考查数据的转化关系,这在上午选择题和下午案例分析中都是高频考点。
-
数据 -> 信息 -> 报告:
- 工作绩效数据:原始状态(如:用了100小时)。
- 工作绩效信息:对比分析(如:比计划多用了10小时,落后了)。
- 工作绩效报告:汇总展示(如:目前项目成本超支,建议采取纠偏措施)。
-
变更流程:
发现问题 -> 提交变更请求 -> 分析影响 -> CCB审批 -> 更新计划 -> 执行变更。
三、 代码实战:模拟整体变更控制(CCB)流程
整体管理中最复杂的逻辑在于变更控制。我们如何判断一个变更请求(CR)是否应该被批准?如何确保变更不失控?
下面我用 Python 写一个简单的"变更控制模拟器",帮助你理清这个逻辑。
python
复制
import datetime
class ChangeRequest:
"""变更请求对象"""
def __init__(self, cr_id, title, impact, reason):
self.id = cr_id
self.title = title
self.impact = impact # 1:Low, 2:Medium, 3:High
self.reason = reason
self.status = "Open" # Open, Approved, Rejected
self.create_time = datetime.datetime.now()
class ProjectManagementPlan:
"""项目管理计划(简化版)"""
def __init__(self, scope, cost, schedule):
self.scope = scope
self.cost = cost # 预算
self.schedule = schedule # 工期(天)
self.version = "V1.0"
class CCBSystem:
"""变更控制委员会系统"""
def __init__(self, project_plan):
self.project_plan = project_plan
self.change_log = []
self.approved_changes = []
def evaluate_change(self, cr):
"""
评估变更逻辑(简化版)
"""
print(f"\n[CCB] 正在评估变更请求: {cr.id} - {cr.title}")
# 1. 分析影响
if cr.impact == 3:
print(f"[!] 变更影响等级: HIGH. 需要更新基准。")
return False # 假设为了演示,先拒绝高影响变更
elif cr.impact == 2:
print(f"[*] 变更影响等级: MEDIUM. 需要追加预算。")
# 模拟自动审批逻辑(实际需人工评审)
approval = self.auto_approve_logic(cr)
return approval
else:
print(f"[+] 变更影响等级: LOW. 无需更新基准,快速通道。")
return True
def auto_approve_logic(self, cr):
"""自动审批模拟"""
# 简单逻辑:如果是Bug修复则通过,如果是新增功能则拒绝
if "Bug" in cr.reason:
return True
else:
return False
def process_change_request(self, cr):
"""处理变更请求流程"""
# 1. 接收变更
self.change_log.append(cr)
# 2. 分析与批准
is_approved = self.evaluate_change(cr)
if is_approved:
cr.status = "Approved"
self.approved_changes.append(cr)
# 3. 更新项目管理计划(关键步骤)
self.update_project_plan(cr)
print(f"[CCB] 变更 {cr.id} 已批准。")
else:
cr.status = "Rejected"
print(f"[CCB] 变更 {cr.id} 已拒绝。")
def update_project_plan(self, cr):
"""更新项目管理计划"""
# 如果变更影响了基准,版本号升级
if cr.impact == 2 or cr.impact == 3:
self.project_plan.version = self.project_plan.version + ".1" # V1.0 -> V1.0.1
print(f"[Plan] 项目管理计划已更新至 {self.project_plan.version}")
def generate_report(self):
print("\n=== 变更控制报告 ===")
for cr in self.change_log:
print(f"ID: {cr.id} | 标题: {cr.title} | 状态: {cr.status}")
# ==================== 模拟场景 ====================
# 1. 初始化项目计划
my_plan = ProjectManagementPlan(scope="ERP开发", cost=500000, schedule=180)
# 2. 初始化 CCB 系统
ccb_system = CCBSystem(my_plan)
# 3. 提交变更请求 A (低影响)
cr_a = ChangeRequest("CR-001", "修正登录页面颜色错误", 1, "UI体验优化")
ccb_system.process_change_request(cr_a)
# 4. 提交变更请求 B (中影响,需要追加预算)
cr_b = ChangeRequest("CR-002", "新增报表导出功能", 2, "用户需求增加")
ccb_system.process_change_request(cr_b)
# 5. 提交变更请求 C (高影响Bug)
cr_c = ChangeRequest("CR-003", "修复数据库死锁问题", 3, "系统稳定性Bug")
ccb_system.process_change_request(cr_c)
# 6. 输出报告
ccb_system.generate_report()
print(f"\n最终项目计划版本: {my_plan.version}")
四、 备考总结与建议
-
背熟定义:整体管理的7个过程名、顺序以及各自的输入输出是上午题的基础。
-
区分概念:
- 项目章程 vs 项目范围说明书:前者粗(高层级),后者细。
- 工作绩效数据 vs 工作绩效信息:前者是原料,后者是半成品。
- 纠正措施 vs 预防措施:前者纠正过去,后者预防未来。
-
论文素材:在写论文时,整体管理是背景。你可以描述自己是如何通过"实施整体变更控制"来处理项目中的突发需求,如何通过"结束项目"来总结经验教训。这能体现你的大局观。
整体管理贯穿项目的始终,掌握了它,你就掌握了项目管理的"总开关"。祝备考顺利!