已阅读5页,还剩53页未读, 继续免费阅读
(计算机软件与理论专业论文)基于特征建模的领域工程实施方法的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【摘要】 软件复用能有效地解决软件危机,提高软件开发的效率和质量,降低开发和 维护成本。基于构件的软件开发方法是软件复用的一种实践方法,其中的构件技 术是支持复用的核心技术,近年来发展很快。 领域工程是为一组相似或相近系统的应用工程建立基本能力和必备基础的 过程,它覆盖了建立可复用的软件构件和体系结构的所有活动。在一个领域中, 通过对该领域的深入了解,识别和表示各种可复用的信息,并形成领域应用开发 基础设施。在此基础上,开发同一领域的其它系统时,可以大量复用基础设施中 经过实践检验的系统体系结构和标准化的构件,避免了系统开发时不断地重复设 计,从而大幅度降低开发成本、提高生产效率和产品质量。 本文在分析、研究国内外领域工程研究成果的基础上,首先对软件复用和领 域工程进行了概要介绍。然后,分析并比较各种领域工程方法,找出它们的优点 与不足之处。接着,从领域工程的需求出发,结合特征建模等多种领域工程方法, 以及u m l ,x i c l l 等信息表示技术,建立一个领域工程开发支持平台,且在此平台 基础上给出了种领域工程过程,并用一个实例说明了这种开发方法。 【关键字】 软件复用,软件构件,领域工程,特征模型,u m l ,x m ls c h e m a 【分类号】 r e s e a r c ho n d o m a i n s p e c i f i cc o m p o n e n t - b a s e d m e t h o do f s o f t w a r e d e v e l o p m e n t a b s t r a c t s o f t w a r er e u s ei sag o o ds o l u t i o nf o r “s o f l w a r ec r i s i s ”i tc a nn o to n l yi m p r o v e t h e e f f i c i e n c y a n d q u a l i t y o fs o f t w a r e d e v e l o p m e n t ,b u t a l s or e d u c ec o s t so f d e v e l o p m e n ta n dm a i n t a i n n a e n t 。c o m p o n e n t - b a s e dm e t h o do f s o f t w a r ed e v e l o p m e n t i sap r a c t i c eo fs o f t w a r el - c u s e ,w i t h i nw h i c ht h ec o m p o n e n tt e c h n o l o g yi st h ec o r eo f r e h s e c o m p o n e n tt e c h n o l o g yi sp m g m s s i n gr a p i d l y d o m a i ne n g i n e e r i n gi sap r o c e s so fe s t a b l i s h i n gb a s i cc a p a b i l i t i e sa n dr e q u i r e d e l e m e n t sf o ras e r i e so fs i m i l a ro rc l o s es y s t e m s i tc o v e r sa l la c t i v i t i e sf o rb u i l d i n g r e u s a b l es o f t w a r ec o m p o n e n t sa n da r c h i t e c t u r e s i nap a t i c u l a rd o m a i n ,b a s e do nt h e u n d e r s t a n d i n g ,i d e n t i f i c a t i o n a n dd e n o t a t i o no fi n f o r m a t i o nf o rr e u s a b i l i t yi nt h e d o m a i n ,d o m a i ni n f r a s t r u c t u r ef o ra p p l i c a t i o nd e v e l o p m e n ti sf o r m e d 。b a s e do nt h i s , a s d e v e l o p i n go t h e rs y s t e m so ft h i sd o m a i n ,t h ep r a c t i c e v e r i f i e d a r c h i t e c t u r ea n d m a n ys t a n d a r d i z e dc o m p o n e n t sc a nb er e u s e d ,w h i c ha v o i d s t h e r e p e a t e ds y s t e m d e s i g n s ,r e d u c e st h ec o s t so fd e v e l o p m e n t ,a n di m p r o v e st h ed e v e l o p m e n te f f i c i e n c y a n d p r o d u c tq u a l i t yt o ag r e a te x t e n t b a s e do n a n a l y s i s a n di n v e s t i g a t i o no fm o s tr e s e a r c h o nd o m a i n e n g i n e e r i n g ,t h i sp a p e rg i v e sa no u t l i n e o fs o f t w a r er e u s e m e n ta n dd o m a i n e n g i n e e r i n gf i r s t l y t h e na f t e ra n a l y z i n ga n dc o m p a r i n ga 1 1 s o r t so f d o m a i n e n g i n e e r i n gm e t h o d s ,t h e i rs t r o n g p o i n t s a n ds h o r t c o m i n g sa r e r e v e a l e d a f t e rt h a t 。b a s e do nt h er e q u i r e m e n t so fd o m a i ne n g i n e e r i n g , i n t e g r a t i n g s e v e r a ld o m a i n e n g i n e e r i n gm e t h o d s a n d t e c h n o l o g i s e s ,a s u p p o r t i n gp l a t f o r mf o rd o m a i ne n g i n e e r i n gi sf o u n d e d f i n a l l y ,ad o m a i n e n g i n e e r i n gp r o c e s si sg i y e nf o rt h i sp l a t f o r m a i s o ,a ne x a m p l ei sg i v e n f o ri 】u s t r a t i o n k e y w o r d s s o f t w a r er e u s e m e n t ,s o f t w a r ec o m p o n e n t s ,d o m a i ne n g i n e e r i n g ,u m l ,x m l s c h e m a 基于特征建模的领域工程实施方法的研究 引言 软件复用是当前软件工程研究的重要课题。软件复用可阻提高软件的质量和 生产率,被认为是解决“软件危机”的现实可行的途径。为达到软件复用可能产 生的效果,有许多问题需要研究。其中包括一些非技术问题,如软件开发组织中 的人员组织,管理模式,开发人员培训,知识产权问题等;以及一些技术问题如 对于复用的度量,关于复用的成本收益模型,可复用构件的生产,基于复用的 开发等。其中,如何正确地识别和组织可复用信息,使得它们在软件开发中能被 复用,并易于被复用是一个重要问题,也是软件复用的一个难点。 领域工程是为一组相似或相近系统的应用工程建立基本能力和必备基础的 过程,它涵盖了建立可复用软件构件的所有活动。其中“领域”是指一组具有相 似或相近软件需求的应用系统所覆盖的功能区域。领域工程对领域中的系统进行 分析,识别这些应用的共同特征和可变特征,对刻划这些的对象和操作进行选择 和抽象,形成领域模型,依据领域模型产生出领域中应用共同具有的体系结构或 生成过程,并以此为基础识别,开发和组织可复用构件。这样,当开发同一领域 中的新应用时,可以根据领域模型,确定新应用的需求规约,根据特定领域的软 件构架形成新应用的设计,并以此为基础选择可复用构件进行组装,从而形成新 系统。 从软件开发过程的角度看,有关软件复用的问题可以分为两类,一类是关于 面向复用的开发( d e v e l o p m e n tf o rr e u s e ) ;另一类是关于基于复用的开发 ( d e v e l o p m e n t 、v i t l lr e u s e ) 。第一类问题主要是关于如何产生具有较高可复用性 的构件或生成过程;第二类问题包含三个方面:如何找到可复用构件,如何判断 可复用构件是否符合当前需要,以及如何对可复用构件进行适应性修改。 领域工程有助于这些问题的解决,从而对软件复用提供乐有力的支持。领域 工程有助于产生具有较高可复用性的构件。领域工程将关于领域的知识转化为领 域中系统共同的规约,设计和构架,使得可被复用信息的范围扩大到了抽象级别 较高的分析和设计阶段。由于通过领域工程产生的可复用构件来源于领域中现有 的系统,体现乐领域中系统的本质需求,因此这些构件具有较高的可复用性。 同时,领域工程产生了领域模型和特定领域构架( d o m a i n - s p e c i f i cs o r w a r e a r c h i t e c n l 泞d s s a ) 或应用系统的生成过程,这对于基于复用的开发很有帮 助。可复用构件是根据领域模塑和d s s a 组织的。方便了构件的检索。开发以领 域模型和d s s a 为线索进行,可以帮助开发者识别复用机会,判断可复用构件是 否符合当前需要。d s s a 为构件组装提供了上下文,使得利用可复用构件组装或 生成新的系统较为容易。 基于特征建模的领域工程实施方法的研究 但是,当前存在的一些问题阻碍了领域工程的实旄。一般来说,实施领域工 程的成本是比较高的。为了使领域模型在将来得到较高的复用率,必须使领域模 型尽可能覆盖领域中的所有情况,因此,领域分析与设计阶段会进行相当长一段 时间:为了得到应用工程的复用基础设施和大量的可复用资产,也需要大量的人 力物力投入。所以。这些前期投入在应用工程实施以前都难以回收,这增加了组 织的风险。本文提出的领域工程开发平台 文章的组织。第一章概述领域工程:第二章介绍几种当前有代表性的领域工 程方法,并对其进行分析和比较,总结出一些可促进领域工程实旌的特性:第三 章针对第二章的结果提出一个支持领域工程的开发平台:第四章引入一种可配合 上述开发平台的领域工程方法;第五章进行总结。 綦于特缸建模的领域t 程实施方法的研究 第一章领域工程概述 1 1 关于软件复用 复用概念的第一次引入是在1 9 6 8 年的n a t o 软件工程会议上,m c l l r o y 的论 文“大量生产的软件构件”里。在此之前,子程序的概念也体现了复用的思想。 但其目的是为了节省当时昂贵的机器内存资源,而不是为了节省开发程序的人力 资源。在其后的发展过程中,有许多复用技术的研究成果和成功的复用实践活动。 但是,复用对整个软件产业的影响并不尽如人意。技术方面的不成熟是主要的原 因。近十几年来,面向对象技术出现并逐渐成为主流技术,为软件复用提供了基 本的技术支持。软件复用研究重新成为热点,被视为解决软件危机,提高软件生 产效率和质量的现实可行的途径。 目前我们所从事的各种应用系统的开发,主要包括需求分析、设计、编码、 测试、维护等几个阶段。如果每次开发系统时都是从头开始,那么在开发过程中 必然存在大量重复性的劳动。包括用户需求获取的重复、需求分析和设计的重复、 编码的重复、测试的重复和文档工作的重复等。 对我们所开发的各种应用系统进行分析,可以发现应用系统通常由三种成分 组成: 1 通用的基本成分。是与应用领域无关的构成成分。例如通用的数据结构、 用户界面元素等等,可以存在于各种应用系统中。 2 领域共性成分。是应用系统所属领域的共性构成成分。存在于该领域的各 种应用系统中。 3 应用专用成分。是每个应用系统的特有构成成分。 应用系统的重复开发主要是前两类成分的重复开发,我们进行软件复用主要 也是针对前两类成分的复用。 软件复用的出发点是让应用系统的开发不再采用一切从头开始的模式,而是 以已有的工作为基础,充分利用过去系统开发中积累的开发结果和经验,如:需 求分析结果、设计方案、源代码、测试计划和案例等,从而将开发重点集中于应 用的特有构成成分。 通过软件复用,在应用系统开发中可以充分地利用已有的开发成果,消除了 包括分析、设计、编码、测试等在内的许多重复劳动。从而提高了软件开发的效 率。同时,通过复用高质量的已有开发成果,避免了重新开发可能引入的错误, 从而提高了软件的质量。 璀千特征建横的领域下程实施方法的研究 软件复用是指重复使用“为了复用目的而设计的软件”的过程。相应的,可 复用软件是指为了复用而设计的软件( 比如构件) 。与软件复用的概念相关,重 复使用软件的行为还可能是使用“并非为了复用目的而设计的软件”,或者是一 个应用系统的不同版本之间重复使用代码,严格意义上来说,这些不属于软件复 用的范畴。 以下的类比有助于进一步说明软件复用的概念。在软件演化的过程中,重复 使用的行为可能发生在三个维上: 1 时间维。使用以前的软件版本作为新版本的基础,加入新功能,适应新 需求,即软件维护。 2 平台维。以某平台上的软件为基础,修改其和运行平台相关的部分,使 其运行于新平台,即软件移植。 3 应用维。将某软件( 或其中构件) 用于其它应用系统中,新系统具有不 同功能和用途,即真正的软件复用。 这三种行为都重复使用了现有软件,但是,真正的复用是为了支持软件在应 用维的演化,使用“为复用而开发的软件( 构件) ”来更快更好地开发新的应用 系统。 软件复用可以从多个角度进行考察。依据复用的对象,可以将软件复用分为 产品复用和过程复用。产品复用指复用已有的软件构件,通过构件组装和集成来 得到新的系统。过程复用指复用已有的软件开发过程使用可复用的应用生成器 来自动或半自动的生成所需系统。过程复用依赖于软件自动化技术的发展,目前 只适用于一些特殊的应用领域。产品复用是目前现实的、主流的复用途径。 依据对可复用信息进行复用的方式,可以将软件复用区分为黑盒 ( b l a c k) 复用和白盒( 复用。黑盒复用是指对已有构件不需要 加以任何b 修o x 改,直接可以复用w 。i t i 这t e 是b 理o x 想) 的复用方式。白盒复用指已有构件并不 能完全符合用户需求,需要根据客户需求进行适应性修改后才能加以使用。而在 大多数应用的组装过程中。构件的适应性修改是必须的。 软件复用有三个基本问题:一是必须有可以复用的对象,二是所复用的对象 必须是有用的,三是复用者必须知道如何去使用被复用的对象。软件复用包括两 个相关的过程:可复用软件( 构件) 的开发( d e v e l o p m e n tf o r r e u s e ) ,基于可复 用软件( 构件) 的应用系统构造( 集成和组装) ( d e v d o p m e n tw i t h r e u s e ) 。这两 方面的问题都解决好才算是真正的成功的软件复用。 1 2 领域工程 类比传统产业的工业化生产模式,软件复用过程包含两个重要阶段【1 :可 基于特缸建模的领域工程实施方法的研究 复用软件资产的生产阶段( d e v e l o pf o rr e u s e ) 、基于可复用软件资产的应用系统 开发阶段( d e v e l o p w i t hr e u s e ) 。可复用资产的获取是成功实施软件复用计划的关 键因素。只有拥有了足够的可复用资产,才有可能基于这些资产进行新应用系统 的开发。领域工程是目前可复用资产基础设施建设的主要技术手段。 1 2 1 领域工程 下面先介绍一些有关领域工程的概念。 领域:一组具有相似或相近软件需求的应用系统所覆盖的功能区域 1 0 1 。 领域工程:为一组相似或相近系统的应用工程建立基本能力和必备基础的过 程,覆盖了建立可复用软件构件的所有活动【l l 】。 领域工程的目的:标识,构造,分类和传播一组软件制品,它们对某特定领 域中现存和未来的软件系统具有很好的适用性。其整体目标是建立相应的机制, 以使得软件工程师在工作于新的或现存的系统时可以分享这些软件制品复 用【1 1 】。 领域工程的本质:连接领域知识与可复用资产的桥梁【1 】。这也是复用的难点 所在。 1 2 2 领域工程的基本假定 进行领域工程的研究与实施领域工程基于两个基本假定 1 2 1 : 1 复用信息的领域特定性。可复用性不是信息的一种孤立的属性,它依赖于 特定的问题和特定的问题解决方案。即,我们说某信息具有可复用性,是指当使 用特定的方法解决特定的问题时,它是可复用的。基于这一假定,在识别,获取 和表示可复用信息时,应采用面向领域的策略。 2 问题领域的内聚性和稳定性。关于现实世界问题领域的解决方法的知识是 充分内聚和充分稳定的,这才使得获取和表示这些知识的努力是有意义的。这一 基本假定是实际观察的结果。一个问题领域的规约和实现知识的内聚性,使得可 以通过一组有限的,相对较少的可复用信息来把握这些可以解决大量问题的知 识。领域的稳定性,使得获取和表示这些信息所付出的代价,可以通过在一段较 长的时间内多次复用它们得到补偿。 软件复用的研究祁实践表明,特定领域的软件复用活动相对容易取得成功。 领域知识的内聚性和稳定性能够为软件复用活动提供足够的可复用资产和潜在 的经济利益:内聚性保证了领域具有足够的共性:稳定性保证了对获取可复用资 产进行的投资能够获得足够的回报。 j j :特觚处模的领域i :碰实施山法的 i j f 宄 1 2 3 领域工程的基本活动 上一章简单提到过,实施领域工程的过程包含了一些基本的活动。虽然具体 的领域工程方法可能定义不同的概念,步骤和产品,但这些基本活动是大体上一 致的。以下将详细介绍这些活动e 1 2 1 : 1 领域分析。这个阶段的主要目标是得到领域模型。领域模型描述领域中 系统之间的共同需求。称领域模型所描述的需求为领域需求。在这个阶段中,首 先要进行一些准备性的行为。这包括定义领域的边界,从而明确分析目标;识别 信息源,即领域分析和整个领域工程过程中信息的来源,可能的信息源包括现存 系统,技术文献,问题域和系统开发的专家,用户调研,市场分析,领域演化的 历史记录等。在此基础上,就可以分析领域中系统的需求,确定哪些需求是被领 域中的系统广泛共享的,从而建立领域模型。当领域中存在大量系统时,需要选 择它们的一个子集作为样本系统。对样本系统需求的考察将显示领域需求的一个 变化范围。一些需求对所有考察的系统是共同的,一些需求是单个系统所独有的。 很多需求位于这两个极端之间,即被部分系统共享。因此,如何权衡领域模型所 覆盖的功能范围非常重要。这将影响到将来领域工程产品的可用性和适用性。 2 领域设计。这个阶段的目标是获得复用基础设施的描述。该基础设施给 出了在领域模型中表示的需求的解决方案,是应用工程建立实际系统的基本构 架。建立了领域模型之后,就可以导出满足这些被建模领域需求的复用基础设施。 由于领域模型中的领域需求具有一定的变化性,领域基础设施也要相应的提供可 变性。它可以通过表示择一的,可选的解决方案来做到这一点。由于复用基础设 施是依据领域模型和特定领域构架来组织的,因此这个阶段通过获得特定领域构 架,也就形成了复用基础设施的规约。 3 领域实现。这个阶段的主要目标是依据领域模型和特定领域构架开发和 组织可复用信息。它们依据领域模型和特定领域构架进行组织。即领域模型和特 定领域构架定义了这些可复用信息的复用时机,从而支持了系统化的软件复用。 这个阶段也可以看作复用基础设施的实现阶段。 领域工程是一个反复的,逐渐精化的过程。在实施领域工程的每个阶段中, 都可能返回到以前的步骤。对以前的步骤得到的结果进行修改和完善,再回到当 前步骤,在新的基础上进行本阶段的活动。 壮于特征建模的领域t 程实施方法的研究 1 2 4 领域工程与应用工程的关系 在以下的讨论中,将开发单个应用系统的软件工程过程称为应用工程。领域 工程与应用工程是有区别又互相联系的。 在应用工程中,软件开发人员的任务是在特定的条件下,针对一组特定的需 求产生一组特定的设计和实现。其中的行为和行为产生的结果基本上是针对当前 开发的特定系统的。与此相对,在领域工程中,领域工程人员的基本任务是对一 个领域中的所有系统进行抽象,而不再局限于个别的系统。因此,与应用工程相 比,领域工程处于一个较高的抽象级别上。在领域工程中,对领域中相似系统的 共同特征进行了抽象,并通过领域模型和特定领域构架表示了这些共同特征之间 的关系。 领域工程和应用工程也是互相联系的。一方面,通过应用工程得到的现有系 统( 包括需求规约,设计,实现) 是领域工程的主要的信息来源,领域工程的各 个阶段主要是对应用工程中相应阶段的产品进行抽象。领域工程的产品领域 模型,特定领域构架,可复用构架等,又对本领域中的新系统的应用工程提供了 支持。另一方面,领域工程和应用工程需要解决一些相似的问题,如:如何从多 种信息源中获取用户需求;如何表示需求规约;如何进行设计;如何表示设计模 型;如何进行构件开发;如何对需求规约,设计和实现进行演化等。因此,领域 工程的步骤,行为。产品等很多方面都可以和应用工程进行类比 1 2 】。 领域工程与应用工程的关系如图1 1 所示: 。变。 , 垃控垃并i 删一 ,i 一一一 孥 授域工程;味蕾一- ”t - 每 ”“ 疆域模型、 l 嚣,i 一 一, , 哮 。 l“ 应 i j 工程 ln 孥 图1 1 包含领域工程的软件工程过程 幕于特征建横的领域工程实施方法的j i ) 究 1 2 5 领域工程的相关技术 领域工程不是一个孤立的学科,它与应用工程,人工智能,信息管理等学科 有密切关系,这些学科中的一些相关技术和原则可以用例解决领域工程的问题 【1 3 。 如上所述,领域工程与应用工程要解决一些相似的问题,因此,在应用工程 中己被广泛应用的许多方法,技术和原则都可以在领域工程中进行应用。如,结 构化的分析设计方法,面向对象的分析设计方法,实体一关系图,数据流图。 u m l 图,x m l 描述语言等等,都可以在领域工程中得到广泛的应用。同时,这 些原本用于开发特定系统的方法,技术和原则应用于领域工程时,需要进行补充 和剪裁,以适应新的应用环境,如需要增加表示择一,可选等可变性能力。 1 2 6 参与领域工程的人员 与应用工程的研究类似,参与领域工程的人员可以划分为四个角色:领域专 家,领域分析员,领域设计员和领域实现员。以下将对这四种角色分别通过回答 三个问题进行介绍【1 2 】:这种角色由什么人员来充当? 这种角色在领域工程中承 担什么任务? 这种角色需要具有哪些技能? 1 领域专家。在领域工程中的领域专家可能包括该领域中系统的有经验用 户,从事该领域中系统的需求分析,设计实现以及项目管理的有经验的软件工程 师等。领域专家的主要任务包括提供关于领域中系统的需求规约和实现的知识, 帮助组织规范的,一致的领域字典,帮助选择样本系统作为领域工程的依据,复 审领域模型,特定领域构架等领域工程产品,等等。领域专家应该熟悉该领域中 系统的软件设计和实现,硬件限制,未来的用户需求及技术走向等。 2 领域分析员。领域分析员应由具有知识工程背景的有经验的系统分析员 来担任。领域分析员的主要任务包括控制整个领域分析过程,进行知识获取,将 获取的知识组织到领域模型中,根据现有系统,标准规范等验证领域模型的准确 性和一致性,维护领域模型等。领域分析员应熟悉软件复用和领域分析方法:熟 悉进行知识获取和知识表示所需的技术,语言和工具:应有一定的该领域的经验, 以便于分析领域中的问题及与领域专家进行交流;应具有较高的进行抽象,关联 和类比的能力;应具有较高的与他人交流与合作的能力。 3 领域设计员。领域设计员应由有经验的软件设计人员来担任。领域设计 员的主要任务包括控制整个领域设计过程,根据领域模型和现有的系统开发出特 定领域构架,对特定领域构架的准确性和一致性进行验证,建立领域模型和特定 粜于特征矬模的领域t 程实施方法的研究 领域构架之间的联系。领域设计员应属性软件复用和领域设计方法;属性软件设 计方法;应有一定的该领域的经验,以便于分析领域中的问题并与领域专家进行 交流。 4 领域实现员。领域实现员应由有经验的程序设计人员来担任。领域实现 员的主要任务包括根据领域模型和特定领域构架,或者从头开发可复用构件,或 者利用再工程的技术从现有软件系统中提取出可复用构件,对可复用构件进行验 证,建立特定领域构架与可复用构件间的联系。领域实现员应熟悉软件复用,领 域实现及软件再工程技术;熟悉程序设计;具有一定的该领域的经验。 1 2 7 领域工程方法 领域工程的实施需要依据一定领域工程方法来进行。与应用工程类似,形成 系统化的领域工程方法需要满足一定的条件。整个领域工程过程应划分为明确顶 一定阶段,每个阶段应有明确的目标和具体的行为。产生一定的中间产品,产品 有明确定义的表示方法,产品的形式应遵循一定的操作指南,使用一定工具进行 开发有一定的验证方法保证中间产品的正确性和一致性。整个过程有明确定义 的里程碑,有明确顶一定终止条件,对于整个过程的执行情况有明确定义的度量 标准等等【12 】。 大量的实践证明 7 】,获取一组具有足够共性和稳定性的需求,是组织生产 可复用资产的基本前提。领域需求模型,作为领域分析的输出结果,是捕获和组 织领域需求的基本模型。在软件复用活动中,领域需求模型承担着两个重要作用: 第一,为领域内新系统的开发提供可复用的软件需求规约;第二,指导领域设计 阶段和领域实现阶段可复用软件资产的生产。 下一章将介绍几种当前流行的领域工程方法与技术。并分析它们的优点与不 足。 1 2 8 领域工程的过程框架 领域工程过程框架是比领域工程过程抽象程度更高的概念。其作用相当于参 考过程,它可以在领域工程过程的设计过程中提供必要的指导与支持。 当前比较流行的领域工程过程枢架有:以产品线为基础的s e i 产品线实践框 架 4 】,以s y n t h e s i s 为基础的d s e ( d o m a i n - s p e c i f i ce n g i n e e r i n g ) 【2 1 ,和面向对 象范型的r s e b 1 4 】。其中结合了产品线的d s e 是比较完善的一种。它覆盖了领 域工程的几乎所有活动。图1 2 展示了d s e 的领域工程的基本过程框架。 基于特征建模的领域工程实施方法的研究 上图中,领域管理主要包括设定领域目标,计划并管理实现这些领域目标的 领域工程活动:领域定义包括定义出刻划产品族的共性与可变性,并将可变性形 式化为决策模型;产品族工程包括产生与领域定义有关的产品族需求,设计和实 现;过程工程包括为领域定义一个应用工程过程,生成一个工具与文档的支持基 础设施:项目支持包括对领域产品的验证和确认,并对应用工程项目的有效实施 提供支持。 1 。3 小结 这一章,笔者对有关领域工程的各个方面做了简要介绍,下章介绍几种当 前有代表性的领域工程方法,并进行分析,对比,最后总结出它们的优点与不足。 基于特征矬摸的领域_ t 程实施方法的研究 第二章当前的一些领域工程方法与过程 2 1 面向特征的领域分析( 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 f o d a 是由卡内基梅隆大学软件工程研究院于9 0 年代初开发的领域分析方 法。该方法是以其它领域分析方法为基础,经过大量研究得到的。该方法针对系 统族,其主要输出是将领域分析结果文档化的相关模型组成的一个结构化框架。 1 9 8 2 年,软件需求专家d a v is 首次提出“把特征作为系统需求规约的组织方 式”【1 4 】。他认为,特征是从用户角度对系统的感知,用特征对系统需求进行模 块化组织是一种非常自然的手段。这种面向特征的需求组织方式在f o d a 方法中 被引入到领域工程的研究和实践中。f o d a 方法使用特征和特征之间的关系,即 特征模型,作为领域需求模型的主要组成部分。 f o d a 的首要目标是在一个领域内开发通用的产品。为此,f o d a 使用了两 个概念:抽象( 也称泛化) 和求精( 也称特化) 。其思想是,先从领域内的不同 应用中抽离不同之处,以得到可用于整个领域的领域产品。然后,就可以对领域 产品进行求精,引入使得每个应用与众不同的因素,而得到特定的应用。 f o d a 方法包含三个步骤。第一步是上下文分析。其目标是通过定义领域的 范围给出领域上下文。第二步是领域建模。这一步考察领域应用间的共性与不同, 同时产生多种模型。第三步是构架建模。目的是为新应用的创建提供软件解决方 案。下面详细介绍每个步骤。 1 上下文分析。 上下文分析的主要目的是定义领域的范围。对领域与外部元素之间的联系进 行分析,并对联系的可变性和外部条件进行估计。最终的分析结果记录在上 下文模型中。该模型包含结构图和数据流图。结构图刻划目标领域与其它领 域的关系;数据流图描述蟊标领域与其它实体之间的数据流通信。 2 领域建模。 领域建模主要由三个活动组成:特征分析,信息分析,以及操作分析。 1 ) 特征分析的目的是获取最终用户对该领域应用通用能力与特征的理 解,并对之建模。特征模型用来刻划该领域内应用的共同特征和不同 之处。特征可定义为直接影响最终用户的系统属性。特征可分为可选 的( o p t i o n a l ) ,必选的( m a n d a t o r y ) 和择一的( a l t e r n a t i v e ) 。特征 模型还包括特征的组合规则和选择原则( 对于择一特征) 。一个完整 毕于特觚建模的领域丁程实施方法的研究 的特征模型应包括:一个表示特征的层次化分解的结构图,对每个特 征的详细定义,及其它组合规则。特征模型是作为用户与开发者之间 的交流媒介被建立的。建立特征模型的过程包含如下这些步骤:搜集 原始文档,识别特征,抽象并确认特征,定义特征,以及验证模型。 2 ) 在信息分析( 或称为实体一关系建模) 阶段,基本的领域知识被定义, 分析并获取。这些领域知识以领域实体及其关系表示,以供将来在操 作分析和构架建模时用以导出对象和数据定义。此模型可以是实体关 系( e r ) 模型,面向对象( o o ) 模型,或语义网络。 3 ) 操作分析( 或功能分析) 识别领域中应用的行为与功能上的共性与不 同。功能规约以输入,输出,活动,内部数据,逻辑结构,以及数据 流关系对应用程序的结构进行描述;行为规约以事件,输入,状态, 条件,及状态迁移描述应用将如何产生响应。一个产品族的抽象模型 被定义在顶层。该抽象模型随着可选特征和择一特征的加入不断细 化。 3 构架建模。 构架建模的目的是对领域建模过程中的问题提供软件解决方案。该模型必须 能适应未来在技术上或其自身上的变化。推荐的方案是构架分层。构架被定 义为不同层次的抽象,而复用可以在任一层次上进行。f o d a 方法定义了四 层,并着重于其中的上面两层:领域构架层,领域应用层。最后的结果是一 个面向领域的构架。 基于特征建模的领域工程实施方法的研究 2 2 组织领域建模( o r g a n i z a t i o nd o m a i nm o d e l i n g ) 一 一o d m 组织领域建模是一种形式化的,可剪裁的领域工程方法。o d m 被用于支持 成熟的,相对稳定且在经济上可行的领域工程项目中可以产生最佳效果。 o d m 的整体目标是系统化她将从遗产系统的软件物件转变为可被用于将来 开发活动的可复用资产。o d m 既可用于系统族( 垂直领域) 又可用于系统组成 部分( 水平领域) 。因此,该方法对遗产系统的再工程和引导新系统的开发都很 有帮助。 o d m 由三个阶段组成:领域工程计划,领域建模,和基础资产工程。每个 阶段又分为三个子阶段,每个子阶段需要完成三个任务。下面进行详细介绍。 1 领域工程计划。 本阶段主要进行涉众理解,领域研究,并定义相应的领域边界。 1 ) 设定目标。任务包括:确定相关涉众的实体;理解他们的目标及项目 的整体目标:对已识别的涉众,目标设置优先级别。 2 ) 领域研究。任务包括:识别并刻划相关领域:定义领域的选择标准: 选择领域。 3 ) 定义领域。任务包括:根据即将加入系统的规则与实例定义系统的边 界:识别适合于该领域系统的主要特征;分析本领域与其它领域之间 的关系。 2 领域建模。 本阶段关注于楣关领域信息的收集与整理。 1 ) 获取领域信息。任务计划:从领域专家,系统用户,已有的遗产系统 资料,研究材料等等途径,搜集信息。 2 ) 领域描述。开发一本该领域专业用语的领域术语词典;对关键领域概 念进行建模;通过对特征的识别与表示,对这些概念的可变性进行建 模。 3 ) 领域求精。将存在的模型集成为一个一致的整体模型:对为某些特征 的取舍所做出的折衷进行建模:对不同的特征组合方式进行试验。 3 基础资产工程。 本阶段包括相关领域的基础资产的研究,构建与实现。 1 ) 基础资产研究。包括:在特征与用户之间建立联系:对这些联系建立 优先级别;选择一些以供实现。 2 ) 基础资产构建。包括:确定外部与内部的构架约束:基于这些约束定 皋十特征建模的领域t 程实施方法的研究 义一个构架。 3 ) 基础资产实现。包括:实现计划;实现资产:实现基础设施,如资产 检索与检验机制。还应保留特征到样本物件的可追踪性,以使开发者 可访问到原型。 2 3 面向家族的抽象,规约与翻译( f a m i l y - o r i e n t e d a b s t r a c t i o n ,s p e c i 们c a t i o na n dt r a n s l a t i o n ) f a s t f a s t 是一种关注于软件家族与产品线的领域工程方法【1 6 。软件家族是指, 拥有共同特征且满足某一特定市场需求的一组产品。f a s t 是由d a v i dw e i s s 等 人在朗讯贝尔实验室开发的。 f a s t 的整体目标是,建立过程与资产,以尽可能快且便宜地为一个程序族 生产新成员。步骤如下;为家族找到合适的抽象:创建一种语言描述这种抽象: 建立必要的工具,以将对家族成员的描述转换成可交付的软件或文档。f a s t 过 程为上述步骤提供指引,它包含两个子过程:领域工程与应用工程。在领域工程 中,软件家族被定义,并且生产家族成员的环境被开发出来。然后,应用工程将 使用该应用环境生产家族成员。从使用应用工程环境过程中得到的反馈可产生某 些改变。下面将详细介绍领域工程予过程。 1 共性分析 领域工程子过程首先通过一种成为“共性分析”的方法收集并整理某一领域 包含的知识。该方法的产品是共性分析文档( c a ) ,该文档是通过与领域专 家一系列会议建立的。该文档主要包含7 部分:概述,定义,共性,可变性, 变化参数,问题,场景。然后,迭代每完成一次,团队成员就复审c a 文档 一次。再由对该领域熟悉但并未参与文档编制的工程师复审文档。 2 建立决策模型 此模型应包含所有为建造一个产品族的新成员一个应用工程师必须解决的 需求与工程决策。此模型将这些决策按恰当顺序排列。此模型由c a 文档导 出。 3 定义应用建模语言( a m l ) 应用工程师用a m l 描述产品家族的新成员,因此,决策模型中识别的任何 决策必须可由a m l 所描述。这些描述然后会产生工作产品与文档。组合方 法或编译器方法均可用于a m l 。如果使用编译器方法,则只有抽象模块和 变化的参数被描述在领域中;否则,领域设计描述的产品族构架被创建。 4 实现家族,领域 埔1 二特征茎:i ! 模的领域t 程实施方波晌i i j | = 究 包括设计并创建应用工程环境。还可以创建生成与分析工具。生成工具将 a m l 规约作为输入并产生出代码与文档。分析工具可用于分析成员规约并 产生有关规约一致性与完整性,性能估计,不同模型比较等等的反馈。公共 资产库也被描述,包含代码与文档模板。最后,应用工程环境也应被文档化。 2 4 软件设计自动化( s o f t w a r ed e s i g na u t o m a t i o n ) 一 一s d a s d a 用来开发有工具支持的形式化规约语言或应用产生器。它被期望应用于 成熟,文档化的问题域。s d a 使用数学模型表达某个问题域的问题需求。s d a 的一个关键概念是使用了指称语义来获取完整的特定领域语言的规约。指称语义 是这样一种语言定义,它用其组成部分表达短语的含义。它们将用户对领域的观 点看作一个数据类型,并用以对领域的解空间进行建模。之后,它们又被用来实 现从问题空间到解空间基于语义的翻译器。翻译器建立起来以后,一个规约就可 以以特定领域语言书写,以通过翻译器的运行生产出一个新构件。 s d a 由以下三步组成:领域分析,定义语言,及实现生成器和支持产品。这 些步骤以迭代的方式进行。迭代的时间与次数完全取决于领域。下面将对前两个 步骤进行概要叙述,第三步因为与本文关系不大,故未做叙述。 1 领域分析 分析模型步骤主要分为5 个活动。 1 ) 获取领域的书写定义。目的是非形式化对领域相关的信息进行整理, 给语言设计团队以初步的理解,并识别领域专家以便为将来的反馈和 资产确认做准备。 2 ) 形式化领域模型的公式化。以用户的观点,这基本上是问题视图。为 了能集中精力进行信息收集活动,在早期就获取一个初始模型很重 要。应尽可能使用数学结构对领域概念进行抽象和形式化。领域模型 可作为参数化的功能语言数据类型直接获得。这些参数的规约应确定 一个领域的实例。 3 ) 解决方案模型。该模型将领域分成构件和连接器以提供所需的功能。 既然问题域被假定为成熟和稳定的,应该存在可被分析的解决方案。 到函数或模块的接口被用于描述合法交互。同时应带有模块间如何交 互的描述。最后,整个系统构架应被文档化。 4 ) 获取遗产环境的接1 3 。对现存的任何遗产系统的运行时环境进行分 基于特征建模的领域丁程实施方法的研究 析,将可确保生成的代码将能够正确地与之集成。 5 ) 通过确认所有已开发的模型,对领域终点进行分析。通过表明某个解 决方案可以解决领域中某个问题,对模型进行基本的确认。该实例应 该由领域专家通过对解决方案的获取过程的深入研究得到。 2 定义特定领域语言 1 ) 获取初始语言定义。语言定义的一部分是描述其类型系统。这包 括描述所有的原子实体和实体组合规则。 2 ) 语义形式化。目的是应用指称风格形式化地获取该语言的外部语 义。语言的语法术语应给出语义描述。该语言应包含一些短语, 每个短语描述一些功能。 2 5 特定领域的软件构架( d o m a i ns p e c i f i cs o f t w a r e a r c h i t e c t u r e ) d s s a w i l lt r a c z 提出了进行领域工程的d s s a 方法。在最高级别上,此方法有五 个阶段。每个阶段可以进一步划分为一些子阶段。每个阶段包括一组需要回答的 问题,一组需要的输入,一组将产生的输出和验证标准。该过程是并发,递归和 反复的。可能需要对每个阶段经历多次,每次增加更多细节。 1 定义领域范围。 主要是确定有哪些领域中的关注点,以及本过程到何时结束。这个阶段的一 个主要输出是领域中的应用需要满足的一系列用户需求。 。2 定义领域特定元素。 目标是编译领域词典和领域术语的同义词词典。在领域工程过程的前一个阶 段产生的高层次抽象将被加入更多细节,特别是识别领域中应用间的共性和 差异。 3 定义领域特定的设计和实现约束。 目标是描述解空间中有差别的特性。不仅要识别出约束,并且要记录约束对 设计和实现决策造成的后果,以及对处理这些问题时产生的所有问题的讨 论。 4 定义领域模型和构架。 目标是产生通用的领域参考构架,并说明构成的模块或构件的语法和语义。 5 产生,收集可复用产品。 目标是为d s s a 增加构件使得它可以被用来产生问题域中的新应用。 基于特征矬模鲍领域工程实施方法的研究 2 6 小结 前面介绍了几种当前比较流行的领域工程方法。本质一k ,它们都基于一些共 同的观念。同时,它们之间又存在一定差别,这主要表现在它们定义了各自不同 的目标,产品和过程,有各自不同的适用情况。 按照a r a n g o 【1 2 】和r u b e n 1 7 】的观点,领域工程的实施需要依据一定领域工 程方法来进行。系统化的领域工程方法需要满足一定的条件。整个领域工程过程 应划分为明确定义的阶段,每个阶段应有明确的目标和具体的行为。产生一定的 中间产品
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026云南迪庆州维西县国有林场编外专职森林草原管护人员招聘1人笔试备考题库及答案详解
- 2026年焦作市专项计划招聘社区网格事务协理员360人笔试备考试题及答案详解
- 雅安市雨城区2026年公开选调学校教师 (5人)笔试模拟试题及答案详解
- 中国移动在线服务公司10086客服招聘笔试模拟试题及答案详解
- 糕点制作生产线管理合同
- 2026四川乐山职业技术学院考核招聘编制外工作人员30人笔试备考试题及答案详解
- 2026新疆明奎医疗管理(集团)有限公司招聘19人笔试备考题库及答案详解
- 2026年辽宁锦州义县公益性岗位招聘138人笔试模拟试题及答案详解
- 教案嵌入式应用基础(项目3第7周)
- 2026年金华义乌市稠城街道社区卫生服务中心编外聘用人员招聘4人笔试备考题库及答案详解
- 五年级数学下册 第五单元培优拔高测评试题-(学生版)(北师大版)
- (正式版)JB∕T 5789-2024 筐篮式捻股机和成绳机
- 2024届上海市杨浦区六年级下学期小升初真题数学试卷含解析
- 风险分级隐患排查治理风险分级管控隐患排查与治理措施培训课件
- 高级船员职业规划书
- 加工中心日常点检表
- 普外科常见病
- 卒中管理及中心建设
- 电阻的星形连接和三角形连接
- 第三次国土调查数字正射影像生产技术设计书
- 危险化学品MSDS(碳酸钙)
评论
0/150
提交评论