GIS工程讲义 第八讲 GIS工程计划与管理(1).ppt
《GIS工程讲义 第八讲 GIS工程计划与管理(1).ppt》由会员分享,可在线阅读,更多相关《GIS工程讲义 第八讲 GIS工程计划与管理(1).ppt(158页珍藏版)》请在三一办公上搜索。
1、第八讲 GIS工程计划与管理,1 项目管理过程,GIS项目管理的对象是GIS工程项目。它所涉及的范围覆盖了整个工程过程。为使项目开发获得成功,必须对开发项目的工作范围、可能遇到的风险、需要的资源(人、硬软件)、要实现的任务、经历的里程碑、花费的工作量(成本),以及进度的安排等等做到心中有数:而项目管理可以提供这些信息。这种管理开始于技术工作开始之前,在从概念到实现的过程中持续进行,最后终止于工程过程结束。,(1)启动一个项目,设计人员和用户是在系统工程阶段确定项目的目标和范围。目标标明了项目的目的,但不涉及如何去达到这些目的。范围标明了要实现的基本功能,并尽量以定量的方式界定这些功能。当明确了
2、项目的目标和范围后,就应考虑可能的解决方案,标明技术和管理上的要求。虽然涉及方案细节不多,但有了方案,管理人员和技术人员就能够据此选择一种“好的”方法,确定合理、精确的成本估算,实际可行的任务分解以及可管理的进度安排。,(2)度量,进行度量工作,是为了帮助工程人员了解产品开发的技术过程和产品。对开发过程进行度量的目的是为了改进开发过程,而对产品进行度量的目的是为了提高产品质量。度量的作用是为了有效地定量地进行管理。度量的目的是为了把握软件工程过程的实际情况和它所生产的产品质量。在对过去未度量过的事项进行度量时,需要解决的问题是:哪些度量适合于过程和产品?如何使用收集到的数据?用于比较个人、过程
3、或产品的度量是否合理?,(3)估算-,在软件项目管理过程中一个关键的活动是制定项目计划。在做计划时,必须就需要的人力、项目持续时间、成本作出估算。这种估算大多是参考以前的花费作出的。如果新项目与以前的一个项目在大小上和功能上十分类似,则新项目所需要的工作量、开发时间、成本大致与那个老项目相同。但对于背景完全生疏的项目,只凭过去的经验作出估算可能就不够了。现在已有了许多用于开发的估算技术。虽然各有其优缺点,但以下几方面是共同的:事先建立工作范围;以度量(以往的度量)为基础作出估算;把项目分解为可单独进行估算的小块。管理人员可使用各种估算技术,并可用一种估算技术作为另一种估算技术的交叉检查。,(4
4、)风险分析,风险分析对于软件项目管理是决定性的,然而现在还是有许多项目不考虑风险就着手进行。TomGilb在他的有关软件工程管理的书中写道:“如果谁不主动地攻击(项目和技术)风险,它们就会主动地攻击谁”。风险分析实际上就是贯穿在软件工程过程中的一系列风险管理步骤,其中包括风险识别、风险估计、风险管理策略、风险解决和风险监督,它能让人们去主动“攻击”风险。,(5)进度安排,每一个软件项目都要求制定一个进度安排,但不是所有的进度都得一样安排。对于进度安排,需要考虑的是:预先对进度如何计划?工作怎样就位?如何识别定义好的任务?管理人员对结束时间如何掌握,如何识别和监控关键路径以确保结束?对进展如何度
5、量?以及如何建立分隔任务的里程碑。软件项目的进度安排与任何一个工程项目的进度安排没有实质上的不同。首先识别一组项目任务,再建立任务之间的相互关联,然后估算各个任务的工作量,分配人力和其他资源,制定进度时序。,(6)追踪和控制,一旦建立了开发进度安排,就可以开始着手追踪和控制活动。由项目管理人员负责追踪在进度安排中标明的每一个任务。如果任务实际完成日期滞后于进度安排,则管理人员可以使用一种自动的项目进度安排工具来确定在项目的中间里程碑上进度误期所造成的影响。此外,还可对资源重新定向,对任务重新安排,或者(作为最坏的结果)可以修改交付日期以调整已经暴露的问题。用这种方式可以较好地控制系统的开发。,
6、2 生产率和质量的度量,对于任何一个工程项目来说度量都是最基本的工作,GIS工程也不例外。LordKelvin曾说过:“如果谁能够度量他所说的事物并能用数字来表示它时,则说明他了解了它;但当他不能度量它,也不能用数字表示出来时,则说明他对那种事物的知识还比较贫乏、不足;这也可能是了解的开始,但在他的思想中很难达到科学的境地”。,21 软件度量,软件度量涉及范围较广。在软件项目管理范围内,应主要关心生产率与质量的度量,即根据投入工作量,对软件开发活动和开发成果的质量作出度量。从计划和估算的目的出发,必须弄清历史情况;在以往的项目中,软件开发生产率如何?生产出的软件产品的质量又怎样?通过以往的生产
7、率数据和质量数据如何来推断现在的生产率和质量?如何利用这些数据来进行更精确的计划和估算?,对软件进行度量的目的是:表明软件产品的质量、弄清软件开发的生产率、给出使用了新的软件工程方法和工具所得到的(在生产率和质量两方面)的效益、建立项目估算的“基线”、帮助调整对新的工具和附加培训的要求。,在物理世界中的度量有两种方式。一种是直接度量(如度量一个螺栓的长度);一种是间接度量(如用次品率来度量生产出的螺栓质量)。软件度量也同样分为两类。工程过程的直接度量包括所投入的成本和工作量。软件产品的直接度量包括产生的代码行数(LOC)、执行速度、存储量大小、在某种时间周期中所报告的错误数。而产品的间接度量则
8、包括功能性、复杂性、效率、可靠性、可维护性和许多其他的质量特性。只要事先建立特定的度量规则,很容易做到直接度量开发软件所需要的成本和工作量、产生的代码行数等。但是,软件的功能性、效率、可进一步将软件度量范围如图1所示那样进行分类。从图中可知,软件生产率度量主要集中在软件工程过程的输出;软件质量度量可指明软件能够在多大程度上满足明确和不明确的用户要求(软件使用合理性);而技术度量则主要集中在软件的一些特性(如逻辑复杂性、模块化程度)上而不是软件开发的全过程。,22 面向规模的度量,面向规模的度量是对软件和软件开发过程的直接度量。软件开发组织可以建立一个如图2所示的面向规模的数据表格来记录项目的某
9、些信息。该表格列出了在过去几年完成的每一个软件开发项目和关于这些项目的相应面向规模的数据。如项目aaa01的开发规模为121kLOC(千代码行),工作量用了24个人月,成本为168000元。需要注意的是,在表格中记载的工作量和成本属于整个软件工程的活动(分析、设计、编码和测试),而不仅仅是编码活动。进一步地,关于项目aaa01的信息还表明开发出的文档有365页,在交付用户使用后第一年内发现了29个错误,有3个人参加了项目aaa01的软件开发工作。,对于每一个项目,可以根据表格中列出的基本数据进行一些简单的面向规模的生产率和质量的度量。例如,可以根据图2对所有的项目计算出平均值:生产率kLOCP
10、M(人月)质 量错误数kLOC 此外,也可以计算出其他令人感兴趣的度量:成 本:元LOC 文 档文档页数kLOC,对面向规模的度量一直是有争议的,还没有一种为人们普遍接受的度量软件开发过程的方法。争议主要集中在是否使用代码行数(LOC)作为度量准则。LOC度量的支持者们认为LOC是所有软件开发项目的必然产物,它能够很容易地被计算出来,许多现存的软件估算模型都是使用LOC或者kLOC作为关键输入的,而且大量以LOC为根据的文献和数据已经存在。而反对者们则认为LOC度量与程序设计语言有关,它们不适用于设计很好且较短的程序,也不适合于非过程型语言。若在估算中使用,很难达到要求的精度(计划人员必须在分
11、析和设计远未完成之前就要估算出需要生产的LOC)。,23 面向功能的度量,面向功能的软件度量是对软件和软件开发过程的间接度量。面向功能度量的注意力集中于程序的“功能性”和“实用性”,而不是对LOC计数。该度量是由Albrecht首先提出来的。他提出了一种叫做功能点方法的生产率度量法,该方法利用有关软件数据域的一些计数度量和软件复杂性估计的经验关系式,导出功能点FPs(FunctionPoints)。功能点通过填写图3所示的表格来计算。首先要确定五个数据域的特征,并在表格中相应位置给出计数。数据域的值以如下方式定义:,一旦收集到上述数据,就可以计算出与每一个计数相关的加权复杂性值。使用功能点方法
12、的单位要自行拟定一些准则,用以确定一个特定项是简单的、平均的还是复杂的。尽管如此,复杂性的确定多少还是带点主观因素的。计算功能点,使用如下的关系式:FP总计数X(065十001 Xsum(F)(131)其中,总计数是由图133所得到的所有加权复杂性值的和;Fi(i1到14)是复杂性校正值,它们应通过逐一回答图4所提问题来确定。sum(Fi)是求和函数。上述等式中的常数和应用于数据域计数的加权因数可经验地确定。,24 软件质量的度量,质量度量贯穿于软件工程的全过程中以及软件交付用户使用之后。在软件交付之前得到的度量提供了一个定量的根据,以作出设计和测试质量好坏的判断。这一类度量包括程序复杂性、有
13、效的模块性和总的程序规模。在软件交付之后的度量则把注意力集中于残存的差错数和系统的可维护性方面。特别要强调的是,运行期间的软件质量度量可向管理者和技术人员表明软件工程过程的有效性达到什么程度。,(1)影响软件质量的因素 McCall和Cavano定义了一组质量因素。这些因素从三个不同的方面来评估软件质量,即产品的运行(使用)、产品的修正(变更)及产品的转移(为使其在不同的环境中工作而作出修改,即移植)。他们在自己的论文中介绍了这些质量因素之间的关系(叫做框架)和软件工程过程的其他方面。参看前讲。,(2)质量的度量,已经有许多软件质量度量方法,使用得最广泛的是事后度量或验收度量。它包括正确性、可
14、维护性、完整性和可使用性。Gilb提出了它们的定义和度量。,25 协调不同的度量方法,代码行数和功能点之间的关系与实现软件的程序设计语言和设计质量有关。有一些研究试图找出FP度量和LOC度量间的关连。Albrech和Faffney认为:“应用提供的功能数,可以其于这个应用所使用或产生的数据来作出估算。而且,功能的估算应与要开发的LOC数和所需要的开发工作量相关”。,表131给出使用各种程序设计语言建立一个功能点所需要的平均代码行数的粗略估算表中的数据表明,个Ada的LOC比个FORTRAN的“)C提供了几乎L 4倍的“功能性”。而一个4GI的LOC比一个传统的程序设计语言的LOC提供了35倍的
15、“功能性”,在FP和LOC之间的关系方面,Jones给出了更精确的数据,可用来根据LOC数计算功能点数。,Basili和Zelkowitz确定了五种影响软件生产率的重要因素:(1)人的因素:软件开发组织的规模和专长;(2)问题因素:问题的复杂性和对设计限制,以及需求的变更次数;(3)过程因素:使用的分析与设计技术、语言 和CASE工具的有效性,及评审技术;(4)产品因素:计算机系统的可靠性和性能;(5)资源因素:CASE工具、硬件和软件资源 的有效性。,Walston和felix对以上因素及其他因素所产生的影响做了具体说明。对于一个给定的项目,上述的某一因素的取值高于平均值(条件非常有利),那
16、么与那些同一因素的取值低于平均值(条件不利)的项目比,它的软件开发生产率较高。对于上述的五个因素,从高度有利到不利条件的改变将以如表2所示的方式影响生产率。,3 在工程过程中使用度量,通过对生产率度量和质量度量提出要求和评价,管理部门能够建立改进工程过程的目标。如果软件开发过程能够得到改进,对整个机构的工作将产生直接影响。而要建立改进目标,就必须了解软件开发的当前状态因此,可使用度量来建立过程的基线,根据此基线来评估改进。,31 建立基线,建立实用的项目估算、生产高质量的软件、按期提交产品,这是软件项目管理人员必然会遇到的一些最基本的也是最重要的问题。通过使用度量建立项目基线,就能对这些问题进
17、行管理。此外,质量度量数据一旦收集到,软件开发组织就可以根据它们来调整其软件工程项目,以消除那些对软件开发有重大影响的错误产生的根源。,基线由从以往的软件开发项目中收集到的数据构成,可以像图2所示的表格那样简单,也可以像图7所给出的那样复杂。为了帮助计划、成本和工作量估算,基线的数据应当具有下列属性:(1)数据必须是合理的、精确的,应当避免单纯根据以往项目进行“盲目估算”;(2)应当从尽可能多的项目中收集数据;(3)对于所有成为数据收集对象的项目,对代码行的解释都应是一致的;(4)基线数据的应用必须与要做估算的工作类似。如果把一个适用于批处理系统工作的基线用于估算一个实时微处理器的应用就没有什
18、么意义。,32 度量数据的收集、计算和评价,建立一个基线的过程如图5所示。理想情况下,建立基线所需要的数据应在开发的过程中进行收集。然而这很难做到。因此,数据收集要求对以往的项目做历史调查,并根据调查结果来构造所需要的数据。一旦收集到数据,就可以做度量计算。最后,应当对计算出来的数据进行评价,并把它们用到估算中去。数据评价的焦点应集中于所得结果的合理性上:计算出来的中间值是否适合手头的项目?是否存在某些被掩盖的情况会导致估算中用到的某些数据无效?等等。必须对这些问题进行分析以免盲目地使用度量数据。,图7给出了一张表格模型,可使用它对历史软件基线数据进行收集和计算。这种模型包括了成本数据、面向规
19、模的数据、面向功能的数据,可以计算面向源代码行数I-OC的度量和面向FP的度量。应当注意的是,要想收集到这个模型所要求的所有数据不总是可能的。如果使用这个模型对以往的许多项目进行收集和计算,就能建立起软件度量基线。,4 软件项目估算,在做软件项目估算时往往存在某些不确定性,使得软件项目管理人员无法正常进行管理 而导致产品迟迟不能完成。现在已使用的实用技术是时间和工作量估算。因为估算是所有其他项目计划活动的基石,且项目计划又为软件工程过程提供了工作方向,所以不能没有计划就开始着手开发,否则将会陷入盲目性。,41 针对估算的考虑,估算资源、成本和进度时需要经验、有用的历史信息、足够的定量数据。估算
20、有风险。增加风险的因素如图8所示。图中的轴线表示所估算项目的特征。项目的规模对于软件估算的精确性影响也比较大。因为随着软件规模的扩大,软件了元素之间的相互依赖、相互影响程度也迅速增加,因而估算的一个重要方法问题分解也会变得更加困难。由此可知,项目的规模越大,开发工作量越大,估算的风险越高。,项目的结构化程度也影响项目估算的风险。结构性是指功能分解的简便性和处理信息的层次性。图8表明随着结构化程度的提高,精确估算的能力也能提高,而风险将减少。历史信息的有效性也影响估算的风险。回顾过去,就能够仿效做过的事,且改进出现问题的地方。在对过去的项目进行综合的软件度量之后。就可以借用来比较准确地进行估算,
21、安排进度以避免重走过去的弯路,而总的风险也减少了。,42 项目计划的目标,项目计划的目标是提供一个能使项目管理人员对资源、成本和进度做出合理估算的框架。这些估算应当在软件项目开始时的一个时间段内作出,并随着项目的进展定期更新。如上所述,在不断发现导致合理估算的信息的过程中,逐步达到计划的目标。下面将讨论与项目计划有关的各项活动。,43 系统的范围,项目计划的第一项活动是确定系统的范围。,44 开发中的资源,项目计划的第二个任务是对完成该项目所需的资源进行估算。图9把系统开发所需的资源画成一个金字塔,在塔的底部必须有现成的用以支持软件开发的工具硬件工具及软件工具,在塔的高层是最基本的资源人。通常
22、,对每种资源,应说明以下四个特性:资源的描述、资源的有效性说明、资源在何时开始需要、使用资源的持续时间。最后两个特性统称为时间窗口。对每一个特定的时间窗口,在开始使用它之前就应说明它的有效性。,45软件项目估算,在计算技术发展的早期,软件的成本在基于计算机的系统的总成本中只占一个很小的百分比。在软件成本的估算上,出现一个数量级的误差,其影响相对还是比较小的。但现在软件在大多数基于计算机的系统中已成为最昂贵的部分。如果软件成本估算的误差很大,就会使盈利变成亏损。对于开发者来说,成本超支可能是灾难性的。,软件成本和工作量的估算从来都没有成为一门精确的科学。因为变化的东西太多,人、技术、环境、政治,
23、都会影响软件的最终成本和开发的工作量。但是,软件项目的估算还是能够通过一系列系统化的步骤,在可接受的风险范围内提供估算结果。,46 分解技术,当一个待解决的问题过于复杂时,可以把它进一步分解,直到分解后的子问题变得容易解决为止。然后,分别解决每一个子问题,并将这些子问题的解答综合起来,从而得到原问题的解答。软件项目估算是一种解决问题的形式,在多数情况下,要解决的问题(对于软件项目来说,就是成本和工作量的估算)非常复杂,想一次性整体解决比较困难。因此,对问题进行分解,把其分解成一组较小的接近于最终解决的可控的子问题,再定义它们的特性。,(1)LOC和FP估算 前面已经介绍了代码行(LOC)和功能
24、点(FP),并使用它们作为基本数据来计算生产率度量。在软件项目估算中,在两个方面使用了LOC和FP数据:当做一个估算变量,用于量度软件每一个元素的大小。联合使用从过去项目中收集到的基线数据和其他估算变量,进行成本和工作量估算。,LOC和FP是两个不同的估算技术。但两者有许多共同特性。项目计划人员首先给出一个有界的软件范围的叙述,再由此尝试着把软件分解成一些小的可分别独立进行估算的子功能。然后对每一个子功能估算其LOC或FP(11p估算变量)。接着,把基线生产率度量(如,LOCPM或FPPM)用做特定的估算变量,导出子功能的成本或工作量。将子功能的估算进行综合后就能得到整个项目的总估算。,作为L
25、OC和FP估算技术的一个实例,考察一个为计算机辅助设计(CAD)应用而开发的软件包。系统定义评审指明,软件是在一个工作站上运行,其接口必须使用各种计算机图形设备,包括鼠标、数字化仪、高分辩率彩色显示器和激光打印机。在这个实例中,使用LOC作为估算变量。当然,FP也可使用,但这时需要进行在前节所说的数据域取值的估算。,根据系统定义,软件范围的初步叙述如下;“软件将通过操作员接收2维或3维几何数据。操作员通过用户界面与CAD系统交互并控制它,这种用户界面将表现出很好的人机接口设计特性。所有的几何数据和其他支持信息保存在一个CAD数据库内。要开发一些设计分析模块以产生在各种图形设备上显示的输出。软件
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- GIS工程讲义 第八讲 GIS工程计划与管理1 GIS 工程 讲义 第八 计划 管理
链接地址:https://www.31ppt.com/p-2815860.html