软件项目管理

基本概念

软件项目的特殊性(4点)与 软件项目管理的特殊性是什么?

软件项目的特殊性 (4点):

  1. 不可见性 (Invisibility): 软件是逻辑实体,看不见摸不着,进度难以直观衡量。
  2. 复杂性 (Complexity): 技术复杂、业务逻辑复杂,且需求多变。
  3. 一致性/顺从性 (Conformity): 软件必须适应硬件、环境和遗留系统,而不是环境适应软件。
  4. 可变性 (Changeability): 软件容易被修改,导致“需求蔓延”。

软件项目管理的特殊性:

  • 它是智力密集型的创造性活动。
  • 独特性强,没有完全相同的两个项目。
  • 不确定性高,很难精准预测进度和成本。

软件项目的招标步骤通常包括哪些?

  1. 招标 (Solicitation): 甲方发布招标公告(RFP/RFQ)。
  2. 投标 (Bidding): 乙方编写标书并投递。
  3. 开标 (Opening): 公开开启标书。
  4. 评标 (Evaluation): 专家评审技术和商务部分。
  5. 决标/授标 (Awarding): 确定中标单位。
  6. 签约 (Contracting): 签署正式合同。

四大开发模型是什么?Scrum 的三大角色、四个会议、以及职责分别是什么?

四大模型:

  1. 瀑布模型 (Waterfall): 线性顺序,文档驱动,适合需求明确的项目。
  2. 增量/迭代模型 (Incremental/Iterative): 分批交付,逐步完善。
  3. 螺旋模型 (Spiral): 强调风险分析,适合大型复杂项目。
  4. 敏捷模型 (Agile): 拥抱变化,快速迭代,以人为本。

Scrum 三大角色与职责:

  1. Product Owner (PO): 负责产品价值(ROI),管理Product Backlog,定义“做什么”。
  2. Scrum Master (SM): 负责流程与服务,清除障碍,保护团队,确保Scrum流程执行。
  3. Development Team: 负责交付,自组织,跨职能,把需求转化为可工作的软件。

Scrum 四个管理会议:

  1. Sprint Planning (计划会): 决定本轮迭代做什么(Sprint Backlog)。
  2. Daily Standup (每日站会): 昨天做了什么?今天打算做?有什么困难?
  3. Sprint Review (评审会): 演示产品,获取客户反馈(Demo)。
  4. Sprint Retrospective (回顾会): 总结过程中的优缺点,进行改进(Process)。

WBS与工作包的定义?需求分析与验证的区别?

WBS (Work Breakdown Structure): 将项目逐层分解为更小、更易管理的部分。

工作包 (Work Package): WBS 的最底层元素。特点是:可估算成本/时间、可分配责任人。

需求分析 vs 验证:

  • 分析: 弄清楚用户想要什么,转化为需求规格说明书 (SRS)。
  • 验证: 确认需求是否正确、完整、一致(即“我们是否在做正确的事”)。

各种进度图表的区别(甘特图、PDM、ADM、里程碑、燃尽/燃起图)?

甘特图 (Gantt): 棒状图,显示活动开始、结束和持续时间。实心通常代表已完成,空心代表计划。

PDM (前导图/单代号): 节点表示活动,箭头表示逻辑关系。最常用

ADM (箭线图/双代号): 箭头表示活动,节点表示事件。

虚活动 (Dummy Activity): ADM特有,不消耗资源和时间,仅用于表示逻辑依赖或保证活动唯一性。

里程碑图: 标记关键时间点,持续时间为0,不消耗资源。

燃尽图 (Burndown): 剩余工作量随时间递减(敏捷常用)。

燃起图 (Burnup): 已完成工作量随时间递增。

质量管理中 QA 与 QC 的区别?敏捷质量管理特点?

QA (Quality Assurance 质量保证): 偏向过程。通过审计、过程定义,确保“过程是正确的”,预防缺陷。(例如:审计、培训)。

QC (Quality Control 质量控制): 偏向产品。通过测试、检查,发现并纠正结果中的缺陷。(例如:代码评审、单元测试)。

敏捷质量管理 (P200): 强调全员负责,测试驱动开发 (TDD),持续集成 (CI)。QA侧重于迭代过程改进(回顾会),QC侧重于验收测试(评审会)。

软件配置管理 (SCM) 的 SCCB、六个过程及分支策略?

SCCB (Software Configuration Control Board): 配置控制委员会。

职责: 评估变更请求,批准或拒绝变更,确保变更受控。

配置管理六个过程:

  1. 制定计划
  2. 配置项标识 (Naming/Identifying)
  3. 版本控制 (Version Control)
  4. 变更控制 (Change Control)
  5. 配置状态报告 (Status Accounting)
  6. 配置审计 (Auditing)

分支策略:

  • 基于分支开发 (Gitflow等): 隔离性好,适合发布周期长的大型项目。缺点:合并痛苦。
  • 基于主干开发 (Trunk-based): 持续集成,反馈快。缺点:对代码质量和自动化测试要求极高。

组织架构类型、风险管理(三要素、决策树)及合同类型?

组织架构:

  1. 职能型: 部门经理权力大,项目经理几乎无权。
  2. 项目型: 项目经理权力最大,资源独占。
  3. 矩阵型: 介于两者之间(弱矩阵、平衡矩阵、强矩阵)。

风险管理:

  • 三要素: 风险事件 (Event)、概率 (Probability)、影响 (Impact)。
  • 决策树分析 (EMV): $EMV (\text{期望货币值}) = \text{概率} \times \text{影响值}$。用于定量评估选择不同方案的损益。

合同类型:

  1. 总价合同 (Fixed Price): 范围明确。买方风险最小,卖方风险最大
  2. 成本补偿合同 (Cost Reimbursable): 范围不清。买方风险最大(需实报实销)。
  3. 工料合同 (T&M): 介于两者之间,用于短期专家服务。

计算

详解代码行、功能点、COCOMO及用例点估算(含计算公式逻辑)。

代码行 (LOC): 简单但依赖语言,难以在早期准确估算。

COCOMO模型: 经验模型。基本公式 $E = a \times (KLOC)^b$。分为基本、中间、详细三级。

功能点估算 (FP): 与技术无关,基于用户视角。

  • 五大要素: 外部输入 (EI)、外部输出 (EO)、外部查询 (EQ)、内部逻辑文件 (ILF)、外部接口文件 (EIF)。
  • 计算: $FP = UFC(\text{未调整功能点}) \times TCF(\text{技术复杂度因子})$。

用例点估算 (Use Case Points, P117):

  • UUCW (Unadjusted Use Case Weight): 未调整的用例权重(根据用例复杂度)。

  • UAW (Unadjusted Actor Weight): 未调整的角色权重(根据参与者复杂度)。

  • UUCP (Unadjusted Use Case Points): $UUCP = UUCW + UAW$。

  • TCF (Technical Complexity Factor): 技术复杂度因子(13项技术指标)。

  • ECF (Environmental Complexity Factor): 环境复杂度因子(团队经验等)。

  • 最终公式:

  • 工作量 (PF): $Effort = UCP \times PF$ (PF为生产率因子,如 20工时/UCP)。

关键路径法 (CPM) 的计算逻辑与浮动时间?

关键路径 (Critical Path): 网络图中耗时最长的路径,决定了项目的最短工期。

计算核心:

  • 正推 (Forward Pass): 计算最早开始(ES) 和 最早结束(EF)。取大值。
  • 逆推 (Backward Pass): 计算最晚开始(LS) 和 最晚结束(LF)。取小值。

浮动时间 (Float/Slack): $Float = LS - ES$ 或 $LF - EF$。

  • 关键路径上的浮动时间为 0
  • 注意: 浮动时间越,进度安排越灵活,风险越。浮动时间越(接近0),项目延期风险越

挣值分析法 (EVM) 核心参数?

BCWS (PV): 计划值(计划做多少?)

BCWP (EV): 挣值(实际做完了多少的价值?)—— 这是最核心的参数

ACWP (AC): 实际成本(实际花了多少钱?)

基本判断:

  • $EV > AC$ (CPI > 1):成本节约。
  • $EV > PV$ (SPI > 1):进度提前。

image-20251210220205732

真题解析

1.甲乙方在招投标过程中的主要任务

甲方(招标方)的主要任务:

  • 招标准备: 确定项目需求,编制招标文件(包括需求说明书、规格说明书等),确定评估标准。
  • 发布招标公告: 向社会或特定群体发布招标信息。
  • 资格预审: 对报名参加投标的单位进行资格审查。
  • 开标、评标与决标: 组织专家对投标文件进行评审,按照既定标准打分,选定中标单位。
  • 合同签署: 与中标单位进行谈判,签订正式合同。

乙方(投标方)的主要任务:

  • 获取信息与可行性分析: 获取招标文件,分析自身能力与项目需求的匹配度(决定是否投标)。
  • 编制投标文件: 包括技术标(技术方案、实施计划)和商务标(报价、资质证明)。
  • 投标: 在规定时间内密封递交投标文件及缴纳保证金。
  • 参与讲标/答疑: 针对评标专家的疑问进行现场解答或演示。
  • 合同谈判与签署: 中标后与甲方确认合同细节并签约。
  1. 项目风险的三要素

项目风险通常由以下三个基本要素构成:

  1. 风险事件(Event): 可能发生的不利事件(例如:核心技术人员离职、服务器宕机)。
  2. 概率(Probability): 该事件发生的可能性大小。
  3. 影响(Impact/Loss): 如果该事件发生,对项目目标(成本、进度、质量)造成的损失或后果。

3.需求理论

马斯洛理论将人类需求从低到高分为五个层次,项目经理常用此理论来激励团队成员:

  1. 生理需求 (Physiological needs): 基本的衣食住行、工资待遇。
  2. 安全需求 (Safety needs): 职业稳定性、医疗保险、免受威胁。
  3. 社交需求 (Social needs/Love and belonging): 归属感、友谊、良好的团队氛围。
  4. 尊重需求 (Esteem needs): 成就感、地位、他人的认可和表扬。
  5. 自我实现需求 (Self-actualization): 发挥潜能、实现个人理想、挑战性工作。

4.项目的特征

项目主要具备以下显著特征:

  1. 临时性 (Temporary): 有明确的开始和结束时间。
  2. 独特性 (Unique): 每个项目的产品、服务或成果都是独特的,没有完全相同的两个项目。
  3. 渐进明细 (Progressive Elaboration): 项目的计划和范围是随着信息的逐渐丰富而逐步清晰和细化的。
  4. 资源约束性: 项目受限于预算、时间、人力等资源。
  5. 目的性: 项目是为了实现特定的目标或解决特定的问题。

5.矩阵型项目的组织结构的优缺点

优点:

  • 资源利用率高: 专家可以在多个项目中共享,减少闲置。
  • 灵活性强: 能迅速响应环境变化,组建跨职能团队。
  • 沟通顺畅: 促进了职能部门与项目团队之间的信息交流。
  • 目标明确: 项目经理专注于项目目标,职能经理专注于技术提升。

缺点:

  • 双重汇报(双头领导): 成员同时受项目经理和职能经理领导,容易产生指令冲突。
  • 权力斗争: 项目经理和职能经理之间可能争夺资源和控制权。
  • 管理成本高: 需要更多的沟通协调会议,决策过程可能变慢。

6.几个模型的使用情况:

开发生命周期 适用情况 (特点) 关键词
预测型 (Predictive/Waterfall) 项目需求明确、技术成熟、变更很少、风险可控。强调按计划执行。 一次性交付、需求固定
迭代型 (Iterative) 需求不明确、复杂度高,需要通过反复修改来优化产品。旨在通过重复循环来改进产品质量。 一次性交付、逐步求精
增量型 (Incremental) 客户急需看到部分功能,或希望尽早投入市场。通过分批次交付可用的子系统来满足需求。 分批交付、速度优先
敏捷型 (Agile) 需求频繁变更、环境不确定性高、需要快速响应变化。结合了迭代和增量,持续且频繁地交付价值。 频繁交付、拥抱变更