软件项目管理复习提纲
软件项目管理复习提纲

软件项目管理复习提纲前言1、软件项目管理是软件工程和项目管理的交叉学科,是项目管理的原理和方法在软件工程领域的应用。
2、软件项目的抽象性决定了软件项目管理的难度要大于一般的工程项目管理。
3、软件项目需求管理、项目估算与进度管理、项目配置管理、项目风险管理、项目质量管理、项目资源管理等六个方面对软件项目中的管理问题进行了探讨。
第一章导论1、软件工程的概念:一类求解软件的工程。
应用计算机科学、数学以及管理科学等原理、借鉴传统工程的原则、方法,创建软件以达到提高质量、降低成本的目的,使计算机设备的能力借助于软件成为对人类有用的东西。
其中,计算机科学、数学用于构造模型和算法,工程科学用于制定规范、设计模式、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。
软件工程框架:软件工程——目标:可用性、正确性、合算性活动:问题定义、可行性分析、需求分析、设计、实现、确认、支持原则:开发范型、设计方法、支持过程、管理过程2、项目管理项目是指在一定约束条件下具有特定目标的一项一次性任务。
这里所说的●一次性,又称为单件性,指这次任务完成之后,不会再有与此完全相同的另一任务。
●目标,即项目的目标有成果性目标和约束性目标。
成果性目标——项目的功能性要求,约束性目标——资源消耗、时间要求、质量规定等限制条件。
●作为管理对象的整体性,即一个项目是一个整体管理对象。
项目的生命周期:项目从开始到结束,一般都要经历启动、计划、实施、结束几个阶段,称之为项目的生命周期启动阶段要进行可行性分析,以便确定是否接受项目。
计划阶段建立解决需求或问题的方案,向客户提交各种计划书。
实施阶段就是执行计划阶段提出的解决方案,在各种因素的制约下,实现项目的目标。
项目的结束阶段就是正式验收项目,使得项目圆满完成。
项目管理的定义:在一个确定的时间范围内,为了完成一个既定的目标,通过特殊形式的临时性组织运行机制,经有效的计划、组织、领导和控制,充分利用既定有限资源的一种系统管理方法。
自考01336软件项目管理-考试大纲复习资料

01336软件项目管理-考纲复习资料第一章软件项目管理导论一、学习目的与要求本章对项目及软件项目作了概括介绍,目的是使考生对软件项目有个初步的认识。
通过本章的学习,应使考生掌握项目及软件项目的基本概念,了解软件项目的生命周期,理解软件工程框架,掌握软件项目管理的基本概念、特征和主要内容,正确理解软件项目管理的过程、范围以及所面对的问题。
(一)软件项目的定义及其特征(重点)识记:软件项目的定义软件项目是以软件为产品的项目,软件产品的特质决定了软件项目管理和其他领域的项目管理有不同之处理解:软件项目的特征 P30(1)抽象性(2)缺陷检测的困难性(3)高度的复杂性(4)缺乏统一规则。
(二)软件项目管理(重点)识记:软件项目管理的概念 P34在软件项目活动中运用一系列知识、技能、工具和技术,以满足软件需求方的整体需求项目管理知识体系 P26集成管理、范围管理、时间管理、成本管理、质量管理、人力资源管理、沟通管理、采购管理、风险管理软件项目管理的主要内容 P341、软件项目需求管理2、软件项目结算与进度管理3、软件项目配置管理4、软件项目风险管理5、软件项目质量管理6、软件项目资源管理软件项目管理的过程 P351.启动软件项目2.制定项目计划3.跟踪及控制项目计划4.项目计划5.评审项目计划6.编写管理文档理解:软件项目管理的特征 P24综合性、创造性、时间性项目管理的 6 要素 P24范围、时间、成本、质量、组织、客户满意度软件项目的生命周期P22项目从开始到结束,一般包括启动阶段、计划阶段、实施阶段、和结束阶段(三)软件工程框架(次重点)理解:软件工程的目标、活动和原则及软件工程模型软件工程的目标是“生产正确、可用及具有经济效益的产品”。
正确性指软件产品达到预期功能的程度。
可用性指软件基本结构、实现和文档为用户可用的程度。
具有经济效益指软件开发、运行的整个开销满足用户要求的程度。
P16软件工程的活动是指生产一个最终满足需求且达到工程目标的软件产品所需要的步骤,主要包括问题定义、可行性研究、需求分析、总体设计、详细设计、实现、确认以及支持等。
软件需求分析及项目管理复习提纲

软件需求分析及项目管理期末考试复习提纲一、认真复习软件需求分析教材的诫语二、简答题:1.什么是软件测试?哪些人关心软件测试?请分别从用户和开发者的角度出发谈谈软件测试具有什么意义?2. 什么是进度管理,为何在软件开发活动中重视进度管理?3.简述软件项目管理活动中包括哪七个重要的里程碑节点?4.编码责任人是软件实现阶段的核心角色,其技术水平和管理组织能力直接决定着软件编码阶段的目标能否实现,决定着软件开发的效率和软件的质量。
他的主要任务是什么?5. 编码活动中为什么要强调编码风格?6.软件需求活动中,软件需求获取的困难有哪些?7.项目管理与日常活动比较具有哪些基本特点?8.在软件需求分析活动中,可行性分析研究主要研究什么?为何需要重视可行性分析?三、实践操作题1. 以图书管理系统为例,对软件需求进行系统分析:下面是“图书信息管理系统”所给出的条件,根据系统功能需求绘制UML分析图形。
请根据相关条件画出图书信息管理系统的借阅者请求服务的用例图、图书馆管理员处理借书还书用例图、系统管理员进行系统维护的用例图;系统管理员添加书籍;系统管理员添加借阅者帐户、系统管理员删除书目、图书管理员处理书籍借阅、借阅者查询书籍信息的时序图。
2. 以网络教学系统为例,对软件需求进行系统分析:下面是“网络教学系统”所给出的条件,根据系统功能需求绘制UML分析图形。
下面是“网络教学系统”所给出的条件,系统功能需求主要包括以下几个方面:1. 学生可以登录网站浏览信息、查找信息和下载文件。
2. 教师可以登录网站输入课程简介、上传课件文件、发布消息、修改和更新消息。
3. 系统管理员可以对页面维护以及批准用户的注册申请。
请根据相关条件画出网络教学系统的包图、学生用例图、教师用例图、系统管理员系统用例图和时序图。
四、论述题请论述:如果你是一个软件项目经理,如何实现风险管理?请论述:软件开发活动中,何时开展评审?评审会成了吵架会的原因及解决方案。
软件项目管理复习提要

《软件项目管理》复习题一,软件概念及特点;P1-2二,项目概念及软件项目特点;P4/7三,熟悉3种以上软件开发模型模型:瀑布模型、原型模型、增量模型的开发过程及其特点;瀑布模型:过程(略),特点:1.阶段间具有顺序性(线性顺序执行)和依赖性。
2.每个阶段必须完成规定的文档;每个阶段结束前完成文档审查,及早改正错误。
优点:明确了软件开发活动各个阶段缺点:无法适应需求的不确定性和用户对需求变更原型模型:过程与特点:利用先进的软件开发工具快速的完成系统基本功能,让用户尽早的看到系统,尽早的发现问题,便于修改。
(抛弃原型)缺点:对于大型的系统无法快速建立“原型”增量模型:先完成一个系统子集的开发,再按同样的开发步骤增加功能(系统子集),如此递增下去直至满足全部系统需求。
优点:能够尽早的实现系统的部分功能,提供给用户一个可以使用的系统。
对软件的变更适应性较强。
四,可行性研究的四个方面;P41五,掌握软件进度安排—甘特图法;P64六,简述度量软件质量的指标P114七,软件文档种类P154八,软件开发过程中,设置基线的目的是什么?九,软件配置项与版本控制。
十,作为软件项目经理如何针对用户的变更实施变更控制管理。
案例1:去年年底,某大型企业集团的财务处经过分析发现,员工手机通话量的80%是在企业内部员工之间进行的。
而90%的企业内部通话者之间的距离不到100m。
如果能引入一项新技术降低或者免掉内部员工通话费,这对集团来说将能节省很大一笔费用,对集团的发展意义相当大。
财务处将这个分析报告给了集团的总经理,总经理又把这个报告转给了集团信息中心主任李某,责成他拿出一个方案来实现财务处的建议。
李某找到了集团局域网的原集成商A公司,反映了集团的需求。
A公司管理层开会研究后命令项目经理张某积极跟进,与李某密切联系。
张某经过调研,选中了一种基于无线局域网IEEE802.11n改进的新技术“无线通”手机通信系统,也了解到有一家山寨机厂家在生产这种新技术手机。
软件项目管理复习版

一.项目的特征:1.有明确的目标2.项目之间的活动具有相关性3.限定的周期4.有独特性5.资源成本的约束性 6.项目的不确定性7.结果的不可逆转性。
二.项目管理知识体系:1.项目集成管理2.项目范围管理3.项目时间管理4.项目成本管理5.项目质量管理6.项目人力资源管理7.项目沟通管理8.项目风险管理9.项目采购管理。
三.软件项目管理过程的核心:项目规划、项目跟踪控制。
四.CMM:是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。
CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化、使企业能够更好地实现商业目标。
CMM是一种用于评价软件承包能力并帮助其改善软件质量的方法,侧重于软件开发过程的管理及工程能力的提高与评估。
CMM分为五个等级:一级为初始级,二级为可重复级,三级为已定义级,四级为已管理级,五级为优化级。
五.合同:监督项目执行的各方履行其权利和义务、具有法律效力的文书。
生存期:合同准备→合同签署→合同管理→合同终止。
六.软件生存期模型特征:1.描述了开发的主要阶段 2.定义了每一个阶段要完成的主要过程和活动3.规范了每一个阶段的输入和输出4.提供了一个框架,可以将必要的活动映射到该框架中。
类型:1.瀑布2.V模型3.原型4.增量5.螺旋式6.快速应用开发7.渐近式阶段。
七.软件需求的定义:用户对软件的功能和性能的要求。
八.需求管理过程:九.UML;UML是一种编制软件蓝图的标准化语言,用于对复杂软件系统的各种成分的可视化,说明和构造系统模型,以及建立软件文档。
UML支持面向对象的技术和方法。
UML独立于软件的实现,适用于任何开发过程,是可视化的模型语言。
十.十一.编制进度计划的三部曲:1.项目分解2.项目规模估算3.资源进度安排。
十二.十二.成本估算方法:1.对象点,是基于对象的软件产品规模估算。
软件项目管理复习提纲

软件项⽬管理复习提纲1. 项⽬的概念、特征、与⽇常运作的区别。
项⽬是指在⼀定的时间、资源、环境等约束条件下,为了达到特定的⽬标所做的⼀次性任务或努⼒。
⽬标性,其结果只可能是⼀种期望的产品或服务。
独特性,每⼀个项⽬都是唯⼀的。
⼀次性,有确定的起点和终点。
约束性,每⼀个项⽬的资源、成本和时间都是有限的。
关联性,所开展的活动是密切相互关联的。
多⽅⾯性,⼀个项⽬涉及多个相关利益者。
不可逆转性。
不论结果如何,项⽬结束了,结果也就确定了。
项⽬⼀次性⽬标导向通过项⽬经理及团队⼯作完成存在⼤量的变更管理⽇常运作重复进⾏效率和有效性导向职能式的线性管理基本保持连贯性2. 软件项⽬的核⼼要素。
软件项⽬核⼼要素:过程、资源、⼲系⼈、结果软件项⽬的核⼼⽣产⼒及其软件机构的核⼼能⼒:过程和⼈;3. 典型的项⽬管理管理知识体系:PMBOK、PRINCE、WWPMM、IPMPPMBOK项⽬管理是为了满⾜项⽬需求,在项⽬活动中采⽤的知识、⽅法、技术和⼯具的集合。
PRINCE2给出的定义:项⽬管理是对项⽬各个⽅⾯的计划、监督和控制,并激励项⽬的所有参与⼈员去达到项⽬的时间、质量、成本、性能等多⽅⾯的⽬标。
4. 项⽬管理的对象3P是指?People problem process5. PMBOK的知识领域、过程组。
整合管理范围管理时间管理成本管理质量管理⼈⼒资源管理沟通管理采购管理风险管理启动计划控制执⾏结束6.项⽬管理的核⼼三⾓形。
项⽬范围项⽬时间和项⽬成本的相互制约1. 决策树分析法先画⼀个⽅框作为出发点,⼜称决策节点;B、从出发点向右引出若⼲条直线,这些直线叫做⽅案枝;C、在每个⽅案枝的末端画⼀个圆圈,这个圆圈称为概率分叉点,或⾃然状态点;D、从⾃然状态点引出代表各⾃然状态的分枝,称为概率分枝;E、如果问题只需要⼀级决策,则概率分枝末端画三⾓形,表⽰终点。
假设有⼀项⼯程,施⼯管理⼈员需要决定下⽉是否开⼯。
如果开⼯后天⽓好,则可为国家创收4万元,若开⼯后天⽓坏,将给国家造成损失1万元,不开⼯则损失1000元。
项目管理软件培训提纲

P3培训大纲一、工程项目管理基础1.工程项目本身的基本内容a)建设目的、建设工期、预算投资;b)阶段目标、合同里程碑日期、合同中关于进度计划的条款;c)施工组织设计;d)施工平面布置、施工技术措施、人材机来源及规划;e)施工主要设备的数量及状况;f)主要永久设备及主要材料来源及采购方式;2.网络计划技术的基础知识a)了解起源及发展现状况;b)会用准确的逻辑关系反映项目实施过程;c)理解网络计划时间参数含义;d)识别项目实施过程中的关键路径与关键作业;e)了解现时的广义网络计划技术特点,理解进度、资源与费用间的相互关系;f)了解利用网络计划技术结合目标管理对项目实施动态跟踪与控制的方法。
3. 计算机方面的基本知识a) 熟悉Windows基本操作;b) 了解现代项目管理与计算机应用的关系及项目信息化管理的重要与迫切性;c) 了解利用工程项目管理软件(P3)实施项目及企业管理的几种方式:只跟踪控制项目的进度;结合工程量与主要资源费用分析的广义进度控制与管理;结合详细资源(工料机)与费用的细致的项目控制与管理;将P3集成到项目管理信息系统(MIS)的方式;基于信息高速公路的跨国、跨地区项目管理。
二、网络计划技术及其应用1. 网络计划技术1.1起源与发展1.2网络计划技术是二十世纪五十年代中期发展起来的一种科学的计划管理技术。
它克服了利用甘特图编制计划不能反映作业(工序)间相互制约关系的缺点。
一九五六年杜邦.奈莫斯建筑公司与斯派里.蓝德公司最早提出了CPM技术(关键路径法)。
一九五八年美国海军军械局特种工程处的布兹-艾伦提出了PERT(计划评审法)。
在五、六十年代基于不同的应用领域产生了多种称法的网络计划技术,其中CPM与PERT这两种方法影响较广。
CPM与PERTa)共同点:作业间关系属肯定型的网络计划技术b)主要不同点c)CPM在作业时间(工期)上只有一个估计值,而PERT在作业时间(工期)上有三个估计值(最乐观、最可能、最悲观)。
软件项目管理 复习资料

软件项目管理复习资料软件项目管理复习资料软件项目管理是指对软件开发过程中的各个环节进行有效管理,以确保项目能够按时、按质、按量地完成。
在现代社会中,软件项目管理已成为各个行业中不可或缺的一部分。
本文将从项目管理的基本概念、项目管理的重要性、项目管理的关键要素以及项目管理的挑战等方面进行论述。
一、项目管理的基本概念项目管理是指通过计划、组织、指挥、协调和控制的方式,对软件项目进行全面管理的过程。
在软件项目管理中,项目经理起着至关重要的作用,他们需要具备良好的组织能力、沟通能力和决策能力,以确保项目的顺利进行。
二、项目管理的重要性项目管理的重要性在于它能够帮助团队有效地利用资源,提高工作效率,降低成本,提高项目成功的几率。
通过项目管理,团队可以更好地控制项目的进度、质量和成本,避免项目进展出现偏差,最大程度地满足客户需求。
三、项目管理的关键要素1.项目目标的明确:在项目开始之前,团队需要明确项目的目标和范围,明确项目的交付物和时间节点,以便进行有效的计划和组织。
2.项目计划的制定:项目计划是项目管理的核心,它包括项目的工作分解结构、资源分配、进度安排等内容。
一个好的项目计划能够帮助团队更好地控制项目进度和质量。
3.团队协作和沟通:项目管理需要团队成员之间的密切合作和良好的沟通。
项目经理需要建立良好的沟通渠道,及时解决团队成员之间的问题,确保项目能够按时完成。
4.风险管理:项目管理中不可避免地会面临各种风险,如技术风险、市场风险等。
项目经理需要制定风险管理计划,及时发现和应对风险,以降低项目风险对项目进展的影响。
四、项目管理的挑战1.需求变更:在软件项目开发过程中,客户的需求常常会发生变化。
项目经理需要灵活应对,及时调整项目计划和资源分配,以满足客户的需求。
2.人员管理:软件项目通常由多个团队成员组成,项目经理需要有效地管理团队成员,激发团队成员的工作热情,保持团队的凝聚力。
3.进度控制:项目经理需要及时掌握项目的进展情况,发现问题并及时解决。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件项目管理复习提纲前言1、软件项目管理是软件工程和项目管理的交叉学科,是项目管理的原理和方法在软件工程领域的应用。
2、软件项目的抽象性决定了软件项目管理的难度要大于一般的工程项目管理。
3、软件项目需求管理、项目估算与进度管理、项目配置管理、项目风险管理、项目质量管理、项目资源管理等六个方面对软件项目中的管理问题进行了探讨。
第一章导论1、软件工程的概念:一类求解软件的工程。
应用计算机科学、数学以及管理科学等原理、借鉴传统工程的原则、方法,创建软件以达到提高质量、降低成本的目的,使计算机设备的能力借助于软件成为对人类有用的东西。
其中,计算机科学、数学用于构造模型和算法,工程科学用于制定规范、设计模式、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。
软件工程框架:软件工程目标:可用性、正确性、合算性活动:问题定义、可行性分析、需求分析、设计、实现、确认、支持原则:开发范型、设计方法、支持过程、管理过程2、项目管理项目是指在一定约束条件下具有特定目标的一项一次性任务。
这里所说的? 一次性,又称为单件性,指这次任务完成之后,不会再有与此完全相同的另一任务。
? 目标,即项目的目标有成果性目标和约束性目标。
成果性目标项目的功能性要求,约束性目标资源消耗、时间要求、质量规定等限制条件。
? 作为管理对象的整体性,即一个项目是一个整体管理对象。
项目的生命周期:项目从开始到结束,一般都要经历启动、计划、实施、结束几个阶段,称之为项目的生命周期启动阶段要进行可行性分析,以便确定是否接受项目。
计划阶段建立解决需求或问题的方案,向客户提交各种计划书。
实施阶段就是执行计划阶段提出的解决方案,在各种因素的制约下,实现项目的目标。
项目的结束阶段就是正式验收项目,使得项目圆满完成。
项目管理的定义:在一个确定的时间范围内,为了完成一个既定的目标,通过特殊形式的临时性组织运行机制,经有效的计划、组织、领导和控制,充分利用既定有限资源的一种系统管理方法。
项目管理具有如下特点:(1)综合性;(2)创造性;(3)时间性关于创造性:由于项目具有一次性的特点,因而既要承担风险又必须发挥创造性。
这也是与一般重复性管理的主要区别。
关于时间性:项目具有寿命周期,项目管理的本质是计划和控制一次性的工作,在规定期限内达到预定目标。
对每个阶段开始和完成的条件与时间要有明确的定义,以便于审查其完成程度。
项目管理的要素:项目目标的实现主要由六个因素制约,分别为范围、时间、成本、质量、组织及客户满意度,称为项目管理的六要素3、软件项目管理:软件项目产品的特点: 1.抽象性; 2.缺陷检测的困难性; 3.高度的复杂性; 4.缺乏统一规则软件项目失控的原因诸如:(1)需求不明确;(2)不充分的计划和过于乐观的评估;(3)采用新技术;(4)管理方法缺乏或不恰当;(5)性能问题;(6)团队组织不当;(7)人际因素软件项目管理的定义:在软件项目活动中运用一系列知识、技能、工具和技术,以满足软件需求方的整体要求。
软件项目管理的内容:软件项目需求管理;软件项目估算与进度管理;软件项目配置管理;软件项目风险管理;软件项目质量管理;软件项目资源管理第二章软件项目需求管理软件需求的定义:(1)用户解决问题或达到目标所需的条件或能力。
(2)系统或系统部件要满足合同、标准、规范或其他正式文档所需具有的条件或能力。
(3)一种反映上面第一点或第二点所描述的条件或能力的文档说明。
软件需求在软件项目中的作用:软件需求在软件项目中占有重要地位,是软件设计和软件实现的基础。
需求的改变将导致其后一系列过程的更改,因而软件需求与软件项目中其他过程有着密切关系软件需求的抽象层次:从问题求解过程来看,软件需求可以分成四个抽象的层次:原始问题描述;用户需求;系统需求;软件设计描述用户需求:从用户的角度描述系统的需求,以便没有专业技术背景的用户能看懂。
它只描述系统的外部行为,尽量避免涉及系统内部的设计特性,通过自然语言、图表、图形等来叙述。
在编写用户需求文档的时候,应该遵守如下一些简单的原则:(1)标准的格式 (2)使用一致的语言 (3)使用特殊文本 (4)尽量避免专业术语系统需求:是比用户需求更为详细和专业的需求描述,是系统实现的依据。
一个完整且一致的系统需求描述,是软件设计的起点。
需求文档的编制与作用:软件需求分析和描述的最终目的是在用户和软件开发组织之间就将要开发的软件系统达成一致的协议,从而产生正式的需求文档,以便为软件设计和实现提供依据。
软件需求文档包括用户需求和详细的系统需求描述,是对软件系统要求的正式陈述。
软件需求质量度量的九个元素:正确性、无歧义性、完备性、一致性、分级性、可验证性、可修改性、可跟踪和可理解性。
需求管理:需求管理的必要性:1.需求供求双方固有的矛盾:软件开发人员的思维贯穿了软件设计的全过程,同样也贯穿了需求过程,而普通人没有这方面的思维,因而他们都觉得和软件开发人员打交道极为困难。
因此需求过程中,需求的供求双方经常会遇到双方不能达成共识或双方达成共识的内容其实有相当大的出入等情况。
2.需求具有易变性和难以表述性:3.需求错误出现的高频性和修复的高昂成本需求变更管理:变更管理过程:原需求-变更描述→变更分析→变更实现-修正后的需求变更影响分析:进行需求变更影响分析,应评估每项选择的需求变更,以确定它对项目计划安排和其他需求的影响,同时明确与变更相关的任务并评估完成这些任务需要的工作量。
变更影响分析通过对变更内容的检验及对变更建议的准确理解,有助于变更控制委员会做出信息量充分的变更决策,确定对变更是修改还是抛弃,或者创建新系统以及评估每个任务的工作量。
需求跟踪的必要性:进行需求跟踪的目的是建立和维护从用户需求开始到测试之间的一致性与完整性,确保所有的实现都以用户需求为基础,而实现的需求也全部覆盖了预期的需求,同时确保所有的输出与用户需求的符合性需求跟踪的作用: (1)在需求验证中的作用 (2)有助于需求变更影响分析 (3)便于需求的维护 (4)便于测试时找出问题所在 (5)便于项目跟踪 (6)减小项目的风险 (7)简化了系统的再设计 (8)易于软件重用需求管理质量保证:(1)需求验证【需求验证可按如下四个步骤进行:i审查需求文档 ii 依据需求编写测试用例 iii编写用户手册 iv确定合格的标准】;(2)需求评审第3章软件项目成本管理成本:生产一种产品所需的全部费用。
软件项目成本大体包括以下4个方面:人力资源成本(软件项目有关人员的工资、福利、招聘和培训等的费用)软硬件资源成本(开发测试工具等的成本)商务活动成本(项目开发过程中的差旅、交通、通信及接待等的费用)其它成本(未在上述罗列的费用)软件项目估算:估算是指通过预测构造软件项目所需要的工作量的过程。
软件项目估算包括工作量估算和成本估算两个方面,通常笼统的表示为成本估算。
估算的意义:软件估算作为软件项目管理的一项重要内容,是确保软件项目成功的关键因素。
软件项目工作量估算的失真,将导致软件成本上升,开发周期延长,从而使项目管理失效,开发者受损、使用者不能如期得到合约规定的产品,最终使项目失败。
初步的估算用于确定软件项目的可行性,详细的估算用于指导项目计划的制定。
软件规模:软件规模是软件工作量的主要影响因素。
对软件规模的估计要从软件的分解开始。
规模度量标准有两种:代码行LOC和功能点FP代码行(LOC):代码行是常用的源代码程序长度的度量标准。
可以分为无注释的源代码行和注释的源代码行。
功能点度量方法通过研究初始应用需求来确定各种输入、输出、查询、外部文件和内部文件的数目,从而确定功能点数量。
软件生产率【LOC/PM(每个人月生产代码的数量)】:生产率数据的获取(1)选择一些最近完成的相似的项目;(2)获得各个项目的LOC数据;(3)对于更改过的程序,记录更改代码所占比例;(4)计算投入到每个项目上的人员数量;(5)计算各个项目的软件生产率,即LOC/PM(每个人月生产代码的数量)软件项目成本估算成本估算方法:成本估算是对完成软件项目所需费用的估计和计划。
在软件项目管理过程中,为了使时间、费用和工作范围内的资源得到最佳利用,人们开发出了不少成本估算方法,以尽量得到较好的估算。
算法模型:算法模型提供一个或多个数学算法,这些算法将软件成本估算值看成是主要成本驱动因素的若干变量的函数。
常见的算法形式有线性模型、乘积模型、解析模型、表格模型、复合模型。
线性模型:工作量=a0+a1x1+&&+anxn式中,x1,&&,xn 是成本驱动因素变量,a0,&&,an是一组经过选择的、能使本模型与一组观察数据点之间的拟合度最佳的系数。
开发成本一般通过将工作量乘以某一恒定的劳动力成本而求出。
虽然简单,但由于在软件开发中非线性相互作用太多,以至于线性模型效果并不好。
乘积模型:工作量=a0a1x1&&anxn式中, x1,&&,xn 是成本驱动因素变量,a0,&&,an是一组经过选择的、能使本模型与一组观察数据点之间的拟合度最佳的系数。
专家判定:专家判定就是与一位或多位专家商讨,专家根据自己的经验和对项目的理解对项目成本做出估算。
类比:类比法就是把当前项目和以前作过的类似项目比较,通过比较获得其工作量的估算值;自顶向下:从软件项目的整体出发,即根据将要开发的软件项目的总体特性,结合以前完成项目积累的经验,推算出项目的总体成本或工作量,然后按比例分配到各个组成部分中去。
自底向上:把待开发的软件逐步细化,直到能明确工作量值,然后把所有部分相加。
(该过程表明软件成本估算工作本身也是一种小型项目,需要相应的规划、成本估算步骤:复审和事后跟踪。
)Boehm提出的成本估算方法:(1)建立目标;(2)规划需要的数据和资源;(3)确定软件需求;(4)拟定可行的细节;(5)运用多种独立的技术和原始资料;(6)比较并迭代各个估算值;(7)随访跟踪第四章软件项目进度管理制定项目计划:定义工作并确定完成工作的方式,对主要任务及需要的时间和资源进行估计,定义管理评审和控制的框架。
正确的文档化计划与项目实际的结果进行对比,能够使计划人员发现估计的错误从而改进估计过程,提高估计的准确性。
分阶段交付:(1)必要性:对于规模较大的软件项目,制定项目计划时,项目的交付最好采用按阶段交付的形式。
(2)分阶段交付的过程:分阶段交付不会自发产生,它要求稳固的体系结构、精心的管理和详细的技术计划。
这是对软件项目的一个明智投资,因为它能够消除一般项目的下述风险:逾期交付、集成失败、软件特征的逐渐增加及客户、经理与开发人员之间的摩擦。