本文介绍了一个基于工作流技术而研制的软件项目管理系统。文章首先描述了传统软件项目管理系统的不足之处,提出用工作流的方法来设计软件项目管理系统,然后介绍了一些理论基础。文中重点阐述了系统的设计结构和所采用的一些技术,并给出了部分的具体实现方法。
论文关键词:工作流,JMS,项目管理,SPP,建模,工作流网
1前言
2O世纪7O年代以来,为了解决软机危机,改进软件过程能力,计算机科学家提出了软件工程的概念,将系统化的、规范化的、可度量的方法用于软件开发、运行和维护的过程。近些年来,随着计算机技术的进一步发展,相应的使用软件工程方法的软件项目管理系统也有了显著的发展。但是,由于开发流程中存在的不确定性以及项目变化等因素,这些系统也暴露出一些不足之处。
传统的软件项目管理系统,一般是由图形用户接口(GUI),应用程序和数据库组成,用户通过GUI向应用程序发出请求,应用程序处理这些用户请求,并且访问数据库,返回用户所要求的结果。这种模型在流程稳定的时候是可以满足需要的,它的缺点在于:
1)建模过程是之前设定好的,无法改变;
2)缺乏柔性,系统开始运行之后,预先定义好的条件就无法改变了;
3)可扩展性较差,如果想要增加或者修改相应的功能,整个系统必须重新开发。
目前,对工作流技术的研究以及相关产品的开发是国内外学者研究的热点问题之一,很多管理系统都采用工作流技术来克服上述问题。工作流起源于生产组织和办公自动化领域,它是针对日常工作中具有固定程序的活动而提出的概念。目的是通过将工作分解成定义良好的任务、角色,按照一定的规则和过程来执行这些任务并对它们进行监控,达到提高办事效率、降低生产成本、提高企业生产经营管理水平和企业竞争力的目标。
WFMC给出的工作流定义是:工作流是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则,文档、信息或任务能够在不同的执行者之间进行传递与执行,以实现整体的业务目标。而这正适合于软件开发过程管理,基于上述的理由,我们结合江苏省十.五攻关“工作流技术的研究和应用”项目,研究并开发了基于工作流的软件项目管理系统CMMFlow,目前已应用于软件能力成熟度模型(CMM)的管理,其效果相当良好。
2理论基础
2.1 CMMI3级精简并行过程(SPP)模型
利用工作流技术可以设计和建立一个工作流环境,在此系统中,我们使用CMMI3级精简并行过程(SPP)模型来支持软件过程实施。
SPP把产品生命周期划分为产品概念、产品定义、产品开发、产品测试、用户验收和产品维护等6个阶段,包含项目管理、项目研发和机构支撑等3类过程、19个过程域。其中项目管理过程包含立项管理、结项管理、项目规划、项目监控、风险管理和需求管理等六个过程域;项目研发过程包含需求开发、技术预研、系统设计、实现和测试、系统测试、Beta测试、客户验收和项目技术评审等8个过程域;机构支撑过程包含配置管理、质量保证、培训管理、外包与采购管理以及服务与维护等5个过程域。
我们把每一个过程域都看成是一个流程,其中过程域之间的关系是线性为主,并行、迭代为辅。每个过程域包含若干原子活动。通过建立活动与角色以及角色与具体用户的关联,即可建立一个可执行的业务过程模型。
2.2基于petri网的可视化建模工具
在这个系统中,我们的建模工具是使用工作流网和XP—DL共用的策略,采用的是扩展的Petri网,对最终用户来说,足可视化的图形建模工具。为符合WfMC规范,工作流机装入的模型用XPDL存储,可使用XPDL和Petri网两种表示形式,验证是使用Petri网形式。
在Petri网的基础上,Aalst提出了工作流网(WF-net)的概念,其定义如下:
一个Petri网PN=(P,T,F)被称为工作流网,当且仅当它满足下面两个条件:
1)PN有两个特殊的库所:i和0。库所i是一个起始库所,即·i= ;库所O是一个终止库所,即O·= 。
2)如果在PN中加入一个新的变迁t,使t连接库所。与i,即·t·={0),t·={i),这时所得到的PN是强连接的。
下面我们给出一个用工作流网定义工作流的简单例子,例子描述的是软件立项管理的工作流过程。
根据工作流网的基本定义,通过使用不同类型的基本组件和触发机制,对立项管理进行建模,得到如图1所示的工作流网模型。
基本流程如下:立项建议小组进行立项调查,然后进行项目构思和可行性分析,在完成之后进行立项申请,然后立项审查小组对此立项进行审查,决定是否同意立项。如果否决,则必须重新进行立项建议,如果同意立项,进入项目筹备阶段,流程结束。
3系统设计
3.1设计思路
整个系统构架采用B/S模式,参照J2EE框架,主要分为四层:
1)展现层:主要包含客户浏览器端和Web服务器端的applet,jsp和servlet,负责和用户交互,接收数据,显示结果等。
2)商业逻辑:用于处理展现层从用户端接受到的数据,包含了控制应用处理的所有规则,同工作流执行服务通讯,并且将展现层和数据服务层连接起来。
3)工作流执行服务:是流程运行和管理的核心组件,包括工作流机和任务表管理器。
4)数据服务:负责提供对数据的存储和读取服务。
此外,在系统设计的过程中还采用了以下的技术:
1)J2EE框架
J2EE体系包括javaserverpages(JSP),javaSERVLET,enterprisebean,WEBsevrice等技术,提供了一个企业级的计算模型和运行环境用于开发和部署多层体系结构的应用。它通过提供企业计算环境所必需的各种服务,使得部署在J2EE平台上的多层应用可以实现高可用性、安全性、可扩展性和可靠性。J2EE中多数标准定义了接口,例如JNDI,JDBC等,这使得遵循这些标准的不同开发者之间的模块可以无缝地互连。
2)JMS
JAVA消息服务(JMS)定义了Java中访问消息中间件的接口。JMS只是接口,并没有给予实现,实现JMS接口的消息中间件称为JMSProvider。
在JMS中,每个客户机连接到一个为发送和接收消息提供框架的消息传递代理程序。客户机需知晓消息格式和消息目的地。根据JMSAPI,消息传递分为两种模式,点对点和发布/订阅模式。
点到点消息传递方法使用下列工具,如消息队列、发送方(或消息制作者)和接收方(或消息消费者)。客户机将发向特定接收方的消息发送到唯一的队列。当接收客户机从特定队列抽取消息时,它发出确认消息,表明消息已处理。队列将保留所有消息,直至接收方收到消息或消息到期。发布/预订消息传递方法使用发布者、订户和主题的概念。客户机将消息发送到主题或内容层次结构。为了接收到消息,消息消费者必须预订此主题。因此,对于这种方法,可以将消息制作者作为发布者,而消息消费者则是订户。JMS供应商将多个发布者发来的消息分发到主题和此主题的多个订户。
点对点模式适用于使用集中式工作流机的系统,对于大规模的分布式应用,发布/订阅模式则相当有效,但是,在保证各个分布式工作流机的一致性问题上则稍有难度。
3.2系统结构与功能特点
CMM软件项目管理系统的系统结构如图2所示,它主要由过程建模工具,工作流机,任务表管理器,web服务,客户端和数据库接口等组成,该系统的各功能特点是:在这个系统中,我们使用浏览器作为客户端,通过Http请求与Webserver交互,Websevrer再将收到的请求加以处理,判断哪些是应当丢弃的,哪些应该交由工作流执行服务处理,并将处理后的结果发送给工作流执行服务器。工作流机收到Webserver传送过来的数据后,会根据消息的具体内容继续执行流程或者将流程挂起或是结束流程的运行,并且更新任务表管理器的内容,在需要的时候调用相应的应用程序来完成任务的需要。在过程建模工具中建立,修改,删除的模型将通过存储过程来修改数据库中已存储的模型。
websevrer和工作流执行服务也都要通过存储过程来访问数据库。各部分的功能特点描述如图2。
1)建模工具:使用基于Petri网的建模方法来对企业经营过程进行过程定义,将经营过程转化为工作流引擎可以执行的形式。同时还提供对过程模型进行分析,测试的工具。
2)工作流机:工作流引擎是工作流平台的核心,它是业务流程的任务调度器,从某种程度上看,工作流机也是业务资源管理器。它的主要作用是实例化及执行过程模型、为过程和活动的执行进行导航、与外部过程交互完成各项活动、维护工作流控制数据和工作流相关数据等。
3)任务表管理器:过程模型中的每个活动都被看作是一个由计算机自动执行的任务或由用户手动执行的任务,任务表管理器负责对这些任务的监视和维护。
4)Web服务:包含了用于处理用户请求和显示结果的jsp和sevrlet,其主要工作是将客户端与工作流执行服务连接起来。
5)客户端客户端是基于浏览器方式的瘦客户端,方便管理员管理整个工作流管理系统的运行过程,和一般用户管理和执行分配给自己的任务。
6)数据库接口:实现了底层的数据存储,包括过程定义,工作流控制数据,工作流相关数据,企业组织模型等工作流管理系统运行过程中必须的信息。
4系统的一些实现技术
4.1任务的自动分配和触发机制
可以根据模型定义自动地分配任务,当一个过程实例运行的时候,活动可以根据模型定义自动分配到指定接收者,并且,有关完成此活动所需要的数据也会传递给相应的接收者,从而提高业务过程执行效率。模型中使用角色机制,不指定具体人员,这样,人员变更不至于引起模型的变动。系统支持迟后绑定,即可以在活动运行的时刻才确定此活动由谁来完成。
流程从使能到运行的控制,采用触发机制,分为人工触发、自动触发、消息触发和时间触发。人工触发一般是用户从任务表中选取其中一项任务来完成,自动触发是一些通过程序自动执行的过程,一旦使能就被触发,消息触发是指系统外部的消息到达触发,如Email,时间触发是由定时器来触发。
4.2活动信息的统计
系统可以通过对活动信息统计,并将活动的运行状况和统计信息存储在数据库内。通过提供有关工作量的信息,可以在建模的时候预测所需要的时间,并且在活动结束时计算任务完成情况,与初始模型进行对比,生成相应的图表以判断工作效率,辅助决策经营。除系统提供的几个基本统计模型之外,用户也可以利用系统提供的工具,自行扩展新的模型来完成工作量信息统计和生成对比图表。
结论根据软件过程管理的需求,以工作流技术为核心,J2EE技术为支撑,结合SPP模型,文章给出了一个软件管理系统的体系结构和其中的一些技术实现。但是,为了更好地实施软件过程控制和度量,我们发现,还有一些问题需要进行深入的研究。
首先,软件过程模型的建立就要结合具体的实际情况,需要深人了解整个软件过程,并根据不同的需要修改模型来完成资源的动态配置和管理。另外,关于分布式工作流机之间的通讯和一致性问题也是相当重要的问题,需要拟定合适的策略来实现资源优化调度。
本文主要介绍了软件项目管理的概念,讨论了软件项目管理中人员的组织方式,考核测评方法,并提出了技术人员职业幸福感的管理新思路,激励技术人员的开发热情和智慧,从而提高软件工程的质量。 论文关键词:软件工程;管理;协调;沟通 软件项目管理是在20世纪70年代中期美国首先提出的,当时美国国防部专门针对软件开发不能按时完成交付、预算超支和质量达不到要求的原因进行了研究。结果发现70%的项目是因为管理不善...
密码技术是信息安全的核心技术公钥密码在信息安全中担负起密钥协商、数字签名、消息认证等重要角色,已成为最核心的密码。本文介绍了数字签名技术的基本功能、原理和实现条件,并实现了基于RSA的数字签名算法 0.引言随着计算机网络的发展,网络的资源共享渗透到人们的日常生活中,在众多领域上实现了网上信息传输、无纸化办公。因此,信息在网络中传输的安全性、可靠性日趋受到网络设计者和网络用户的重视数字签名技术是实...
分布式网络具有网络规模大、地理位置分散的特点,对于网络安全的需求存在于网络的各个层。本文对分布式网络的物理层、网络层、应用层分析了各个层的安全需求,并提出了保护信息安全的若干技术。构筑以入侵检测和防病毒为核心技术,配套其他成熟的安全技术和产品的大型分布式网络应用安全体系框架。 引言 九十年代以来,由于网络技术的飞速发展和网络规模的日益扩大,尤其是internet的飞速发展,使的网络类型多样化和...
在软件项目开发的过程中,软件项目管理的成功与否是决定一个项目是否能够顺利高效率完成的重要保证。但是我国大部分的软件企业在进行项目管理对都存在着各种问题,从而使项目不能顺利有效地完成。文章探讨了在嚼目管理过程里出现的常见问题,并给出了相应的解决策略。 我国软件产业的现状是数量已上规模,但质量亟待提高。在软件项目开发中,发现了一些普遍存在的问题,如项目严重误期、代码质量达不到标准、程序员疯狂工作仍然...
世界已进入了信息化时代,信息化和信息产业发展水平已成为衡量一个国家综合国力的重要标准。但由于信息资源不同于其他资源的特殊性质,如何保证信息的安全性成为我国信息化建设过程中需要解决的重要问题。论文关键词:信息安全;保护信息安全包括以下内容:真实性,保证信息的来源真实可靠;机密性,信息即使被截获也无法理解其内容;完整性,信息的内容不会被篡改或破坏;可用性,能够按照用户需要提供可用信息;可控性,对信息的...
在分析现有软件质量数学模型的基础上,提出了软件项目开发三维模型框架,建立了软件质量最优化数学模型。模型将有限的成本和时间资源合理地分配到软件开发过程的各阶段,并使软件质量达到最优化,为项目管理者建立计划和分配资源提供量化依据,通过实例数据验证了建立的数学模型的正确性和有效性。 论文关键词:软件质量数学模型;软件项目管理;软件项目开发方法模型 软件项目与其他项目一样,成功的3要素是范围(质量)、...
介绍了北京城市轨道交通计算机联锁控制系统在系统结构方面的硬件改进,阐述了诸如扣车、紧急关闭和轨道区段故障时单独操纵道岔等特殊联锁功能和与ATP系统结合的安全编码逻辑功能的软件实现。 考虑到信号工程的技术趋势和经济上的合理性,北京城市轨道交通13号线信号计算机联锁控制系统,采用铁科院开发研制的TYJL2Ⅱ型系统。虽然此系统已在全路400余个站场投入使用,但在满足现有的各项技术条件要求,实现进路上的...
计算机在会计领域的普遍应用,使得企业单位的会计核算工作越来越多地被计算机所取代。会计计算机化成为促进会计工作规范化和现代化的一种重要手段和会计工作发展的一个新的研究课题。 论文关键词:会计档案管理企业单位会计工作规范化电算化会计核算工作计算机化会计领域现代化 一电算化会计档案的特点 会计电算化就是以电子计算机为主的当代电子枝术和信息技术应用到会计实务中的简称,是用电子计算机代替人工记账、报账...
针对物流企业信息系统的建设现状,提出了物流网格的概念,并基于GlobusTookit的五层沙漏结构搭建六层物流网格体系结构,在此基础上,构建基于网格的物流公共信息平台,实现物流企业信息系统的集成整合与信息共享。 1引言 随着互联网时代的到来,企业的生产成为虚拟企业联盟之间的产品全生命周期的协作与信息资源的充分共享,这就要求跨越不同企业之间存在的空间差距,利用网络实现资源共享,开展异地协同的快速...
本文主要分析了我国软件项目管理的现状及存在的误区,总结了软件项目管理方面的经验,提出了初步的解决方案和办法。 随着计算机硬件水平的不断提高,计算机软件的规模和复杂度也随之增加。计算机软件开发从“个人英雄”时代向团队时代迈进,计算机软件项目的管理也从“作坊式”管理向“软件工厂式”管理迈进。这就要求软件开发人员特别是软件项目管理...