(管理科学与工程专业论文)领域工程方法在港航信息系统中的应用研究.pdf_第1页
(管理科学与工程专业论文)领域工程方法在港航信息系统中的应用研究.pdf_第2页
(管理科学与工程专业论文)领域工程方法在港航信息系统中的应用研究.pdf_第3页
(管理科学与工程专业论文)领域工程方法在港航信息系统中的应用研究.pdf_第4页
(管理科学与工程专业论文)领域工程方法在港航信息系统中的应用研究.pdf_第5页
已阅读5页,还剩67页未读 继续免费阅读

(管理科学与工程专业论文)领域工程方法在港航信息系统中的应用研究.pdf.pdf 免费下载

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

文档简介

中文摘要 摘要 随着计算机应用领域的扩大,软件规模及复杂性不断提高,提高软件生产率 是当前软件产业的当务之急。软件复用是解决软件危机、提高软件开发效率和质 量的现实可行的途径。软件被广泛地应用在各领域中,同一领域内的若干系统既 具有共性,又有差异性。在软件复用中,领域共性为应用系统集成组装提供了基 础,变化性则确定了个体系统特性,在一个特定的系统中领域共性与变化性共生。 为此,在特定领域开展领域工程,可以系统地,有效地获取可复用资源,领域工 程为软件复用提供了有力的技术支持。领域工程是对领域产品族中相关应用系统 建立核心软件资产的过程,这些核心资产包括领域需求、领域框架以及领域可复 用构件,领域工程覆盖了开发可复用软件构件的所有活动。 本文首先对国内外领域工程研究情况进行了分析。然后将领域工程方法与面 向对象方法有机地结合起来,提出了面向对象的领域可复用构件的开发过程。核 心是面向对象的领域分析和设计方法,针对某个领域,研究适用于此领域所有应 用系统的通用软件体系结构并抽取合适粒度的领域构件:在分析阶段,在面向对 象的方法中引入了解决共性和变化性的处理机制,探讨了领域边界模型、领域特 征模型、领域用例模型和领域对象模型四种领域模型的建立方法,建立领域需求 的软件构架;在设计阶段,研究了软件体系结构的搭建,领域构件的抽取和支持 子系统设计。最后,该方法运用到了港航信息系统上,针对该领域的应用系统的 共性和变化性,建立领域模型,搭建软件体系结构,抽取港航领域构件,并最终 实现了港航管理信息系统。 本文的研究具有一定的理论价值和较高的实用价值,所提出的方法能对识别 和设计领域构件提供一定的指导作用,以后的领域软件复用奠定了基础,将大幅 度减少软件开发的重复工作,对其它领域的软件开发具有一定的借鉴意义。 关键词:面向对象;领域工程;j 2 e e ;构件 英文摘要 t h er e s e a r c ha n da p p l i c a t i o no fd o m a i n e n g i n e e r i n gm e t h o do np o r t n a v i g a t i o ni n f o r m a t i o ns y s t e m a b s t r a c t w i t ht h ee x p a n s i o no fc o m p u t e ra p p l i c a t i o n ,t h es o f t w a r es c a l ea n dc o m p l e x i t y h a v eb e e nr a p i d l yi n c r e a s i n g i t sh i g l lt i m et oi m p r o v et h ep r o d u c t i v i t yo fs o f t w a r ef o r t h es o f t w a r ei n d u s t r y s o f t w a r er e u s ei sar e a l i s t i ca p p r o a c ht os o l v es o f t w a r ec r i s i s , i n c r e a s ep r o d u c t i v i t ya n dq u a l i t yo fs o f t w a r ep r o d u c t i o n s o f t w a r ei sw i d e l yu s e di n v a r i o u sf i e l d sa n dt h es y s t e m si naf i e l dw h i c hh a v ec o m m o n a l i t ya n dv a r i a b i l i t y i nt h e s o f t w a r er e u s e ,c o m m o na r e a sp r o v i d et h eb a s i sf o rt h ea p p l i c a t i o ns y s t e m s i n t e g r a t i o n a s s e m b l y ,a n dc h a n g e si n d i v i d u a li d e n t i f i e d i nas p e c i f i cs y s t e mb o t ha r et h ec o m m o n s a n dd i f f e r e n c e s t h e r e f o r em a k i n gu s eo fd o m a i ne n g i n e e r i n gf o rt h es p e c i f i cd o m a i n c a ns y s t e m a t i ca n de f f e c t i v eg e tt h er e u s a b l er e s o u r c e s d o m a i ne n g i n e e r i n gw h i c hi sa p r o c e s so fe s t a b l i s h i n gc o r es o f t w a r ea s s e t sf o rr e l a t i v ea p p l i c a t i o n si nt h ed o m a i n p r o d u c tf a m i l yp r o v i d e ss u p p o r tf o rt h es o f t w a r er e u s e d o m a i ne n g i n e e r i n gc o v e r st h e w h o l ea c t i v i t i e so fd e v e l o p i n gr e u s a b l es o f t w a r ec o m p o n e n t t h i st h e s i si l l u s t r a t e st h ec u r r e n td e v e l o p m e n ti nd o m a i ne n g i n e e r i n g t h e n ,w e c o m b i n et h ed o m a i ne n g i n e e r i n ga n do b j e c t - o r i e n t e dm e t h o dt o g e t h e r ;p r o p o s ea p r o c e s so fd o m a i nr e u s a b l ec o m p o n e n tb a s e do n0 b j e c t - o r i e n t e dm e t h o d t h ec o r ei s d o m a i na n a l y s i sa n dd o m a i nd e s i g nb a s e do no b j e c t o r i e n t e dm e t h o d i na n a l y s i sp h a s e , w ei n t r o d u c eam e c h a n i s m r e s o l v i n gc o m m o n a l i t y a n d v a r i a b i l i t y b a s e do n o b j e c t - o r i e n t e dm e t h o di n c l u d i n gt h ed e v e l o p m e n tm e t h o do fd o m a i nb o r d e rm o d e l , d o m a i nf e a t u r em o d e l ,d o m a i nu s e c a s em o d e l ,d o m a i no b j e c tm o d e lf o rt h ed o m a i n r e q u i r e m e n ts o f t w a r ea r c h i t e c t u r e i nd e s i g np h a s e ,w em a i n l yc o n c e r to nd e s i g no f s o f t w a r ea r c h i t e c t u r e ,t r yt of i n dam o r es u i t a b l es o f t w a r ea r c h i t e c t u r ef o rr e u s e w e a l s oe x t r a c tt w ot y p e so fc o m p o n e n ti n c l u d i n gd o m a i ne n t i t yc o m p o n e n ta n dd o m a i n b u s i n e s sc o m p o n e n t a tt h ee n do ft h et h e s i s ,w eg i v eac a s es t u d y 堋ep o r t n a v i g a t i o ni n f o r m a t i o ns y s t e mw h i c hc a nb ea d a p t a b l et ot h ed o m a i nv a r i a b i l i t y t h r o u g ht h ea b o v em e t h o d t h er e s e a r c hh a st h e o r e t i c a lv a l u ea n dh i g l lp r a c t i c a lv a l u e t h em e t h o dc a nb ea 英文摘要 g u i d e l i n eo ni d e n t i f y i n ga n dd e s i g n i n gd o m a i nc o m p o n e n t i tc a nr e d u c et h er e p e a t e d w o r ka n db eu s e f u lt os o f t w a r ed e v e l o po fo t h e rd o m a i n s k e yw o r d s :o b j e c t o r i e n t e d ;d o m a i ne n g i n e e r i n g ;j 2 e e ;c o m p o n e n t 大连海事大学学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明:本论文是在导师的指导下,独立进行研究工作所取得的成果, 撰写成硕士学位论文= = 筮塑工程友洼查鲞题值,垦丕统虫的廛囝硒究:。除论文 中已经注明引用的内容外,对论文的研究做出重要贡献的个人和集体,均已在文 中以明确方式标明。本论文中不包含任何未加明确注明的其他个人或集体已经公 开发表或未公开发表的成果。 本声明的法律责任由本人承担。 论文作者签名:够附辱占夸珈彦年4 月,争日 l 一c 二 学位论文版权使用授权书 本学位论文作者及指导教师完全了解“大连海事大学研究生学位论文提交、 版权使用管理办法”,同意大连海事大学保留并向国家有关部门或机构送交学位论 文的复印件和电子版,允许论文被查阅和借阅。本人授权大连海事大学可以将本 学位论文的全部或部分内容编入有关数据库进行检索,也可采用影印、缩印或扫 描等复制手段保存和汇编学位论文。 保密口,在年解密后适用本授权书。 本学位论文属于: 保密口 不保密西( 请在以上方框内打“) 论文作者签名:锣嗽靖导师签名:形象 日期:2 毋解年月l 牛日 领域工程方法在港航信息系统中的运用研究 第1 章绪论 1 1 课题背景及意义 软件复用是目前解决软件危机、提高软件质量和软件生产效率的有效途径。 构件技术来源于软件复用的思想,指开发新的软件项目时所用到的具有相对独立 功能和有复用价值的软件元素,它提供特定的服务、清晰的接口。领域工程为软 件复用提供了有力的支持,从特定领域的一组相似的需求出发进行领域分析,确 定共性与变化性,构造特定领域体系结构,寻求可复用的业务语义并构造构件, 侧重构件在领域内的适应性。 经过多年的研究与实践,目前已有很多种领域工程方法,其中比较有代表性 的方法是卡内基梅隆大学软件工程研究所提出来的f o d a 方法u 1 ( f e a t u r e o r i e n t e d d o m a i na n a l y s i s ) 、w i l l 胁c z 提出来的d s s a 领域工程方法 2 ( d o m a i n s p e c i f i c s o f t w a r ea r c h i t e c t u r e ) 、乔治梅森大学h a s s a n g o m a a 教授提出来的e d l c ( e v o l u t i o n a r yd o m a i n l i f ec y c l em o d e l ) 模型3 】以及贝尔实验室提出的f a s t 领域工 程方法【4 】。这些方法充分捕捉了领域的信息,尤其是领域的共性和变化性,取得了 一定的成果,但是它们仍然沿用传统的结构化分析和设计方法,这已经不适应当 前的需求;而且这些方法都比较重视领域分析,尤其偏重描述领域的共性和变化 性方面,但在领域设计方面研究的不多,很少探讨如何解决这些共性和变化性的 具体方案,给出在领域设计阶段进行构件构架开发的指南是领域工程方法研究的 一个迫切需要。 近十几年来兴起的面向对象方法通过用例模型、对象模型来描述系统,通过 对象、类、抽象、封装和继承等机制,从完整性、独立性、一般性和多态性等方 面对软件的可复用性提供了一定的支持【5 j 。但是面向对象方法对于支持领域工程中 的软件复用还有一定差距,因为面向对象是面向特定软件系统的、面向使用的, 关注的是某一特定系统用户的需求,对领域工程和应用工程不作区分,没有对领 域边界进行界定,对应用系统内或者应用系统间的共性和变化性考虑不够,没有 独立于实现技术的领域可变性的建模方法等;而且复用粒度太小,是被动的复用, 第1 章绪论 没有构件化设计的思想,即面向对象方法没有“领域 的概念。虽然目前己经有 某些领域工程方法借鉴了面向对象方法,如上述提到的e d l c 方法是面向对象的, 但还不成熟,还处于探索阶段。 针对这些问题,本文研究的目的就是将面向对象的方法和领域工程技术有机 地结合起来,提出一种面向对象的领域分析和领域设计的开发过程和方法:在面 向对象方法中引入领域的概念,关注领域的共性和变化性,将特定系统边界扩展 到领域边界;在领域工程方法中贯彻面向对象的方法,并讨论一种面向对象的软 件体系来更好地发挥面向对象的方法对软件复用的支持作用。本文的研究具有一 定的理论价值和较高的实用价值,将面向对象和领域工程的优势融为一体,形成 一个一致、完善的描述领域分析和领域设计的过程,以此为指导将更好地支持基 于构件的软件开发的全过程,提高软件开发的成功率和效率,也为后续的研究工 作提供了良好的参照并打下了坚实的基础,为组装式软件产业化生产提供了一定 的借鉴意义。 1 2 国内外相关研究进展 经过多年的研究与实践,当前已提出若干种领域工程方法,取得了一定的成 果。其中代表性的研究与实践工作有:乔治梅森大学于1 9 8 9 年提出的领域进化生 命周期模型e d l c t 3 1 ,它抛弃了传统的软件开发和维护划分,并基于领域的观点允 许系统家族开发,将模型分为两个相关的子生命周期,即领域建模和目标系统生 成;c m u 软件工程研究所于1 9 9 0 年提出的面向特征的领域分析方法f o d a 【l j ,它 将领域工程分为上下文分析( c o n t e x ta n a l y s i s ) 、领域建模( d o m a i nm o d e l i n g ) 及构架 建模( a r c h i t e c t u r em o d e l i n g ) 3 个阶段;洛克希德联邦系统公司1 9 9 2 年提出了特定 域的软件体系结构d s s a 方法【2 1 ,它包括定义领域范围、定义领域特定的元素、定 义领域特定的设计和实现需求约束、定义领域模型和构架以及产生、搜集可复用 产品等5 个阶段;u n i s y s 公司1 9 9 6 年提出组织领域建模o d m ( o r g a n i z a t i o nd o m a i n m o d e l i n g ) 的领域工程方法【6 】,主要关注遗留系统的领域工程问题,但它也能被应 用到新系统的需求中。上述领域工程方法都没有给出关于领域的精确定义和刻画, 即使采用相同的方法针对同一领域进行分析,分析结果也难以重现。 领域工程方法在港航信息系统中的运用研究 对于在领域工程方法中引入面向对象的思想,也取得了一定的成就,出现了 一些基于面向对象技术的软件复用和领域工程方法,如重用驱动的软件工程业务 r s e b ( r e u s e d r i v e n s o f t w a r e e n g i n e e r i n gb u s i n e s s ) o 、f o d a c o m ( f o d a f o r t e l e c o mi n d u s t r y ) 引、f e m u r s e b ( r e u s e - d r i v e rs o f t w a r ee n g i n e e r i n gb u s i n e s sw i t h f e a t u r ea n a l y s i s ) 【9 】和联合面向对象领域分析方法j o d a ( j o i no b j e c t o r i e n t e d d o m a ma n a l y s i s ) 1 0 1 。 在国内,对于领域工程的研究取得了一定的成就。杨芙清院士主持的国家重 点科技攻关项目青鸟工程,它以自主设计的软件开发环境为基础,研究构件构架 模型的软件生产技术,提出了青鸟构件标准规范,支持专业化的构件生产【1 1 】。 1 3 研究的主要内容 本文是作者就读研究生期间参与辽宁省港航局信息管理系统项目当中完成 的。该项目作为辽宁省电子政务的一部分,需要满足中国电子政务建设的要求, 采用联合共建,互通互联,经济实用,方便灵活,统一标准,统一规范等原则, 以求达到信息的共享交换,并最终提高办公效率和决策水平。通过领域工程方法 构造的软件系统往往可以提供一类产品族的通用体系结构和可重用构件,而相关 的应用工程则是为单个应用系统设计的最佳解决方案。由这种方式构造的应用系 统族具有高度的结构性、系统性、重用性,并可缩短系统建立的时间和资金成本, 特别适用于电子政务系统的建设。再加上港航局信息管理系统作为一个电子政务 系统,还有其特殊性。其特殊性就在于港航局管理信息系统的专业性强,各个地 区的港航系统之间相识度高,可重用性高。所以本文以领域工程为研究背景,将 面向对象的分析和设计方法与领域工程技术相结合,提出了面向对象的领域分析 和领域设计方法,并将这种方法应用于港航信息系统的实现中。本文的工作和成 果可以概括为如下几个方面: ( 1 ) 进行基础理论的研究,通过大量阅读科技文献资料,研究领域工程的理论 基础及相关实现技术,分析了当前各种领域工程方法中存在的不足并研究了当前 流行的几种框架。 ( 2 ) 提出面向对象的领域工程方法: 第1 章绪论 在分析阶段中,在面向对象的方法中引入了解决共性和变化性的处理机制, 详细介绍了四种领域模型的建立步骤和方法,包括领域边界模型、领域特征模型、 领域用例模型和领域对象模型。在设计阶段,通过搭建软件体系结构,抽取领域 构件和设计支持子系统三个步骤完成面向对象领域工程的设计。为验证本文的方 法的正确性,以港航领域为例,针对该领域的应用系统的共性和变化性,识别和 提取了该领域中各个子系统中具有领域共性的通用领域构件,运用该方法最终提 取出港航管理的领域构件,实现了港航管理信息系统。 1 4 论文的章节结构 本文共分5 章。论文的章节结构如下: 第1 章:绪论。简要介绍了本文的研究目的和意义和国内外的研究概况。 第2 章:阐述了领域工程的相关概念和软件系统结构所用到的各种框架。 第3 章:详细介绍了所提出的面向对象的领域分析方法,包括四种领域模型 的建立方法和面向对象的领域设计方法的各个步骤。 第4 章:将所介绍的方法应用到辽宁省港航信息系统。通过领域分析,设计, 实现,最终实现港航信息系统,证明了方法的可行性。 第5 章:总结与展望。概括总结了应用该方法进行项目实施中的体会以及不 足,并提出今后需要进一步研究和发展的方向。 领域工程方法在港航信息系统中的运用研究 第2 章理论基础及相关概念 2 1 领域工程及相关概念 领域工程有助于解决可复用信息的识别、组织和利用的问题,有助于产生具 有较高可复用性的构件,而且通过产生体系结构定义了复用的时机和复用的上下 文,对开发者复用构件提供了有力的支持。课题的研究基于领域工程的基本理论 和基本技术,故本章首先对领域工程进行介绍,阐述领域工程对软件复用的支持, 详细地讨论领域工程的基本技术。 2 1 1 领域工程研究和实施的基本前提 对特定领域的应用系统实施领域工程必须具备一些基本的前提,只有这样, 领域工程的实施才能顺利,才能更具有意义【1 2 1 。 ( 1 ) 可复用信息的领域特定性。可复用性不是信息的一种孤立的属性,它依赖 于特定的问题和特定问题的解决方法。即当说某信息具有可复用性,是指当使用 特定的方法解决特定的问题时,它是可复用的。基于这一基本认识,在识别、获 取和表示可复用信息时,应采用面向领域的策略。 ( 2 ) 问题领域的内聚性和稳定性。关于现实世界问题领域的解决方法的知识是 充分内聚和稳定的,这才能使得获取和表示这些知识的努力是有意义的,这一基 本认识是实际观察的结果。一个问题领域的规约和实现知识的内聚性,便得可以 通过一组有限的、相对较少的可复用信息来把握这些可以解决大量问题的知识。 领域的稳定性,使得获取和表示这些信息所付出的代价,可以通过在一段较长的 时间内多次复用它们来得到补偿。 2 1 2 领域的定义 目前对领域的理解主要有三种观点:一组或一族相关系统,所有这些系统 共享一种能力和或数据集。具有相同需求的一个应用程序族表述的问题空间。 一个问题或任务领域,在其中可以开发出多重高度相似的应用系统以满足各种 不同用户的特定需求【1 0 】。这三种定义从不同的角度对领域进行了刻画,第一种定 义强调了领域的基本组成成分相关系统,所有这些系统之间存在某种依赖关 第2 章理论基础及相关概念 系,用来实现一个共同的目标。第二种定义通过现有的一族系统来展示所提出的 问题空间,也就是通过对现有系统的研究,来找出系统间的可重用的资源,这不 仅有利于加深对领域的认识还有利于领域知识表达的形式化和标准化,并且对领 域内系统的开发打下了重用基础。第三种定义是基于重用的,强调了基于重用的 应用系统开发。通过这几种定义可知领域所具有的一些基本特征【1 3 】:领域中的 系统具有相关性,具体体现为:具有相同的需求;共享领域范围内的数据;共同 实现一个目标;共同描述了一个问题空间。对领域内各系统所形成的问题空间 的求解可以导出新的系统。领域内的重要资源以及这些资源的业务和关系是以 一定的结构来表示的。 因此,可以给出领域的一个描述性定义:领域是有具有相同需求的一组或一 族相关系统所组成,是为重用的系统开发和基于重用的系统开发所形成的系统仓 库【1 3 】。这里的领域具有更广泛的含义:包括“软件领域”自身和软件的应用领域。 2 1 3 领域工程 领域工程是为一组相似或相近系统的应用工程建立基本能力和必备基础的过 程,它覆盖了建立可复用软件构件的所有活动,是面向构件的理念工程【1 4 】。 领域工程对领域中的系统进行分析,识别这些应用的共同特征和可变特征, 对刻画这些特征的对象和操作进行选择和抽象,形成领域模型,依据领域模型产 生出领域中应用共同具有的体系结构,即特定领域的软件体系结构( d o m a i n s 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 ,d s s a ) ,并以此为基础,识别、开发和组织可复用 构件【1 5 】1 1 6 1 。这样,当开发同一领域中的新应用时,可以根据领域模型,确定新应 用的需求规约,根据特定领域的软件构架形成新应用的设计,并以此为基础选择 可复用构件进行组装,从而形成新的系统。 实施领域工程的过程中包含了一些基本的行为。虽然具体的领域工程方法可 能定义不同的概念、步骤、产品等,但这些基本行为是大体一致的。以下将分为 三个阶段介绍这些行为,如图2 1 所示,包括领域分析、领域设计和领域实现三阶 留 1 7 1 1 1 8 1 t ,工o 领域工程方法在港航信息系统中的运用研究 图2 1 领域工程的实施步骤 f i g 2 1t h ei m p l e m e n t a t i o ns t e p so fd o m a i ne n g i n e e r i n g ( 1 ) 领域分析:这个阶段的主要目标是获得领域模型。领域模型描述领域中系 统之间的共同的需求【l 圳,领域模型所描述的需求为“领域需求”。在这个阶段中首 先要进行一些准备性的行为。这包括定义领域的边界,从而明确分析的对象;识 别信息源,即领域分析和整个领域工程过程中信息的来源。可能的信息源包括现 存系统、技术文献、问题域和系统开发的专家、用户调查和市场分析、领域演化 历史记录等1 1 9 j 。在此基础上,就可以分析领域中系统需求的共性和变化性,确定 哪些需求是被领域中的系统广泛共享的从而建立领域模型。 ( 2 ) 领域设计:这个阶段的目标是获得d s s a 【删。d s s a 描述在领域模型中表 示的需求的解决方案。它不是单个系统的表示,而是能够适应领域中多个系统的 需求的一个高层次的设计【2 1 1 。建立了领域模型之后就可以派生出满足这些被建 模的领域需求的d s s a 。由于领域模型中的领域需求具有一定的变化性,d s s a 也 要相应地具有变化性。它可以通过表示多选一的( a l t e r n a t i v e ) 、可选的( o p t i o n a l ) 解 决方案等来做到这一点。 第2 章理论基础及相关概念 ( 3 ) 领域实现:这个阶段的主要目标是依据领域模型和d s s a 开发和组织可复 用信息【2 1 1 ( 在基于构件的系统中主要指领域构件) 。这些可复用信息可能是从现有 系统中提取得到,也可能需要通过新的开发得到。依据领域模型和d s s a 进行组 织。也就是领域模型和d s s a 定义了这些可复用信息的复用时机,从而支持了系 统化的软件复用。 领域工程是一个反复的、逐渐精化的过程 2 2 1 。在实施领域工程的每个阶段中, 都可能返回到以前的步骤,对以前的步骤得到的结果进行修改和完善,再回到当 前步骤,在新的基础上进行本阶段的行为。 2 1 4 领域工程与应用工程 与领域工程相对,把开发单个应用系统的过程称为“应用工程”。应用工程与 领域工程是既有区别又相互联系的田j 。 它们之间的区别表现在:在应用工程中,软件开发人员的任务是在特定条件 下,针对一组特定的需求产生一组特定的设计和实现。开发过程中的行为和结果 基本上是针对当前开发的特定系统。在领域工程中,领域工程人员的基本任务是 针对一个领域中所有系统进行抽象,而不再局限于个别系统。因此,与应用工程 相比,领域工程处于一个较高的抽象级别上阱】,对领域中相似系统的共同特征进 行抽象,并通过领域模型和d s s a 表示了这些共同特征之间的关系。 它们之间的关联表现在:一方面,通过应用工程得到的现有系统( 包括需求 规约、设计、实现等) 是领域工程的主要的信息来源,领域工程的各个阶段主要 是对应用工程中相应阶段的产品进行抽象。领域工程的产品( 领域模型、d s s a 、 可复用构件等) 又对本领域中新系统的应用工程提供了支持。另一方面,领域工 程和应用工程需要解决一些相似的问题。如何从多种信息源中获取用户的需求; 如何表示需求规约,如何进行设计;如何表示设计模型,如何进行构件开发;如 何在需求规约、设计和实现间保持逻辑联系;如何对需求规约、设计和实现进行 演化等。因此,领域工程的步骤、行为、产品等很多方面都可以和应用工程进行 类比。图2 2 展示了领域工程与应用工程之间的关系。 领域工程方法在港航信息系统中的运用研究 雾薷h 嚣分析i7 l 模型 领域 设计鬈禁篓籍h - 1 翁体系结构l实现 可复用 构件 装一瓣h 骠h 荐震磬h 骠h 浆萋霸h 囊鬈 图2 2 领域工程与应用工程问的关系 f i g 2 2r e l a t i o n s h i pb e t w e e nd o m a i ne n g i n e e r i n ga n da p p l i c a t i o ne n g i n e e r i n g 2 1 5 领域工程对软件复用的支持 从软件开发过程的角度看,有关复用的问题可以分为两类,一类是关于面向 复用的开发,另一类是关于基于复用的开发。第一类问题主要是关于如何产生具 有较高可复用性的构件或生成过程,第二类问题包含三个方面,即:如何找到可 复用构件,如何判断可复用构件是否符合当前需要,以及如何对可复用构件进行 适应性修改。领域工程有助于这些问题的解决,从而对软件复用提供了有力的支 持幽。 、 领域工程有助于产生具有较高可复用性的构件。领域工程将关于领域的知识 转化为领域中系统共同的规约、设计和体系结构,使得可以被复用的信息的范围, 扩大到了抽象级别较高的分析和设计阶段。由于通过领域工程产生的可复用构件 来源于领域中现有的系统,体现了领域中系统的本质需求,因此这些构件具有较 高的可复用性。 同时,领域工程产生了领域模型和特定领域的软件体系结构或应用系统的生 成过程,这对于基于复用的开发很有帮助。可复用构件是根据领域模型和d s s a 组织的,方便了构件的检索。开发以领域模型和d s s a 为线索进行,它们为构件 组装提供了上下文,可以帮助开发者识别复用机会,判断可复用构件是否符合当 第2 章理论基础及相关概念 前需要,使得利用可复用构件组装或生成新的系统较为容易。 2 1 6 领域工程方法 领域工程方法定义了领域工程的过程,每个过程的具体行为和产品、所使用 的工具、产品的定义和表示方法,对产品的验证和度量方法等。目前国内外已出 现了很多领域工程方法,其中一些已成功地应用于实际的领域软件开发中。以下 介绍几种有代表性的领域工程方法。 ( 1 ) c m u s e i 的f o d a f o r m ( f e a t u r e o r i e n t e dd o m a i nm e t h o d ) f o d a f o r m 是卡耐基梅隆大学软件工程研究所提出来的领域工程方法。 f o d a ( 面向特征的领域分析) 的主要内容是以特征模型为核心的领域分析过程, 而f o d a 的基础上,将领域工程方法扩展到了领域软件体系结构的建立、可复用 的构件的开发以及应用工程,从而形成了一个完整的领域工程方法 2 0 q 。f o d a 的 过程分为以下三个阶段。 上下文分析:在该过程中要分析领域与外部元素之间的关系,确定领域的 范围,从而建立领域的上下文模型。 领域建模:领域的范围确定后,领域建模阶段提供了一些步骤来分析领域 中的应用表现出的共同性和差异,并产生一些领域模型。本阶段主要包含三种行 为:特征分析,目的是要获得客户或最终用户对一类系统的一般能力的理解,即 特征。特征描述了领域应用的上下文,需要的操作和属性,以及表示法的变化; 信息分析,目的是要定义和分析为实现领域中应用所需要的领域知识和数据需求, 目标是用领域实体及其相互之间的关系表示领域知识,并使他们的操作分析和体 系结构建模中可以用来派生对象和数据定义;操作分析,目的是要识别领域中应 用的行为特性,例如数据流和控制流的共同性和差异性、有限状态自动机模型。 构架建模:这个阶段为领域中的应用提供软件解决方案。在这个阶段中开 发出体系结构模型,即领域中应用的高层设计。这个阶段的焦点为识别并发进程 和面向领域的共同模型。这个阶段中定义进程,并将定义在领域模型中的特征, 功能和数据对象分配到进程和模块。 f o d a 方法定义明确,己被应用到商业和军事应用中。但f o d a 也具有一些 领域工程方法在港航信息系统中的运用研究 缺点。f o d a 更侧重的是一种面向复用用户的领域需求分析方法,它的重点在于 分析特定领域软件系统的共同点和不同点,为领域工程和获取复用机会服务,而 它对问题域复杂多变的联系和区别没有定义直观和统一的表达规范。在从领域模 型到体系结构建模的过程中没有定义详细的过程,不便于f o d a 的分析结果被广 大系统分析员的复用和支持。 ( 2 ) w i l l t r a c z 的d s s a 方法 根据w i l l t r a c z 提出的进行领域工程的d s s a 方法2 7 1 。在最高的级别上,将领 域工程的主要过程分为五个阶段。每个阶段可以进一步划分为一些步骤或子阶段。 每个阶段包括一组需要回答的问题,一组需要的输入,一组将产生的输出和验证 标准。本过程是并发的( c o n c u r r e n t ) 、递归的( r e c u r s i v e ) 和反复的( i t e r a t i v e ) 。或者可 以说,它是螺旋型的( s p i r a l ) 。完成本过程可能需要对每个阶段经历几遍,每次增 加更多的细节。本领域工程过程的五个阶段是: 定义领域范围:本阶段的重点是确定什么在感兴趣的领域中以及本过程到 何时结束。这个阶段的一个主要输出是领域中的应用需要满足的一系列用户的需 求; 定义领域特定的元素:本阶段的目标是编译领域字典和领域术语的同义词 词典。在领域工程过程的前一个阶段产生的高层块图将被增加更多的细节,特别 是识别领域中应用间的共同性和差异性; 定义领域特定的设计和实现需求约束:本阶段的目标是描述解空间中有差 别的特性。不仅要识别出约束,并且要记录约束对设计和实现决定造成的后果, 还要记录对处理这些问题时产生的所有问题的讨论; 定义领域模型和构架:本阶段的目标是产生一般的构架,并说明构成它们 的模块或构件的语法和语义; 产生、搜集可复用产品:本阶段的目标是为d s s a 增加构件使得它可以被 用来产生问题域中的新应用。 ( 3 ) 青鸟领域工程方法 当前的领域工程方法主要都属于结构化范型的。而近十几年来兴起的面向对 第2 章理论基础及相关概念 象方法的主要概念与原则与软件复用的要求比较吻合,从而给软件复用提供了比 较好的支持,使得对于复用技术的研究也逐步转向以面向对象方法为基础,并产 生了一些新的复用技术。而北大软件工程研究所的青鸟领域正是一种面向对象的 领域工程方法。其领域方法如下【厕: 领域分析阶段主要有三项活动:建立领域需求定义,建立领域面向对象分 析模型和建立领域数语字典。其中,前两项活动构成领域分析的主线,建立领域 ,术语字典是在这两项活动中穿插进行的。 领域设计主要有三项活动:进行初步的领域设计,结合设计模式实现变化 性以及建立与领域分析模型的可追踪性。一般情况下,这3 项活动是顺序进行的。 领域实现阶段主要活动有d s s a 和构件的详细设计,d s s a 和构件的实现。 2 2 多层框架及相关概念 下面对本文所要用到的各种框架和设计模式进行简单介绍,为以后的研究提 供理论依据。 2 。2 1j 2 e e 平台简介 从1 9 9 5 年出现j a v a 语言以来,就有许多宣传包围着j a v a 语言和平台。随着 电子商务网站和其他“企业级”应用的增长,s u n 公司联合多家业界巨头,把所有 与企业开发相关的标准、a p i 整合起来,构成了j 2 e e ( j a v a2e n t e r p r i s ee d i t i o n ) - - _ j a v e 2 企业版平台勰1 。它为分布式的、针对服务器的应用系统提供了统一的技术 平台。 j 2 e e 平台使用了一个多层的分布式应用程序模型。应用程序的逻辑依据其实 现的不同功能被划分成组件,并且可以在同一个服务器或不同的服务器上安装这 些组成j 2 e e 应用的不同组件。一个应用组件应被安装在什么地方,取决于该应用 属于多层的j 2 e e 环境中的哪一层。一个多层化应用能够为不同的服务提供一个独 立的层,j 2 e e 典型的四层结构【3 伽如图2 3 所示。 领域工程方法在港航信息系统中的运用研究 客户层 业务逻辑层 图2 3j 2 e e 的层次结构 f i g2 3h i e r a r c h i c a ls t r u c t u r eo fj 2 e e ( 1 ) 客户层 客户层是用来实现企业级应用系统的操作界面和显示层,并且某些客户端程 序也可通过它实现业务逻辑。可分为基于w e b 和非基于w e b 的客户端两种情况。 基于w e b 的情况下主要作为企业w e b 服务器的浏览器,非基于w e b 的客户层则是 独立的应用程序,可以完成瘦客户机无法完成的任务。 ( 2 ) w e b 层 j 2 e e 的w e b 层组件可以是j s p 页面或s e r v l e t s 。按照j 2 e e 规范静态的h t m l 页面和a p p l e t s 不算是w e b 层组件。w e b 层可能包含某些j a v a b e a n s 对象来处理用 户输入,并把输入发送给运行在业务层上的e n t e r p r i s eb e a n 来进行处理。 ( 3 ) 业务层逻辑层 业务逻辑层也叫e j b 层,它由e j b 服务器和e j b 组件组成。一般情况下许多 开发商把w e b 服务器和e j b 服务器结合在一起发布称为应用服务器。e j b 层用来 实现企业级信息系统的业务逻辑,是企业级应用的核心,由运行在业务层中的e j b 来处理,业务层中的e j b 要运行在容器中。一个b e a n 从客户端接收数据,处理后 把数据送到企业信息系统层存储起来。同样,一个b e a n 也可以从企业信息系统取 出数据,发送到客户端程序。容器解决了底层的问题如事务处理、生命周期、状 1 , 第2 章理论基础及相关概念 态管理、多线程安全管理和资源池等。 有三种企业级的b e a n :会话b e a n 、实体b e a n 和消息驱动b e a n 。会话b e a n 表 示与客户端程序的临时交互,当客户端程序执行完后会话b e a n 和相关数据就会消 失。实体b e a n 表示数据库表中一行永久的记录,当客户端程序中止或服务器关闭 时就会有潜在的服务保证实体b e a n 的数据得以保存。消息驱动b e a n 结合了会话 b e a n 和j m s 的消息监听器的特性,允许一个业务层组件异步接收j m s 消息。 ( 4 ) e i s ( e n t e r p r i s ei n f o r m a t i o ns y s t e m 企业信息系统) 层 企业信息系统层处理企业信息系统软件,包括企业基础建设系统,企业资源 计划( e r p ) 、大型机事务处理、数据库系统和其它的遗留信息系统。例如j 2 e e 应 用组件可能为了数据库连接需要访问企业信息系统。 2 2 2w e b w o r k 框架 w e b w o r k 是由o p e n s y m p h o n y 组织开发的,致力于组件化和代码重用的j 2 e e w e b 框架3 1 1 。w 曲w b r k 是由o p e n s y m p h o n y 组织开发的,致力于组件化和代码重 用的j 2 e ew e b 框架。w e b w o r k 目前最新版本是2 2 6 ,现在的w e b w o r k 2 x 前身是 r i c k a r do b e r g 开发的w 曲w f o r k ,但现在w e b w o r k 已经被拆分成了x w o r k l 和 w e b w o r k 2 两个项目。 x w o r k 简洁、灵活功能强大,它是一个标准的c o m m a n d 模式实现,并且完 全从w e b 层脱离出来。x w o r k 提供了很多核心功能:前端拦截器( i n t e r c e p t o r ) ,运 行时表单属性验证,类型转换,强大的表达式语言( o g n l - 一t h eo b j e c tg r a p hn o t a t i o n la n g u a g e ) ,i o c ( i n v e r s i o no fc o n t r o l 控制反转) 容器等。 w e b w o r k 2 建立在x w o r k 之上,处理h 1 m 的响应和请求。w e b w o r k 2 使用 s e r v l e t d i s p a t c h e r 将h 1 t r p 请求的变成a c t i o n ( 业务层a c t i o n 类) ,s e s s i o n ( 会 话) ,a p p l i c a t i o n ( 应用程序) 范围的映射,r e q u e s t 请求参数映射。w e b w o r k 2 支持多 视图表示,视图部分可以使用j s p ,v e l o c i t y ,f r e e m a r k e r ,x m l 等。这里用的 w e b w o r k 都是w e b w o r k 2 版本,以下统一称为w e b w o r k 。 w e b w o r k 主要包含了下面几个部分 3 1 - 3 3 】: ( 1 ) m o d e l d r i v e na c t i o n 1 4

温馨提示

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

评论

0/150

提交评论