当前位置: 首页 > news >正文

【软考架构】软件工程:软件项目管理

软件项目管理

项目管理概述

软件项目管理的提出源于20世纪70年代中期的美国:美国国防部研究发现,70%的软件开发项目问题(如延期、超支、质量不达标)源于管理不善而非技术,因此软件开发领域开始重视管理环节。但到20世纪90年代中期,项目管理不善的问题仍普遍存在。

其特殊性体现在两点:

  • 软件是纯知识产品,开发进度、质量、生产效率难以估计和保证;
  • 软件系统复杂性高,开发过程中风险难以预见和控制。

软件项目管理的对象是软件工程项目,覆盖整个软件工程过程。核心是在技术工作开始前就对项目的工作范围、风险、资源(人、软硬件)、任务、里程碑、成本、进度等进行预先计划,并在整个软件生命周期中持续执行,直至项目结束。

管理目标是确保项目按预定成本、进度、质量完成,核心是对人员(People)、产品(Product)、过程(Process)、项目(Project) 四大要素的分析与管理。后续将围绕进度、配置、质量和风险管理展开介绍。

软件进度管理

进度管理是为确保项目按期完成的管理过程,核心是对活动的计划与控制,包括6个环节:活动定义、活动排序、活动资源估计、活动历时估计、制定进度计划、进度控制。

  1. 工作分解结构(WBS)
    软件项目因复杂庞大,需层层分解为可管理的小任务,即“项目→任务→工作→日常活动”。WBS是按可交付成果导向对项目要素的分组,每下降一层代表更详细的工作定义,是制定进度计划、资源需求、成本预算等的基础。
    在这里插入图片描述

    • 工作包:WBS树形结构最底层,是最低层次的可交付成果,由唯一主体负责。
    • 分解方式:按产品物理结构、功能、实施过程、实施单位、目标等分解。
    • 基本要求
      • 工作包需可控、可管理,不过于复杂;
      • 分解层次不超过6层;
      • 每个工作包有明确交付成果;
      • 每个任务有明确定义的完成标准;
      • 有利于责任分配。
  2. 任务活动图
    工作分解后需明确活动的前驱(开始前必须发生的事件)、持续时间、必须完成日期、里程碑等,以确定活动间的先后顺序,形成任务活动图。它是进度管理、成本管理的基础,常用甘特图展示和管理。

软件配置管理(SCM)

SCM是标识、组织和控制软件修改的技术,应用于整个软件工程过程。其目标是管理变更(标识、控制、确保正确实现、报告变更),以减少错误、提高生产效率。核心内容包括:

  1. 版本控制
    对软件开发中程序代码、配置文件、文档等的变更进行管理,核心功能是:

    • 追踪变更:记录“何时、何人、修改了什么”,每次变更后版本号递增;
    • 支持并行开发:解决多人协同的版本同步、通信问题,通过分支与合并处理不同版本的Bug修正。
  2. 变更控制
    目的不是阻止变更,而是确保变更有序进行。引发变更的因素包括:

    • 外部变更(如客户修改需求):最难处理,因IT项目需求变更概率高,后期变更工作量大;
    • 内部变更(如为修复测试错误修改源码或设计)。
软件质量管理

软件质量指软件与明确/隐含需求的一致程度,具体表现为符合功能性能需求、开发标准及隐含特征的程度。影响因素可分为三组:产品运行、产品修改、产品转移。
在这里插入图片描述

  1. 软件质量保证(Software Quality Assurance,SQA)
    建立有计划、系统的方法,确保项目遵循标准、步骤和实践,核心是“过程可见”,通过评审和审计验证合规性。

    • 目标
      • 事前预防缺陷(而非事后检查);
      • 尽早捕获缺陷,避免扩散;
      • 作用于过程而非最终产品;
      • 贯穿所有活动。
    • 主要任务
      • 审计与评审:审计工作产品、工具、设备是否符合标准;评审活动是否与预定过程一致;
      • 报告:记录结果并发布,需保证SQA与高层直接沟通、向工程组发布、向关心质量者发布;
      • 处理不符合问题:及时向相关人员及高层反映问题。
  2. 软件质量认证
    检验企业整体质量水平,评估其设计、开发、生产符合质量要求软件的能力,主要标准包括:

    • ISO 9000:国际标准化组织制定的系列标准,其中ISO 9001:1994用于证实组织满足顾客及法规要求的能力,覆盖设计、开发等20项质量要求;
    • CMM(能力成熟度模型):卡内基梅隆大学软件工程研究所研制,是软件生产过程及企业成熟度等级认证标准,我国企业多采用。
软件风险管理

风险管理是软件项目管理的重要内容,目标是预防风险(风险指可能影响预算、进度的问题,若发生可能导致延期、超支甚至项目失败)。核心流程是:辨识风险→评估概率与影响→制定管理规划。

主要风险管理体系包括:

  • Boehm体系:分为风险估计(辨识、分析、排序)和风险控制(计划、处理、监督),偏重理论;
  • Charette体系:分为风险分析(辨识、估计、评价)和风险管理(计划、控制、监督),与Boehm体系接近,偏重理论;
  • CMU-SEI体系:基于实践的全面管理体系,包括SRE、CRM(持续风险管理)、TRM(团队风险管理),与CMM配合,将需求方纳入风险管理要素。
http://www.lryc.cn/news/626452.html

相关文章:

  • 氢元素:宇宙基石与未来能源之钥的多维探索
  • HTML <meta name=“color-scheme“>:自动适配系统深色 / 浅色模式
  • 简笔成画:让AI绘画变得简单而有趣
  • 基于隐函数定理的偏导数计算及其C++实现
  • Vue3 学习教程,从入门到精通,基于 Vue 3 + Element Plus + ECharts + JavaScript 开发图书销售网站(42)
  • K8S-Ingress资源对象
  • Linux-文本搜索工具grep
  • Nginx 负载均衡和缓存配置
  • 栈的概念(韦东山学习笔记)
  • java17学习笔记-switch总结
  • 服务器硬盘进行分区和挂载
  • 《CDN加速的安全隐患与解决办法:如何构建更安全的网络加速体系》
  • CSDN技术探讨:GEO(生成式引擎优化)如何助力品牌在AI搜索中脱颖而出
  • 有向图(Directed Graph)和有向无环图(Directed Acyclic Graph,DAG)代码实践
  • mRNA 的修饰方式有哪些?它们分别作用于哪些位置?
  • strncpy 函数使用及其模拟实现
  • 医疗AI与医院数据仓库的智能化升级:异构采集、精准评估与高效交互的融合方向(上)
  • Model Context Protocol (MCP) - 尝试创建和使用一下MCP Client
  • 软件测试:如何利用Burp Suite进行高效WEB安全测试
  • 制造业原料仓储混乱?WMS 系统实现物料精准溯源,生产更顺畅_
  • Java 14 新特性及具体应用
  • Spring Boot Controller 使用 @RequestBody + @ModelAttribute 接收请求
  • 应急响应-模拟服务器挂马后的应急相关操作
  • K8S-Pod资源对象
  • Spring Retry实战指南_让你的应用更具韧性
  • 服务器内存使用buff/cache的原理
  • k8s笔记01
  • 自建开发工具IDE(一)之拖找排版—仙盟创梦IDE
  • 跨域问题解决方法
  • 三分钟速通SSH登录