软件工程理论与实践第8期-11 软件项目管理
本章目标是使学生掌握现代项目管理的一些基本概念、基本原理和基本方法,了解项目特别是软件项目管理各个阶段所需的基本技术和工具,使得学生初步具备制定项目计划和实施项目管理的基本技能。本章通过具体的案例分析,由浅入深的引导学生了解软件项目管理的基本概念,掌握WBS的基本原则及工作分解的方法,掌握跟踪项目进展的方法,学会计划评审技术的基本概念与计算方法,掌握根据质量模型分析监督软件项目质量,掌握估算和管控
目录
11 软件项目管理
11-1 软件项目管理基础及软件项目规划
第1关:软件项目基础
任务描述
了解和掌握软件项目规划基础知识,回答右侧题目。
相关知识
什么是项目
项目是一个组织为实现自己既定的目标,在一定的时间、人员和资源约束条件下,所开展的一种具有一定独特性的一次性工作。也可以说项目是为提供某种独特( Unique )产品、服务或成果所做的临时性( Temporary )努力。
项目的特性
(1)一次性
(2)独特性
(3)制约性
(4)目的性
(5)风险性
(6)过程性
(7)复杂性
什么是项目管理
项目管理是将知识、技能、工具和技术应用于项目的各项活动中,以实现或超过项目利益相关者的要求和期望。也可以说项目管理是对项目从论证、立项、筹资、计划、组织、实施、控制到运营的一套系统管理方法。
项目管理知识体系十大知识领域
项目管理知识体系(Project Management Body Of Knowledge,PMBOK)十大知识领域是:整合管理、范围管理、时间管理、成本管理、质量管理、人力资源管理、沟通管理、风险管理、采购管理、干系人管理。
软件项目管理
软件项目管理是指在软件项目活动中运用专门的知识、技能、工具和方法,使软件项目能够在有限资源限定条件下,实现或超过设定的需求和期望的过程。
B,C,C,C,A
第2关:软件项目规划
任务描述
阅读案例材料,了解项目规划的目的和基本任务,掌握项目规划要点,并根据项目案例设计项目规划,包括确定项目目的;定义项目角色、责任、可核查性和机构;估算必要的资源和服务要求,明确和设计信息系通的生命周期阶段。
相关知识
什么是项目规划
项目组织根据项目目标的规定,对项目实施工作进行的各项活动做出周密安排。
项目规划的原则
(1)目的性
(2)系统性
(3)动态性
(4)相关性
(5)职能性
项目章程
项目章程是用来正式确认项目存在并指明项目目标和管理人员的文件,是组织内部管理层对项目的认可。包括:
(1)项目名称和授权日期
(2)发起人
(3)项目经理姓名和联络信息
(4)简要的范围说明书(目标和交付成果、时间安排、资源、
预算、成员)
(5)计划使用的项目管理方法总结
(6)角色与职责矩阵图
(7)项目干系人签名
(8)主要干系人评述
案例材料
重庆高校教学管理信息网建设项目背景
重庆市高等教育教学管理工作出现了内容杂、管理细、要求高等新的问题与要求,传统的管理方法已经不能适应社会发展的要求且使用过程中很容易会出现错误。因此,在计算机飞速发展的今天,教育管理信息化是教育信息化的重要组成部分,学校和教育主管部门间的管理信息化需要一个符合国家标准的数据集合及交互平台,从根本上解决不同教育主管部门之间的数据共享问题。实现学校与教育主管部门、教育主管部门与上级教育管理部门之间的数据共享和交换。
第3关:项目计划书
11-2 WBS工作分解及项目范围控制
第1关:软件项目范围控制
任务描述
本关任务:学习软件项目范围管理基础知识,回答右侧题目。
相关知识
需求获取
1.需求获取工作的任务就是收集项目干系人的需求信息,为定义项目的范围奠定基础。
2.需求获取工作只能通过用户与开发人员之间进行高度的合作和交流才能成功。
3.在软件项目的需求获取活动中,一般要收集以下类别的用户需求:
( 1 )界面需求:描述软件系统的外部特性,即系统如何从外部得到数据输入,如何向外部输出数据。
( 2 )功能需求:列出软件系统必须完成的所有功能。
( 3 )性能需求:响应时间、吞吐量、处理时间、存储空间等方面的限定。
( 4 )质量需求:对安全性、保密性、可靠性、可维护性、可移植性、易用性等方面的要求。
( 5 )资源使用需求:对硬件、支持软件、数据通信接口等方面的要求。
( 6 )软件成本消耗与开发进度需求:即对时间和经济方面的要求。
( 7 )异常处理要求:在运行过程中出现异常情况 ( 如临时性或永久性的资源故障,不合法或超出范围的输入数据、非法操作等 ) 时应采取的行动以及希望显示的信息。
4.获取需求的常用方法:
( 1 )访谈。访谈是通过与干系人直接交谈来获取信息。访谈的典型做法是向被访者提出问题,并记录他们的回答。访谈经常是一个访谈者和一个被访者之间的一对一谈话,但也可包括多个访谈者或多个被访者。访谈有经验的项目参与者、发起人、以及主题专家,有助于识别和定义项目可交付成果的特征和功能。
( 2 )讨论会。讨论会把主要项目干系人召集在一起,通过集中讨论来定义项目需求。讨论会是快速定义跨职能需求和协调干系人差异的重要方法。由于群体互动的特点,被有效引导的讨论会有助于参与者之间建立信任、改善关系、改进沟通,从而有利于干系人达成一致意见。在每次讨论会中,都必须记录所讨论的内容,并在会后加以整理。在会前应提前发给参加人员有关讨论会的议题和内容等材料,以便有所准备。
( 3 )观察用户工作流程。直接观察用户在其实际环境中怎样执行工作是一种行之有效的获取需求方法。当产品使用者难以清晰说明他们的需求时,就特别需要通过观察了解他们的工作细节。通常由观察者从外部来观看业务专家如何执行工作,也可由观察者实际执行一个流程或程序,来体验该流程或程序是如何实施的,以便挖掘隐藏的需求。
( 4 )问卷调查。问卷调查是指设计一系列书面问题,向众多受访者收集信息。当需要调查大量人员的意见时,向被调查人分发调查问卷是一个十分有效的做法。经过仔细考虑写出的书面回答可能比被访者对问题的口头回答更准确。调查者应仔细阅读收回的调查表,然后再有针对性地访问一些用户,以便向他们询问在分析调查表时发现的新问题。
( 5 )快速原型法。快速原型法是指在软件开发的早期快速建立目标软件系统的原型,并据此征求用户对需求的反馈。由于原型是可以操作的,它使得用户可以体验最终产品的模型,而不是仅限于讨论抽象的需求描述,从而可以获得更为准确和清晰的需求。快速原型法需要经历从模型创建、用户体验、反馈收集到原型修改的反复循环过程。在经过足够的反馈循环之后,就可以通过原型获得足够的需求信息。
范围定义
1.范围定义就是制定项目和产品的详细描述,从而定义项目的范围。由于在获取需求过程中识别出的所有需求未必都包含在项目中,所以范围定义过程就是从所获取的需求中选取最终的项目需求,然后制定出项目及其产品的详细描述。
2.在软件项目中,产品范围通常表现为软件需求规格说明书( Software Requirements Specification, SRS ),主要内容如下:
( 1 )功能特征描述。即软件系统向使用者提供什么样的功能。
( 2 )系统接口描述。即描述软件系统与其他软硬件系统之间的接口。在描述系统范围时,明确接口是非常必要的。
( 3 )质量特征描述。主要的质量特征包括性能、可靠性、可移植性、机密性、可维护性等。不同程度的质量要求对项目的工作范围会有很大影响。
范围确认
1.范围确认是指正式验收已完成的项目可交付成果,从而确认项目可交付成果是否可以让项目干系人满意。
2.范围确认工作一般由客户、发起人等关键项目干系人负责。
3.通常在进行范围确认前,项目组需要先进行质量控制工作,如系统测试等工作,以确保范围确认工作的顺利完成。
范围控制
1.范围控制就是指监控项目的范围状态,管理范围变更。范围控制的目的是在出现范围变更需求后,管理相关的计划、资源安排以及项目成果,使得项目各部分可以很好地配合在一起,避免变更带来的负面影响。
2.未经控制的产品或项目范围的扩大被称为范围蔓延。变更是不可避免的,为防止范围蔓延,在每个项目上,都必须强制实施某种形式的变更控制。
3.范围控制通过变更控制系统和配置管理系统来完成。当出现范围变更需求时,通常要执行一个严格的变更控制流程。
案例资料
1.原案例功能子系统研发目标
(1)资源库管理子系统:该子系统主要实现定义数据源、建立与存储媒体素材库、智能搜索与快速检索资源、自动更新等功能。
(2)项目网络申报子系统:该子系统主要完成项目的网络申报,实现在线提交、实时修改、时间控制、权限控制等功能。
(3)项目网络评审子系统:该子系统主要完成项目的网上评审工作,实现在线评审、评审指标定制、综合数据统计等功能。
(4)数据挖掘处理子系统:采用智能信息系统的处理方法对资源进行数据挖掘和知识获取,从资源中提取出普遍的、共性的知识。提供数据统计分析供决策者或用户使用,不仅能够改良工作方法,提高工作效率,还能进行教育教学改革研究。
(5)系统管理子系统:该子系统主要包括用户管理、代码管理、安全管理、性能管理和故障管理等。
2.需求分析
在重庆高校教学管理信息网建设过程中,根据相关理论知识,对其项目的目标和项目范围进行了编辑与界定。考虑到项目的高性能与灵活部署,本项目采用了.NET 、IIS7.0 、SQL Server 2008等作为项目顺利实施的支撑平台。
在本项目的需求分析阶段,通过对项目方、用户方和市场部对项目的目标需求进行综合分析,确定了本项目的主要功能模块、产品接口和性能指标:
(1) 主要功能模块:教育事务发布、远程项目填报、项目审计、项目中期审核、历史信息管理、系统配置与管理、信息反馈及处理等。
(2) 第三方产品接口:考虑到资源的共享、项目的维护、系统的安全与兼容性、数据的可扩展性和平台的互操作性等方面,本项目提供了大量的与第三方产品集成的接口,如:动态连接库DLL、OLE数据库访问过程、Web Service等。
(3) 系统性能:基于功能强大的Microsoft .NET 框架,结合SQL Server 2008分布式数据库系统,使得项目在具有强大的知识管理、敏捷的工作流引擎、高效数据统计分析的同时,还更加的安全和稳定。
第2关:WBS工作分解结构
任务描述
本关任务:根据案例描述,补充项目工作分解结构(Work Breakdown Structure,WBS)。
相关知识
工作分解过程
创建工作分解结构就是把项目分解成具有内在联系的、更小、更详细、易于管理、易于控制的组成部分。通过创建工作分解结构,不仅使项目范围更为明确,而且为制定进度计划、成本计划等提供了基础。通过“大事化小”原则,将项目的任务按照一定逻辑进行逐层分解,分解到可预测、可管理的单个活动为止。首先要明确整个项目的目标;其次,需在目标的基础上确定项目需要交付的最终产物,包括满足用户需求的软件产品、产品维护的服务项以及其它需提交的成果;然后,确定项目开展中的工作范畴,其可以对项目提交产物提供有效的保障;最后,将前期阶段获得的产物进行层次的分解,直至达到项目计划中规定的分解需求。
WBS的分解方式
基于功能的分解结构
基于成果的分解结构
基于工作阶段的分解结构
案例资料
软件生命周期根据软件开发的自身特点建立了多种软件生命周期模型,常见的模型包括:瀑布模型(waterfall model)、螺旋模型(spiral model)、迭代模型(iteration model)、原型模型(prototype model)、喷泉模型(fountain model)等。不同的模型对划分阶段、定义考核的里程碑和检查点是不同的。
在本项目中,为了提高项目的效率和解决实际需求的能力,我们采用了软件生命周期中最为经典的,也是最常用的一种生命周期模型——瀑布生命周期模型(简称“瀑布模型”)。
11-3 项目进度控制及计划评审技术
第1关:软件项目进度管理概述
任务描述
本关任务:学习了解软件项目进度管理基础知识,回答右侧问题。
相关知识
项目进度管理的内容
项目进度管理就是要采用一定的方法对项目范围所包括的活动及其之间的相互关系进行分析,对各项活动所需要的时间进行估计,并在项目的时间期限内合理地安排和控制活动的开始和结束时间。项目进度管理在内容上可概括为以下6个主要部分。
(1)活动定义(Activitydefinition):确定为完成各种项目可交付的成果所必须进行的各项具体活动。
(2)活动排序(Activitysequencing):确定各项活动之间的依赖关系,并形成文档。
(3)活动资源估计(Activityresource estimating):估算执行各项活动所需的人员、设备等资源的种类和数量。
(4)活动历时估计(Activityduration estimating):估算完成单项活动所需要的时间长度。
(5)制定进度计划(Scheduledevelopment):在分析活动顺序、活动持续时间和资源需求的基础上编制项目进度计划。
(6)进度控制(Schedulecontrol)-项目跟踪:监督项目活动状态,控制项目进度计划的变化,保证项目按时完成。
活动定义和排序
活动定义的—般方法有活动分解法和参照模板法。活动分解法是在WBS的基础上,将项目工作任务按照一定的层次结构逐步分解而成,以期分解成更小的、更容易控制的和更具体的活动,产生项目的活动清单。参照模板法是将已经完成的类似项目的活动清单或者其中的一部分,作为一个新项目活动清单的参考模板,根据新项目的实际情况,在模板上调整项目活动,从而定义出新项目的所有活动。
项目各项活动之间存在相互联系与相互依赖关系,要根据这些关系对活动进行适当的顺序安排,以便在所有项目约束条件之下获得最高的项目工作执行效率。
活动排序前需要具备的条件包括:(1)活动清单;(2)产品描述;(3)项目的约束条件;(4)里程碑。
网络图
网络图是活动排序的结果,它可以展示各项目活动之间的关系。通过网络图可识别关键活动,并确定某一活动进度的变化对后续工程和总工期的影响。
资源和项目周期估算
1.估算活动资源的目的是明确完成活动所需的资源的种类、数量和性质,以便做出更准确的成本和持续时间估算。
2.活动历时估计就是在给定的资源条件下,估计完成每个活动所需花费的时间量,
D,C
第2关:进度管理图示方法-网络图与关键路径
第3关:PERT计划评审技术(三点估计法)
第4关:进度管理图示方法-甘特图与项目进度计划表
11-4 软件项目成本管理
第1关:软件项目成本管理概述
任务描述
本关任务:学习软件项目成本管理基础知识,回答右侧问题。
相关知识
软件项目成本
完成软件项目工作量相应付出的代价,即待开发软件项目所需要的资金。
软件项目成本的构成
(1)软硬件购置成本
(2)人工成本(软件开发、系统集成费用)一般占到项目总成本的80%以上
(3)维护成本
(4)培训费
(5)业务费、差旅费
(6)管理及服务费
(7)其他费用
从财务角度看,可将项目成本构成按性质划分为两种:
(1)直接成本。与具体项目的开发直接相关的成本。
(2)间接成本。不归属于一个具体的项目,是企业的运营成本,分摊到各个项目中。
软件项目成本管理的内容和目标
成本管理的主要目的就是将项目的运作成本控制在预算的范围内,或者控制在可以接受的范围内,通过对项目成本进行估算,预算和控制有效地改变成本超支状况。
第2关:软件规模度量与软件成本估算
第3关:项目成本估算表及项目成本控制
11-5 软件项目质量管理
第1关:软件项目质量管理概述
任务描述
本关任务:了解软件项目质量管理的相关知识,回答右侧问题。
相关知识
软件质量的概念
国际标准化组织对质量定义:“质量是反映实体(产品、过程或活动等)满足明确和隐含需要的能力特性总和。”在软件项目管理中,软件质量指产品、组织和体系或过程的一组固有特性,是反应能否满足客户或其他相关方给定需要的性质和特性的总体。
质量管理的意图
保障产品、服务以及质量管理过程的实现,满足组织上的和项目上的质量目的,并达到客户的满意。
质量管理目的
(1)定义并实现组织的质量管理策略、目的和规程
(2)建立质量评估准则和方法
(3)为项目提供必要的资源与信息,以支持项目质量保障活动的运行和监控
(4)收集并分析质量管理评价结果
(5)基于项目和组织方面的结果,改进质量管理策略和规程
质量管理计划内容
(1)质量要素分析
(2)质量目标
(3)人员与职责
(4)过程检查计划
(5)技术评审计划
(6)软件测试计划
(7)缺陷跟踪工具
软件质量管理过程
其中,软件过程改进根据实践中对软件过程的使用情况,对软件过程中的偏差和不足之处进行不断优化。
三种常见的参考模型
(1)Bohm 质量模型
(2)McCall 质量模型
(3)ISO软件质量模型
第2关:CMMI-软件能力成熟度集成模型
任务描述
本关任务:学习了解CMMI-软件能力成熟度集成模型,回答右侧问题
相关知识
CMM与CMMI
软件能力成熟度模型(Capability maturity model,CMM)由SEI(美国软件工程研究院)于1994年正式发布,它是一种软件生产过程中的行业标准模型,可定义、评价软件开发过程的成熟度,旨在软件工程过程中评估和提高工程管理能力,并对软件质量进行指导。在CMM的基础上,2001年12月SEI正式发布了能力成熟度模型集成(Capability Maturity Model Integration),即CMMI。CMMI的出现是为了解决大型软件组织或企业使用多个能力成熟的模型过程中遇到的问题。CMMI整合了不同的CMM模型,同覆盖更广的专业领域。
CMMI五大级别
发布GJB 5000A将根据软件研制能力的成熟度等级划分为五个等级 (初始级、已管理级、已定义级、已定量管理级、优化级) , 每一个等级都是在前一个等级基础上对软件过程进行循序渐进的改进过程, 最后达到软件研制过程的迭代更新以及持续改进, 这样可以更加有效地帮助软件研发单位改进与优化软件研制管理, 提高软件产品质量。
(1)初始级
它的软件过程管理处于无序的、混乱的状态, 软件项目的成功完全依赖于个人能力和团队的合作, 软件的进度、质量、预算均不可测。
(2)已管理级
它的主要特征是已经建立了管理软件项目的方针和实施这些方针的规程。软件组织要对正在实施的和已经实施的软件项目进行经验总结, 从而抽象出软件过程实施当中有效的、具体的、适用的方法, 并将其文档化, 形成规程, 为以后的项目预算、评估和软件过程实施提供依据。通过执行已文档化的规程, 对当前项目形成有效的控制, 产生稳定的软件过程能力。
(3)已定义级
它的主要特征是标准化。已定义级较可重复级更强调软件开发各有关组织的相互协调和作为一个统一的整体参与软件的开发。在这一等级上, 组织开发和维护软件的过程已经文档化, 软件工程过程和软件管理过程被综合为一个有机的整体, 称为标准软件过程。通过剪裁标准化软件过程和适当地修改, 产生文档化的项目的软件过程。这样每一个项目软件过程都是从标准软件过程发展而来, 它们是稳定的、可重复的, 成本、进度及软件质量处于一定的受控状态。
(4)已定量管理级
它的特征是定量化。组织对软件产品和过程设置定量的质量目标, 并限定这些目标的变化范围。整个等级的软件过程有妥善的定义和一致的度量尺度, 组织的软件过程能力可以预测, 对于新领域的软件项目开发工作也可以评测其风险。
(5)优化级
它的特征是对软件过程的不断改进, 从而使软件过程能力不断提高, 软件缺陷得到预防。通过对以往的软件过程分析, 鉴别各种技术革新, 并选择最优的进行推广。
更多推荐
所有评论(0)