进度管理
进度管理就是采用科学的方法,确定进度目标,编制进度计划和资源供应计划,进行进度控制,在与质量、成本目标协调的基础上,实现工期目标。
具体来说,包括以下过程:
(1) 活动定义:确定完成项目各项可交付成果而需要开展的具体活动
(2) 活动排序:识别和记录各项活动之间的先后关系和逻辑关系
(3) 活动资源估算:估算完成各项活动所需要的资源类型和效益
(4) 活动历时估算:估算完成各项活动所需要的具体时间
(5) 进度计划编制:分析活动顺序、活动持续时间、资源要求和进度制约因素制订项目进度计划
(6) 进度控制:根据进度计划开展项目活动,如果发现偏差,则分析原因或进行调整
进行活动资源估算的方法主要有专家判断法、替换方案的确定、公开的估算数据、估算软件和自下而上的估算
(1) 专家判断法。专家判断法通常是由项目管理专家根据以往类似项目经的验和对本项目的判断,经过周密思考,进行合理预测,从而估算出项目资源。
(2) 替换方案的确定。资源估算是为了给项目预算明确空间,为早期的资源筹备提供数据,如果某项活动存在替代方案,或提供的资源有替代支持可能,则需要明确声明。
(3) 公开的估算数据。有些公司会定期地公开一些生产率或人工费率数据,其中包括很多国家和地区的劳动力交易、材料和设备信息
(4) 估算软件。依靠软件的强大功能,可以定义资源可用性、费率,以及不同的资源日历。
(5) 自下而上的估算。把复杂的活动分解为更小的工作,以便于资源估算。将每项工作所需要的资源估算出来,然后汇总即是整个活动所需要的资源数量。
进度管理模型
COCOMO模型
COCOMO模型:常见的软件规模估算方法。常用的代码行分析方法作为其中一种度量估计单位,以代码行数估算出每个程序员工作量,累加得软件成本。模型按其详细程度可以分为三级:
(1) 基本COCOMO模型是一个静态单变量模型,它用一个以已估算出来的原代码行数 (LOC) 为自变量的经验画数计算软件开发工作量。
(2) 中间COCOMO模型在基本COCOMO模型的基础上,再用涉及产品、硬件人员、项目等方面的影响因素调整工作量的估算。
(3) 详细COCOMO模型包括中间COCOMO模型的所有特性,将软件系统模型分为系统、子系统和模块3个层次,更进一步考虑了软件工程中每一步骤(如分析、设计)的影响
COCOMOⅡ模型
COCOMOⅡ模型: COCOMO的升级,也是以软件规模作为成本的主要固素考虑多个成本驱动因子。该方法包括三个阶段性模型,即应用组装模型、早期设计阶段模型和体系结构阶段模型。包含三种不同规模估算选择: 对象点、功能点和代码行
进度安排的常用图形描述方法有 Gantt 图 (甘特图)和项目计划评审技术(Program Evaluation& Review Technique,PERT)图
关键路径法
关键路径:是项目的最短工期,但却是从开始到结束时间最长的路径。进度网络图中可能有多条关键路径,因为活动会变化,因此关键路径也在不断变化中
关键活动:关键路径上的活动,最早开始时间-最晚开始时间。通常,每个节点的活动会有如下几个时间:
(1) 最早开始时间(ES),某项活动能够开始的最早时间。
(2) 最早结束时间(EF),某项活动能够完成的最早时间。EF=ES+工期
(3) 最迟结束时间(LF)。为了使项目按时完成,某项活动必须完成的最迟时间
(4) 最迟开始时间(LS)。为了使项目按时完成,某项活动必须开始的最迟时间。LS-LF-工期
这几个时间通常作为每个节点的组成部分,如图所示
顺推:最早开始ES=所有前置活动最早完成EF的最大值;最早完成EF=最早开始ES+持续时间
逆推:最晚完成LF=所有后续活动最晚开始LS的最小值;最晚开始LS=最晚完成LS-持续事件
总浮动时间:在不延误项目完工时间且不违反进度制约因素的前提下,活动可以从最早开始时间推迟或拖延的时间量,就是该活动的进度灵活性。正常情况下,关键活动的总浮动时间为零
总浮动时间=最迟开始LS-最早开始ES 或 最迟完成LF - 最早完成EF 或 关键路径-非关键路径时长。
自由浮动时间:是指在不延误任何紧后活动的最早开始时间且不违反进度制约因素的前提下,活动可以从最早开始时间推迟或拖延的时间量
自由浮动时间=紧后活动最早开始时间的最小值-本活动的最早完成时间
质量管理
质量是软件产品特性的综合,表示软件产品满足明确(基本需求)或隐含(期望需求)要求的能力。质量管理是指确定质量方针、目标和职责,并通过质量体系中的质量计划、质量控制、质量保证和质量改进来使其实现的所有管理职能的全部活动;
主要包括以下过程:
(1) 质量规划:识别项目及其产品的质量要求和标准,并书面描述项目将如何达到这些要求和标准的过程。
(2) 质量保证:一般是每隔一定时间(例如,每个阶段末)进行的,主要通过系统的质量审计(软件评审)和过程分析来保证项目的质量。
(3)质量控制:实时监控项目的具体结果,以判断它们是否符合相关质量标准,制订有效方案,以消除产生质量问题的原因
信息技术 软件产品评价 质量特性及其使用指南 GB/T 16260-2002
McCal质量模型
软件评审
质量两个必要条件:设计的规格说明书符合用户标准,称为设计质量
程序按照设计规格说明书所规定的情况正确执行,称为程序质量
软件容错技术
软件容错技术:容错就是软件遇到错误的处理能力,实现容错的手段主要是元余,包括下面四种冗余技术:
结构冗余:分为静态、动态、混合冗余三种,当错误发生时对错误进行备份处理
信息冗余:为检错和纠错在数据中加上一段额外的信息,例如校验码原理
时间冗余:遇到错误时重复执行,例如回滚,重复执行还有错,则转入错误处理逻辑。
冗余附加技术:是指为实现结构、信息和时间冗余技术所需的资源和技术,包括程序、指令、数据、存放和调动它们的空间和通道等。在屏蔽硬件错误的容错技术中
【例题】软件质量保证是软件项目控制的重要手段,( )是软件质量保证的主要活动之一、
A、风险评估 B、软件评审 C、需求分析 D、架构设计
答案: B
解析:软件质量保证是软件质量管理的重要组成部分。软件质量保证主要是从软件产品的过程规范性角度来保证软件的品质。其主要活动包括: 质量审计(包括软件评审))和过程分析
【例题】ISO/IEC软件质量模型中,易使用性是指与使用所需的努力由一组规定或隐含的用户对这样使用所作的个别评价有关的一组属性,其易使用性的子特性不包括( )
A、易理解性 B、易学性 C、易分析性 D、易操作性
答案:C
解析:纯记忆,也可以从易使用性的特点去分析,应该是软件容易使用、理解、操作等,针对用户层面的,不会涉及到是否易分析设计。
风险管理
风险管理就是要对项目风险进行认真的分析和科学的管理,这样,是能够避开不利条件、少受损失、取得预期的结果并实现项目目标的,能够争取避免风险的发生或尽量减小风险发生后的影响。但是,完全避开或消除风险,或者只享受权益而不承担风险是不可能的。
风险管理计划编制:如何安排与实施项目的风险管理,制定下列各步的计划
风险识别:识别出项目中已知和可预测的风险,确定风险的来源、产生的条件、描述风险的特征以及哪些项目可以产生风险,形成一个风险列表。
风险定性分析: 对已经识别的风险进行排序,确定风险可能性与影响、确定风险优先级、确定风险类型
风险定量分析: 进一步了解风险发生的可能性具体由多大,后果具体由多严重。包括灵敏度分析、期望货币价值分析、决策树分析、蒙特卡罗模拟。
风险应对计划编制:对每一个识别出来的风险来分别制定应对措施,这些措施组成的文档称为风险应对计划。包括消极风险(避免策略、转移策略、减轻策略);积极风险(开拓、分享、强大)
风险监控:监控风险计划的执行,检测残余风险,识别新的风险,保证风险计划的执行,并评价这些计划对减少风险的有效性。
项目风险:作用于项目上的不确定的事件或条件,既可能产生威胁,也可能带来机会。
- 通过积极和合理的规划,超过90%的风险都可以进行提前应对和管理
- 风险应该尽早识别出来,高层次风险应记录在章程里
- 应由对风险最有控制力的一方承担相应的风险。
- 承担风险程度与所得回报相匹配原则,承担的风险要有上限
风险的属性
(1) 随机性:风险事件发生及其后果都具有偶然性(双重偶然),遵循一定的统计规律。
(2) 相对性:风险是相对项目活动主体而言的。承受力不同,影响不同。风险承受力影响因素:收益大小(收益越大,越愿意承担风险);投入大小(投入越大,承受能力越小);主体的地位和资源(级别高的人能承担较大的风险)
(3) 风险的可变性:条件变化,会引起风险变化。包括性质、后果的变化,以
及出现新风险
风险的分类
按照后果的不同,风险可划分为纯粹风险(无任何收益)和投机风险(可能
带来收益)
按风险来源划分,自然风险(天灾)和人为风险(人的活动,又可分为行为风险、经济风险、技术风险、政治和组织风险等)
按是否可管理划分,可管理(如内部多数风险)和不可管理(如外部政策)也要看主体管理水平
按影响范围划分,局部风险(非关键路径活动延误)和总体风险(关键路径活动延误)
按后果承担者划分:业主、政府、承包商、投资方、设计单位、监理单位保险公司等。
按可预测性划分:已知风险(已知的进度风险)、可预测风险(可能服务器故障)、不可预测风险(地震、洪水、政策变化等)
在信息系统项目中,从宏观上来看,风险可以分为项目风险、技术风险和商业风险
项目风险是指潜在的预算、进度、个人(包括人员和组织)、资源、用户和需求方面的问题,以及它们对项目的影响。项目复杂性、规模和结构的不确定性也构成项目的(估算)风险因素。项目风险威胁到项目计划,一旦项目风险成为现实,可能会拖延项目进度,增加项目的成本
技术风险是指潜在的设计、实现、接口、测试和维护方面的问题,此外,规格说明的多义性、技术上的不确定性、技术陈旧、最新技术 (不成熟)也是风险因素。技术风险威胁到待开发系统的质量和预定的交付时间。如果技术风险成为现实,开发工作可能会变得很困难或根本不可能
商业风险威胁到待开发系统的生存能力,主要有以下5种不同的商业风险:
(1) 市场风险。开发的系统虽然很优秀但不是市场真正所想要的。
(2)策略风险。开发的系统不再符合企业的信息系统战略
(3)销售风险。开发了销售部门不清楚如何推销的系统
(4) 管理风险。由于重点转移或人员变动而失去上级管理部门的支持
(5) 预算风险。开发过程没有得到预算或人员的保证。
【例题】以下关于软件风险的叙述中,不正确的是( )
A、风险是可能发生的事件
B、如果发生风险,风险的本质、范围和时间可能会影响风险所产生的后果
C、如果风险可以预测,可以避免其发生
D、可以对风险进行控制
答案:C
【例题】以下叙述中,( )不是一个风险
A.由另一个小组开发的子系统可能推迟交付,导致系统不能按时交付客户
B.客户不清楚想要开发什么样的软件,因此开发小组开发原型帮助其确定需求
C.开发团队可能没有正确理解客户的需求
D.开发团队核心成员可能在系统开发过程中离职
答案:B