软件工程的项目控制跟踪和预测

时间:2022-09-27 02:21:23

软件工程的项目控制跟踪和预测

摘要:在项目实践中,大型软件工程与中小型软件工程不同在于,随着软件技术的提高,软件的开发已越来越成熟,软件质量管理并非在大型软件工程中占主导地位,项目的管理协调(进度和费用风险)才是重点之重。

关键词:软件工程、 “S”曲线 、软件发展迅速

中图分类号:TP311文献标识码: A

在该软件工程的项目控制中,我们运用“S”曲线作出定量分析而不是定性分析。

在编制项目实施计划和进度计划时,许多问题总是要给予定量的。比如编程模块工作量,实际不着眼考虑哪几块的具体完成日期,而是着重考虑这项任务是否能以适当的劳动生产率如期完成。在处理这样一类问题时,采用“S”曲线就很方便,绘制起来快速,效果直观,而且在实际应用中很灵活。

直观效果;

参照附图作为一个标准的“S”曲线图例,其采用的横坐标和纵坐标的比例是相同的。但当坐标的横轴和纵轴的比例发生变化时,“S”曲线的视觉效果会受到影响。假如增大横坐标的比例时,则曲线会变得扁平;反之,如增大纵坐标的比例,曲线就会显得陡峭。

图例中“S”曲线其横轴表示进度日程时间百分数(从0-100%),纵轴则表示完工百分数(从0-100%)。采用“S”曲线这种方式,无论是用来表达单个任务、或整个项目,其数据必须从坐标的原点(即0,0)开始,直到坐标右上角的终点(即100,100)结束。曲线的整个图形即相对地表示该项任务的执行效果和工作效率。

简明易懂;

一条“S”曲线总是表示从分度0至100的累计值,而它的图形即表明了每一单位进度日程时间的实际进度百分率或负荷率(指人力负荷率或工作量负荷率等) 。最简单的“S”曲线是一条直线。不过这种在一开始就安排满负荷并在整个工期内保持恒定不变负荷增涨率的情况是很罕见的。通常的情况是,在项目开始时总是要有一个逐步投入人力的起始阶段,然后才能逐渐达到人力负荷的峰值,并在项目完工前也都有一个收尾阶段。一般理想的是一条典型的对称曲线,其起始阶段和结尾阶段的负荷递增量和递减量是相等的。

对“S”曲线而言,其图形往往是不对称的,或是“超前负荷”,或是“滞后负荷”。尽管实际的“S”曲线可能有各种不同形状,但一般总是不会超过其极限曲线的范围。即当实际的“S”曲线愈靠近那条斜率为45度的直线型“S”曲线时,则整个工期内资源投入量的均衡程度愈高,相应地从理论上讲,其效益也愈好。

我们在该软件项目中尤为关注的人力资源参数应用“S”曲线进行人力资源的需求预测。

通常,在人力资源需要量已经确定并经过平衡消除过大的峰值后才编制计划进度曲线。但在项目执行过程中,当完成日期不能更改,而实际进度和人工时消耗已同原计划发生偏差时,就必须重新确定人力资源的需要量,以满足原定进度的要求。我们在实际操作中采取以下步骤:

假定实物工作完成量百分数的测定方法是切合实际的,即可将实际进度曲线的终点作为预测的参照起点。

从参照起点开始,将曲线延伸,绘制修正的计划进度曲线。在实际操作中应注意:一是要参照原计划进度曲线的形状,逐步向它逼近;二是要保证二者的最终完成期限一致。

在修正的计划进度曲线上,应标明每月的月末所需完成的累计百分数。

用表列出每次编制实施进展情况报告期间(即每月)所需完成的百分数,这些数值即是上述修正曲线上相邻两个月累计百分数的差值。

接着就要预测每月所需的人员数量。先根据目前的工作效率和执行效果,对所需的人工时总数作出预测,再将人工时总数乘以每月需要完成的百分数,并除以每人每月法定的工时数,即可得出每月所需的人员数量。

对算出的上述人员数进行检查。如果各个月份所需的人员数量差异过大,则要通过计算进一步加以平衡。

对算出的上述人员数量在该项工作中是否切实可行要加以确认。如果所需人数超过实际能提供的人力资源时;则应将进度期限延长。反之,如人力资源丰富,能提供比需要数量更多的人员时,则可缩短进度期限。

如果在软件项目实施初期就编制出计划的人工时和进度曲线,并按每次编制进展情况报告周期定期记录实际耗费的人工时数和实际进度,那么实际执行效果与计划要求之间所产生的偏差是很容易发现的。更为重要的是,可以根据某一领域出现的进度拖延,通过趋势分析和预测,评估对其它领域在进度方面引起的影响。

软件项目在整个工作周期中的“S”曲线。其完工百分数100%表示已经完成。

研究方法总结

由对大型项目与项目管理的比较中发现:首先通过纵向需了解软件(及软件工程)的来源,从计算机发展简史谈起,其系统是由计算机硬件和计算机软件构成,正是由于计算机硬件的不断发展,从算盘式的计算机演变成是带有集成电路及其他磁性和电子的元器件,是各种设备(控制器、运算器、存储器、输入输出设备等)的集合。20世纪末期,网络将各类计算机走向一个或多个共享平台,通过连网共享打印机、软件和数据等资源。网络技术使计算机应用从单机走向网络,并从独立网络走向互联网络。

而计算机软件正是运用在运算速度更快、处理能力更强的计算机上的让人们更有效地使用这种计算设备的媒体,即指用程序设计语言编写的程序,以及运行程序所需的文档、数据的集合。这就明确软件的目的。

其次,将简述软件的发展,从第一、二代软件的机器语言,程序设计语言,到第三、四代软件操作系统和软件结构化程序设计技术,及到现在第五代软件面向对象的程序设计技术的出现。从软件的发展过程来看,软件技术发展很快,过去计算机只能被少数专家使用,到今天,计算机连小孩都可以灵活操作;过去,文件不能方便地在两台计算机之间进行交换,甚至在同一台计算机的两个不同的应用程序之间进行交换也很困难,到今天,网络在两个平台和应用程序之间提供了无损的文件传输;过去,多个应用程序不能方便地共享相同的数据,到今天,数据库技术使得多个用户、多个应用程序可以互相覆盖地共享数据。了解软件的发展,对理解软件工程与软件的关系至关重要。

正是软件的迅猛发展,从软件生产早期,软件由规模较小的程序组成,其编写者和使用者往往是同一个(或同一组)人,由于程序规模小(中、小型软件),程序编写起来比较容易,也没有什么系统化的方法,对软件的开发过程更没有进行任何管理。这种个体化的软件开发环境使得软件设计往往只是在人们头脑中隐含进行的一个模糊过程, 除了程序清单之外,没有其他文档资料。到随着计算机日益发展,软件数量急剧膨胀,越来越大型化,软件生产和维护过程中出现了一系列严重问题,如:在大型软件程序运行时发现的问题必须及时改正;内部用户不断有新的需求(变更(change order))必须相应地修改程序;外部硬件或操作系统更新时,通常需要修改程序以适应新的环境。上述种种软件维护工作种种不确定性,以令人吃惊的比例消耗资源,同时更严重的是,许多程序的个体化特性使得他们最终成为不可维护的。这种现象被人称之为“软件危机”,由此将工程管理的概念引入到软件生产过程中,并使用了“软件工程”这个名词。

同时将工程概念明确表述出是将理论和所学的知识应用于实践的科学,而项目则是工程的一个组成,具体是由一组有起止时间的、相互协调的受控活动所组成的特定过程,该过程要达到符合规定要求的目标,包括时间、成本和资源的约束条件。

结束语:所以大型软件工程项目是一般都关系到国计民生的项目,对国家经济和社会发展起着十分重要的作用。同时对引入项目管理在大型软件工程项目中的运用就尤其重要。什么是项目管理?项目管理是指为了达到项目目标,对项目的策划(规划、计划)、组织、控制、协调、监督等活动过程的总称。项目管理的对象是项目。项目管理者是项目中各项活动主体本身。

上一篇:浅析虹吸式屋面雨水排水系统 下一篇:离心泵的使用维护\检修与故障诊排