《软件工程 ——理论、方法与实践》知识概括第三章 软件项目管理

第3章 软件项目管理

  软件项目管理有利于将软件开发人员的个人开发能力转化为企业的开发能力,并使企业的软件开发能力不断提高和成熟。

一、软件项目管理概述

软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。

软件项目的特征:1.软件产品的不可见性;2.项目的高度不确定性;3.软件过程的多变化性;4.软件人员的高流动性。

软件项目管理的“4P”:人员(People)、产品(Product)、过程(Process)和项目(Project)。

软件项目的生命周期包括项目启动、项目规划、项目实施和项目收尾4个阶段,其具体活动内容如下:

1.项目启动:(1)确定项目范围;(2)组件项目团队;(3)建立项目环境;

2.项目规划:(1)确定项目成本;(2)预算项目成本;(3)制定进度计划;

3.项目实施:(1)监控项目执行;(2)管理项目风险;(3)控制项目变更;

4.项目收尾:(1)客户验收项目;(2)安装培训软件;(3)总结项目经验。

二、人员组织与管理

一般来说,软件项目组的结构取决于开发组织的管理模式和软件项目的特点。在大多数软件项目中,民主式、主程序员式技术管理式是3中典型的开发组织方式。

1.民主式组织结构:小组成员完全平等,组长和组员无异。适合于规模小、能力强、习惯于共同工作的软件开发组。

2.主程序员式组织结构:一个人全面负责,其他人员给予他必要的支持,以便提高效率和生产力。典型的主程序员式组织结构有主程序员、后背程序员、秘书以及1~3名程序员组成。优点:实现了项目人员的专业化分工;降低了管理的复杂性,简化成员之间的沟通和协调,提高了工作效率。

3.技术管理式组织结构:将技术开发工作与行政管理工作进行分离,分别由两个人承担。技术组长负责小组的技术决策,参与全部代码的审查工作;管理组长负责所有非技术性事务的管理决策,对小组人员业绩进行评价。明确划分技术组长和管理组长的管理权限十分重要。

大型软件项目可以采用层次式组织结构,整个产品开发统一在项目经理的知道下进行,程序员向各自的组织汇报工作,组长向项目经理汇报工作,而中间的管理层次可以根据产品的规模的需要适当增加。

案例:微软公司的软件开发组织

1.微软开发团队的特点:采用小型的、多元化的项目组织进行软件开发工作;分配不同角色;项目成员具有专深的技术水平和业务技能;所有项目成员都要具有强烈的产品意识;项目组成员办公地点尽量集中;对于规模较大的软件项目采取类似小型项目组的运行模式。

2.项目团队的角色划分:产品管理、程序管理、软件开发、软件测试、用户体验和发布管理。

一个高效的软件开发团队应有特征:(1)确定的目标和共同分享的项目前景;(2)清晰的角色分工与紧密的团队合作;(3)融洽的关系与通畅的沟通;(4)高昂的士气与高效的生产力。

有利于团队建设的基本原则:(1)项目人员集中办公;(2)人人参与产品设计;(3)关注最终产品发布;(4)注重项目人员培训;(5)建立良好的企业文化。

三、项目沟通管理

n个成员的项目团队,彼此之间的沟通渠道数量是n(n-1)/2,当项目成员数量超过3个人时,其沟通渠道的数量就会快速增长。软件团队成员的数量应该保持在3~7人之间。

项目沟通方式:直接沟通、电话交谈、电子邮件、会议、项目网站和书面报告。

项目沟通活动具体如下:

1.规划项目沟通

(1)项目组内部的信息交流活动:状态检查、组内讨论、问题讨论、需求阐述和项目变更。

(2)项目组之间的信息交流:客户审定、项目审定、版本发布、需求阐明、项目变更和问题讨论。

2.建立基础设施

项目管理者可以建立项目的信息系统,各个项目小组可以建立自己的内部网站,网站内容可以包括项目公告、问题论坛和项目文档。

3.实施阶段性评审

分两类,一类是由客户参与的评审活动,另一类是项目组进行的评审活动。

4.每周组织小组会议

四、软件项目规划

软件项目规划过程包括以下步骤:确定项目的目的和范围,具体说明项目的最终产品以及期望的时间、成本、质量目标;分解和定义整个项目应包括的工作活动和任务;估算完成该项目的规模及其所需资源;制定合理的软件项目计划,包括进度、成本、质量等方面的预测。

软件项目规模的常用估算方法包括代码行、功能点等技术。

1.代码行技术

多名有经验的开发人员分别给出代码行估算,求平均值。

开发人员提出一个有代表性的估算值范围,按最佳的(a)、可能的(m)、悲观的(b)三种情况给出估算值,计算期望值:L=(a+4m+b)/6。

(1)生产率:P=L/PM

其中,L是软件的代码行数,其单位是千行代码kLOC;PM是软件开发的工作量,其单位是人月;P是软件开发的生产率,其单位是每人月完成的代码行数。

(2)单位成本:C=S/L

其中,S是软件开发的总成本,其单位是人民币或美元等货币单位;C是每行代码的平均成本。

(3)代码出错率:EQR=N/L

其中,N是软件的错误总数;EQR是每千行代码的平均错误数。

2.功能点技术

一句软件信息域的基本特征和软件复杂性的估计,估算出软件规模,以功能点为单位度量软件规模。

软件信息域的5个基本特征包括外部输入、外部输出、外部查询、内部逻辑文件和外部接口。

软件成本估计:

1.专家判断;

2.类比估计;

3.COCOMO模型

COCOMO是利用经验模型进行成本估算的方法,可分为基本的、中间的和详细的3个层次。

项目风险管理:

风险识别是试图采用系统化的方法,识别特定项目已知的和可预测的风险。风险识别的常用方法是建立风险条目检查表。

各种风险:软件规模风险、商业影响风险、客户相关风险、软件过程风险、开发技术风险、开发环境风险和开发人员风险。

软件开发风险通常包括性能、成本、支持和进度等因素,这些因素对项目目标可能产生的影响可以划分为可忽略的、轻微的、严重的、灾难性的等4个等级。

风险评估表是一种常用的风险分析工具。

风险规划。

风险监控。

六、软件配置管理

软件配置项是为了配置管理而作为单独实体处理的一个工作产品或软件。

基线是软件配置项通过正式复审而进入正式受控的一种状态。

版本是确定在明确定义的时间点上某个配置项的状态。

软件配置库用于记录整个软件生命周期内与配置有关的所有信息。

软件配置活动:配置项标识、版本管理、系统构建、变更控制。

配置管理工具:CVS。

时间: 2024-08-24 15:40:02

《软件工程 ——理论、方法与实践》知识概括第三章 软件项目管理的相关文章

软件工程——理论方法与实践(段落概述第一章至第十一章)

第一章软件软件是计算机程序,规程及运行计算机系统可能需要的文档和数据.软件分为通用软件和定制软件.软件的特性:1.复杂性2.不可见性3.不断变化4.大多数软件仍然是定制的,而不是通过已有的构件组装而成.软件于二十世纪50~60年代,70年代,80年代,90年代至今进行发展.在此过程中遇到一些危机:1.软件的开发成本和进度难以估计,延迟交付甚至取消项目的现象屡见不鲜.2.软件存在着错误多,性能低,不可靠,不安全等质量问题.3.软件的成本在计算机系统的整个成本中所占的比例越来越大.4.软件的维护极其

软件工程理论方法与实践

第一章. 概述  软件是人类思维的杰作,并成为人类现代生活的催化剂.今天软件遍布整个世界,在生物工程.现代通信.宇宙探索.商务处理.工业控制等方面发挥出巨大的威力,并推动了商业.科学和工程领域的跨越式发展,对整个社会的经济和文化产生了深远的影响.软件工程师为了解决开发成本效益和软件质量的问题而产生的.软件是计算机程序.规程以及运行计算机系统可能需要的相关文档和数据.软件分为通用软件和定制软件.软件的特性分别是软件是复杂的.软件是不可见的.软件是不断变化的.大多数软件是定制的而不是通过已有构件组装

阅读《软件工程—理论方法与实践》第三章心得体会

通过对第三章的阅读,对以下概念有了了解:软件项目管理是为了使软件项目能够按照预定的成本.进度.质量顺利完成,而对成本.人员.进度.质量.风险等进行分析和管理的活动.其有利于将软件开发人员的个人开发能力转化成企业的开发能力,并使企业的软件开发能力不断提高和成熟.软件项目的特征有软件产品的不可见性.项目的高度不确定性.软件过程的多变化性,降低复杂性和控制变化成为软件项目管理面临的关键问题.软件项目管理集中于人员.产品.过程和项目.软件项目的生命周期包括项目启动(确定项目的目标和范围).项目规划(建立

软件工程概论第三章--软件项目管理

本章介绍了软件项目管理的相关知识,从软件项目管理概述.人员组织与管理.项目沟通管理.软件项目规划.软件风险管理及软件配置管理这几个方面展开讲述,详细的介绍了软件项目实行过程中的管理知识. 软件项目管理概述主要讲了:1.软件项目的特征,即软件产品的不可见性.项目的高度不确定性.软件过程的多变化性.软件人员的高流动性等.2.软件项目管理的“4P”,人员.产品.过程.项目.3.软件项目的管理活动,项目启动.项目规划.项目实施.项目收尾.概论讲述了软件项目管理的一些活动和重要的因素等. 人员组织与管理主

《软件工程概论》第三章 软件项目管理

软件项目的特征: 软件产品的不可见性 项目的高度不确定性 软件过程的多变化性 软件人员的高流动性 软件项目管理的“4P”: 人员(People)   产品(Product)  过程(Process)  项目(Project) 软件项目管理活动: 项目启动 项目规划 项目实施 项目收尾 软件项目组织: 民主式组织结构 主程序员式组织结构 技术管理式组织结构 软件团队的建设: 明确的目标与共同分享的项目前景 清晰的角色分工与紧密的团队协作 融洽的关系与通畅的沟通 高昂的士气与高效的生产力 团队建设基

阅读《软件工程—理论方法与实践》第五章心得体会

阅读第五章所了解到的基本知识,形式化方法是指将离散数学的方法用于解决软件工程领域的问题,主要包括建立精确的数学模型以及对模型的分析活动.主要目的是保证软件的正确性.已建立的形式化方法可分为操作类和描述类.操作类方法基于状态和转移;描述类基于数学公理和概念.形式证明与验证技术主要包括模型检测(适用于有穷状态系统,完全自动化并且验证速度快)和定理证明(采用逻辑公式来表示系统规约及其性质,分为自动和交互式两种).一阶线性时态逻辑是一阶谓词逻辑的扩展.对汉诺塔操作规划问题有了更深一步的理解.计算树逻辑是

阅读《软件工程—理论方法与实践》第一章心得体会

通过对第一章的阅读,软件的划分有了了解,知道了软件是复杂的.不可见的.不断变化的,并且大多数软件是定制的,并不是通过已有构件组装而成的.软件维护是非常困难的,新的修改又会带来新的错误.软件存在多种质量问题,且能成功完成的软件项目的平均率在26%左右.软件工程已关注软件质量为目标,有过程.方法和工具三要素组成.对于软件的质量,对不同的用户角色是不一样的,但他们都有共同的质量要求是可靠性.正确性和有效性.软件工程知识体系被划分10个知识域:软件需求.软件设计.软件构造.软件测试.软件配置管理.软件工

阅读《软件工程—理论方法与实践》第二章心得体会

软件过程是软件工程人员为了获取软件产品而在软件工具的支持下实施的一系列软件工程活动.其基本活动包括:问题提出.软件需求规格说明.软件设计.软件实现.软件确认.软件演化.软件过程产品涉及软件需求.软件设计.软件实现.软件测试和软件实施等活动产生的结果,这些制品通常是在不同的开发活动之间进行转移和演进.常用软件过程模型:瀑布模型(适用于开发的早期阶段软件需求被完整确定的情况).快速原型模型(必须迅速建立原型,随之迅速修改原型,以反映客户的需求).増量模型(可以较好地适应需求的变化).螺旋模型(强调可

软件工程理论方法与实践第五章读后感

形式化方法是指将离散数学的方法用于解决软件工程领域的问题,主要包括建立精确的数学模型以及对模型的分析活动,从根本上讲,软件设计过程就是一个建立形式化规约,软件设计的最终产物--程序在进行形式化的过程中涉及到三中系统模型:现实世界,模型表示和计算机系统.软件规格说明是对软件系统对象,对象的操作系统以及对象行为的描述,形式化的规格说明可用自然语言图表等形式来描述,模型检测主要用于有穷状态系统,优点是完全自动化并且验证速度快