微软项目管理软件的二次开发
航空工业总公司六二五所 王书森
摘要:本文主要是谈一下微软公司(Microsoft Corporation)项目管理(Project management)软件的先进功能,报表直观性,进度计划按用户要求能自动产生时间标尺等优点。为了更好的在企业中发挥微软项目管理软件的优势,并满足实际中一些较为复杂的要求,必须对它进行二次开发。用户得到的微软项目管理软件没有源程序,这种情况下再次开发是有一定的难度,面对这一问题如何处理,最终怎样达到客观的要求,将一些体会抛出供大家在微软项目管理软件二次开发中给以借鉴。
关键词: 项目管理、计划、软件、二次开发。
Microsoft Project(以下简称MS Project)所采用的技术是在二十世纪初期由不同的人和组织发展起来的。二次世界大战之后,由于军事项目的规模大和复杂程度高,美国安全部(Department of Defense)及相关的承包商在项目管理方面下了不少功夫,作出了不小的贡献。同一时期,电子计算机的发展已经使得成千上万的任务和资源安排调度所需的大量计算成为可能。随着计算机科学技术的飞速发展,世界人类已经逐步走向了信息化的时代,项目管理工具应用已经相当普遍,不仅适用于大型项目,同时也适用于小型项目,个人计算机(PC机)普及也使得所有的管理者都有机会接触项目管理工具。虽然项目管理技术传统上来说总是用于国防和建造工业上,但是近几十年以来,它也运用于生产、服务行业和政府部门。由于我国改革开放的全面深化和市场经济的迅速发展,项目管理工具在国内各行各业的应用逐渐推广起来。
一、 MS Project4项目管理软件简介
MS Project4是微软项目管理软件4.0版本,它是微软公司1994年推出的一个非常出色的项目管理软件,最近微软又推出了新的版本Project98。MS Project4无论从对任务或资源的处理能力,还是它的图表直观性、时间性以及友好界面设计来看,都居于项目管理软件的领先地位。
项目管理包括了项目的所有阶段----从规划阶段直到结束,将各个阶段任务的进行状况直观的图表展示给人们,并且可画出对项目完成的各种总结报表;如果你的项目目标已经决定,就可以使用MS Project4进行如下项目管理工作:
建立进度计划表:一旦项目目标确定好后,就可用MS Project4为你的项目制定进度计划表;为建立项目进度计划表,输入需要做的任务和它们需要花费的时间,再明确一个任务开始前那些任务需要完成,在输入完项目信息后,系统便自动生成项目的进度周期(Duration)。
分配任务的资源和成本:可以建立不用加上资源和成本到任务上的进度计划表,也可以把资源和成本分配给相应的任务建立进度计划表。
优化项目进度计划表:当项目的任务信息输入完并资源和成本已与相关任务联系起来后,有关人员对任务所有环节进行分析、评估,各个任务开工和完工之间有无冲突,整个项目计划与目的是否像原始目标所描述的那样吻合,如成本常常会超出预算范围、整个完工日期拖后,可方便的控制任务,调整进度计划表,使之达到理想的状况。
监视项目实际执行情况:因为最好的计划也会在实际执行中出现这样或那样的问题,通过跟踪进度计划,可以发现哪些任务需要特别注意,及时调整,以使项目顺利进行。
MS Project4项目管理软件在完成上述功能中具有如下特点:
进度计划甘特图(Gantt Chart)上可容易的建立任务项:ID号、任务名称、开工时间、完工时间、完成量等110多项,用户可根据需要自由选择项数。
甘特图上任务项编辑:任务项可方便的增加、插入、移动、拷贝、切除、粘贴、修改、删除、恢复删除等。
标出关键任务和里程碑:关键任务是其延迟会引起整个项目延迟的任务,关键任务标在关键路径上。里程碑在项目生命中是一个重要的界标、发展或转折点;一般地,使用它来标记项目一个重要部分的完成,它并不代表正在做一个工作,仅指明这一工作已经开始或已经结束。
任务相互之间关系约定:微软项目管理为进度计划中任务链接提供了四种不同的任务关系(结束到开始FS、开始到开始SS、结束到结束FF、开始到结束SF)。
概括一个项目:概括是组织任务的一个方法,这样就能看出项目的结构;一个总计任务(Summary task)进行降级(Demoting)处理,子任务可降级缩进,可以看到次要任务的细节;同样任务也可以升级。
任务和资源联系并提供了资源超分配的手段:资源超分配时,在资源图(Resource Usage)上资源名字用红色显示并显示出那个时间超出和超出多少,以便调整。
进度计划甘特图具有直观的时间标尺:时间标尺有年、季度、月、周、天、小时、分和工作日,用户可自由选择。
MS Project4具有多种视图:横道图(Gantt Chart)、网络图(PERT)、资源图(Resource Sheet、Resource Usage、Resource Graph等)。
MS Project4和其他应用程序之间可以进行通信:能够将项目信息拷贝成ODBC数据库格式,Microsoft Excel、Microsoft Word、Lotus1-2-3等数据和图表传送到MS Project4中,反之也可。
鉴于MS Project4软件的先进性和多用途的实用性,它在国内外已被愈来愈多的人所使用。
二、 MS Project4二次开发的背景
虽然微软项目管理软件功能很强,在项目管理软件中处于领先地位,但它不可能满足于任何情况,它总有自己的局限性,这就是二次开发的前提。
微软项目管理软件对一个单级进度计划项目管理,不论任务项有多少,项目有多么复杂,任务资源分配牵涉关系多么多,它都显示出了优越性、完善性和方便性。如果对一个大型复杂项目,用工作分解结构(WBS: Work Breakdown Structure)法由顶向下分解成多级进度计划控制,由计算机网络从下级进度计划完成任务的信息逐级向上级进度计划自动汇总跟踪,直到顶层计划,任务完成或没有完成的情况用不同颜色表示,这样各级进度计划一目了然的反映了真实执行情况。根据没有完成情况的比例分成几级报警,以示警告,给人们展示了进度拖了多少天、拖了任务百分之多少;为了赶上进度给人们提供控制方案,提示每天需增加多少工作量、多少人力和设备。这种多级进度计划逐级自动跟踪、报警和控制对MS Project4就显得无能为力;目前微软项目管理软件能实现自动汇总跟踪,是把下级几个进度计划原封不动汇总在一起,汇总图不能更改,这不是我们所需要的WBS法分解的多级进度计划。真正多级进度计划是上级进度计划任务项包含于下级进度计划之中,下级进度计划任务项可多于上级进度计划任务项,上级进度计划是下级进度计划的概括,下级进度计划是上级进度计划的分解。总之这种多级进度计划的自动跟踪、报警和控制目前微软项目管理软件还不能实现。
MS Project4软件只能给出单代号网络图(PERT图)和实现单代号PERT图与甘特图(Gantt Chart)相互转换,我国不少人习惯于双代号网络图(PERT图),希望能绘制出双代号网络图并实现双代号PERT图与甘特图相互转换。
为了实现上述要求,必须对MS Project4软件进行二次开发。也可能有人会问能否开发一个满足上述要求的项目管理软件?回答肯定是不可取!我们前面已经提到过微软项目管理软件对任务和资源的处理能力等各方面都是处于领先水平,开发一个这样高水平的项目管理软件并非是一项简单的工作,二次开发虽然有不少困难,但相对于重新开发一个来说还是件容易的工作。
三、MS Project4软件二次开发的关键技术
MS Project4是微软公司版权软件,微软公司对该软件进行修改和扩充是件容易的事;对用户二次开发 ,并非是件容易之事。无源程序想知其软件的内部结构和机制,想打开这样的软件二次开发的技术缺口的确有不少关键技术需要解决。通过我们对MS Project4软件二次开发的实践体会,主要有以下二个关键技术:
1.第一个关键技术----了解该软件信息格式(数据格式)
信息格式无非是软件输入、输出和内部处理信息是什么性质,是一般文件还是数据库,文件是顺序文件、随机文件、二进制文件,数据库是什么数据库;当然只知道信息的性质对于软件二次开发还是远远不够的,还要了解信息内部的具体表示形式,如关系数据库记录中字段数、字段名字、字段性质、字段大小。如果对软件的信息格式了解到这一步应该说二次开发有了初步基础。实际上做到这一步时常有不少困难,需要软件人员化很多的时间去研究和摸索。这一点需要软件开发人员具体情况具体处理,如MS Project4软件没有给出内部处理文件(*.MPP)的格式,非微软公司开发人员要研究Project4的*.MPP的具体格式就相当困难,但Project4软件给出了中间文件(*.MPT)的具体格式,并给出了*.MPP和*.MPT文件转换的方法,这种情况下就没有必要化很多力量去研究软件内部信息格式(*.MPP),只要认真分析*.MPT文件每一项的意义,如何使用*.MPT文件即可。
2.第二个关键技术----通信接口(信息调用接口)
上面谈到MS Project4已经给出了*.MPT中间文件格式,就是为进行二次开发提供了手段。中科院计算机所已经用这种方法开发了MS Project4的甘特图转换为DOS环境下的双代号网络图。用这种方法也能实现我们对MS Project4上述二次开发的要求,但这种方法没有充分发挥MS Project4与其他应用程序交换数据的能力,如OLE技术。通过我们在工作中分析比较发现,用中间文件(*.MPT)格式二次开发比用通信接口技术二次开发要复杂,另外这样二次开发的软件与原软件的集成是松散的集成,有时不一定保证能在原软件运行环境下集成好,为了更好有效的二次开发以及在原软件运行环境下更好的集成,还必须研究原软件的通信接口。
通信接口可以狭隘的理解为原软件与其他应用软件打交道的外部接口调用方法。研究通信接口机制从而可掌握原软件处理信息的方法,有了这个方法就可以开发出调用原软件内部信息的程序,就可再次开发出在原软件运行环境下集成的软件,就会达到对原软件新功能的要求。幸运的是MS Project4提供了支持通信接口的技术,微软项目管理资料上一般都提到MS Project4与其他应用程序能进行信息交换,不过这里都是指的MS Project4与Microsoft Word或Microsoft Excel之间进行文档拷贝和粘贴;这种信息调用方法对二次开发太粗,不能直接使用。还要更深入细致的研究信息调用方法。主要是利用MS Project4支持OLE技术,直接研究原软件通信接口具体约定,这样就可以对微软项目管理软件很好的进行二次开发。了解原软件如何使用OLE技术,特别是通信接口的约定,即具体的信息调用方法,做好这件工作并非是一件容易的事。这要取决于开发人员对WINDOWS、MS Project4、OLE技术、VB、VBA、Visual C++语言等熟悉的程度;如果你对上述知识较熟悉,就可以较快的打开利用通信接口进行二次开发的路子,如果上述知识不太熟悉,打开此路的困难就很多,要化较大的精力去研究。
四、微软项目管理软件的二次开发方法与成果
通过上面介绍,我们采用了通信接口的信息调用方法对MS Project4进行二次开发,按期园满的完成了用户使用要求,应该说对MS Project4软件进行了成功的扩充。
1. 二次开发的方法
在WINDOWS环境下,用OLE技术、数据库技术、WINDOWS API函数、VB和Visual C++语言进行编程,可很好的完成二次开发。如用VB语言编程为例,用语句建立OLE自动化,打开Project文件,按所要求的Project各项信息进行索取,进行显示或打印。具体方法如何建立OLE自动化、如何打开Project文件、如何索取Project文件每项信息、怎样读写数据库等方法的具体程序细节就不在这里列举;有兴趣者可以参阅MS Project4的example和宏的例子,这里面都给出了VB或VBA语言编写的源程序,详细的介绍了上面提到的建立OLE自动化、打开Project文件等。不过在二次开发中用到的更细致的信息以及上述例子中查不到的,可用Project宏记录功能来产生你所需要的宏,分析这些宏的语句结构可满足你的需要。还有一点说明的是借用宏的语句功能最好用于VB4语言以上的版本编程。
2. 二次开发成果
多级进度计划甘特图的跟踪、报警和控制。下面给出一个飞机制造进度计划的使用例子。
主管计划单位及任务名称
进度计划名称
WBS号
总公司主管整个飞机
零级进度计划
WBSⅠ
各飞机生产厂主管部件
一级进度计划
WBSⅡ
工厂下属各车间主管组件
二级进度计划
WBSⅢ
车间下属各工段主管另件
三级进度计划
WBSⅣ
上述表格列出了一个飞机生产的多级进度计划控制的示意图,像这样的一个复杂项目,有几万人远隔千里之外不同地点从事同一个项目,很难用人工方法实现高层计划真实的反映出下层计划并切实进行控制。下级计划向上级计划汇总时往往附加人为的修改,使进度计划带有不真实性,上级领导不能及时发现问题,使进度计划人为的因素得不到准时控制,往往拖进度。为了避免进度计划的不真实性,二次开发的MS Project4软件可以做到从最基层三级进度计划的完成情况逐级自动汇总到零级进度计划,真实的反映了进度计划执行情况。由于二次开发软件具有报警功能,各级进度计划的任务按要求没有完成,按任务的重要性事先确定三级等级系数(加权系数)K,任务没有完成百分数C%乘以等级系数K,与事先确定好的三级报警门槛进行比较,给出三级报警,三级报警在进度计划甘特图上用三种不同颜色(黄、紫、红)表示出来。并且给出附加的报警信息(拖进度的未完成任务工作量、拖进度多少天、按原进度完成话每天需增加多少工作量等)。同时给出采取控制措施的建议,加班赶工,分流任务,修改计划,各种控制方案按权限由不同级别领导来决定实施。这样各级领导及时掌握各级进度计划的执行情况,及时控制进度计划,消除了人工修改进度计划的真实完成情况,减少了人为的环节,为尽量确保进度计划按时完成提供了有力手段。上述表中给出WBS号是便于各级进度计划之间进行联系。]
MS Project4二次开发的另一个重要成果,在WINDOWS环境下绘制进度计划双代号网络图(PERT图),用户在具有时间标尺视图上方便的绘制任务项、编辑任务项、连接任务项关系、拖动任务项、任务项合成任务组,时间标尺用户可以像MS Project4软件那样方便的选择,双代号网络图上可以用英文、中文或中英文混合注释。更主要的是该软件实现微软项目管理软件进度计划甘特图和进度计划双代号网络图(PERT)相互转换,转换后还可以在视图上更改。
五、 微软项目管理软件二次开发的应用前景
目前该软件已用于民机生产的零级、一级进度计划的跟踪和报警,双代号网络图绘制以及进度计划双代号网络图和甘特图的相互转换。明年将用于民机生产零级、一级、二级进度计划跟踪、报警和控制。同样今后可在航空企业中推广到军机、发动机和辅机生产进度计划的跟踪、报警和控制。微软项目管理软件的二次开发进度计划跟踪、报警和控制可推广到企事业单位多级进度计划控制的大型项目管理中,尤其是在与国际合作的生产企业中,更显示出二次开发软件的优越性。
微软项目管理软件的二次开发的双代号网络图绘制以及与MS Project4甘特图的转换可随同微软项目管理软件广泛用于各行各业的计划管理中,方便的从进度计划甘特图转换成双代号网络图,反之也一样。双代号网络图绘制也可独立于MS Project4软件,广泛用于绘制双代号网络图项目招标和进度计划控制中。由于使用简单方便,功能比较齐全,特别是像MS Project4一样具有可变时间标尺;具有广泛的应用前景。
由于微软项目管理软件对进度计划控制的同时也可对资源进行控制,它提供各种视图和大量直观报表,对项目管理功能强和许多优点,再加上它在项目管理软件中处于领先地位,我们认为大型企业生产管理信息系统软件可以在MS Project基础进行二次开发。企业生产管理信息系统无非将产供销人财物统一管理起来,管理的核心是控制进度计划和资源,微软项目管理软件正是提供了这一基础。管理信息系统的各级生产进度计划、生产能力需求计划、物资需求计划、工装需求计划、成本核算管理可以在MS Project软件基础上二次开发实现。管理信息系统的工艺管理、销售管理、人力需求管理、财物管理、质量管理等可在数据库基础上用VB或Visual C++语言开发。这二部分的开发以数据库为基础,通过自行开发通信接口可集成为一体。管理信息系统的集成一开始就从需求分析下手,将各子系统内部通信接口确定好,开发中始终协调各个子系统的集成。这里主要是用MS Project能实现多级进度计划的自动跟踪、报警和控制,资源控制和生产能力计划平衡,具有大量直观性图表;如果开发一个像MS Project这样能对多级进度计划自动跟踪、报警和控制,资源控制和生产能力计划平衡的软件,工作量将比在MS Project软件上二次开发大的多,可能还没有那么好用。另外借用MS Project软件二次开发的管理信息系统,在企业的管理中易于和国际接轨。
六.结束语
通过MS Project4软件的二次开发,从而对该软件有了较全面的了介,深有体会感到微软项目管理软件的功能齐全、先进以及使用简单方便;促使着我们正在着手以微软项目管理软件为基础进行二次开发生产管理信息系统。相信微软项目管理软件在我国被愈来愈多的管理人员认识和接受。希望微软公司加强在中国项目管理软件的技术服务,使用户更好的应用MS Project软件。由于水平所限,对微软项目管理软件接触时间短,认识也浮浅,文中可能有许多不妥或错误之处,敬请指正。
参考文献:
1. Project 4.0 for Windows大全 Tim Pyron著
2. Microsoft Project4 for Windows 使用教程
Catapul 公司 著
3.微软项目管理系统参考手册 席相霖 著