软件项目管理考试二十二条项目及其特征项目定义项目是为了创造一个唯一的产品或提供一个唯一的服务而进行的一个临时性的努力特征有明确的目标项目之间的活动具有相关性限定的周期有独特性资源成本的约束性项目的不确定性结果的不可逆转性软件项目及其组成要素简单的说项目就是在既定的资源和要求的约束下为实现某种目的而相互联系的一次性工作任务软件项目是一种特殊的项目软件项目特殊性逻辑实体相互作用的系统变更渐近明细软件项目要素组成软件开发过程软件开发的结果软件开发赖以生存的资源以及软件项目的特定委托人或者说是客户项目管理的定义主要内容项目管理定义项目管理是一系列的伴随着项目的进行而进行的目的是为了确保项目能够达到期望的结果的一系列管理行为软件开发项目管理的必要性软件生产力的改进是决定企业能否获得并长久保持竞争优势的一个决定性的因素项目管理是需要改进的第一环节软件开发项目管理的定义软件开发项目管理是以最合理最有效最经济的手段保证软件开发项目的成功完成项目管理的质量与软件产品的质量有着直接的对应关系软件项目管理的特征软件项目是一种逻辑实体不是具体的物理实体它具有抽象性这使得软件项目与工程实体有很大的区别软件的生产与硬件不同开发过程没有明显的制造过程也不存在重复生产过程软件没有硬件的机械磨损和老化问题然而软件也存在退化问题在软件生存期中软件环境的变化将导致软件失效率的提高软件开发至今没有摆脱手工的开发模式软件产品基本上是定制的做不到利用现有的软件组件组装成所需要的软件软件本身是复杂的它的复杂性源于应用领域实际问题的复杂性和应用软件技术的复杂性软件的成本相当高软件开发需要投入大量的复杂的高强度的脑力劳动因此成本比较高软件开发和软件项目管理工作涉及到很多社会因素要受到机构政治文化决策体系和管理方式的限制项目管理的知识体系合同管理的基本概念对采购对象的验证和检验过程违约事件处理过程软件项目生存期模型的定义及特点定义软件开发的一种框架策略和路线说明了软件开发活动及过程特征描述了开发的主要阶段定义了每一个阶段要完成的主要过程和活动规范了每一个阶段的输入和输出提供了一个框架可以将必要的活动映射到该框架中软件需求的定义及类型需求是指用户对软件的功能和性能的要求就是用户希望软件能做什么事情完成什么样的功能达到什么性能业务需求对系统产品高层次的目标要求用户需求用户使用产品必须要完成的任务功能需求定义软件开发人员必须完成的软件功能使得用户能完成他们的任务从而满足业务需求其他非功能需求必须遵守的标准规范合约界面要求当功能满足要求后问题最多往往就是界面需求性能要求约束条件开发人员在软件产品设计和构造上的限制质量特性包括可靠性健壮性可维护性高效性等系统需求软件往往只是一个大系统中的一个部件或子集因此系统对软件的需求和约束都应反映在软件的需求规格说明中需求管理的基本过程软件项目任务分解的定义类型及任务分解的过程软件项目任务分解是一个将一个项目分解为更多的工作细目或者子项目使项目变得更小更易管理更易操作最终得到任务分解结构的过程分为清单类型和表格类型分解的过程任务结构分解步骤确认并分解项目的组成要素确定分解标准确定分解是否详细确定项目交付成果验证分解的正确性软件项目规模成本估算的概念及方法概念对完成项目所需费用的估计和计划包括预测开发一个软件系统所需要的总工作量的过程是一种量化的结果可以有一些误差成本估算不同于项目定价贯穿于软件的生存周期方法代码行功能点对象点代码行从软件程序量的角度定义项目规模要求功能分解足够详细的有一定的经验数据类比和经验方法与具体的编程语言有关功能点用系统的功能数量来测量其规模与实现产品所使用的语言和技术没有关系的两个评估内部基本功能外部基本功能加权和量化未调整功能点计数技术复杂度因子对象点对象点是基于对象的软件产品规模估算著名的方法类比自顶向下估算法从项目的整体出发进行类推即估算人员根据以往的完成类似项目所消耗的总成本或工作量来推算将要开发的软件的总成本或工作量然后按比例将它分配到各个开发任务单元中是一种自上而下的估算形式自下而上估算法利用任务分解结构图对各个具体工作包进行详细的成本估算然后将结果累加起来得出项目总成本参数法估算法一种使用项目特性参数建立数据模型来估算成本的方法是一种统计技术如回归分析和学习曲线参考历史信息根据实际情况对参数模型按适当比例调整模型可以简单也可以复杂很少有通用性专家估算法由多位专家进行成本估算一个专家可能会有偏见最好由多位专家进行估算取得多个估算值最后得出综合的估算值项目进度中的基本概念进度计划是对执行的活动和里程碑制定的工作计划日期表进度管理是为了确保项目按期完成所需要的管理过程项目进度时间管理包括的过程活动定义活动排序活动历时估计制定进度计划进度控制项目跟踪进度管理图示网络图甘特图里程碑图资源图甘特图里程碑图及资料图的概念及使用方法甘特图横道图显示基本的任务信息可以查看任务的工期开始时间和结束时间以及资源的信息只有时标没有活动的逻辑关系两种表示方法最直观里程碑图里程碑显示项目进展中的重大工作完成里程碑不同于活动活动是需要消耗资源的里程碑仅仅表示事件的标记资源图用来显示项目进展过程中资源的分配情况包括人力资源设备资源等软件质量的概念质量是满足要求的程度包括符合规定的要求和满足顾客的需求软件质量是软件满足明确说明或者隐含的需求的程度明确说明查询功能隐含说明查询速度质量管理的过程质量管理的对象过程的质量产品的质量质量管理的过程软件项目的质量计划软件质量保证软件质量控制配置管理的定义目标及其在软件开发中的作用定义记录软件产品的演化过程确保软件开发者在软件生命周期中的各个阶段都能得到精确的产品配置最终保证软件产品的完整性一致性追朔性可控性配置管理的主要功能版本管理变更管理其它配置的基本过程配置项标识跟踪配置管理环境建立基线变更管理基线审核配置状态统计配置管理计划什么是配置项及基线软件配置项也称为是项目需定义其受控于软件配置管理的款项每个项目的配置项也许会不同基线基线是软件文档或源码或其它产出物的一个稳定版本它是进一步开发的基础基线提供了软件生存期中各个开发阶段的一个特定点一个些配置项形成并通过审核即形成基线基线标志开发过程一个阶段的结束和里程碑基线修改需要执行正式的程序软件项目风险的概念类型及识别方法风险是损失发生的不确定性是对潜在的未来可能发生损害的一种度量预测角度已知风险可预测风险不可预测风险范围角度项目风险技术风险商业风险风险识别方法和工具德尔菲方法头脑风暴法情景分析法风险条目检查表面谈法软件项目团队的定义及管理过程软件项目团队团队是一定数量的个体成员组织的集合包括自己组织的人供应商分包商客户的人等为一个共同的目标工作协调一致愉快的合作最终开发出来高质量的产品管理过程项目经理的确定和任务项目组织形式的确定项目团队的建设沟通管理项目组织的形成项目组织是由一组个体成员为实现一个具体项目目标而的协同工作的队伍项目组织的根本使命是在项目经理的领导下群策群力为实现项目目标而努力工作软件项目集成管理的概念以整体思想为指导从全局角度出发确保各项工作有机协调配合进行消除管理的局部性平衡各个目标的冲突综合性全局性内外兼顾性项目跟踪控制的概念范围及标准项目跟踪控制保证项目能够按照预先设定的计划轨道行驶使项目不要偏离预定的发展进程跟踪控制是一个反馈过程需要在项目实施的全过程对项目进行跟踪控制范围项目范围监控项目成本监控项目进度监控项目资源监控项目质量监控项目风险监控标准在对项目进行跟踪控制时应该确定偏差的接受准则比如进度成本质量等计划与实际的偏差比例等基准计划是优化后并批准的计划它作为项目实施考核的依据需求范围控制标准进度控制标准成本控制标准质量控制标准