(计算机软件与理论专业论文)面向服务的过程引擎系统模型研究.pdf_第1页
(计算机软件与理论专业论文)面向服务的过程引擎系统模型研究.pdf_第2页
(计算机软件与理论专业论文)面向服务的过程引擎系统模型研究.pdf_第3页
(计算机软件与理论专业论文)面向服务的过程引擎系统模型研究.pdf_第4页
(计算机软件与理论专业论文)面向服务的过程引擎系统模型研究.pdf_第5页
已阅读5页,还剩59页未读 继续免费阅读

(计算机软件与理论专业论文)面向服务的过程引擎系统模型研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 随着大规模软件的出现,软件质量成为软件行业倍受关注的重点 问题之一,同时过程引擎管理系统的通用性不强,导致软件的开发成 本高。为了解决这些问题,提出了一种解决方案面向服务的过程 引擎模型s o p e ( s e r v i c e - o r i e n t e dp r o c e s se n g i n e ) 模型。该模型通 过引入过程服务的概念,把过程工具灵活管理起来,既可以完成软件 开发过程的定义、解析和组装,也提供软件过程的主动执行和行为监 控,同时也支持软件过程的演化。 s o p e 模型的思想是把软件开发过程中使用的工具看作一个过程服 务,一系列相关服务可以组装成功能更强、结构更复杂的复合服务。 在s o p e 模型的支持下,通过复用已有的服务,软件开发者可以快速 构造过程管理系统。这样不仅可以节省开发时间和经费,提高软件开 发效率,避免开发过程中的重复劳动,而且开发出的系统更加规范、 更加可靠,后期维护费用更低。这对于进一步提高企业信息化程度, 增强企业核心竞争力有着非常重要的意义。本文的主要工作和研究成 果如下: 1 首先对过程支持系统的现状和发展进行了分析,指出了现阶段 过程引擎系统的不足;分析了软件过程技术的发展、几个典型的软件 过程模型。 2 设计了s o p e 模型的体系结构。以过程服务在s o p e 中的执行为 主线阐述了s o p e 的八个主要部件和五个接口功能和设计结构。建设 性地提出了s o p e 的执行器对执行片段的调度算法,该调度算法的思 想是先来先服务( f c f s ) 的调度策略结合超时超长剥夺策略的调度算 法。 3 建设性地把软件开发过程中用到的开发工具看作是一种过程服 务,通过过程组装可以适应不同的系统需求。 4 本文最后给出了s o p e 模型的几个模块的实现方法,提出了该 模型的三层构架思想及实现方案。 关键字:面向服务,过程建模,过程组装,过程服务,过程引擎模型 a b s t r a c t w i t ht h eo c c u r r e n c eo fc o s m i c a l l ys o f t w a r e ,s o f t w a r eq u a l i t yi s b e c o m i n ga ni m p o r t a n tp r o b l e m i ns o f t w a r ei n d u s t r y a tt h es a m et i m e , s o f t w a r ed e v e l o p m e n tc o s t si sh i g hb e c a u s eo fl o w e rg e n e r a l i t yo fp r o c e s s m a n a g e m e n ts y s t e m i no r d e r t os o l v et h e s ep r o b l e m s ,t h i sp a p e r p r o p o s e san e ws o l u t i o n ,s e r v i c e o r i e n t e dp r o c e s se n g i n em o d e l ,c a l l e d s o p em o d e l t 1 1 i sm o d e li m p o r t st h ec o n c e p t i o no fp r o c e s ss e r v i c e ,i tn o t o n l yi m p l e m e n t st h ed e f i n i t i o n ,p a r s i n ga n da s s e m b l e o ft h es o f t w a r e d e v e l o p m e n tp r o c e s s ,b u ta l s op r o v i d e st h ei n i t i a t i v ee x e c u t i n ga n dt h e b e h a v i o rm o n i t o r i n g a n di ta l s os u p p o r t st h ee v o l e e m e n to fs o f t w a r e p r o c e s s s o p em o d e l r e g a r d s t o o l su s e di ns o f t w a r ed e v e l p m e n t a s s e r v i c e ,a n dt h e nas e r i e so fr e l e v a n ts e r v i c ec o u l db ea s s e m b l e di n t oa c o m p o s i t es e r v i c e w h i c hi sm o r ep o w e r f u li nf u n c t i o na n dm o r e c o m p l i c a t e di ns t r u c t u r e 、i t ht h es u p p o r to fs o p e ,s o f t w a r ed e v e l o p e r c o u l dq u i c k l yb u i l dap r o c e s sm a n a g e m e n ts y s t e m i nt h i sw a y ,i tc o u l d n o to n l ys a v et i m ea n df u n d ,i m p r o v et h ed e v e l o p m e n te f f i c i e n c ya n d a v o i dt h ed u p l i c a t e dw o r k ,b u ta l s od e v e l o paw e l l - s p e c i f i e d ,m o r e r e l i a b l ep r o d u c tw h i c hr e q u i r e sl o w e rm a i n t e n a n c ec o s t i ti sm e a n i n g f u l f o rq u i c k e n i n gt h ed i g i t a l i z a t i o np r o g r e s so ft h ee n t e r p r i s ea n di m p r o v i n g h ek e r n e ll 0 a b i l i t v t h e 。 :a r c ho ft h i s9 a p e rasthek e r n e lc o m p e t l u o nc a p a b i l i t yh em a l nr e s e a r c ht i l l sp e ri sa s f o l l o w s : 1 t h es t a t u si nq u oa n dd e v e l o p m e n to fp r o c e s ss u p p o r ts y s t e ma r e a n a l y z e d ,a n di t ss h o r t a g ei sp o i n t e do u t a l s ot h et e c h n i q u e o ft h ep r o c e s s a n ds o m eo fp r o c e s sm o d e la r ea n a l y z e d 2 t h ea r c h i t e c t u r eo ft h es o p em o d e li sd e s i g n e d u s i n gt h ep r o c e s s f l o ws e r v i c e se x e c u t i n gi ns o p ea sm a i n l i n e ,t h ef u n c t i o n a l i t ya n d s t r u c t u r eo ft h em o d e l s e i g h tm o d u l e sa n df i v ee x t e r i o ri n t e r f a c e sa r e d e p i c t e d as c h e d u l i n ga l g o r i t h ma b o u t e x e c u t o r se x e c u t i n gs e g m e n t s1 s i n n o v a t i v e l yp r e s e n t e d t h ea l g o r i t h mu s e st h ef c f s ( f i r s tc o m ef i r s t s e r v e d ) s t r a t e g yc o m b i n i n gt h ep r e e m p t i o ns t r a t e g y w i t ht i m e o u ta n d i i i o u t o f - q u e u e 3 t h em o d e lr e g a r d st o o l si ns o f t w a r ed e v e l o p m e n ta ss e r v i c ea n di t c a l lm e e td i f f e r e n td e m a n d sb yp r o c e s sa s s e m b l e 4 t h i sp a p e rg i v e st h ei m p l e m e n tm e t h o do fm a i n l ym o d u l ea n d s y s t e ma r c h i t e c t u r ea n di m p l e m e n ts c h e m e k e y w o r d s :s e r v i c e o r i e n t e d ,p r o c e s ss e r v i c e ,p r o c e s se n g i n em o d e l , p r o c e s sm o d e l i n g ,p r o c e s sa s s e m b l e i v 湖南师范大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独 立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论 文不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的 研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人 完全意识到本声明的法律结果由本人承担。 学位论文作者签名:衣劾托磁c 涉纾年f 月才日 湖南师范大学学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定, 研究生在校攻读学位期间论文工作的知识产权单位属湖南师范大学。 同意学校保留并向国家有关部门或机构送交论文的复印件和电子版, 允许论文被查阅和借阅。本人授权湖南师范大学可以将本学位论文的 全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫 描等复制手段保存和汇编本学位论文 本学位论文属于 1 、保密口,在年解密后适用本授权书。 2 、不保密曰。 ( 请在以上相应方框内打“ 丹) 作者签名:_ 髟讹畸日期净一降厂月谚日 导师签名:履刍易、日期:膨,月谚日“ 面向服务的过程引擎系统模型研究 1 1研究背景 1 绪论 2 0 世纪6 0 年代以来,由于计算机的快速发展,对大型软件需 求增加,在开发这些大型软件项目时遇到了许多困难,有些失败了, 有些大大超出预算,有些进度严重滞后,有些虽然开发成功,但是却 难以修改、维护。著名的例子有i b m 公司的o s 3 6 0 系统,花费了几 千人年的努力,历尽艰辛,但结果令人失望:美国阿波罗1 4 号太空飞 船在飞行的1 0 天内,出现了1 8 个软件错误 1 】这就是2 0 世纪6 0 年代 末期所发生的“软件危机 ,体现在软件可靠性没有保障、软件维护 费用不断上升、进度无法预测、成本增长无法控制、程序人员无限度 地增加等各个方面,以致形成人们难以控制软件开发的局面。 为了缓解软件危机,1 9 6 8 年,北大西洋公约组织n a t o 在德国 g a r m i s h 举行的学术会议上正式提出了软件工程的概念。对软件工程 的定义有很多,两个比较有代表性的定义是: 。 ( 1 ) f r i t zb a u e r 认为,软件工程就是为了经济地获得能在真实的机器 上可靠、有效运行的软件而建立和使用的好的工程规范。 ( 2 ) 1 9 9 3 年i e e e 的定义:应用系统地、规范的、量化的,也即应 用工程化的方法来开发、操作和维护软件:关于中的方法的研究 【2 1o 软件工程的研究对象包括过程( p r o c e s s ) 、方法( m e t h o d ) 和工具( t 0 0 1 ) 在软件工程提出的早期,研究人员把主要精力放在对软件开发方法、 技术以及工具和环境的研究上。探索新的软件开发方法和技术以提高 计算机软件的生产率和质量一直是软件工程领域的一个焦点。过程的 作用没有得到足够重视。过程仅存在于研究人员的大脑中,被想当然 的认为是非常简单的问题,不值得花费精力专门研究,大多数研究人 员都有一个信念,认为“只要有好的软件开发方法和工具就可开发出 高质量的软件,并且就能提高软件生产率。 从2 0 世纪7 0 年代初开始,过程的作用被一些研究人员注意到, 各种软件开发过程模型相继提出,典型的有r o y c e 提出的瀑布模型、 b h e n d e r s o n s e l l e r s 提出的喷泉模型和b o e h m 提出的螺旋模型等。这 硕士学位论文 些软件开发过程模型的提出,为以前仅存于研究人员大脑中的“过程 观”注入了具体的内容。把软件的开发纳入了工程化的轨道,这些研 究带来的结果是令人欣慰的:大量有效的方法和工具被开发出来,软 件质量得到了改善,软件开发与维护的费用大为减少,用户满意率提 高等,“软件过程”概念就是在这样的形势下,日渐凝聚而趋向明朗。 但是这一时期提出各种软件开发过程模型。除了自身不足之外,普遍 都是过于抽象,可操作性差,具体的软件过程往往得不到有效的支持, 重要的过程细节通常隐含在个人的头脑中和某些工具中,对于软件组 织来说很难保证实际开发过程与文档中描述的开发过程之间的一致。 2 0 世纪8 0 年代,通过对软件工程方法的研究人们提出了大量的 软件开发方法、技术以及工具和环境。从结构化程序语言、结构化分 析和设计方法到面向对象程序语台、面向对象分析和设计方法,它们 从更高的抽象层次分析和描述软件系统,减小了问题空间和解空间之 间的语义差异,减轻了分析和设计人员负担,使他们能更多的关注于 应用领域问题而不是实现细节。各种可视化编程工具以及各种软件工 程环境也为软件的开发人员带来了极大的便利。所有这些都为提高了 软件的开发效率和质量做出了贡献。 但是,有效的开发技术和工具并不能保证可以成功地开发一个复 杂的软件系统,这是因为开发一个软件系统需要涉及大量活动、产品、 人员、资源等,随着软件的规模和复杂度迅速增加,软件项目的管理 控制变得非常困难。在无纪律、混乱的软件过程中开发软件往往不是 进度经常严重滞后,就是经费预算大大超支乃至翻番。面对越来越多 的应用领域和规模越来越大的软件项目,当时己有的各种软件开发过 程模型渐渐显露出其过于抽象的局限性,软件界时刻面临着新的挑 战,软件过程受到前所未有的重视,以软件过程为基本概念的一种新 的软件工程概念框架就是在这种形势下被正式提出的。 当前软件过程管理系统的开发效率和软件复用度极低,通用性不 强,导致软件的开发成本极高;同时,由于软件的开发不规范,通常 软件的维护成本也非常高。 本课题是软件过程技术领域的研究热点之一,针对目前软件行业 现状及软件技术的发展而提出来的,目的在于建立柔性的适应新的软 件开发方法和工具技术的开发过程管理平台。 面向服务的过程引擎系统模型研究 1 2 发展和研究现状 1 9 8 4 年1 0 月召开的第一届国际软件过程研讨会正式提出了软件 过程的概念。从此以后,对软件过程的研究就成为软件工程领域的一 个热点嘲。 软件过程的概念被提出至今己有二十余年,但到目前为止仍然没 有形成统一的定义。这期间出现了许多软件过程的定义,比较典型的 有如下几种: 软件过程是建立、维护和进化软件产品的整个过程中所实施的一 系列活动的集合,每个活动可由一些任务组成h 1 软件过程是软件生存周期中为达到某一目标而必须实施的所有软 件工程活动的集合,一个软件过程可分为若干个过程步,并且它是 这些过程步的一个偏序集合h 1 。 软件过程是建立、维护和进化软件产品的整个过程中所有技术活 动和管理活动的集合也可以认为:一个软件过程是一组受约束的 协同活动晦1 。 1 2 1以过程为中心的软件工程环境 以过程为核心的软件工程环境p s e e ( p r o c e s s c e n t e r e d s o f t w a r ee n g i n e e r i n ge n v i r o n m e n t ) 是一种以软件过程模型为核心, 对基于过程模型的软件开发工作提供自动支持的新型c a s e 环境它 提供各种软件工具在软件系统的整个生命周期中辅助系统分析员、软 件设计员、配置管理人员等进行软件的开发、管理和维护工作。软件 工程环境收集、整理、存储并提供软件工程过程中的各种资料,如软 件需求、设计文档、程序代码、测试计划、度量、时间表和资源分配 情况。软件工程环境还为项目小组的成员之间,技术人员和管理人员 之间提供通信手段。另外,软件工程环境还给每个工具提供一致的用 户界面,减少开发过程中的冗余信息,并且促进开发活动中的协作。 p s e e 一般可以分为过程集中式p s e e 和联邦式p s e e 。 ( 1 ) 过程集中式p s e e 过程集中式p s e e 的软件体系结构如图卜1 所示其中:用户接 口机制( u s e ri n t e r f a c ef a c i l i t y ) 用于接受用户的请求和向用户提 硕士学位论文 供过程消息。用户接口实现实际的软件开发过程到过程模型之间的映 射。一般来讲系统可以同时为多用户提供接口,并且为不同需求的用 户提供不同的交互方式。从用户接口与过程引擎的关系来看,一般由 紧耦合和松耦合两种方式,紧耦合指用户接口交互的方式由过程模型 严格定义;松耦合则指过程模型只为接口提供数据,具体的交互方式 根据用户的需要定制。过程引擎( p r o c e s se n g i n e ) 是过程建模语言 解释器。其作用是相应过程模型的解释执行,同时对实际软件开发过 程中发生的事件作出相应的反应。过程引擎应具有激活相应的工具 及检索、处理和存储过程产品的能力。过程仓库( r e p o s i t o r y ) 用于 存储和维护软件过程实施中产生的各种产品和状态信息。 田 早田掣早掣 山上上j r 过程引肇 蔓墨 图1 - ! 过程集中式p s e e 软件体系结构 ( 2 ) 联邦式p s e e 每个有关的开发小组都拥有其独立的p s e e ,如图1 - 2 所示,他们 可以设计符合其自己需要的过程模型,并同时进行实施系统中同时 存在多个实施中的过程实例,过程实例之间是松散耦合的,每个实例 由高度的自治性,独立运行在各自的机器上系统通过称为“胶水 的连接机制,实现过程实例之间的交互借助i n t e r n e t ,联邦式p s e e 非常适用于支持软件开发机构之间的合作。 图卜2 联再【式p s e e 体系结构 p s e e 从很大程度上扩充了以往的软件环境,首先,它支持定义 应用在软件开发中的明确的过程定义;其次,它将软件过程只看作是 软件生命周期的静态描述,而且将过程看作具有自己生命周期的动态 实体。p s e e 具有如下几个重要特征: 过程化:过程工程应用p s e e 定义的一个或多个项目的过程, 面向服务的过程引擎系统模型研究 过程化是p s e e 的核心。 集成化:p s e e 集成了多种软件开发辅助工具。集成环境使开 发人员节省了时间,同时提高了工作效率。 自动化:软件工程最终的目标就是使得软件开发完全自动化, 实现软件的工业化生产。p s e e 中的自动化是指本来许多要由 人来完成的任务,比如开发人员之间的联系、任务的部署等, 都由计算机来完成,从而节省开销,降低了人为的疏忽和出错 的机率。 分布性:p s e e 的推荐应用环境是在企业局域网中,通过p s e e 实现各种资源之间的联系和交互。 可见性:运用p s e e 对每个过程的输入和输出结果进行校验, 增加每个过程的透明度。 可控性:软件开发经常因为某种原因而导致提交延期,成本超 过预算,对软件开发过程失去控制。p s e e 通过制订和实施适 合各个企业自身特点的一套软件开发过程来提高软件过程的 可控性。 。 灵活性和适用性:p s e e 并不指定特定的软件开发方法和工具, 因此,不同的企业可以根据自己的情况选择软件开发方法和开 发工具,通过过程定义和应用代理集成到p s e e 中,适合各自 的需求。 复用性:p s e e 形式化了软件开发过程,实现了软件过程的全 记录,从而实现软件开发过程的复用,提高了软件的生产效率。 p s e e 是新型的c a s e 环境,它能够在软件过程思想的指导下分析、 管理和自动引导执行,提高软件开发过程的自动化程度,提高软件开 发管理水平n 别。 以过程为中心的软件工程环境中最基本的组成部分是软件过程 引擎,软件过程引擎负责对软件过程计划,控制和监督但是目前以 过程为中心的软件过程环境强调的是过程的执行,对过程的复用以及 面向i n t e r n e t 的软件工程环境研究和支持不足,为了克服以上不足, 需要建立一种新型的、灵活的软件过程环境。 硕士学位论文 1 2 2过程引擎 软件开发过程是一个复杂的活动,涉及许多开发人员和相应的工 具、资源、产品、角色等。软件过程引擎p e ( p r o c e s se n g i n e ) 实现开 发过程的自动处理,支持产品、数据、任务在参与者间传递,完成整 个软件过程的开发目标。 过程模型在过程引擎里运作执行,一个过程引擎负责执行服务器 中部分或全部控制运行环境。过程引擎能处理: 1 ) 解释过程模型 2 ) 控制过程实例,包括创建、激活、挂起、中止等 3 ) 为过程的活动导航,包括顺序或并行的操作、最后时间期限; 相关数据的解释等 4 ) 用户的登陆和退出,管理员的权限管理等 5 ) 项目信息和用户信息的提示,提供接口,支持用户交互 6 _ ) 维护过程相关的控制数据和产品数据,在应用程序间或用户间 传递数据信息 7 ) 提供调用外部程序的接口 8 ) 提供控制、管理和审查功能。 过程引擎是p s e e 的一个核心部件口1 。作为p s e e 系统的一部分, 一般没有单独的过程引擎,必须要以相应的过程建模语言和建模工具 作为基础。过程引擎支持和指导开发人员进行软件过程中的各项活 动,环境不再是完全由人来驱动的一种被动的辅助设施,它将通过程 引擎主动地驱动和协调环境的各个实体。 1 因为工作流技术和软件过程技术的相似性,许多工作流引擎也被 用来作为过程引擎盯1 ,解释经过修改或扩展的过程语言。这些产品有: 1 e a s t m a ne n t e r p r is ew o r k f l o w e a s t m a n 企业工作流管理系统是面向影像处理的高度可扩展的 工作流解决方案。它提供基于表单的开发环境,用于事务处理、图像 和o c r i c r e a s t m a n 展现域内服务器数与吞吐量的线性增长关系, 并支持多域操作,能满足大型企业和跨行业的数据需求。图形化的脚 本工具能满足低成本的活动节点的开发。 基于w i n d o w sn t 的生产型工作流 集成影像技术 面向服务的过程引擎系统模型研究 大量的参与者可以分布在不同的地理环境中,如部分工作在家 里 简洁明了的活动节点实现和应用程序的集成 2 s t a f f w a r e s t a f f w a r e 工作流管理系统很好的平衡了生产型工作流和管理型 工作流的需求,而且它的产品吞吐量很高。活动节点可以通过表单定 义或脚本语言来实现,而且所使用的脚本语言可以部署到w i n d o w s 的 j a v a 客户端。s t a f f w a r e 为主要的e a i 中间件产品集提供了接口。它 支持分布式配置和处理,并且能将活动分发到l o t u sn o t e s 和 m i c r o s o f te x c h a n g e 环境下。它有面向对象的开发工具箱,提供了 强大的r a d 集成开发环境。 具有优秀管理能力的纯生产型工作流 满足客户大部分的需求 支持低成本的原型开发,适合一般的管理型流程 为高端的生产型工作流管理系统提供了e a i 接口 3 i - f l o w t e 锄w a r e f l o w 工作流管理系统具有优秀的流程动态实现性能, 可以在流程定义还不完全时就开始运行,可以在流程实例正在运行 时修改流程定义。它使用与l o t u s n o t e s ,mi c r o s o f te x c h a n g e 具有 相同功能的t e a m w a r e 组件,来实现电子邮件、文档管理和用户识别 等功能。它的附属产品d o l p h i n 是具备实时定义和流程直接运行特点 的特定型工作流。 工作流引擎性能稳定,支持协同开发低成本的应用程序 吞吐量中等的生产型工作流管理系统 支持i n t e r n e t ,集成l o t u s n o t e s 和e x c h a n g e ,便于二次开发 附带特定型工作流d o l p h i n :能实时发布和运行 集成表单定义工具和a c ti v e x 控件 4 ti b i n c o n c e r t t i b i n c o n c e r t 工作流管理系统采用面向对象技术、文档管理和 过程模型,支持流程的快速创建和修改。如果流程实例运行时发生异 常或需要修改,可以实时进行修改。它提供方便的流程定义工具,并 且流程定义可以通过客户机服务器、j a v a 和基于h t m l 的客户端进 行发布。支持由c ,c + + 或j a v a 格式的纯面向对象的a p i 。i n c o n c e r t 硕士学位论文 紧密集成了t i b c oe a i 基础构架,通过它可以得到基于消息的应用集 成能力 支持流程定义的动态变化 工作流引擎提供丰富的纯面向对象的a p i ,便于二次开发 支持丰富的事件机制来处理异常 健壮的规则引擎 为电信、精密制造和b 2 b 电子商务提供业务模板和集成软件 5 s u nf l o w s u nf l o w 采用基于域的联邦系统架构,是一个分布式的工作流 管理系统,系统基于j 2 e e 平台开发,支持海量数据处理,支持行业、 大型企业的应用:具有很强的业务描述能力,能够描述目前非常复杂 的业务流程。另外,s u n f l o w 互操作性能好,可以兼容目前流行各种 关系数据库,运行在w i n d o w s ,u n i x ,l i n u x 等操作系统上。 流程定义支持s c r i p t ,可定义各种复杂的流程逻辑 、 提供0 c x ,d l l ,s e r v l e t ,e j b ,j a v ac l a s s 类型的工作流引擎接 口,可使系统方便嵌入到c s ,b s 架构的各类系统中 系统提供集成代理( i c o n n e c t ) ,可基于w o r k f l o w 系统实现与 c o m 、s o c k e t 、e j b 、j a v ac l a s s 、j m s 等的集成n 5 m 1 1 2 3主要存在的问题 经过多年的研究和实践,软件过程技术的各个力面已取得了丰富 的研究成果,开发出了几十种过程建模语言和p s e e 原型。但是软件 过程技术仍然难以应用到实践中去,原因有很多,包括:软件过程建 模语言难以解决需求问题的冲突,即提供丰富语义描述和方便用户使 用之间的冲突:不能为软件开发者提供合适的过程支持:不能很好的 处理过程运作中出现的演化要求等1 ,其中,过程引擎的缺乏柔性的 运作也是原因之一。目前,多数现有的p s e e 都是按照主动控制方式 运作,即p s e e 通过过程引擎控制和指导实际的软件开发过程,控制 方式由过程引擎发起并控制参与者所做的活动,倾向于仅仅把参与者 看作机械的执行指令的“机器人”,参与者只能被动地执行过程引擎 发布的指令,忽略了软件开发中的创造性活动,过分强调自动化。结 果,开发一个过程模型往往意味着开发一个过程程序,难以应用到实 面向服务的过程引擎系统模型研究 践中口1 。随着软件开发技术的发展及软件开发规模化和异构化发展, 在支持软件的大量模块化、动态组装、灵活性及可扩展方面提出了新 的要求。本文正是在基于这种情况下提出了一个面向服务的过程引擎 系统模型( s o p e ) ,该过程引擎系统通过引入过程服务的概念将过程 工具灵活管理起来,负责过程定义的解释和执行、服务的调度执行及 过程执行情况监控,并且易于扩展,支持大规模软件的开发和管理。 1 3 本文的主要内容 本文的主要内容如下: 1 首先对过程支持系统的现状和发展进行了分析,指出了现阶段 过程引擎系统的不足;分析了软件过程技术的发展、几个典型的软件 过程模型。 2 设计了s o p e 模型的体系结构。以过程服务在s o p e 中的执行为 主线阐述了s o p e 的八个主要部件和五个接口功能和设计结构。建设 性地提出了s o p e 的执行器对执行片段的调度算法,该调度算法的思 想是先来先服务( f c f s ) 的调度策略结合超时超长剥夺策略的调度算 法。 3 建设性地把软件开发过程用到开发工具看作是一种过程服务, 通过过程组装可以适应不同的系统需求。 4 本文最后给出了s o p e 模型的几个模块的实现方法,提出了该 模型的三层构架思想及实现方案。 1 4本文的组织结构 本文共分五章,第一章主要介绍本课题研究背景及主要内容;本 文第二章介绍了软件过程技术的发展、过程建模语言和过程组装的方 式及过程演化方法;第三章提出了面向服务的过程引擎模型的基础, 其中有过程服务的形式化描述及过程模型的描述及该模型的功能组 成;第四章提出了s o p e 模型的系统结构设计及主要模块的实现方法; 第五章对本课题进行了总结,并阐述了本课题需进一步研究的工作。 面向服务的过程引擎系统模型研究 2 软件过程技术 本章主要介绍了软件过程的背景知识,包括常见的软件过程模 型、软件过程建模。 2 1软件过程的定义 过程( p r o c e s s ) :“针对一个给定的目的的一系列操作步骤 n 们。 这些步骤的执行可以是有序的、并发的、嵌套的、重复的、也可以是 通过条件触发的。 在1 9 9 3 年的第二届软件过程国际会议上,f e l l e r 和h u m p h r e y 提出了软件过程的概念框架。其中提出的基本的概念的含义如下: ( 1 ) 过程架构( p r o c e s sa r c h i t e c t u r e ) :用于将过程元素一致地进 行拼装、关联、裁剪为一个可执行过程o ( 2 ) 过程设计( p r o c e s sd e s i g n ) :建立过程架构的选项,现有可复 用构件和新构件的结构和行为,以及这些构件的关系。 ( 3 ) 过程定义( p r o c e s sd e f i n i t i o n ) :指为满足某个项目的目标而 描述的参数化过程模型。 ( 4 ) 过程实例化( p r o c e s si n s t a n ti a ti o n ) :指从过程定义生成可运 作的过程,得到过程定义的一个实例( 称为过程实例) 。 ( 5 ) 过程运作( p r o c e s se n a c t i o n ) :指对可运作过程实例的实际执 行。 ( 6 ) 过程约束条件( p r o c e s sr e s t r i c t i o nc o n d i t i o n ) :过程动作时 应满足的条件。 ( 7 ) 过程规划( p r o c e s sp l a n n i n g ) :过程定义在运作时所需的资源, 这些资源和过程的关系、以及对这些资源的约束的说明。 ( 8 ) 动作状态( e n a c t i o ns t a t u s ) :可运作过程所处的状态 ( 9 ) 过程执行者( p r o c e s se x e c u t o r ) :过程动作的主体,负责解释 和执行可运作过程,它可以是人,也可是程序。 ( 1 0 )过程控制( p r o c e s sc o n t r o l l i n g ) :有权存取所运作过程的状 态、数据以及影响其运作,可以启动、监控、调整、或中止所控制 的进程。 硕士学位论文 ( 1 1 )过程跟踪( p r o c e s st r a c k i n g ) :指对过程运作状态的一系列 、1 = 记习o 和软件一样,软件过程也有其生命周期。根据上面的概念,可以 识别了软件过程生命周期的几个关键活动: 1 过程建模( p r o c e s sm o d e li n g ) ,是以某种( 形式化半形式化 非形式化的) 方式刻画一个组织的软件过程的行为,得到一 个软件过程模型。它包括过程设计、定义、规划、定制、裁剪、 复用等活动。 2 过程分析( p r o c e s sa n a l y s i s ) ,包括静态分析和动态分析, 它们在过程运作前识别和研究过程模型中的问题,提出模型的 改进方案,以达到优化过程模型的目的。其中过程的动态分析 中最常用的方法是过程模拟( p r o c e s ss i m u l a t i o n ) ,它是在 没有实际执行者、工具和数据的状态下,由程序在不同决策下 对过程模型作出解释。 3 过程运作( p r o c e s se n a c t i o n ) ,指由过程执行者参与执行一 个可运作的过程模型的行为,它要求形式化地定义软件过程, 避免运作时出现二义性。 4 过程度量( p r o c e s sm e a s u r e m e n t ) ,指在过程运作中或运作后, 采用量化的手段分析软件过程的质量、生产率等性能指标,以 作为过程评估和改进的定量依据。 2 2软件过程模型 软件过程模型是对软件过程的抽象和描述,可以为形式化、半形 式化或者非形式化的。软件过程模型所描述的软件过程可以由软件开 发人员或者计算机系统的实施活动来完成。一个软件过程模型中反映 了软件开发过程中的行为、功能和组织等信息,帮助软件开发人员以 及其他参与人员正确理解软件过程。一个灵活、强有力的过程模型将 为所有参与软件开发的人员提供帮助和指导,使得软件开发过程有序 进行。一个理想的过程模型应满足以下几个准则n : 有利于过程重用 支持过程评估 面向服务的过程引擎系统模型研究 易于对软件过程进行控制和管理 软件的开发不能是无序的,因此人们提出了各种软件过程模型来 指导和规范软件的开发过程n 副。传统的软件过程模型主要有以下几 种: 1 线性顺序模型( 瀑布模型) 1 9 7 0 年r o y c e 提出的瀑布模型是经典的软件过程模型,它借鉴 了传统的工程周期,提出一个软件开发是由需求分析开始,随后是分 析、设计、编码、测试和维护。它和结构化的软件开发方法使软件开 发进入工程化的时代,提高了软件的生产效率和质量。瀑布模型的主 要缺陷是前期工作中产生的潜在问题可能要到测试时才能被发现,这 样就大大增加了软件开发的成本,并使项目的完成变得不可预期;另 外它要求在开发前清楚地描述所有的需求,这是难以做到的。 2 快速应用开发模型 快速应用开发( r a p i da p p l i c a t i o nd e v e l o p m e n t ,r a d ) 模型哺1 也是一个线性顺序的软件开发模型,但是它强调极短的开发周期,通 过使用基于构件的方法进行快捷开发。它主要包括业务建模、处理建 模、应用生成、测试等开发阶段。它的主要缺陷在于它要求开发者在 很短的时间内创建出可用的系统,不适合开发难以模块化、有高性能 要求、以及具有高技术风险的系统。 3 演化软件过程模型 由于客户对系统的需求在开发中可能发生改变,交付使用后也需 要对软件进行完善和修改,软件系统在其开发、使用、维护的生命周 期中不要避免地需要进行演化。为了适应随时间演化的软件的开发, 人们利用迭代的思想方法描述软件过程,这方面的模型有螺旋模型 乜副、喷泉模型乜引、构件组装模型等乜 : 在螺旋模型中,软件开发是一系列的增量发布,通过多次的迭 代逐步产生软件系统的更加完善的版本。它在每一个开发周期 之前引入非常严格的风险分析和用户评估等方式,尽可能早地 发现并降低软件开发的风险,但它需要相当专门的风险评估技 术。 构件组装模型融合了螺旋模型的许多特征,但它是通过利用复 用已有的软件构件来构造应用程序的,从而可以大幅度提高其 生产率,它要求构件具有较好的可靠性、可维护性、可扩展性 硕士学位论文 和可重构性。 4 形式化方法模型 形式化方法模型要求软件工程师通过采用一个严格的、数学的表 示体系来说明、开发和验证软件系统,它们能够消除使用其它软件过 程模型难以克服的问题,可以更容易地发现和纠正软件中的二义性、 不完整性和不一致性。但是,它的代价过于昂贵,并且需要者具有使 用形式化方法所需的背景知识,因此它们只被用于有严格安全要求的 关键软件的开发中,这些传统的软件过程模型试图提供一个预定义 的、不能修改的过程并要求用户按照它进行开发,强调详细的、规范 化的活动和文档管理,而过多的管理会增加用户的负担,延缓整个开 发过程,因此它们被认为是“巨型”( m o n u m e n t a l ) 方法。与之相反 的是“轻载( 1 i g h t - w e i g h t ) 的方法,也称为敏捷软件过程( a g i l e p r o c e s s ) 口1 ,它们只应用一些简单的、必要的规则,抛弃那些复杂的, 实际上难以遵循的规则,在无序过程和过于繁琐的过程之间达到一种 平衡,使用户能通过仅仅执行“必须”( j u s te n o u g h ) 的过程来得到 较满意的结果。敏捷软件过程的两个主要特点是: 它是一种“可适应的”过程,允许修改自己来适应环境的变化; 它是面向人员的,试图使软件开发工作符合人的习惯。 极限编程模型( e x t r e m ep r o g r a m m i n g ,x p ) 模型乜引、可适应的 软件开发( a d a p t a b l es o f t w a r ed e v e l o p m e n t ,a s d ) 、以及s c r u m 瞠引 方法等可以归为此类: 1 ) 极限编程模型 x p 模型是当前最引人瞩目的敏捷型过程,它是k e n tb e c k 等从丰 富的开发实践经验中总结出来的一组简单易行的规则,如今已有一些 成功的应用口0 | 。x p 的四条基本的价值原则是:交流( c o m m u n i c a t i o n ) 、 简单( s i m p l i c i t y ) 、反馈( f e e d b a c k ) 和进取( a g g r e s s i v e n e s s ) 、 在此基础上建立了一些应该遵循的实践规则,如用户故事( u s e s t o r i e s ) 、小型发放( s m a l lr e l e a s e ) 、双人编程( p a i rp r o g r a m m e d ) 、 不断集成( i n t e g r a t eo f t e n ) 、单元测试( u n i tt e s t s ) 等。x p 的 最大特点是对测试的极度重视,它将测试作为开发的基础,要求程序 员写每段源代码时都得写相应的测试代码,它们不断的积累并被整合 到系统中。这样的过程会产生一个高度可靠的建造平台,为进一步开 发提供了良好的基础。x p 模型适合于中小型的、有着良好的交流机 1 4 面向服务的过程引擎系统模型研究 制的开发小组,不适合于庞大的项目组。 2 )可适应的软件开发 j i mh i g h s m i t h 提出的可适应的软件开发将混沌理论( c h a o s t h e o r y ) 的思想用于软件开发中,其核心是三个非线性的、重叠的开 发阶段:猜测,合作及学习。a s d 方法认为:由于不可预环境中的变 化,偏离计划不应被视为需要被纠正的错误,而是引导软件开发达到 正确目标的机会。此时人员之间的交流和合作处于很重要的地位,大 家可以通过交流提出创造性的解决方案。另外,在一个变化的环境中, 参与项目的各方都需要学习,以便能用当前周期的开发结果去修改下 个迭代周期,从而过程模型随着开发的进展而改变。 2 3过程建模 经过多年的研究,人们对于过程模型中需要描述的基本元素已经 有了比较一致的共识,其中,六种主要的过程元素为:活动、产品、 角色、人员、工具及演化支持【3 0 】,它们的含义如下: 活动:是过程中由人或工具执行的工作,它可以生成或修改一 些产品。它们是原子的,或者是包括多个子活动的组合活动。 产品:项目中开发、交付、维护的程序、文档或数据。它们是 原子的,或者是包括多个子产品的组合产品。 角色:是指具备执行某些活动或生产某些产品所需要的技能的 人员。 人员:具备某些技能,一般作为一个小组的成员

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论