资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,3,章 软件项目管理,内容:,项目管理的内容与职责,项目计划书的编写,人员组织管理,管理人员能力要求,软件配置管理,重点:,项目管理的内容与职责,项目计划书的编写,角色:信息系统项目管理师(项目经理),1,3.1,软件项目管理概述,1,、项目:,在一定的资源约束下完成的既定目标的,一次性任务,。,2,、项目来源类别:,自开发自使用项目,解决自己(组织内)业务中的问题,委托开发项目,使用单位和开发单位分离的专用系统,分包项目,整体中的一部分,用户不定项目,开发者自选,用户不定的通用系统,自创项目,开发者发现,,无需关心用户需要,因为用户不知道要什么,2,3.1,软件项目管理概述,3,、项目管理,项目管理就是围绕项目实施进行的一系列的活动。,项目管理的定义,项目管理是通过项目经理和项目组织机构运用系统理论和方法对项目及其资源进行计划、组织、协调、控制,旨在实现项目的特定目标的管理方法体系。,4,、管理对象(项目管理中的三要素) :目标、成本、进度,3,5,、软件项目管理的职责,制定计划:规定要完成的任务、要求、资源、人力、进度等;,建立组织:实施计划、保证任务的完成,需要建立分工明确的责任制机构;,配备人员:任用各种层次的技术人员和管理人员;,协调(追踪、指导):时刻协调和跟踪项目的进展情况,鼓励和动员各种人员完成所分配的任务;,控制(检验):对照计划和标准,监督和检验实施的情况。,4,1.,软件项目启动,进行可行性分析,明确项目的目标和范围,确定合理精确的成本分析,任务分解和可管理的进度安排,选择方案,组成项目组,召开项目启动会议,3.2,软件项目启动与计划,5,项目计划是用来指导组织、实施、协调和控制软件建设的重要文件。,项目计划目的:, 项目计划可作为客户与建设团队间解决冲突的依据。, 项目计划可使项目成员有明确的分工及工作目标。, 项目计划有助于项目成员之间的交流沟通。, 项目计划可作为对项目过程控制和工作考核的基准。,项目计划分类(内容):,进度计划,费用计划,人力计划, 质量保证计划, 风险管理计划,2.,制定计划,6,任务,工作量,周期,提交时间、进度,人员,组织、数量、素质,软件计划的影响因素,7,(,1),估算软件规模,1),代码行(,LOC,)技术,用代码行,(LOC),数表示软件开发规模十分自然、直观。,生产率:行,/,人月,基本进度,成本:元,/,人月,费用,总行数,规模、交付时间,人员组织,预先难以获得,2),功能点(,FP,)技术,功能点度量是涉及多种因素的间接度量方式。该方法用,6,个信息量的“加权和”,CT,和,14,个复杂性调节值,Fi(i,=114),。在系统分析初期就能估算出软件开发的规模。,FP=f(,信息量,复杂度,),8,功能点技术影响因素,信息量,x,权,用户输入数,x4,用户输出数,x5,用户查询数,x4,文件数,x7,界面数,x7,算法,x3,复杂度:,备份复原要求,数据通信,操作环境复杂度,安装复杂度,信息处理复杂度,。,9,(,2,)工作量估算,1),CoCoMo,模型,CoCoMo,模型是,“,构造性成本模型,”,(Constructive cost model),分为基本、中间、详细三个层次,分别用于软件开发的不同阶段。,E,aL,b,D,cE,d,C,E,2,),Putnam,模型,E,L,3,(,Ck,3,td,4,),10,3),自动估算工具,以上介绍的经验估算模型已有相应的软件作为为自动估算工具。项目管理可使用这些工具自动估算项目的成本和工作量,还可对人员配置和交付日期等进行估计。,11,(,3,)进度计划,1,)估算开发时间(工期)方法, 分解任务、划分阶段, 估算各阶段工期, 构造项目开发活动网络图,2),进度安排原则,根据实际(交付期已定,交付期可调)安排进度。,注意参与人数与效率的问题,人员能力要均衡,科学安排并行工作,参照,40:20:40,规则,不以牺牲质量换取进度,12,3,)进度表示(甘特图与进度表),进度,内容,2,4,6,8,10,12,基础,需求,总体,详细,编码,测试,调整,13,1,)、项目启动后,1,个月内完成硬件设备的招标购买、硬件平台搭建、政务网接入等基础性工作;,2,)、,3,个月内完成需求分析;,3,)、,4,个月内完成总体设计;,4,)、,5,个半月完成详细设计;,4,)、,7,个月内完成编码;,5,)、,9,个月完成系统总体测试,并投入试运行;,6,)、,12,个月完成功能及细节调整,正式投入使用。,14,3.3.1,组织结构的模式,1.,按项目划分的模式,工作方式:所有成员完成所有工作任务。软件产品的定义、设计、实现、测试、复查、文档编制、甚至包括维护在内的全过程。,特点:稳定、低效,对个体要求高。,2.,按职能划分的模式,工作方式:专业小组,流水线工作模式。,特点:高效,成员易成专家,更改困难,3.,矩阵形模式,一般工程组织形式,3.3,软件项目人员组织与技能,15,1.,民主制程序员组,成员间无主次。适合于研制时间长、开发难度大的项目。,2.,主程序员组,一位主程序员、一位后援工程师、一位资料员、若干程序员,3.,现代程序员(层次式)小组,在层次式小组中,组内人员分为三级:,组长(项目负责人),高级程序员,程序员,3.3.3,程序设计小组的组织形式,16,软件人员的素质要求:,牢固掌握计算机软件的基本知识和技能。,善于分析和综合问题,具有严密的逻辑思维能力。,工作踏实、细致,不靠碰运气,遵循标准和规范,具有严格的科学作风。,工作中表现出有耐心、有毅力、有责任心。,具有良好的书面和口头表达能力。,管理人员素质要求,综合问题的能力,总结和表达能力,沟通能力,3.3.4,人员配备,17,3.4,软件项目实施与控制,3.4.1,软件项目风险管理,风险就是指项目开发过程中在人员、经费、进度及需求等方面存在的可能影响项目按计划完成的不确定因素。,风险管理内容:,发现风险,分析与度量风险,处理与化解风险,18,定期举行项目状态会议。由每位项目成员报告其进展和遇到的问题。,评价在软件工程过程中所产生的所有评审的结果。,确定由项目的计划进度所安排的可能选择的正式的里程碑。,比较在项目资源表中所列出的每一个项目任务的实际开始时间和计划开始时间。,非正式地与开发人员交谈,以得到他们对开发进展和刚冒头的问题的客观评价。,当问题出现的时候,项目管理人员必须实行控制以尽快地排解问题。,3.4.2,软件项目进度管理(,追踪和控制活动,),19,3.4.3,软件项目质量管理,以可度量的方式验证软件质量的特征是否满足了要求,正确性:正确性的度量是每千代码行,(KLOC),的差错数,其中将差错定义为已被证实是不符合需求的缺陷。,可维护性:平均变更等待时间,MTTC,。,完整性:完整性度量一个系统抗拒对它的安全性攻击(事故的和人为的)的能力。,可使用性:,“,用户友好性,”,,为使用软件用户所付出的代价,20,实训一工作内容,XXX,软件开发计划书,摘要,1,、引言,(,1,)编写目的,(,2,)项目背景(名称、功能简介、目标性能、开发小组名称),2,、任务概要,(,1,)工作内容,(,2,)提交产品,3,、实施计划,(,1,)人员构成及分工,(,2,)阶段划分及进度计划,4,、应用环境要求,5,、实施技术方案及选择(硬件方案、体系结构,可行性研究),注:该问题定义将作为以后所有实训的基础。,21,目的:保证软件系统的完整性,版本有序、正确,软件配置项,(Software Configure,Itim,SCI),内容:,与合同、过程、计划和产品有关的文档和数据;,源代码、目标代码和可执行代码;,相关产品,包括软件工具、库内的可复用软件、外购软件及用户提供的软件。,工作内容:标示和确定配置项、控制版本、管理变更,3.5,软件配置管理,22,基线,(Baseline),基线是,软件生存期中各开发阶段末尾的特定点,,又称里程碑,。,由正式的技术评审而得到的,SCI,协议和软件配置的正式文本才能成为基线。,基线的,作用是把各阶段工作的划分更加明确化,,以便于检验和肯定阶段成果。,有关概念:,23,软件开发各阶段的基线及,SCI,系统工程,系统规格说明,操作系统,测试计划,数据,源代码,设计规格说明,软件需求规格说明,需求,分析,软件设计,程序编码,软件测试,24,2,、版本控制,版本,1.0,版本,1.1,版本,1.2,版本,2.0,版本,2.1,版本,1.3,版本,1.4,版本,1.1.1,版本,1.1.2,演变图显示了软件修改情况,变种,1,2,3,5,4,软件的每一版本都是,SCI,(源代码、文档、数据),的一个集合,,且各个版本都可能由不同的变种组成。,25,3,、变更,控制,软件生存期内全部的软件配置是软件产品的真正代表,,必须使其保持,精确,。,软件工程过程中,某一阶段的变更,均要引起软件配置的变更,,这种变更必须严格加以,控制,和,管理,,保持修改信息。,变更控制包括,建立控制点,和,建立报告与审查制度。,26,变更控制,过程,识别变更要求,用户提交变更要求,开发人员进行评价,产生变更报告,对,请求排队,产生工程变更顺序,把,变更分配给配置对象,产生变更报告,通知用户,变更控制负责人作出决定,27,“,检出”配置项(,SCI,),执行变更,变更复审(审计),“检入”变更后的配置项,建立测试基线,执行质量保证和测试活动,“促成”把变更包括在下一修正版中,重建适用的软件版本,针对所有配置项审计变更,把变更包括到新版本中,发布新版本,28,4.,配置状态报告,为了清楚、及时地记载软件配置的变化,需要,对开发的过程做出系统的记录,,以反映开发活动的历史情况。这就是配置状态登录的任务。,登录主要,根据变更控制小组会议的记录,,并产生,配置状态报告,。,对于每一项变更,记录:发生了什么?为什么会发生?对谁做的?什么时侯发生的?会有什么影响?,29,配置状态报告可以放在一个联机数据库中,以便软件开发人员或者软件维护人员可以对它进行查询或修改。此外在软件配置报告中新登录的变更应当及时通知给管理人员和软件工程师。,配置状态报告对于大型软件开发项目的成功起着至关重要的作用。避免了可能出现的不一致和冲突。,30,本章小结,软件项目管理是软件工程的另一个重要组成部分,只有对软件项目进行科学有效的管理才能保证软件工程的开发技术得以有效的应用。本章重点围绕制定计划、建立组织、配备人员、协调和控制五大项目管理职能介绍其实用的管理方法,同时简要介绍项目开始之前的项目选择和启动和项目结束时的项目总结,以及贯穿全过程的软件配置管理。在学习软件工程的具体方法之前掌握项目管理的过程与方法,一方面是要强调项目管理是贯穿整个开发过程的保护伞活动,另一方面是可使学习者更好地实践从项目选择、计划、组织与开发的全过程。,31,
展开阅读全文