概论
-
软件工程三要素
-
过程
-
方法
-
工具
-
-
软件过程的定义
软件过程是用于软件开发及维护的一系列活动、方法及实践。
-
常见软件过程分类(五大类)
-
客户-供应商过程:内部直接影响到客户、外部直接影响开发、向客户交付软件以及软件正确操作与使用的过程。
-
工程过程:软件系统、产品的定义、设计、实现以及维护的过程。
-
支持过程
-
管理过程:整个软件生命周期中为工程过程、支持过程和客户-供应商过程的实践活动提供指导、跟踪和监控的过程。
-
组织过程
-
-
常见软件过程(主要列举管理过程)
-
项目管理:计划、跟踪和协调项目执行及生产所需资源的管理过程。(主要关注时间、成本)
-
质量管理:对项目产品和服务的质量加以管理,从而获得最大的客户满意度。(主要关注质量)
-
风险管理:整个项目的生命周期中对风险不断的识别、诊断和分析,回避风险、降低风险或消除风险,并在项目以及组织层次上建立有效的风险管理机制。
-
子合同管理:选择合格的子合同商并对其进行管理的过程。
-
软件质量管理
软件质量
-
定义:软件质量是软件产品满足明确或隐含需要能力的性能和特性的总体。
ISO/IEC 9126
-
软件质量度量模型的组成:
-
软件质量特性
-
软件质量子特性
-
软件质量度量评价标准
-
-
六个一级质量特性
-
功能性
-
可靠性
-
易用性
-
效率
-
可维护性
-
可移植性
-
-
一级特性对应的二级特性(选择题)
朱兰质量管理三部曲
-
质量计划:确定项目应达到的质量标准,以及如何满足质量标准的计划安排和方法。
-
质量成本:为达到产品或服务质量而付出所有努力的总成本。
-
预防成本
-
评价成本
-
失效成本
-
-
-
质量保证:确保项目达到有关标准而开展的有计划、有组织的工作活动。
-
正规的质量评价:质量审计
-
总结性的质量评价:质量改进
-
-
质量控制:确定项目结果与质量标准是否相符,并及时纠正产品缺陷的过程。
-
静态方法:审计
-
动态方法:测试
-
软件项目管理
基本概念
-
项目:项目是为完成某一独特的产品、服务或成果所做的一次性努力。
-
项目管理:项目管理(PM)就是在项目活动中运用相关知识, 技能, 工具和技术满足项目的要求。
-
项目管理的五大过程组:启动、计划、执行、控制和收尾。
-
项目管理的十大知识领域:
-
项目集成管理
-
项目范围管理
-
项目时间管理
-
项目成本管理
-
项目质量管理
-
项目人力资源管理
-
项目沟通管理
-
项目风险管理
-
项目采购管理
-
项目相关利益者管理
-
可行性分析
-
可行性分析——净现值
-
定义:净现值是成本效益分析的有力工具之一。
-
优点:
-
适用性强,能基本满足项目年限相同的互斥投资方案决策。
-
能灵活地考虑投资风险。
-
-
识别软件项目的活动
-
WBS:WBS是面向可交付成果的对项目任务的分组,它组织并定义了整个项目范围。它是一个分级的树型结构,是对项目由粗到细的分解过程。
软件工作量估计方法
-
算法模型
-
专家判断
-
类比
-
自顶向下
-
自底向上
软件项目的进度安排
-
甘特图
-
缺点:无法描述任务的逻辑关系
-
-
关键路径法(CPM)
-
定义
-
关键路径:项目网络图中花费时间最长的活动路线叫做关键路径。
-
关键活动;组成关键路径的活动。
-
关键路径法的缺点:关键路径法中的活动周期是确定的,固定不变的,这与现实不太符合。
-
-
关键路径的特点:
-
关键路径上活动持续时间总和是项目的工期。
-
关键路径上任何一个活动的延迟都会导致整个项目完工时间延迟。
-
关键路径是相对的,也是变化的,非关键路径可能变为关键路径,关键路径也可能变为非关键路径。
-
-
计算
-
核心:正向求最早开始时间和最早结束时间,二者取大作为最早开始时间;反向求最晚开始时间和最晚结束时间,二者取小作为最晚结束时间。
-
$$
自由时差(空闲缓冲期)=后续活动的最早开始时间-当前活动的最早完成时间
$$$$
总时差(总缓冲期)=最晚完成时间-最早完成时间
$$$$
干预缓冲期=总缓冲期-空闲缓冲期
$$
-
-
-
PERT技术(工程评估评审技术)的步骤:
-
估计每个活动的最可能的时间,乐观的时间,悲观的时间,计算活动的期望周期与标准偏差;
-
正向遍历得到期望达到事件的日期;
-
满足目标的可能性。
-
-
关键链法(CCPM)步骤:
软件项目的资源管理
-
资源:资源是执行项目所需要的任何项和人。
-
资源分配直方图
软件项目的风险管理
-
风险的定义:一个不确定的事件或者情况,若其一旦发生,会对项目的目标,例如:进度、成本和质量,产生积极或消极的影响。
-
风险管理的框架
-
风险处理方法
软件项目的配置管理
-
配置管理的任务
-
-
控制变更
-
确保变更正确实现
-
向受变更影响的组织和个人报告变更
-
-
配置项:软件配置管理的对象,一个软件配置项是项目中一个特定的、可文档化的工作产品集。