




已阅读5页,还剩55页未读, 继续免费阅读
(计算机软件与理论专业论文)基于构件的领域工程方法和应用研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 领域工程是实现系统软件复用的关键技术,它为特定领域建立可复用的软件 资产,并提供了复用这些软件资产的机制和方法。构件技术是对可复用资产进行 分析和实现的技术,能够进步推进软件复用深度和广度。以往的领域工程研究 重点是在领域分析,对整个领域工程过程的研究涉及较少。本文以构件为基础, 对领域工程的整个过程实现进行了一些探索和研究。 本文首先分析了领域工程和应用工程的关系,然后对领域工程的各个阶段: 领域分析、领域设计和领域实现进行了逐一探讨。在领域分析阶段,获取了分析 阶段的重要制品:上下文模型、领域用例模型、领域特征模型;重点分析了各个 模型的获取过程;对经典的用例模型扩展使其满足变化性管理;并对特征模型进 行了扩展,加入了业务特征层,并利用可扩展标记语言硒l 对特征模型进行了 接述。在领域设计阶段,分析了基于构件的体系结构的组成和特点,获取了满足 含有变化性的特定领域架构,提出了特征模型到构件的映射准则。领域实现阶段, 探讨了现有的构件标准模型,结合设计模式技术和领域配置文件对变化性构件技 术进行了实现。 最蜃,在以上述研究为基础,以网上审批系统领域作为实例对基予构件的领 域过程进行了实现,并将实现的结果运用到了青岛啤酒合同管理系统的开发中, 取得了预期的效采。 硕士研究生:胡阔见( 计算机软件与理论) 指导教师:魏长江教授 关键词:领域工程;领域分析;构件;用例模型;特征模型 a b s t r a c t d o m a i ne n g i n e e r i n gi sk e yt e c h n o l o g yw h i c hi su s e dt or e a l i z es y s t e ms o f t w a r e r e u s e i tn o to n l ye s t a b l i s h e sr e u s e ds o f t w a r ea s s e t sf o rs p e c i f i cd o m a i n ,b u ta l s o p r o v i d e sm e c h a n i s ma n dm e t h o d so fr e u s i n ga s s e t s c o m p o n e n tt e c h n o l o g y , w h i c hi s u s e dt oa n a l y z ea n dr e a l i z er e u s e da s s e t s ,c a np r o m o t et h ed e p t ha n db r e a d t ho f s o f t w a r er e u s i n gf u r t h e r p r e v i o u sd o m a i ne n g i n e e r i n gr e s e a r c h e sf o c u s e do nt h e d o m a i na n a l y s i s ,a n dr e f e r r e dl i t t l et or e s e a r c h e so ht h ew h o l ep r o c e d u r eo fd o m a i n e n g i n e e r i n g i nt h i sd i s s e r t a t i o n ,w eb r i n gf o r w a r dam e t h o db a s e do nc o m p o n e n tt o r e a l i z ed o m a i ne n g i n e e r i n g , a n dc a r r yo u ts o m ee x p l o r a t i o nf o rt h er e a l i z a t i o no ft h e d o m a i ne n g i n e e d n g t h i sd i s s e r t a t i o nf i r s td i s c u s s e st h ec o n n e c t i o nb e t w e e nd o m a i ne n g i n e e r i n ga n d a p p l i c a t i o ne n g i n e e r i n g , a n dt h e na n a l y s e se a c hp h a s eo fd o m a i ne n g i n e e r i n go n eb y o n e :d o m a i na n a l y s i s ,d e s i g na n dt h er e a l i z a t i o n i nd o m a i na n a l y s i sp h a s e ,i m p o r t a n t a s s e t sa r ep r o d u c e d ,l i k ec o n t e x tm o d e l ,d o m a i nu s ec a s em o d e l ,d o m a i nf e a t u r e m o d e l t h ep r o c e s so fg e t t i n gv a r i o u sm o d e l si sg i v e ne m p h a s i z e da n a l y s i s c l a s s i c u s ee a s em o d e l sa r ee x p a n d e dt om e e tw i t ht h ev a r i a b i l i t ym a n a g e m e n t f e a t u r e m o d e l sa r ee x p a n d e dw i t hb u s i n e s sf e a t u r el a y e ra d d e di n ,a n da r ed e s c r i b e dw i t ht h e e x t e n s i b l e m a r k u pl a n g u a g e x m l i nd o m a i nd e s i g n p h a s e ,w ea n a l y z e t h e c o m p o s i t i o na n dc h a r a c t e r i s t i c so ft h ec o m p o n e n t - b a s e da r c h i t e c t u r e ,a n da c c e s st h e s p e c i f i cd o m a i ns t r u c t u r ew h i c hm e e t sw i t ht h ev a r i a b i l i t y , a n dp r e s e n tm a p p i n g g u i d e l i n e sf r o mt h ef e a t u r em o d e lt ot h ec o m p o n e n t i nd o m a i nr e a l i z a t i o np h a s e ,w e i n t r o d u c ec u r r e n ts t a n d a r dc o m p o n e n tm o d e l s ,a n dr e a l i z et h ev a r i a b i l i t yc o m p o n e n t t e c h n o l o g yc o m b i n i n g w i t hd e s i g n m o d et e c h n o l o g ya n dd o m a i nc o n f i g u r a t i o nf i l e s f i n a l l y , t a k i n go n l i n ea p p r o v a ls y s t e ma sa ne x a m p l e ,w er e a l i z e t h ed o m a i n e n g i n e e r i n gp r o c e s sb a s eo nc o m p o n e n t ,a n da p p l yt h er e s u l t st ot h ed e v e l o p m e n t o f c o n t r a c tm a n a g e m e n ts y s t e mo f t s i n g t a ob e e r , a c h i e v e d t h ed e s i r e dr e s u l t s g r a d u a t es t u d e n t :k u oj i a nh u ( c o m p u t e rs o f t w a r ea n dt h e o r y ) d i r e c t e db y :p r o fc h a n gj i a n gw e i k e yw o r d s :d o m a i ne n g i n e e r i n g ;d o m a i na n a l y s i s ;c o m p o n e n t ;u s ec a s e m o d e l ;f e a t u r em o d e l ; 青岛大学硕士学位论文 学位论文独创性声明 本人声明,所呈交的学位论文系本人在导师指导下独立完成的研究成果。文中 依法引用他人的成果,均已做出明确标注或得到许可。论文内容未包含法律意义上 已属于他人的任何形式的研究成果,也不包含本人已用于其他学位申请的论文或成 果。 本人如违反上述声明,愿意承担由此引发的一切责任和后果。 论文作者签名:舌j 一习儿 日期: 肼阴胡 学位论文知识产权权属声明 本人在导师指导下所完成的学位论文及相关的职务作品,知识产权归属学校。 学校享有以任何方式发表、复制、公开阅览、借阅以及申请专利等权利。本人离校 后发表或使用学位论文或与该论文直接相关的学术论文或成果时,署名单位仍然为 青岛大学。 本学位论文属于: 保密口,在年解密后适用于本声明。 不保密阢 ( 请在以上方框内打“ ) 论文作者签名:翻a 目应 剔磁轹巍1 峰 ( p i 。 日期:2 9 略年g 月2 ,日 日期:加了年月j 乙日 第一豢辱l 富 1 1 研究的背景与意义 第一章引言 自1 9 6 8 年北大西洋公约组织n a t o ( n o r t ha t l a n t i ct r e a t yo r g a n i z a t i o n ) 的计算 机科学家在联邦德国召开的国际学术会议上第一次提出“软件危机”( s o f t w a r ec r i s i s ) 以来,软件工程技术取得了巨大的发展,但是随着计算机应用范围的扩大,软件项 目复杂性和规模的不断提高,“软件危机 的特征并没有消失。解决软件复杂性, 提高软件的生产效率,成为软件工程的当务之急。要解决这个问题,软件复用无疑 是一个有效的办法。 软件复用是在软件开发中避免重复劳动的解决方案,其出发点是应用系统的开 发不荐采用一切“从零开始”的模式,丽是以已有的工作为基础,充分利用过去应 用系统开发中积累的知识和经验,如需求分析结果、设计方案、源代码、测试计划 及测试案例等,从而将开发的重点集中于应用的特有构成成分。通过软件复用,在 应用系统开发中可以充分地利用已有的开发成果,消除了包括分析、设计、编码、 测试等在内的许多重复劳动,从而提高了软件开发的效率,同时,通过复用高质量 的已有开发成果,避免了重新开发可能引入的错误,从而提高了软件的质量【1 1 。软 件复用是软件工程的重要领域,被认为是解决软件危机,提高软件生产率和软件质 量,增强软件的开放性和对外部扰动的适应性的主要途径 2 l 。 领域工程是软件复用的基本活动。软件复用包括两个活动:领域工程和应用工 程。领域工程是面向复用的开发,应用工程是基于复用的开发。前者是构造可复用 构件的活动,盾者是利用可复用构件来建立新的软件系统的活动。领域工程和应用 工程的关系如图1 1 。 领域工程和应用工程是相互区别的。在应用工程中,软件开发人员的任务是在 特定条件下,针对一组特定需求产生一组特定的设计和实现。应用工程的结果是针 对当前开发的特定系统的;而在领域工程中,领域工程人员的基本任务实对领域内 的所有系统进行抽象,而不是局限予个别的单个系统。因此,与应用工程相比,领 域工程处于一个较高级备别的抽象层次上。 领域工程和应用工程又是相互联系的。应用工程产生的系统是领域工程的主要 信息来源,领域工程各个阶段主要是对应用工程各个阶段的制品进行抽象。丽领域 工程的产品:领域模型、领域架构、可复用构件又为应用工程提供了支持。并且领 域工程和应用工程需要研究一些相似的问题,例如:如何获取用户需求,如何表示 需求规约,如何设计并表示设计模型,如何保持需求、分析、设计之间的可跟踪性 等等。因此领域工程的步骤、锘! 品、行为等都w 以和应用工程相类比。 青岛大学硕士学链论文 图1 1 领域工程和应用工程 领域工程是软件复用活动孛的核心活动。领域工程的概念基础是:所有的软件 系统都能够按其功能和应用范围进行分类,属于同一类的软件系统通常在需求和体 系结构上具有许多相似之处。领域工程是为一组相似或相近系统的应用工程建立基 本能力和必备基础的过程,它覆盖了建立可复用的软件构件的所有活动其中, 领域是指一组具有相似或相近软件需求的应用系统所覆盖的区域。领域工程对领域 内的系统进行分析,识别这些应用的共同特征和可变特征,对刻画这些特征的对象 和操作进行抽象,形成领域模型,依据领域模型产生出领域中应用系统共有的体系 结构d s s a ( d o m a i ns p e c i f i cs o f t w a r ea r c h i t e c t u r e ) 或生成过程,并以此为基础识 别、开发、组织可复用构件。当开发同一领域内的新的应用时,可以根据领域模型 确定新的需求规约,根据特定领域的软件架构形成新应用的设计,并以此为基础选 择可复用构件进行组装,从而形成新系统。 领域工程的理论研究和实践都基于两个基本的假定:可复用信息具有领域特定 性,现实世界的问题领域具有充分的内聚性和稳定性1 3 j 。可复用信息的领域特定性 是指可复用性不是信息的一种孤立的特性,它依赖于特定的闯题和特定问题的解决 2 第一章号l 言 方法。基于这一认识,在识刹、表示和获取可复用信息时应采取面觑领域的策略。 问题领域的内聚性是指领域知识在逻辑上是密切相关的,稳定性是指领域知识在较 长时间内不会发生剧烈的变化,这两个特性使得获取和表示领域知识的努力是有意 义的,也使得在领域范围内的软件复用活动具有潜在的经济效益。 不同的领域工程方法具有不同的过程。但它们大体上都经过了领域的分析、设 计和实现这三个阶段,因此本文将通过领域分析、领域设计、领域实现三个阶段来 阐述领域工程问题。 1 领域分析:这个阶段的目标主要是获得领域模型,领域摸型描述领域中系 统之间的共同性需求1 4 1 在领域模型中描述的需求被称为“领域需求”。在这 个阶段中首先要进行一些准备性行为,这包括定义领域边界,从而明确分 析对象:识别信息源,即领域分析和领域工程中的信息来源,信息源基本 上包括:现有系统、技术文献、问题域和领域专家、用户调查和市场分析、 领域演化的记录等1 5 l 。在此基础上,就可以分析领域内的共同性需求,从而 建立领域模型。领域模型的获取存在两种方法:一种是将领域内的一个系 统当作一个样本系统来进行分析,另外一种方法是对领域内的几个系统进 行分析获取他们的需求子集。 2 领域设计:这个阶段的目标是获得领域体系架构d s s a ,领域架构表示领域 需求的解决方案,它不是单个应用系统的表示,两是适应领域孛多个系统 需求的一个高层次的设计。领域架构派生是领域模型,由于领域模型中需 求的变化性,领域架构应能够适应这种变化性,因此它通过多选一和可选 等解决方案来实现。可复用资产是通过领域模型和领域架构生成的,因此 d s s a 的生成,同是也生成了可复用基础设施的规约。 3 领域实现:这个目标是依据领域模型和领域架构开发和组织可复用信息。 这些可复用信息可能是从现有系统提取,也可能通过新的开发来获取。它 们依据领域模型和领域架构来进行组织。领域模型和领域架构定义了可复 用信息的复用时机和机会,从而支持了系统化的软件复用。对于领域的变 化性需求,我们可以通过不同的设计模式来实现。 随着软件工程技术的发展,领域工程技术也越来越成熟,另一方面软件的构件 化设计方法也开始出现,如现了一些成熟的构件实现模型,如c o r b a 、j a v ab e a n 和微软的c o m d c o m 等。但是以往入们往往把构件作为软件开发中的产品,实际 上面向构件乃是一种思想、一种方法,从本质上说就是将需求分配到类、包中1 6 r l 。 构件化设计对比结构化和面向对象思想能够搬深软件复用的层次,促进软件复用程 度。 虽然领域工程技术取得了巨大发展但还需要迸一步研究,领域工程技术还存在 3 青离犬学硕士学位论文 一些不足: 1 以往的领域工程研究都是基于结构化和面向对象的分析方法,生产的制品 复用程度较低、可扩展性和维护性不高。 2 令外,以往的领域工程技术研究只是局限子一个阶段,大部分侧重领域分 析,领域设计和实现研究较少。 3 有的领域工程的研究虽然贯穿了整个领域工程的各个阶段,但给出的过程 不够详细、比较抽象,难以理解和实现;领域分析、领域设计和领域实现 各个阶段生产的制晶可跟踪性不强;并且没有给出各种制品的详细具体获 取方法和过程。 针对以上的不足,我们对基于构件的领域工程方法进行了研究,介绍了领域工 程的各个阶段、各个阶段的过渡方法,以及领域工程中的重要制品,并给出了研究 的实例一踺上审批系统领域。因此本文的研究对具体领域工程的实现具有一定的理 论指导意义和参考意义,扩展到应用工程阶段,这种方法产生的制品的应用必将缩 短其开发时间,提高软件质量和济效益。 1 2 国内外研究现状况 领域工程技术一直是国内外研究的热点,早在十九世纪八十年代国外已经有研 究者将焦点定在了通过领域工程生产可复用的软件上。 n e i g h b o r s 在1 9 8 0 年第一次提出了一种领域工程方法原型 7 1 ,它的主要思想包 括领域分析、领域特定语畜和构件,支持将软件构造知识应用到相关领域中。 n e i g h b o r s 提出了生成程序、构件等概念、做出了重要贡献,但是n e i g h b o r s 只是给 出了一些概念没有给出具体架构、构件模型和它们的实现方法。 领域工程的目标就是表达领域内酶共性和变化性,这种共性和变化性的表达是 领域工程的难点。卡耐基梅隆大学的软件工程研究所提出的面向特征的领域分析方 ( f e a t u r e o r i e n t e dd o m a i n a n a l y s i s ) ,并作为f o d a 中的能力方面的特征,这也是 面向特征的需求规约组织方式首次被引入领域工程的研究和实践中1 9 l 。所谓“特征, 是指一个或一组软件系统所具有的用户可见的显著特点或属性。f o d a 使用特征和 特征之间的关系,即特征模型,作为领域模型的重要组成部分。特征模型有四种元素 组成:特征图、特征定义、特征的组合规则、特征原理。f o d a 有三个活动组成, l 、上下文分析:首先确定领域,然后限定领域范围和参与者;2 、领域建模,领域 建模分为三个步骤:信息分析、特征分析、操作分析,3 、构架建模,领域模型建 立了一个高层次的领域构架,架构模型可以被实例化来开发单个系统。 o d m ( o r g a n i z a t i o nd o m a i nm o d e l i n g ,组织领域建模) 1 1 0 1 是由m a r ks i m o n s 提出 的一种领域工程方法,在易修改的可靠系统软件技术s t a r s ( s o f t w a r et e c h n o l o g y 4 第一章辱l 富 f o ra d a p t a b l e ,r e l i a b l es y s t e m s ) 项酲1 8 l 孛被采纳和进一步发展。该方法的主要目标 是提供一种系统的方法来将多个遗产系统的软件产品转化为领域内的可复用资产, 它强调在领域建模时使用多个系统样本,从而使领域模型能够充分地包含可变性。 o d m 具有以下两个突出的特点:l 、关注风险承担者:任何在o d m 中定义的领域 概念和特钲都具有明确的可跟踪性,可链接到它们的风险承担者。2 、可剪裁的过 程:0 d m 使用“概念建模”,而且没有指定任何特定的工程过程,而只提供了过程 框架,因此o d m 可以被特化和剪裁,从而适用于不同类型的领域。 在美篱国防部高级研究项嚣署( a r p a ) 资助下,w i l l t r a c z 提出了领域构架 d s s a ( d o m a i ns p e c i f i cs o f t w a r e a f c h i t e c t u r e ) 方法i l l j 。在最高的级别上,该方法有五个 阶段。每个阶段可以进一步划分为一些步骤或子阶段,每个阶段包括一组需要回答 的问题,一组需要的输入、组将产生的输出和验证标准该方法的领域工程过程是 并发的、递归的和反复的。该领域过程定义了五个阶段是:定义领域范围、定义领 域特定元素、定义领域特定的设计和实现需求约束、定义领域模型和架构、产生和 搜索可复用产晶。 领域分析与设计过程方法d a d p 塌( d o m a i na n a l y s i sd e s i g np r o g r e s s ) 注重软 件和系统重用过程,并依赖于特定的领域分析和领域设计。它通过各个系统工程来 描述一个问题空间及其约束条件,然后通过反复运用软件工程、硬件工程、人员工 程来寻求阀题空闯的解。问题空闯的这种表示存储于一个生命周期支持环境。d a d p 方法遵循面向对象的方法,使用自顶向下和自底向上的组合方式来标识最大程度的 重用潜力,包括一些公共的( 水平重用) 和特定领域( 垂直重用) 特征。该方法的 基本策略是:标识、获取、组织、抽象和表示一个特定领域内的共性和差异,便于 在一个组织好的领域知识主体内有效地揭示生命周期工作产品的可重用性。d a d p 方法步骤由标识领域、界定领域、分析领域、设计领域组成。 乔治梅森大学提出了演化的领域生命周期模型e d l c 模型( e v o l u t i o n a r y d o m a i nl i f ec y c l em o d e l ) 1 3 】。e d l c 模型的领域模型使用多个视图来表现领域的 不同方面。其中主要的五个视图是:聚集层次( a g g r e g a t i o nh i e r a r c h y ) 、对象通讯图 ( o b j e c tc o m m u n i c a t i o nd i a g r a m ) 、一般特殊层次( g e n e r a l i z a t i o n s p e c i a l i z a t i o n h i e r a r c h y ) 、状态变迁图( s t a t et r a n s i t i o nd i a g r a m 和特征尉蒙依赖( f e a t u r e o b j e c t d e p e n d e n c y ) 。聚集层次是指将相关的对象聚集为复杂的对象,或将复杂对象分解为 一组简单的对象。对象通讯图主要描述以消息传递的形式存在的对象问的动态关 系。一般特殊层次主要表示对象可能具有的变型。状态交迁图为依赖于状态的对象 建立行为规约。在特征尉象依赖视嚣孛,每个特征被关联到支持它所需要的可选的 对象或对象的变型。e d l c 领域建模的活动主要包括:定义应用领域需求并进行分 类;确定应用领域中的对象;开发聚集层次:定义对象间的接阴;为对象建立规约; 5 毒岛大学矮士学链论文 确定领域中的变形:定义特征尉象依赖。 韩国浦项科学与技术大学在f o d a 基础上进行的面向特征的复用方法 ( f e a t u r e o r i e n t e dr e u s em e t h o d ,缩写为f o r m ) 1 4 】。f o r m 将特征分为了四个特征: 能力特征、操作环境、领域技术、实现技术。与f o d a 主要关注领域分析阶段相比, f o r m 则扩展到了领域工程的全过程( 领域分析、领域设计和领域实现) 。f o r m 的 领域设计建立在一个参考体系结构的基础之上。在这个体系结构中,软件系统被分 为三种模型:子系统模型( s u b s y s t e mm o d e l ) 、进程模型( p r o c e s sm o d e l ) 和模块模型 ( m o d u l em o d e l ) 。子系统模型是对软件系统进行的整体上的划分。在子系统建模过 程中,具有能力性质的特征被划分到相应予系统中,子系统内的特征被进一步划分 到各个进程中去。 惠普实验室将f o d a 方法与r s e b 方法( r e u s ed r i v e ns o f t w a r ee n g i n e e r i n g b u s i n e s s ) 结合提如的f e a t u r s e b 方法1 1 5 】,r s e b 是一个用例驱动的系统化的复用过 程。f e a t u r s e b 的领域分析模型由特征模型和用例模型构成。这两者承担了不同的 用途。用例模型是对领域中系统行为的完整描述。特征模型描述是对一个系统具有 的能力的描述。 2 0 0 4 年k w a n w o ol e e 等人对f o r m 进行了扩展【1 6 1 ,它提供了特征和备选类的 映射规则,然后将类分配到子系统、过程和模块中,并将其应用到对电梯的控制系 统中。 特征模型是领域模型中的一个重要组成部分,由于特征模型没有标准化的工具 支持,在论文f 1 7 】中m a t t h i a sc h u b 对u m l 进行了扩展来支持特征模型。特征模型 中的必选特征、可选特征、选择性特征分别对应着u m l 的类版型 、 、 ;用组会关系表达特征模型中得包含关系,用关系舨 型 、 表达特征的依赖、互斥关系;用注释 x o r 表达选择特 征的互斥关系。 我国科研工作者对领域工程的研究起步较晚,十九世纪九十年代杨芙清教授在 我国首先介绍了领域工程的概念1 1 8 】。 国内在这个领域内的研究最多的是北京大学软件工程研究所,他们提出了面向 对象的领域工程方法l 湖。此方法主要分为为三个主要阶段,即领域分析、领域设计和 领域实现。领域分析的主要目标是获褥领域分析模型。领域分析模型描述领域中系 统之间的共同需求。它由以下几部分组成:领域分析:获取领域术语字典、领域需 求定义、领域面向对象分析模型( o o a 模型) 。领域设计的霸标是获得特定领域的软 伴构架。领域实现的主要工作是根据领域分析模型和d s s a , 实现领域中的构架和可 复用构件。 在领域需求分析方面,北京大学软件工程提出了基于需求聚类建立领域模型的 6 第一章弓l 富 方法削。能够在客户需求的基础上,通过聚类算法自动谈别特征模型树。 张伟提出了一种领域建模方法,针对领域中特征模型组织的冗余性和混乱性, 对特征模型进行了统一、细致的描述给出了一种特征模型的具体形式【2 1 j 。 上海复旦大学软件工程实验室将领域工程与本体相结合,提出了基予本体的软 件构件开发方法。包括基于本体的领域分析,领域建模,领域构件识别和组装。 彭鑫,赵文耘i 冽等引入本体来描述领域中的特征模型,并通过该方法得到的领域 特征本体将同时作为领域内业务构件的语义描述基础存在在此基础上,提出了基于 特征模型和构件语义的概念体系结构设计方法。 1 。3 课题研究内容 本文总结了以往领域工程研究的一些先进研究成果,基于构件的领域工程方法 是本文的研究重点。因此本文的研究内容是:分析了领域分析阶段的重要制品:领 域用例模型和领域特征模型和它们的获取过程;总结了了基于构件的软件体系结 构;扩展了领域特征模型;根据业务组件和特征的一些相似性,提出了特征和构件 之间的对应规爨| j ;最后给出构件变化性的实现方法。本文的主要创新点如下: 1 ,分析了基于构件的领域工程的过程,给出了各个阶段的制品,并分析了各 个制品之间的可跟踪性。在分析和设计过程中对u m l 进行了扩展对变化性 进行了管理。 2 分析了特征模型的层次结构及其包含元素,对原有的特征模型体系结构进 行了扩展,在特征图中加入了业务特征层简化特征的描述和分析。利用x m l 语言对特征模型进行了描述。 3 。分析了构件的分类和构件的层次体系结构。提出了将特征模型映射到构件 的映射规则。 4 将网上合同审批领域作为实例进行了分析,给出了一个实现领域工程的模 舨。 4 本文的组织结构 本文的组织结构如下: 第一章,引言部分,酋先介绍了本课题的研究意义,其次阐述了国内为对领域 工程的研究历程和结果,并说明了本课题的研究内容及主要创新点; 第二章,领域分析,详细介绍了领域分析的过程和方法及其制品,对用例模型 和特征模型进行了重点介绍,并对特征模型进行了简单扩展,最后用x m l 标记语言 对特征模型进行了描述。 第三章,领域设计和领域实现,详细介绍了基于变化性的体系架构,简单介绍 7 青岛犬学矮士学位论文 了构件的概念,总结了基予构件的体系结构,给出了特征到构件的一种映射规则。 结合设计模式和领域配置文件对变化性构件进行了实现。 第四章,网上项目审批领域实例,利用基予构件的领域工程方法对网上项目审 批领域进行了分析和设计并实现,将实现的成果运用到了青岛啤酒合同管理系统 中。 第五章,总结与展望,对本论文的工作进行了回顾与总结,并对进一步的研究 进行了展望。 8 第二章领域分析 第二章领域分析 领域分析是对特定的领域进行需求工程的活动。它覆盖了对领域需求的获取、 分析、规约,验证的整个过程p 1 。需求是对一个系统具有的能力、行为、属性、以 及它必须遵守的约束条件的陈述。领域分析产生的需求以领域分柝模型的形式出 现,而不仪仅是一份自然语言的文档说明。领域分析的主要目的是识别和分析领域 需求中的可复用成分。因此,领域分析得到的需求模型应该能够识别出领域中共有 的需求,以及这些需求可能具有的变化性。 2 1 领域分析过程 不同的领域分析方法有不同的领域的步骤,其一般步骤为: 1 上下文分析( 领域描述) :选择匿标领域,确定领域的主要内容、领域与 其外部因素之闻的关系、领域内系统的运行环境和项目约束;识别领域信 息源,可能的领域信息源包括现存的系统、技术文献、领域专家等。后续 的领域工程活动都是在领域描述所界定的范围内进行的。上下文分析活动 的主要制品就是上下文模型。 2 领域建模:通过分析领域知识和需求,为领域内的系统建立静态和动态模 型,包括:反映用户需求的特征模型、用例模型、反映系统功能的功能模 型和行为模型等。领域模型与单个系统的需求模型不溺,它必须体现领域 中所有系统的共性和可变性。 3 建立领域词汇表:领域词汇表( 或称领域词典) 收集了在领域工程中所用的 各种术语,并对其进行规范的定义,从而为领域分析提供了一个标准的“命 名空闯,也为从事领域工程的各类人员之阅的交流提供了标准的词汇。 典型的领域词汇包括领域中特定的概念、技术、系统的特征和功能等。领 域词汇表对维持各种领域模型之间的一致性和发现领域中系统的共性和 差异性有着重要的意义。 图2 。1 是领域分析示意图,给出了领域分析的输入、输出和领域分析的具体内 容【冽。 输入领域分析输缀 图2 1 领域分析 9 青岛犬学硕士学位论文 图2 - 1 领域分析 在领域工程的各个过程中会产生很多制品,由于领域工程的重点是分析领域中 的系统的共性和变化性,因此领域分析中的最要的制晶是领域模型,领域模型中是 以特征模型为核心。领域模型由静态模型和动态模型组成,本文中我们用特征模型、 类图来表达领域的静态模型,用用例模型、协作图、交互图等作为动态模型。 在领域工程的领域分析中,我们有两种方法,第一种以一个应用系统为主我们 对其进行分析,领域中的其他系统为辅;另一种方法;我们将领域中的多个系统进 行综合考虑进行分析。我们一般运用第一种方法。 2 2 用例模型 2 2 1 用例模型 用例建模是需求工程的一种形式,被认为是软件工程中良好的实践之一,在现 在的软件工程中被广泛运用1 2 7 。从外部用户的褫角看,一个用例是执行者( a c t o r ) 与 因标软件系统之间的一次典型的交互作用。因此,用例表达的是系统“做什么”, 它是一种提取系统需求和描述系统功能的方式。参与者是当与系统直接交互时,一 些外部实体所采用的角色。它可以表示为用户角色,系统危色或用户角色,有时还 可以是时闯角色。 用例模型包括一组用例图和对用例的描述。对一个用例的完整描述包括用例名 称、用例目标简述、执行者、前置条件、一个主事件流、零到多个辅事件流、后置 条件和附加信息。如果用例的事件流比较复杂,还可以使用u m l 活动蓬来更为精 确和直观地描述。 2 2 2 用例扩展 与单个系统的用倒不同,领域工程中的用例必须包含可变性,从丽可在领域中 不同应用系统的开发中复用。在f 2 8 】中经典的用例可以用来对需求的变化性进行建 模。对用例图, ( g e n e r a l i z a t i o n ) ) 、e x t e n d s ) ) 和i n c i u d e 都可以用来表达变化性。 对用例模版,翦置条件、后置条件或者选择和可选场景也能表达变化性。但是它们 不够全面不能满足变化性的描述的需求。它们不能够表达变化性的分类,另外用用 例描述来表达变化性过于复杂和繁琐。 在文献 2 9 q a ,t h o m a sy o n d e rm a 8 c n 扩展了用例元模型我们称为扩展原模型, 1 0 第二章领域分拆 如图2 2 所示。与经典用例中相比,在这个扩展的用例元模型中加入了三个元素: 1 变纯点:与经典用例中的扩展点相似,变化点用来连接用例,变化点和用 例之间具有a l t e m a t i v e ) ) 关系。 2 多选一变量:它是一种被( ( a l t e r n a t i v e ) ) 关系连接的用例。它与变化点相连。 在实际运用中多个变量肯定被选中一个。 3 可选变量:它是种被o p t i o n ) ) 关系连接的用例。在实际运用中可以选 则使用和不用。 2 2 3 用例模型获取 图2 2 扩展的用铹元模型 用例模型可以使软件开发人员和客户在需求( 即系统必须满足的条件和能力) 方面达成共识鳓。用例模型充当客户和开发人员之闷的协议,并作为分析、设计和 青岛大学矮士学位论文 测试的基本输入。用侧模型是一种包括参与者、用铡以及它们之间关系的系同模型。 因此我们的重点是找到参与者和用例。 一种类型的用户可以表示为一个或几个参与者。每个与该系统进行交互的外部 系统也表示为一个或多个参与者;这也包括外部设备( 如定时器) ,可以认定它们 处于系统的外部。因此参与者表示外部系统与系统进行协作的交互者。确定了参与 者就确定了外部环境。对于用户来说,每个( 工作人员的) 角色定义了该工作人员 在特定业务过程中要做些什么。工作人员所充当角色可以用于导出系统参与者充当 的角色。 参与者使用系统的每种方式都可以表示为一种用例。用例是系统能够向其参与 者提供已知的功能“块 ,用例确定了一个与系统参与者进行交互、并可有系统执 行的动作序列,其中包括不同的候选序列。因此,一个用例是一种规格说明,它规 定了动态“事物( 这里用例的实例) 的行为。寻找用例就是寻找与参与者交互的 功能块,参与者通常需要用例来支持其工作,来创建、改变、跟踪、删除或研究用 于业务用例中的业务对象( 如“订单和“账户) 。参与者可能要将某些外部事件 或其他类似的方法告知系统,或反之,露参与者需要系统告知自己某些已经发生的 事件。找到用例后要为其命名,通常以一个动词开始,并应该反映出参与者和系统 之间的交互所需要实现的目标。 有时很难取定用例的范围。用户与系统得交互有时可以在一个用例中确定,有 时需要在多个用例中确定。在这种情况下,必须考虑它本身是否完整,或是否总是 作为另一个用例的延续。这里有两个确定用例的有用的准则。 1 有价值的结果:每个可以成功执行的用例都应该对其参与者提供某些价值, 使其参与者实现预定目标刚。 2 具体参与者:通过确定向真正的用户提供价值的用例,可以确保用例不会 变的太大。 在确定用例的过程中,我们一般也就完成了对用例的功能攒述。沼倒确定完毕 后,我们需要分析它们之间的关系。我们对用例元模型扩展完毕后,现在用例之间 有以下关系i n c l u d e 、e t e n d 、a l t e m a t i v e ) ) 、o p t i o n ) ) 和泛化关系,在这里我 们不讨论泛化关系。 1 ) 关系允许将一个用例的行为包含到另一个用例中。它的语义非 常简单,包含者用例执行到包含点,然后执行被包含者用例,当被包含着 用例完成时返回到包含着用例。 2 e x t e n d ) ) 为已经存在的雳例提供添加新的行为。基础用例提供了一组扩展 点,在此可以添加新的行为,扩展用例提供了一组插入烤断。 3 a l t e r n a t i v e ) ) 对不同的应用系统来说,相同的事件执行不同的动作,因此 1 2 第二章领域分橱 我们建立多个用例,当基础用例执行到变化点时不同的应用系统可以选择 其中一个用例执行。 4 o p t i o n ) ) 在领域中,有的应用系统有功能或动作,而其他的应用系统没有 这个功能,我们将其提取为用例和参与者或其它用例舆有 o p t i o n 关系。 在分析用例关系的过程中,我们理清了各个用例之间的关系从丽形成了领域用 例模型。建立领域用例模型后我们可以对其在整体上用图和说明对其进行表述。 2 。3 特征模型 软件开发的各种参与者( s t a k e h o l d e r ) 对软件的认识、理解和要求的角度是不同 的。客户和用户的需求是驱动软件开发的直接原因,他们关注于软件应该具有的外 部能力和特点。领域专家对软件所在的领域的知识有着深刻的理解,他们关心的是 采用什么样的领域技术才能在有效地完成客户和用户需求的同时,保持软件系统和 领域发展趋势的一致性。软件工程师对各种软件技术有很好的掌握,他们关心的是 采用什么样的软件体系结构和实现技术才能够高效地完成客户和用户的需求,并保 持软件系统的可扩展性和可复用性以适应需求可能的变动。 我们罔用例来表达用户的各种需求,用例可以满足用户的需求所以在单个的应 用工程中应用广泛,但是在领域工程中技术、构件的重用是我们的最重要的目标, 而用例不能满足我们与领域专家、技术工程师等其他用户的交互,因此特征模型为 了满足这种要求被发掘、应用。在f o d a 方法种,特征模型被作为领域需求的一种 重要表现方式。随着领域分析技术的不断发展,特征和特征模型作为一种捕获领域 需求的手段被广泛接受。在现阶段主要的几种领域工程方法中,特征模型在领域分 析模型中都占据了极为重要的地位。特征模型在领域工程中具有非常重要的作用, 它定义了领域内系统族的可配置性,提供了一种与实现机制完全无关的差异性建模 方式,是设计领域架构和实现组件的基础;特征模型从复用的视角出发,基于共性 和可变性分析来组织需求,并用一种精确和简洁的方式表达出来。特征模型是对一 个特定领域的软件所具有的特征的有组织的描述,主要记录了特征离身具有的重要 属性和特征之间存在的各种关系。在领域工程的各个阶段( 领域分析、领域设计、领 域实现) 中可能存在的特征都应该被记录到特征模型中【2 8 1 。特征模型由特征图和特 征描述信息组成,而特征图是由特征和特征之间的关系组成的分层结构图。如图2 3 所示: 1 3 青岛大学硕士学位论文 卫 i ,一 + 1 。一、 卫 习 卫 图2 - 3 特征图 2 3 1 特征 特征( f e a t u r e ) 的概念最早产生于电信服务系统中,特指电信服务提供商对用户 提供的一系列标准服务,并用来描述电信领域中特征干扰的现象。在文章1 3 2 中, 作者d a v i s 提出“把特征作为一种系统需求规约的组织方式 的观点。d a v i s 认为, 特征是从用户角度对系统的感知,用特征对系统需求规约进行模块化组织是非常自 然的一种手段。 在f o d a 方法中,引入特征的概念,用特征及特征之间的关系,即特征模型, 描述领域中的需求。后来的众多领域工程方法都受到了f o d a 的影响,使用特征模 型捕获和描述领域需求。不同的组织和学者对特征有着各自的定义。 f o d a 对特征的定义如下:特征是系统中用户可见的、显著的或具有特色的方 面、品质、特点等。 i e e e 软件工程术语词典这样定义特征【3 3 】:特征是软件具有的显著特点( 如:性 能、移植性、功能性等) 或被需求文档指明的系统应具有的特点。 m a r t i nl g r i s s l 3 4 认为:特征是一个产品( 系统) 的特点,客户和用户使用它来 描述和区分领域中的不同产品。 在论文1 3 5 1 作者给总结各种定义,给出了特征是一个系统具有的能力和特点, 它反映了系统的参与者对系统的某种需求或理解。在这个定义中,强调了特征是反 应软件开发中各种不同的参与者对系统的认识、理解和要求的一种手段。下面我们 从系统参与者的角度来观察和总结问题同样也影响了我们对特征的分类。 2 3 2 特征的变化性 从一般意义上,可以把特征的变化性分为两类:公共特征( c o m m o nf e a t u r e ) 和
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年社区O2O行业规模分析及投资前景研究报告
- 《税法二》税务师考试试题及解答参考(2025年)
- 2025年运动裙行业研究报告及未来行业发展趋势预测
- 2025年互联网广告行业规模分析及投资前景研究报告
- 幼儿园教师3-6岁儿童学习与发展指南和专业知识竞赛试题(含答案)
- 四川省泸州事业单位考试模拟考试题库含答案
- 红十字会为民造福政绩观树得还不到位整改措施
- 2025年农药原药行业研究报告及未来行业发展趋势预测
- 福建省闽侯第二中学等五校教学联合体2026届化学高一上期中调研试题含解析
- 2025年瓷砖玻璃贴行业研究报告及未来行业发展趋势预测
- 员工自愿放弃社保声明书范本
- 急性脑卒中急救流程与护理
- 第二单元万以内的加法和减法(一)(单元复习讲义)教师版-2024-2025学年三年级上册(人教版)
- GB 4793-2024测量、控制和实验室用电气设备安全技术规范
- 农村电网改造合同协议书
- 充电桩巡查记录表
- 《证券投资学》全套教学课件
- 2024年秋季新北师大版一年级上册数学全册教案
- 心电图并发症预防及处理
- 石料场开采施工方案
- 2020六年级上册综合实践教案(苏少版)
评论
0/150
提交评论