当前位置:文档之家› 软件过程与管理

软件过程与管理

风险的不确定性
风险的不利性
风险的可变性
风险的相对性
风险同利益的对称性
风险分类——参与者、技术、结构、任务
风险管理框架——
软件项目常见十大风险——
德尔菲法(Delphi method),是采用背对背的通信方式征询专家小组成员的预测意见,经过几轮征询,使专家小组的预测意见趋于集中,最后做出最终的预测
风险影响= (可能的危害)×(发生概率)
风险定义——
一个不确定的事件或者情况,若其一旦发生,会对项目的目标,例如,范围、进度、成本和质量,产生积极或消极的影响。
风险是未来可能发生的问题,而不是当前已经发生的事情
风险的产生一般是有原因的,例如,开发人员离职导致项目延期
风险的三要素——
事件
事件发生的概率
事件的影响
风险的基本性质——
风险的客观性
内部和外部质量(internal and external quality)
功能性,可靠性,有效性,可维护性,可移植性,和可使用性
使用质量(quality-in-use)
有效性,生产率,安全和满意度
有效性:软件产品在指定使用环境下,使用户准确、完整地获得规定目标的能力;
生产率:软件产品在指定使用环境下,使用户花费合适的与有效性相关的资源数量的能力;
项目庞大或复杂
项目管理(PM)就是在项目活动中运用相关知识,技能,工具和技术满足项目的要求。
项目管理的十大知识领域——
项目集成管理、项目范围管理、项目时间管理、项目成本管理、项目质量管理
项目人力资源管理、项目沟通管理、项目风险管理、项目采购管理、项目利益相关者管理
项目管理的五个过程组——启动、计划、过程、控制、收尾
软件产品目标的三要素:
软件工程:用工程化的思想来管理软件开发
软件过程管理是软件工程的方法之一
软件过程管理的思想:产品的质量取决于过程的质量,采用规范化的软件开发过程。
软件过程是用于软件开发及维护的一系列活动、方法及实践。
管理过程:分项目管理、质量管理、风险管理、子合同管理
工程过程是软件系统、产品的定义、设计、实现以及维护的过程。
开发过程:定义并开发软件产品的活动过程,包括需求分析、软件设计和编程等。
运行过程:在规定的环境中为其用户提供运行计算机系统服务的活动过程。
维护过程:提供维护软件产品服务的活动过程,也就是通过软件的修改、变更,使软件系统保持合适的运行状态,这一过程包括软件产品的移植和退役。
支持过程:文档编制、配置管理、质量保证、验证、确认、联合评审、审核、问题解决
安全性:软件产品在指定使用环境下,获得可接受的损害人类、商务、软件、财产或环境风险级别的能力;
满意度:软件产品在指定使用环境下,使用户满意的能力。
质量管理是指确定质量方针、目标和职责,并通过质量体系中的质量策划、控制、保证和改进来使其实现的全部活动。
软件质量管理三步曲
质量计划(Quality Plan):确定项目应达到的质量标准,以及如何满足质量标准的计划安排和方法。
项目不同阶段,职责,权限,交流方式以及资源分配
确定项目采用的控制手段,合适的验证手段和方法
确定和准备质量记录
试验设计——正交试验设计法、析因法
基准对照
质量计划方法质量成本分析——质量成本(Cost of Quality, CoQ)是为了达到产品或服务的质量而付出的所有努力的总成本,包括三部分:
预防成本:为防止将缺陷引入软件而进行的预防工作所消耗的费用。
评价成本:检查软件是否包含缺陷的工作所消耗的费用。
失效成本:修复缺陷工作所消耗的成本。
PAF(Prevention/ Appraisal/ Failure)成本模型
流程图方法项目概述
实施策略
项目组织
质量保证对象分析及选择
质量保证任务划分
实施计划
资源计划
记录的收集、维护与保存
挣值分析——
三个数值,两个偏差,两个性能比,两个预测
计划价值:又称之为已计划工作的预测成本,根据项目的计划进度与活动的挣值得到。
三个数值挣值:又称之为已执行工作的预测成本依赖于当前已完成活动与活动的挣值。
实际成本:已执行工作的实际成本,当前的实际支出。
进度偏差(Schedule Variance, SV)
最可能的时间:正常情况下所花的时间,m表示
乐观的时间:期望完成任务的最短时间,a表示
悲观的时间:最坏可能时间,b表示
期望周期:
te = (a + 4m + b) / 6
标准偏差:
s = (b - a) / 6
PERT技术的优点——
活动的标准差是风险的一种度量;
可以估计项目事件完成日期的概率
资源是执行项目所需要的任何项和人
业务案例的内容——
介绍和背景:描述项目所处的环境,标识要解决的问题或者要利用的机会。
提议的项目:提议项目的简单介绍。
市场:产品和服务的需求量,可能的竞争对手。
效益:尽可能地用经济效益来衡量
概括实施计划:项目是如何实施的,应该考虑到引起项目中断的事情。
成本:由实施计划所确定。成本,包括:1.开发成本2.安装成本3.运行成本
人月(per
软件工作量估计的具体方法——
专家判断
3.2类比估计
3.3由底向上
3.4自顶向下
3.5 Albrecht功能点
3.6 Mark II功能点
3.7 COSMIC全功能点
3.8 COCOMO II:参数化的生产率模型
IBM混合方法的五个层次——
层一:项目
层二:可交付物
层三:构件
层四:工作包
层五:任务
TEAC:按照当前进度项目的完成时间估计
两个预估
项目的成本预算:EAC = BAC / CPI (Budget At Completion, BAC,计划的项目预算)
软件工程是①将系统性的、规范化的、可定量的方法应用于软件的开发、运行和维护,即工程化应用到软件上;②对①中所述方法的研究。
软件工程以关注软件质量为目标,包括过程、方法和工具三个要素。
过程:支持软件生命周期的所有活动。
方法:为软件开发过程提供“如何做”的技术。
工具:为软件开发方法提供自动或半自动的软件支撑环境。
RUP 6大经验:迭代式开发、管理需求、使用基于构件的体系结构、可视化建模、验证软件质量、控制软件变更
软件质量是软件产品满足明确或隐含需要能力的性能和特性的总体。
1991年ISO发布的ISO/IEC 9126质量特性国际标准,软件质量度量模型由三层组成
软件质量特性
软件质量子特性
软件质量度量评价准则
ISO 9126-1:2001一级特性(10个):
质量保证(Quality Assurance, QA):确保项目达到有关标准,而开展的有计划、有组织的工作活动。
质量控制(Quality Control, QC):是确定项目结果与质量标准是否相符,并及时纠正产品缺陷的过程。
质量计划--------
项目应达到的质量目标和质量特性的要求
确定项目中的质量活动和质量控制程序
客户-供应商过程是内部直接影响到客户、外部直接影响开发、向客户交付软件以及软件正确操作与使用的过程,包括软件获得、客户需求管理、提供软件、操作软件以及提供客户服务等5个子过程。
软件过程管理:借鉴传统行业的管理方法对软件开发中的过程进行管理。
PDCA循环(戴明环)过程优化和改进的过程
朱兰质量三部曲
CMM是软件过程能力成熟度模型(Capacity Maturity Model,CMM)的简称,CMM描述一条从无序的、混乱的过程到成熟的、有纪律的过程的改进途径,描绘出软件组织如何增加对软件开发和维护的过程控制,如何向软件工程和管理的优秀文化演变等方面的指导。
资源、进度安排
风险计划
软件工作量估计
关键路径法(CMP):时间
程序评价评审技术(PERT):风险
关键链法(CCPM):资源
软件工作量的度量———
源代码行数(Source Line Of Code):SLOC
千行代码(Kilo Line Of Code):KLOC
功能点(Function Point):FP,实现方法无关
PSP是一个包括软件开发表格、指南和规程的结构化框架。
PSP的成熟度模型
团队软件过程(Team Software Process,TSP)是为开发软件产品的开发团队提供指导,团队人数一般为2-20人。
统一软件过程(RUP)概述:RUP(Rational Unified Process,统一软件开发过程,统一软件过程)是由IBM Rational提出的一个面向对象的软件工程的过程框架。RUP是UML的最佳实践。
SPI大于1表示完成的工作比计划的要好;小于1意味着工作的进度比计划的要慢
两个性能比
成本性能指标(Cost Performance Index, CPI): CPI = EV / AC
CPI大于1表示完成的工作比计划的要好;小于1意味着工作的耗费比预计的要大
完成时间的估计值:TEAC = SAC / SPI (Schedule At Completion, SAC,项目的计划周期)
CMMI全称是Capability Maturity Model Integration,即软件能力成熟度模型集成,是CMM的改进。CMMI有阶段式和连续式两种表示方法。
CMM与阶段式CMMI比较
连续的CMMI过程域
个人软件过程(Personal Software Process,PSP)是一种可用于控制、管理和改进个人工作方式的自我持续改进过程。
特点——复杂性、可变性、不可见性
项目是为完成某一独特的产品、服务或成果所做的一次性努力。
相关主题