软件过程与管理知识点详解
软件过程与管理知识点详解
一、概论
1. 软件工程的三要素
- 方法:完成软件开发的各项任务的技术方法
- 工具:为方法的运用提供自动或半自动的软件支撑环境
- 过程:为获得高质量软件所需完成的一系列任务的框架
2. 软件过程的定义
软件过程是指在软件工具的支持下,所进行的一系列软件工程活动,包括软件开发、维护和演化的方法、实践和规程。
3. 常见的软件过程分类
- 预测型过程:如瀑布模型
- 迭代型过程:如RUP
- 增量型过程:如MSF
- 敏捷型过程:如Scrum、XP
- 混合型过程:结合多种方法
二、软件质量管理
1. 软件质量的定义
软件质量是指软件产品满足明确或隐含需求的能力有关的特征和特性的总和。
2. ISO/IEC 25010:2023 软件质量模型
九个一级质量特性:
1. 功能适用性
2. 性能效率
3. 兼容性
4. 易用性
5. 可靠性
6. 安全性
7. 可维护性
8. 可移植性
9. 隐私性
3. 朱兰质量管理三部曲
1. 质量计划:确定质量目标
2. 质量控制:评估实际质量绩效
3. 质量改进:采取措施提高质量
三、软件项目管理
1. 基本概念
- 项目:为创造独特产品、服务或成果而进行的临时性工作
- 项目管理:应用知识、技能、工具和技术于项目活动,以满足项目要求
- 五大过程组:启动、规划、执行、监控、收尾
- 十大知识领域:整合、范围、时间、成本、质量、人力资源、沟通、风险、采购、干系人管理
2. 净现值的优点
- 考虑了货币的时间价值
- 包含了项目的全部现金流量
- 便于不同规模项目的比较
3. WBS(工作分解结构)
将项目可交付成果和项目工作分解为更小的、更易于管理的组成部分的过程。
4. 软件工作量估计方法
- 专家判断法
- 类比估算法
- 参数估算法(如COCOMO)
- 三点估算法
- 功能点分析法(IFPUG)
IFPUG功能点方法五大类功能:
1. 外部输入
2. 外部输出
3. 外部查询
4. 内部逻辑文件
5. 外部接口文件
5. 软件项目的进度安排方法
- 甘特图:条形图显示项目进度
- 关键路径法(CPM):确定项目最短完成时间的关键路径
- 关键链法(CCM):考虑资源约束的关键路径法
- PERT技术:使用三种时间估计(乐观、悲观、最可能)
6. 资源管理
- 资源定义:完成项目所需的人员、设备、材料等
- 资源分配方式:平衡分配、关键链分配、资源平滑等
7. 风险管理
- 风险定义:可能影响项目目标的不确定事件
- 风险管理框架:风险识别、分析、应对计划、监控
- 风险处理方法:规避、转移、减轻、接受
8. 增值分析(EVA)
通过比较计划价值(PV)、实际成本(AC)和挣值(EV)来评估项目绩效和进展的技术。
9. 配置管理
- 任务:识别、控制、状态记录、审计配置项
- 配置项:软件产品中需要单独管理和控制的元素(如源代码、文档等)
四、经典的软件过程管理
1. CMM/CMMI
- CMM关键过程域:如需求管理、项目计划、项目跟踪等
- CMMI两种表示方法:阶段式(类似CMM)、连续式(按过程域能力)
2. PSP(个人软件过程)
- 两种日志:时间日志、缺陷日志
- 评审比测试有效的原因:早期发现缺陷成本更低
- 四个设计模板:操作规格、功能规格、状态规格、逻辑规格
3. 软件过程模型
- 瀑布模型:线性顺序,阶段明确
- 原型模型:快速原型,用户反馈
- 增量模型:分批次交付
- 螺旋模型:风险驱动,迭代
- 形式化方法:数学基础
- 基于组件:复用已有组件
4. MSF(微软解决方案框架)
- 六个角色:产品管理、程序管理、开发、测试、用户体验、发布管理
- 五个阶段:构想、计划、开发、稳定、部署
5. RUP(统一过程)
- 九个核心工作流:业务建模、需求、分析设计、实现、测试、部署、配置管理、项目管理、环境
- 四个阶段:初始、细化、构造、移交
- 六大经验:迭代开发、需求管理、组件架构、可视化建模、质量验证、变更控制
五、敏捷软件开发
1. 敏捷宣言
- 个体和互动高于流程和工具
- 工作的软件高于详尽的文档
- 客户合作高于合同谈判
- 响应变化高于遵循计划
2. 常见敏捷过程
- Scrum:
- 角色:产品负责人、Scrum Master、开发团队
- 工件:产品Backlog、Sprint Backlog、增量
- 事件:Sprint计划会、每日站会、评审会、回顾会
- 极限编程(XP):
- 实践:结对编程、测试驱动开发、持续集成、重构、简单设计

浙公网安备 33010602011771号