(计算机软件与理论专业论文)工作流及其仿真技术在缺陷跟踪中的研究与应用.pdf_第1页
(计算机软件与理论专业论文)工作流及其仿真技术在缺陷跟踪中的研究与应用.pdf_第2页
(计算机软件与理论专业论文)工作流及其仿真技术在缺陷跟踪中的研究与应用.pdf_第3页
(计算机软件与理论专业论文)工作流及其仿真技术在缺陷跟踪中的研究与应用.pdf_第4页
(计算机软件与理论专业论文)工作流及其仿真技术在缺陷跟踪中的研究与应用.pdf_第5页
已阅读5页,还剩63页未读 继续免费阅读

(计算机软件与理论专业论文)工作流及其仿真技术在缺陷跟踪中的研究与应用.pdf.pdf 免费下载

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

文档简介

工作流及其仿真技术在缺陷跟踪中的研究与应用 摘要 缺陷跟踪系统是一种重要的测试管理工具,它贯穿于整个软件开发的生命 周期,具有涉及角色多,处理流程复杂等特点。目前,很多的缺陷跟踪系统是 构建在数据库管理系统之上,按标准缺陷跟踪过程设计,缺乏过程的灵活性, 缺陷处理的工作效率难以分析,跟踪过程的监控不易实现。工作流技术是解决 过程灵活性的一种比较好的方法,通过重新定义过程模型就可以满足实际业务 过程变更的需求,而不需要修改设计系统的具体实现( 即:数据库系统,编程 语言,硬件环境,用户界面等) 。同时,工作流仿真技术可以高效的,安全的,经 济的对过程模型进行验证和分析。 本论文对工作流技术应用于缺陷跟踪系统的建模、构建管理平台和仿真这 三个方面进行了研究,主要工作如下: 1 通过对软件过程模型的分析,给出了工作流描述语言定义软件过程的方 法,以及定义软件过程需要的扩展类。在扩展类的支持下,工作流描述语言可 以描述缺陷跟踪过程中需要的度量采集、通知和验证等功能。 2 按工作流参考模型实现缺陷跟踪系统的管理平台,依次给出参考模型中 各组件的设计和实现,并且给出对软件过程扩展类的解析方法。 3 进行缺陷跟踪过程仿真系统设计,并给出仿真环境设置、仿真执行和仿 真分析相关的算法和需要的组件。论文最后给出缺陷跟踪过程的仿真实例,实 现对过程模型、活动、人员和缺陷在时间、成本和工作量方面的分析。 关键字:缺陷跟踪,软件过程模型,过程支持工具,工作流,工作流参考模型 工作流仿真 r e s e a r c ha n da p p l i c a t i o no fw o r k f l o wa n di t ss i m u l a t i o nt e c h n o l o g yf o r b u gt r a c k i n gs y s t e m a b s t r a c t b u gt r a c ks y s t e mi s a ni m p o r t a n tt e s tm a n a g e m e n tt o o l ;i ti sa p p l i e dt ot h e w h o l es o f t w a r ed e v e l o p m e n tl i f ec y c l e v a r i o u sr o l e sa n dc o m p l e xp r o c e d u r ea r e c h a r a c t e r i s t i c so fb u gt r a c kp r o c e s s h o w e v e r ,n o wm o s to fb u gt r a c kt o o l sa r e b a s e do nd b m s i t sd e s i g na c c o r d i n gt ot h es t a n d a r db u gt r a c kp r o c e s s t h e r ea r e l a c k so fp r o c e s sf l e x i b i l i t y ,h a r d l yt oa n a l y z et h ee f f i c i e n to fb u gt r a c kp r o c e s sa n d n o te a s yt oi m p l e m e n tt h ea d m i n i s t r a t i o na n dm o n i t o r i n gf u n c t i o n w o r k f l o wi s w e l l s u i t e dt e c h n o l o g yt os o l v et h ep r o c e s sf l e x i b i l i t y i np r a c t i c a l ,d e v e l o p e rc a n r e d e f i n ep r o c e s sm o d e lt om e e tt h ea d j u s t m e n to fb u s i n e s sp r o c e s s ,a n dn o tn e e dt o m o d i f yi t sc o n c r e t ei m p l e m e n t a t i o n ( d a t a b a s ed e s i g n ,c o d e ,u s e ri n t e r f a c ea n de t c ) a tt h es a m et i m e ,w o r k f l o ws i m u l a t i o n t e c h n o l o g yc a ne f f i c i e n t l y ,s a f e l ya n d e c o n o m i c a l l ya n a l y s i sa n dv a l i d a t ep r o c e s sm o d e l ,a n di d e n t i f yp r o b l e m a t i ca r e a s f r o mm o d e l i n g ,b u i l d i n gm a n a g e m e n tp l a t f o r ma n ds i m u l a t i n gp o i n to fv i e w , w ed i s c u s sh o wa p p l yw o r k f l o wt ob u gt r a c ks y s t e m t h ec o n t r i b u t i o n so ft h i s d i s s e r t a t i o na r ea sf o l l o w s : i am e t h o di sp r o v i d e dw h i c hw o r k f i o wd e s c r i p t i o nl a n g u a g ed e f i n e ss o f t w a r e p r o c e s sm o d e l ,a n dt h ee x t e n s i o n sw h i c hw e r eu s e di ns o f t w a r ep r o c e s sm o d e l i n g s u p p o r t e db yt h ee x t e n d e dc l a s s ,w o r k f l o wd e s c r i p t i o nl a n g u a g ec a nd e f i n et h e f u n c t i o n so fm e t r i c sc o l l e c t i o n ,n o t i f i c a t i o na n dv a l i d a t i o nf o rb u gt r a c kp r o c e s s 2 a c c o r d i n gt ow o r k f l o wr e f e r e n c em o d e l ,t h em a n a g e m e n tp l a t f o r mf o rb u g t r a c ks y s t e mi s b u i l t ,t h ed e s i g n i n ga n di m p l e m e n t a t i o na b o u tm a j o rf u n c t i o n a l c o m p o n e n t so fr e f e r e n c em o d e la r ep r e s e n t e d ,a n dt h em e t h o do fp a r s i n gw o r k f l o w e x t e n d e dc l a s si sa l s oe x p l a i n e d 3 as i m u l a t i o ns y s t e mf o rb u gt r a c kp r o c e s si s d e s i g n e d ,a n dt h er e l a t e d a l g o r i t h m sa n dr e q u i r e dc o m p o n e n t sw h i c hs e ts i m u l a t i o ne n v i r o n m e n t ,p e r f o r m s i m u l a t e dp r o c e s sa n de v a l u a t es i m u l a t i o nd a t aa r ep r e s e n t e d a tt h ee n do ft h e d o c u m e n t ,as i m u l a t i n gi n s t a n c ef o rb u gt r a c kp r o c e s si si l l u s t r a t e d ;i tp r o v i d et h e a n a l y s i sr e s u l ta b o u td u r a t i o n ,c o n s u m e dc o s t ,a n dw o r k l o a df o rt h ed i f f e r e n t p r o c e s sm o d e l s ,a c t i v i t i e s ,p a r t i c i p a n t sa n db u g s k e y w o r d s :b u gt r a c k ,s o f t w a r ep r o c e s sm o d e l ,w o r k f l o w , w o r k f l o wr e f e r e n c e m o d e l ,w o r k f l o ws i m u l a t i o n 插图索引 图2 1 1 1 工作流过程定义元模型6 图2 ,2 5 1 软件过程模型的基本元素9 图2 , 2 5 2 软件活动描述框架1 0 图2 3 3 1g o a lx m ls c h e m a 图形化描述1 3 图2 3 3 2m e t r i cx m ls c h e m a 图形化描述1 4 图2 3 3 3 支持度量的过程模型1 5 图2 4 2 1 缺陷跟踪流程图1 7 图2 4 2 3 缺陷报告处理状态流,2 0 图2 , 4 3 1 缺陷跟踪过程集成2 0 图3 ,1 1 工作流管理系统参考模型2 2 图3 2 1 1 缺陷跟踪系统以数据库和以工作流引擎为中心的架构图2 4 图3 2 3 1 工作流实例库和缺陷信息库的数据库概念模型2 6 图3 3 1 1 扩展类结构2 9 图3 3 2 1 采集器在缺陷分配节点的位置3 0 图3 3 3 1 跟踪过程定义组件界面3 2 图3 3 4 2 项目经理工作列表界面3 4 图3 3 4 3 工作项管理区域数据编辑区域界面3 4 图3 3 4 1 监控和系统管理的部分界面3 5 图4 1 2 1 工作流仿真过程3 8 图4 1 3 1 工作流仿真系统架构4 0 图4 2 5 1 仿真执行4 3 图4 2 6 1 按概率输出选择4 5 图4 2 8 1 活动成本计算4 6 图4 _ 3 1 1 随机数生成器类图4 7 图4 3 1 2 仿真部件核心类4 8 图4 3 1 3 配置类4 8 图4 3 3 1 仿真数据库结构一5 l 图4 , 4 。1 。1 缺陷分布设置的界面5 3 图4 4 1 2 缺陷类别设置5 3 图4 4 ,1 3 仿真时间表的界面设置5 4 图4 4 1 4 活动仿真参数设置界面5 5 图4 4 2 1 仿真执行界面5 6 表格索弓 表2 3 2 1 工作流描述语言中的定义扩展类。 表2 4 2 2 缺陷跟踪过程模型中活动元素的规格说明 表3 2 3 1 缺陷表结构 表3 3 1 1 扩展类解析步骤 表3 3 4 1 工作流查询表达式实例 表4 2 7 1 修改缺陷活动的特征 表4 3 1 4 配置参数实例 表4 3 2 1 仿真执行部件编码 表4 4 2 2 仿真统计数据 一1 2 1 9 2 7 2 9 ,3 3 4 6 ,4 9 5 0 ,5 6 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成 果。据我所知,除了文中特别加以标志和致谢的地方外,论文中不包含其他人已经发 表或撰写过的研究成果,也不包含为获得金魍王些盍堂 或其他教育机构的学位 或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中 作了明确的说明并表示谢意。 学位论文作者签名: 荔胲 签字日期:口啊备月- 7 日 学位论文版权使用授权书 本学位论文作者完全了解金魍王业盘堂有关保留、使用学位论文的规定,有 权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅或借阅。 本人授权金胆王些盎堂可以将学位论文的全部或部分论文内容编入有关数据库 进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名: 签字目期:砧年g 学位论文作者毕业后去向 工作单位: 通讯地址: 导师签名: 签字日期: 电话: 邮编: 日 致谢 值此论文完成之际,谨向我的导师周国祥副教授表示最真挚的感谢! 在论 文的开题和撰写过程中,周老师多次对文稿进行悉心的审阅,并提出了很多 指导性的意见。三年来,不论是在学习上还是在生活上,周老师给了我无微 不至的关心和帮助。周老师严谨的治学态度,广博的知识、敏锐的学术思想 更是给我深刻的影响,成为我以后在工作上的榜样,在此表示衷心的感谢。 在这三年的学习期间和论文撰写过程中,网络所为给我提供了良好的学习 和实验环境。感谢马溪骏老师和实验室的同学们,在学习上为我提供了很大 的帮助,在此表示衷心的感谢! 另外还要感谢我的父母,感谢他们对我的养育之恩,没有他们的支持,我 不可能取得今天的成绩。 作者:张庆 2 0 0 6 年5 月 第一章绪论 1 1 论文背景 当前,软件过程改进成为软件行业确保软件质量、提高工作效率的主要途 径。许多软件企业将注意力集中到提升过程的成熟度上,各大软件企业纷纷采 用c m m ( c a p a b i l i t ym a t u r i t ym o d e l ,软件能力成熟度模型) 和r u p ( r a t i o n a l u n i f i e dp r o c e s s ,统一软件开发过程) ,目的是建立起规范化的软件开发过程, 增强企业的竞争力。然而,有些企业却并未达到预期效果,究其原因主要没有 根据企业的自身特点,完全照搬一些标准的过程模型,反而使企业陷入到不必 要的混乱中。同时,缺少符合开发过程特点的有效工具也是导致混乱的原因。 为什么企业需要定制自己的开发过程? 标准的软件过程是在研究大量应用 实例中总结出来的,并不能涵盖到实际过程中的每个细枝末节 1 】,企业往往需 要根据实际加以调整。例如,缺陷跟踪过程作为软件测试管理平台的组成部分, 针对不同项目,缺陷跟踪过程也不同。可靠性要求高的项目中,每个缺陷的报 告后需要经过初审、复审、方案设计、裁决、授权、版本归档等的步骤,角色 也涉及到测试人员、项目经理、测试经理、不同级别的评审人员、配置管理员、 开发人员等。而对于有些项目,缺陷跟踪的过程会简化很多。可见软件过程需 要一定的灵活性。 灵活的,定制的软件过程确实可以满足企业的具体需求,但同时也带来了 问题。其一,面对企业定制的软件过程使某些按照标准过程模型设计的过程支 持工具就不能完全满足用户的要求,工具的效率不能完全发挥。目前,在软件 开发过程中有些管理工具,如缺陷跟踪系统、需求变更管理系统等,都遵循给 定的管理规程。使用这些工具的用户必须受这些规程的约束,不能做适当调整。 其二,定制的软件过程在满足企业某方面的需求同时,也可能引入一些新问题。 而用户在具体实旖前却不易发现这些问题,最终造成不能预期的损失。那么是 否有技术满足过程灵活性的要求? 满足对定制过程潜在问题的分析和预测呢? 课题从以上问题出发,提出使用工作流技术来解决,同时选择缺陷跟踪系 统作为实验对象,以数据库管理系统和工作流管理系统为基础构建缺陷跟踪系 统原型。通过原型的设计和实现来验证工作流技术提高了工具的灵活性和自动 化程度;讨论工作流技术在实现监控功能和采集过程度量数据的功能方面的优 势:研究工作流仿真技术实现缺陷跟踪过程的仿真分析。 1 2 课题研究现状 12 1 工作流技术在软件过程领域中应用的研究现状 工作流技术作为伴随业务过程研究发展起来的技术,是一种反映业务过程 的计算机化的模型,支持分布异构环境下的流程管理,是实现业务过程的自动 化的必要支持【l 】 2 】。工作流技术的发展非常迅速,受到了产业界的大力支持。 工作流管理联盟( w f m c :w o r k f l o wm a n a g e m e n tc o a l i t i o n ) 不断推出新的标准, 新的工作流的产品也不断出现。随着,工作流技术的不断成熟,工作流技术的 应用领域也不断扩大。将工作流技术应用于构建软件过程的支持工具是工作流 技术应用的新方向。 1 9 9 4 年第三届国际软件过程会议上指出:“软件过程也是业务过程”,软件 过程中的理论起源于业务过程领域,j a m e sh a r r i n g t o n 的b u s i n e s sp r o c e s s i m p r o v e m e n t ) ) 中提到的过程思维和业务过程的管理思想都逐渐应用于软件企 业。业务过程领域的工作流技术也为软件过程支持工具的研究所借鉴。 市场的全球化和软件开发成本等因素使软件开发分布在不同的区域,软件 的设计、编码、测试可能由不同的企业来完成。分布式的软件过程建模是未来 发展的趋势【3 。它促进了工作流技术在软件过程领域的应用。因此,工作流技 术成了很多软件过程支持工具的设计和集成的技术解决方案。 目前,工作流技术在过程支持工具中的应用主要有以下方面: 1 通过工作流工具将软件开发中各种过程支持工具组织起来,构建集成的 软件开发环境,使各自独立的软件工具协同工作【1 4 1 1 1 5 。 2 用于构建具有保存、检索、剪裁和发布功能的过程定义和过程管理工具, 实现软件过程管理平台 3 2 】。 3 用于构建一些生命周期管理工具和生命周期活动工具。如,项目的管理 和跟踪工具。本课题的研究属于工作流技术在生命周期活动工具中的应用。 1 - 2 2 工作流仿真在软件过程仿真中应用的研究现状 软件过程的仿真研究起源于近几年,软件过程仿真的会议p r o s i m 从1 9 9 8 年开始每年举行一届。软件过程的仿真重点是分析特定的软件开发、维护和软 件产品的演化过程。它可以分析当前的正在实旖软件过程,也可以用于即将采 用的软件过程。软件过程的仿真手段很多,其中常见的有离散事件仿真和系统 动力学仿真 7 】,有时多种仿真手段综合使用【1 2 】。 通过离散事件的仿真手段 d e s :d i s c r e t e e v e n ts i m u l a t i o n l ,过程专家可以获 取对时间、成本、工作量和反馈率等方面数据,通过统计或启发式的方法发现 软件过程的瓶颈,以选择最佳的过程实施方案。离散事件仿真技术适合于有大 量的过程实例被处理,并且过程实例的处理周期相对较短的动态的过程【1 0 1 。 工作流仿真技术是一个比较薄弱的环节,离商业化还有一定的距离。工作 流仿真的难点主要在于:仿真的性能指标不好确定,仿真的内容复杂。目前, 工作流仿真实现的主要方法是利用离散事件驱动的仿真引擎模拟执行工作流模 型中的各项活动,自动推进过程实例。经过多次仿真运行,得到一系列关于工 作流模型运行的统计数据,如时间、过程成本和资源利用率等。 根据缺陷跟踪过程的特征,课题采用了离散事件仿真方法构建了系统的方 真平台。 1 3 课题研究的主要内容 随着软件过程思想的深入,一些软件开发中的具体活动或子过程( 例如:缺 陷管理、需求管理、项目跟踪等) 的完成需要不同角色,在不同区域,按照一定 的规程协作完成。因此,将工作流技术应用于这些过程支持工具的设计是本课 题研究的主要内容。 课题研究以工作流技术应用于缺陷跟踪系统的设计为主线,使用工作流过 程定义语言描述软件过程;采用工作流参考模型构建缺陷跟踪系统的管理平台; 以及基于工作流执行引擎设计仿真引擎,实现对于缺陷跟踪过程的仿真这三个 方面的内容进行研究和实现,最终实现缺陷跟踪系统的建模、执行和仿真分析 的整体框架。 1 3 1 工作流描述语言定义软件过程模型 研究工作流定义语言构建软件过程模型,首先研究工作流过程模型和软件 过程模型的相似点,从工作流模型的结构到软件过程模型的结构,从工作流模 型中包含的元素( 本体) 一一活动、相关数据、资源等和软件过程模型中包含的 元素一一活动、产品、参与者等之间的对应关系。研究工作流描述软件过程模 型所需要的扩展和改动。对于可自动采集的度量数据,在工作流模型中描述其 采集类和参数,并通过工作流引擎解释而自动执行。 课题以缺陷跟踪过程为例,给出了工作流描述语言定义跟踪过程的方法; 以及跟踪过程同其他软件过程模型的集成。 1 3 2 工作流参考模型实现缺陷跟踪系统的管理平台 课题以工作流参考模型为指导,结合软件过程中对度量采集和跟踪监控的 要求,研究缺陷跟踪系统管理平台的体系结构;同时,比较基于数据库系统和 基于工作流的开发方法,详细给出设计监控功能和客户端的区别。最后,课题 给出体系结构中各组件的实现和软件过程扩展类的动态装载。 1 3 3 工作流仿真技术实现缺陷跟踪过程仿真 研究在原有工作流执行引擎的基础上设计仿真引擎,给出设计仿真引擎需 要的组件和需要的常用算法。研究如何模拟参与者调用工作流引擎。最后,给 出缺陷跟踪过程的仿真实例。 1 4 论文内容安排 论文分为五个章节,具体内容安排如下: 第一章绪论 给出了论文背景、工作流技术在软件过程领域应用的研究现状,提出论文 的研究内容的三个方面: 工作流建模、软件过程建模一一缺陷跟踪过程建模; 工作流参考模型一缺陷跟踪系统的管理平台; 工作流仿真一一缺陷跟踪过程仿真; 第二章工作流描述语言与缺陷跟踪过程定义 本章首先介绍工作流模型和元模型。其次介绍软件过程模型、模型元素、 模型的层次结构和视图。在此基础上,说明工作流描述语言描述软件过程的可 行性,及需要的扩展,特别强调针对软件度量的描述。最后,给出缺陷跟踪过 程模型的描述实例。 第三章工作流管理系统架构与缺陷跟踪系统的架构 本章首先介绍工作流的参考模型,描述相关组件的功能。其次,比较基于 数据库系统的缺陷跟踪系统与基于工作流引擎的缺陷跟踪系统在设计和实现上 的不同。最后,给出缺陷跟踪系统客户端、监控台和过程定义组件的实现,以 及软件过程模型中扩展类的实现和装载。 第四章工作流仿真与缺陷跟踪过程仿真 本章首先介绍工作流仿真的作用、步骤、以及工作流仿真系统的一般框架。 其次,详细说明仿真引擎需要的组件和算法。最后,实现仿真引擎,并给出缺 陷跟踪过程的一个仿真的应用实例。 第五章总结与展望 本章总结了缺陷跟踪系统实现情况和优缺点,以及使用工作流技术构建相 似的软件过程支持工具的一般方法,最后对下一步工作提出展望。 4 第二章工作流描述语言与缺陷跟踪过程定义 在实际中,人们使用各种不同的工具和方法描述软件过程,描述文档通常 作为软件过程实施指导。而工作流描述语言是一种具有严谨语法格式,可被计 算机解释执行的过程描述语言。工作流描述语言定义的业务过程,可以在人工、 时间和外部事件的触发下执行,实现信息、文档的自动流转,提高业务过程的 自动化程度。 工作流描述语言能描述软件过程吗? 如何描述呢? 本章围绕着这两个问题 展开讨论。在2 _ 3 节给出了工作流描述软件过程的介绍,2 4 节给出了缺陷跟踪 过程模型的定义。 2 1 工作流过程模型 本文利用工作流技术来实现缺陷跟踪过程的定义、执行和仿真,因此在讨 论过程建模之前,需要了解工作流技术的基本概念和工作流模型的结构。本节 重点讨论工作流的过程模型和课题使用的o s w o r k f l o w 工作流描述语言。 2 1 1 工作流,及其元模型 工作流的概念是起源于生产组织和办公自动化领域。工作流管理联盟 ( w f m c ) 将工作流定义为能够完全或部分自动执行的业务过程,根据一系列 过程规则使文档、信息或任务能够在不同的参与者间传递。从更具体的角度看, 工作流就是一种计算机化的模型,是对业务过程领域的抽象。模型中描述了过 程执行需要的各种元素,包括步骤的定义,步骤间执行的顺序,条件以及数据 流的建立,步骤的参与者和执行步骤所需要的应用程序。工作流描述语言 ( w o r k f l o wd e s c r i p t i o nl a n g u a g e ) 可以实现对工作流模型严格、规范的定义。 工作流的元模型可以看成工作流描述语言的语法约束,其作用是清晰的定义工 作流中可包含的元素及元素间的关系,也为各种过程定义工具之间提供一个通 用的交换格式【5 。( 图2 1 1 1 ) 给出的是2 0 0 2 年工作流管理联盟发布的工作流 过程定义的元模型。 从元模型可以看出组成工作流模型的基本元素一一包括活动( a c t i v i t y ) ,变 迁( t r a n s i t i o n ) ,参与者( p a r t i c i p a n t ) ,应用程序( a p p l i c a t i o n ) 和相关数据 ( w o r k f l o wr e l e v a n td a t a ) ,以及活动与参与者、活动与应用程序、活动与活 动之间等各元素的关系。工作流过程定义语言可以在元模型的约束下描述出一 组相互关联的活动是如何组织起来协同工作的。 图2 1 1 1 工作流过程定义元模型 2 。1 2o s w o r k f l o w 过程描述语言简介 课题中使用的o s w o r k f l o w 不同于很多的工作流系统,它具有很大的灵活性。 o s w o r k f l o w 可以被看成工作流的底层实现,它并没有提供图形化的过程建模环 境,而是通过编码实现过程的描述:同时,o s w o r k f l o w 的过程描述语言同j a v a 编程语言之间能够很好的集成,灵活的实现了过程定义中复杂条件的表示和功 能的扩展。o s w o r k f l o w 的设计是基于有限状态机理论,有限状态机中描述的状 态( s t a t e ) 对应过程定义中的步骤s t e pi d 和s t a t u s 。状态间的变迁( t r a n s i t i o n ) 是通 过执行过程定义中活动( a c t i o n ) 来实现。该理论是o s w o r k f l o w 引擎实现的核心支 持 6 】。 以下给出o s w o r k f l o w 中描述语言结构的简述: 1 一个工作流( w o r k f l o w ) 可以包含多个s t e p ( 步骤) 。 2 一个s t e p 可以有多个a c t i o n ( 动作) 。a c t i o n 可以被设置为自动执行, 也可以是通过用户调用执行。 3 一个a c t i o n 要至少有一个u n c o n d i t i o n a lr e s u l t 和零到多个c o n d i t i o n a l r e s u l t ( r e s u l t 是指a c t i o n 的执行结果) 。 4 如果指定了多个c o n d i t i o n a lr e s u l t s ,那么符合执行条件的第一个r e s u l t 将被执行,如果没有指定c o n d i t i o n a lr e s u l t s 或者没有任何一个c o n d i t i o n a lr e s u l t s 符合执行的条件,那么将执行u n c o n d i t i o n a lr e s u l t 。 5 一个r e s u l t 可以仍然使流程驻留在当前s t e p 中,可以指向一个新的s t e p , 可以指向一个s p l i t ( 步骤分割) ,还可以指向一个j o i n ( 步骤合并) 。 6 每个s t e p 定义前包含权限约束的描述。每个a c t i o n 定义前后包含约束 定义r e s t r i c t 、验证的定义v a l i d a t o r 、前置处理函数p r e f u n c t i o n 和后置处理函 数p o s t f u n c t i o n 。 6 2 2 软件过程模型 在介绍了工作流的元模型和o s w o r k f l o w 描述语言后,将讨论如何使用工作 流描述语言定义软件过程。软件过程不同于生产领域的批量生产过程和日常的 办公过程,软件过程是智力密集型的工作,它所体现的创造性要求软件过程必 须能按照专业人员或特定任务的需求动态地进行调整【4 】。同时,软件过程是不 断改进的过程,对于过程的度量是推动软件过程改进的保障。 2 2 1 软件过程的含义 早先,生命周期的概念在软件项目的开发过程中得到了广泛的应用,但随 着对软件和软件工程的更深入的研究,软件过程的思想逐渐为广大企业所接受, 也成为近几年软件工程领域的重要研究方向。软件过程是软件生命周期中的一 系列活动的集合【8 】。软件过程中的活动可以分解为若干子活动,软件过程活动 的执行可以是顺序、并行、选择、迭代和嵌套的关系,同时,软件过程中活动 的执行受到很多因素的约束一一人员,产品,文档,时间,标准等。因此,对 于软件过程的分析是构建高效过程环境的必要环节。 2 2 3 软件过程的分析 软件过程的复杂性决定了必须从不同侧面、不同层次分析软件过程。分析 软件过程的第一步是收集过程数据,一般需要从以下几方面的问题入手,即: 为什么需要定义过程( w h y ) ( 是项目的需求,是工期的限制) 该过程是什么 ( w h a t ) ( 由那些活动、任务,输出了那些工件等,也就是结构上的定义) 怎 么做( h o w ) ( 活动间的执行条件、规则以及所交互的信息,也就是控制流的定 义) 由谁来做( w h o ) ( 人或者辅助工具,也就是组织角色的定义和工具的定义) 何时做( w h e n ) ,还可以更深入的了解做得怎样( 是否需要度量和评估) ,需要 多少资源( 时间,成本或人力的耗费) 等问题。在对软件过程有了透彻的分析 后,构建软件过程模型的工作就可以开始。 2 2 3 软件过程模型的作用 软件过程模型是对软件过程的抽象化描述。将工作流技术应用于软件过程 支持环境的设计的关键在于实现工作流描述语言对软件过程模型的描述。为企 业构建软件过程模型主要有以下目的 9 : 易于理解和有效交流:软件过程模型涵盖了软件开发过程中积累的知识和 经验,为过程培训提供了基础。使参与者了解自己在过程中的位置,明确 承担的任务和协作对象。 实现自动化的支持环境:规范的过程模型为计算机识别过程执行的细节提 供了可能:构建自动化的支持环境,提高分析过程模型和执行过程模型的 能力,也为软件过程模型的集成提供可能。 实现软件过程的重用:o s t e r w e i l 指出“软件过程建模的最大好处是为以后 软件过程的重用提供可能”。针对特定项目的软件过程模型在经过不断调整 并实施后,将会成为企业的重要财富,进而可以更可靠、更高效应用于以 后的项目。 有利于过程改进:通过保存各种过程模型和成功的剪裁实例,在过程实施 前,对过程模型进行分析和仿真;在过程执行中,获取过程的度量信息。 最后通过对比、分析、评估,实现过程的改进。 实现软件过程管理和控制:伴随企业软件过程知识的积累,统一的软件过 程框架的建立,使企业能够更为有效的计划,控制软件过程的实施。 2 2 4 软件过程模型的层次和视图 软件过程模型被定义在三个层次上,层次的关系体现了软件过程的不断细 化。越高层次的模型对于软件过程的描述越概括,越低层次的模型对于软件过 程的描述越详细,相同的活动在越低的层次模型中描述的差异就越大。 u 通用的( u n i v e r s a l ) w 经验的( w o r l d l y ) a 原子的( a t o m i c ) 通用的过程模型( up r o c e s sm o d e l s ) 是对软件过程模型概括的了解,例如 瀑布模型,描述了软件过程最基本的步骤和需要角色,对于介绍软件开发过程 很有帮助,但面对日益细化的工作流程,该模型很少作为指导文档应用于实际 的软件开发过程中。 经验的过程模型( wp r o c e s s m o d e l s ) 是开发者和管理者实际应用中必须了 解的。模型中提供了一系列具体的工作任务以及定义了完成任务的先决条件 ( p r e r e q u i s i t e ) ,关键检查点( k e yc h e c k p o i n t ) 和预期结果( a n t i c i p a t e dr e s u l t s ) 。 原子的过程模型( a p r o c e s sm o d e l s ) 该模型在w 基础上提供了更多的细节, 是自动执行过程的必要保证。其中,使用的工具、过程中的规则说明、精确的 数据定义、信息流、用户规程等都是该模型定义的核心。 三个层次上的过程模型所体现的重点是不相同的。通用的过程模型主要体 现整体策略和方针( p o l i c i e s ) ;经验的过程模型主要体现实施的过程 ( p r o c e d u r e s ) ;原子的过程模型主要体现具体的标准和工具( s t a n d a r d s & t o o l s ) 。 软件过程模型包含三个基本的视图【4 3 4 】,缺少其中任何一个都不能清晰 表述软件过程。三个模型相互引用,从整体上看,三个视图回答了过程分析中 “w h o w h a t ,w h e n ,h o w ”的答案: 状态视图( s t a t ev i e w ) ; 组织视图( o r g a n i z a t i o n a lv i e w ) ; 控制视图( c o n t r o lv i e w ) ; 状态视图是过程模型的核心,主要抽象出了软件过程中不同阶段( s t a g e ) 的任 务( t a s k ) 和实体( e n t i t i e s ) 的状念信息。因此状态视图也包含两个相互联系、 相互补充的描述方法: 面向任务的( t a s k o r i e n t e d ) 描述:主要关注如何组织必要的资源( 人员、 时间、技术) 完成软件过程中的任务。 面向实体的( e n t i t y o r i e n t e d ) 描述:这里的实体主要是指在软件开发过程 中的产品( 即:过程活动中产生的任何制品( a r t i f a c t ) 、交付物或文档等) 。 通过为每种实体定义一系列状态以及促发状态变化的事件来描述出实体间 的相互依赖关系。 面向任务的描述和面向实体的描述存在着密切的关联,前者直接描述任务 发生状态变化的同时也隐含了实体状态的变化,后者在描述实体状态变化的同 时也包含的了任务间的转换。 组织视图中主要展现了企业在活动中职责的划分以及职责间的层次关系, 是实现定义角色和权限控制的基础。目前很多软件企业中采用的组织视图并不 是传统的树状结构而是矩阵结构。该结构更为有利于以项目为导向的行业。 控制视图主要关注过程的度量和控制。通过描述软件过程中的数据采集、 核准( a p p r o v a l ) 和报告的流程来反映出软件的管理活动、控制活动和支持活 动间的关系。 2 2 5 软件过程模型中的基本元素: 软件过程模型中的元素是软件过程建模中的要素,是软件过程抽象的基础。 其中几个典型的元素( 如图2 2 5 1 ) 一一活动,产品,执行者,角色是软件 过程模型中必不可少的要素。 8 活动( a c t i v i t y ) 是过程中 的某工作阶段( s t a g e ) ,直接表现 为使软件产品的状态发生变 化。每个活动都有一些输入和 输出还包括一些中间结果。这 些都可以看成软件过程中的产 品。活动中有时还包含相应的 c 岬 乱娜 冒 圆 图2 2 5 1 软件过程模型的基本元素 反馈信息,用来及时了解执行情况。活动可以被参与者执行,参与者可以是人 9 或自动执行的工具,也可以是人使用工具来完成。活动可以被细分为予活动。 因此判断一个具体活动在整个软件过程模型中的位置必须从两个方向看,横向 是活动在过程网络中的位置和纵向是活动在嵌套层次上的位_ ! 着! 。 产品( p r o d u c t & a r t e f a c t ) 既可以作为某个过程的输入也可以作为另一个过 程的输出。它具有明显的生命周期特征,通常为产品指定不同的状态和状态切 换的条件来描述产品生命周期的不同阶段和产品的演化过程。在实际中,一系 列软件产品的集合会被定义为一个具体的产品名,因此这种关系也可以看成组 成关系,产品间存在依赖的关系,例如源码的开发需要依赖设计文档。 参与者( a c t o r ) 是执行过程的实体,被分为两类一一人( h u m a na c t o r s ) 和 工具( s y s t e ma c t o r so rs y s t e mt o o l s ) ,按照角色和使用功能对参与者分类。人和 工具在过程定义中往往是分开描述的,人定义在组织视图中,并按角色分类, 而工具主要定义在面向实体的状态视图中,按其功能和服务的阶段分类。 角色( r o l e ) 用于执行特定过程活动的职责、权力和技能的集合。角色是活 动和参与者之间的联系。 由图2 2 5 1 中基本元素间的关系可以看出,活动元素是整个过程模型的核 心,很多元素都是围绕活动元素组织起来的。因此,在描述软件过程活动时, 需要注意软件活动的输入和输出、反馈、出入口条件;任务的描述:以及相关 度量的描述一一如:采集的位置和时间等信息图2 2 5 2 给出了一个活动元素 的结构和说明。 输入 一出一 反馈 输出- 说明: 入口:描述活动初始化所必须满足的条件( 输入校验等) 出口:描述活动处理的结果 反馈:入( 描述从其它活动节点反馈回来的信息) 出( 描述向其它活动节点反馈的信息) 任务:描述要做什么、被谁做、什么时间、包括适当的标准,规程和职责 度量:描述需要考虑的过程度量( 资源、时间) 、输出产品的度量( 数量、规模、质量) 等。 图2 2 5 2 软件活动描述框架 2 3 工作流描述语言定义软件过程模型 2 3 1 工作流描述语言定义软件过程模型 根据前几节中介绍的工作流的概念和软件过程模型的概念。了解到工作流 描述语言可以满足软件过程模型的结构描述,定义软件过程中各活动间的关系 一一顺序、选择、并行、迭代和嵌套,以及软件过程活动同产品、参与者间 的关系。 软件过程中基本元素属性的描述需要扩展,由于工作流的定义语言是用于 业务过程的建模,工作流中定义的元素属性不足以反映软件过程建模的所有需 要,因此,需要利用工作流描述语言提供的扩展属性。以软件活动元素为倒, 在工作流的活动元素的基础上往往需要扩展对软件活动的说明和指导,软件活 动的输入和输出的说明,软件过程活动中需要的度量信息等。 同时,从上一节中图2 2 4 2 给出的活动节点的结构图可以看出活动中包含 输入的校验、度量数据采集和角色验证等功能。这些功能如何在工作流定义语 言中引用,o s w o r k f i o w 工作流引擎提供了比较好的方法,即利用反射机制实现动 态装载用户定制类的方法。课题利用接口c o n d i t i o n 、v a l i d a

温馨提示

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

评论

0/150

提交评论