软件过程
软件过程与管理知识回顾
一、概论
1. 软件工程的三要素。
方法、工具和过程。
方法:为软件开发提供了“如何做”的技术。方法覆盖面很广,包括沟通,需求分析、设计建模、程序构造、测试和技术支持。
工具:提供了自动的或半自动的软件支撑环境。
过程:支持软件生命周期的所有活动
是工作产品构建时所执行的一系列活动、动作和任务的集合。是将方法和工具结合起来,达到合理、及时地开发软件过程的方法。过程定义了方法使用的顺序、要求交付的文档资料、以及项目各个阶段的里程碑,但过程不是严格规定,而是一种可适应的调整方法。过程还定义了若干框架活动,过程框架包含一些适用于整个软件过程的普适应活动。
2. 软件过程的定义。
软件过程是用于软件开发及维护的一系列活动,方法及实践
3. 常见的软件过程分类。常见的软件过程。
用下面的五大类,三大类了解
(1)工程过程(Engineering Process,ENG)。软件系统、产品的定义、设计、实现以及维护的过程。
(2)支持过程(Support Process,SUP)。在整个软件生命周期中可能随时被任何其他过程所采用的、起辅助作用的过程。
(3)管理过程(Management Process,MAN)。在整个生命周期中为工程过程、支持过程和客户—供应商过程的实践活动提供指导、跟踪和监控的过程。
(4)组织过程(Organization Process,ORG)。那些用于建立组织商业目标和定义整个组织内部培训、开发活动和资源使用等规则的过程,并有助于组织在实施项目时更好、更快地实现预定的开发任务和商业目标。
(5)客户—供应商过程(Customer-supplier Process,CUS)。那些直接影响到客户、对开发的支持、向客户交付软件以及软件正确操作与使用的过程。
二、软件质量管理
1. 软件质量的定义。
质量是产品或者服务满足明确或隐含需要能力的性能和特性的总体
软件质量是软件产品满足明确或隐含需要能力的性能和特性的总体。
2. ISO/IEC 9126的结构、六个一级质量特性、一级特性对应的二级特性(理解)。
功能性:功能性是指与软件所具有的各项功能及其规定性质有关的⼀组属性
可靠性:可靠性是指在规定运⾏条件下和规定时间周期内,与软件维护其性能级别的能⼒有关的⼀组属性
可⽤性:可⽤性是指根据规定⽤户或隐含⽤户的评估所做出的关于与使⽤软件所需要的努⼒程度有关的⼀组属性。
效率:效率是指在规定条件下,与软件性能级别和所使⽤资源总量之间的关系有关的⼀组属性
可维护性:可维护性是指与软件进⾏修改的难易程度有关的⼀组属性。
可移植性:可移植性是指与⼀个软件从⼀个环境转移到另⼀个环境运⾏的能⼒有关的⼀组属性
3. 朱兰质量管理三部曲。
质量计划(Quality Plan):确定项目应达到的质量标准,以及如何满足质量标准的计划安排和方法·
质量保证:确保项目达到有关标准,而开展的有计划﹑有组织的工作活动。
质量控制:是确定项目结果与质量标准是否相符,并及时纠正产品缺陷的过程。
三、软件项目管理
1. 基本概念:项目;项目管理;项目管理的五大过程组;项目管理的十大知识领域。
项目:项目是为完成某一独特的产品﹑服务或成果所做的一次性努力。
项目管理:就是在项目活动中运用相关知识,技能,工具和技术满足项目的要求
项目管理的五大过程组:
启动过程组:项目开始于此。
计划过程组:万事始于计划。
执行过程组:按照计划做,结果就会好。
控制过程组:左手计划,右手实际,解决发现的偏差。
收尾过程组:任何项目都需要收尾。
项目管理的十大知识领域:
项目集成管理 项目范围管理 项目时间管理 项目成本管理 项目质量管理
项目人力资源管理 项目沟通管理 项目风险管理 项目采购管理
项目利益相关者管理
2. 可行性分析:净现值的优点。
1.考虑了货币的时间价值(主要有限)增强了投资经济性的评价 2、考虑了投资风险,风险大则采用高折现率,风险小则采用低折现率。3、净现值对现金流量进行了合理折现
3. 识别软件项目的活动:WBS。
工作分解结构(WorkBreakdownStructureWBS):以可交付成果为导向对项目要素进行的分组,它归纳和定义了项目的整个工作范围每下降一层代表对项目工作的更详细定义
4. 软件工作量估计方法:常见的软件工作量估计方法,记住名称,并理解每个方法。
专家判断:对应用领域或开发环境有丰富知识的人,对执行一项任务所需的工作量做出估计
类比估计
由底向上估计
自顶向下估计
Albrecht功能点
Mark II 功能点
COSMIC功能点
COCOMO II:参数化的生产率模型
5. 软件项目的进度安排:甘特图、关键路径法(大题)、关键链法、PERT技术。(关键路径法必须全面理解掌握,只需要掌握活动节点,活动箭头不需掌握;后两种方法了解,能够了解计算步骤)
(1) http://www.doc88.com/p-5763050345476.html
(2) https://wenku.baidu.com/view/6368fe9e51e79b8968022620.html
(3) http://www.cnitpm.com/pm/5933.html
总缓冲期:LS - ES (LF - EF),
分为空闲(free)缓冲期和干预(interfering)缓冲期
空闲缓冲期:一个活动最早的完成日期 — 后续活动最早的开始日期
干预缓冲期:总缓冲期 — 空闲缓冲期
都取正值
PERT技术的步骤:
- 估计每个活动的最可能的时间,乐观的时间,悲观的时间,计算活动的期望周期与标准偏差;
- 正向遍历得到期望达到事件的日期;
- 满足目标的可能性。
关键链法的步骤:
1紧前关系,得到的最长路径---关键路径
2考虑紧前关系和资源冲突,得到关键链(关键链决定了项目工期)
3加入项目缓冲和汇入缓冲;项目缓冲:放在关键链后面;汇入缓冲:放在非关键链与关键链的交汇处
4砍掉所有项目的一半计算缓冲大小
6. 软件项目的资源管理:资源定义,资源分配直方图。
资源是执行项目所需要的任何项和人。
7. 软件项目的风险管理:风险的定义,风险管理的框架,风险处理的方法。
风险:一个不确定的事件或者情况,若其一旦发生,会对项目的目标,例如,范围、进度、成本和质量,产生积极或消极的影响。
风险管理的框架:风险的识别 风险的分析和优先级排序 风险的策划 风险的监督(头脑风暴
风险的处理方法:接受风险规避风险降低风险转移风险
8. 软件项目的监督和控制:挣值分析(大题)。
(1) https://wenku.baidu.com/view/7bcf90280066f5335a81211b.html
(2) https://blog.csdn.net/pmpljp/article/details/19299077
计划价值(已计划工作的预测成本) PV
挣值(已执行工作的预测成本) -EV
实际成本(已执行工作的实际成本) AC
进度偏差(已完成的工作值与计划的工作值的差)SV
成本偏差(已完成工作的预算成本和实际成本的偏差) CV
完成时间的估计值(按照当前进度项目的完成时间估计)---TEAC = SAC / SPI (SAC, 项目的计划周期)-
项目的成本预算(按照当前的进度,项目的总支出的估计)--- EAC = BAC / CPI (BAC, 计划的项目预算)-
进度性能指标(Schedule Performance Index, SPI)大于1及比预期好
成本性能指标(Cost Performance Index, CPI)大于1及比预期好
9. 软件项目的配置管理:配置管理的任务,配置项。
软件配置管理(Software Configuration Management, SCM)是指一套管理软件开发和维护过程中所产生的各种中间软件产品的方法和规则。它是控制软件系统演变的学科。
项目配置管理的任务:
标志变更
控制变更
确保变更正确实现
向受变更影响的组织和个人报告变更
配置项:
软件配置管理的对象,一个软件配置项是项目中一个特定的、可文档化的工作产品集
- 常见的软件配置项:需求规格说明书、设计规格说明书、源代码、测试计划、测试用例、用户手册。
- 构造软件的工具和软件赖以运行的环境也常常列入配置管理的范畴。