[硕士论文精品]基于soa的系统自动生成研究_第1页
[硕士论文精品]基于soa的系统自动生成研究_第2页
[硕士论文精品]基于soa的系统自动生成研究_第3页
[硕士论文精品]基于soa的系统自动生成研究_第4页
[硕士论文精品]基于soa的系统自动生成研究_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

华中科技大学硕士学位论文I摘要自动程序设计是使用自动化手段进行程序设计的技术和过程,后发展成为使用自动化手段进行软件系统生成的方法,被称为软件自动化。其目的在于提高软件生产率和软件产品质量。软件自动化过程通常包括从问题的非形式化描述到形式化的软件需求规格说明、功能规格说明、设计规格说明,再到可执行代码生成、调试以及确认交付的全过程。传统的软件自动化方法通常是基于代码生成的,而这些方法难以适应大型系统构建的要求。基于软件复用的软件系统自动生成技术在此方面则很有潜力,与传统的软件自动化不同的是,这里的系统生成是基于可复用程序代码或称组件的。研究使用面向服务的架构,将可复用组件作为服务提供,根据项目的非形式化描述生成功能规格说明、设计规格说明,然后对服务库里的服务进行检索匹配,最后使用基于SOA(SERVICEORIENTEDARCHITECTURE)的服务组装技术生成系统。研究的重点在于系统的自动生成,首先讨论了系统规格说明的自动生成、需求与服务组件的形式化描述以及服务的检索、匹配和组装技术,然后将人工智能技术和遗传算法用于软件系统自动化,同时结合SOA技术进行系统生成。在上述系统自动生成理论的基础上,得到一个基于SOA的系统自动生成平台的设计方案,实现了自动生成系统框架AUTOSOM。AUTOSOM是一个基于SOA的系统生成平台,作为软件自动生成系统SOFTMAKER的重要组成部分,AUTOSOM在企业服务总线的基础上构建了一个从需求理解到服务组装的系统生成平台,使用户需求得到充分的理解,减轻软件工程沟通环节的负担,对已有可复用的软件资产以服务的方式进行充分利用,并进行智能匹配组装、生成系统。本系统功能完全符合自动化程序设计的思想,根据用户非形式化的需求描述,即只要输入对系统各个方面的要求就可以自动生成基于SOA的系统解决方案。关键词自动程序设计,面向服务体系结构,遗传算法,人工智能,软件复用华中科技大学硕士学位论文IIABSTRACTAUTOMATICPROGRAMMING,WHICHTHENEVOLVEDINTOASOFTWAREGENERATIONTECHNOLOGYCALLEDSOFTWAREAUTOMATION,ISATECHNOLOGYORPROCESSOFPROGRAMDESIGNINGBYAUTOMATICMETHODSTHEGOALOFAUTOMATICPROGRAMMINGISTOIMPROVETHEPRODUCTIVITYANDQUALITYOFSOFTWARETRADITIONALPROCESSOFSOFTWAREAUTOMATIONISUSUALLYTHEWHOLEPROCESSFROMREQUIREMENTDESCRIPTIONTOEXECUTIVEPROGRAMCONSIGNATIONTRADITIONALSOFTWAREAUTOMATIONMETHODSAREUSUALLYBASEDONCODEGENERATIONWHICHISNOTFITFORCONSTRUCTINGENTERPRISESYSTEMSTHESOFTWAREAUTOMATICGENERATIONMETHODSBASEDONREUSABLECOMPONENTAREPOTENTIALINTHISFIELDBEDIFFERENTTOTRADITIONALSOFTWAREAUTOMATION,OURSTUDYISBASEDONREUSABLEPROGRAMCOMPONENTWECHOOSESOASERVICEORIENTEDARCHITECTUREASOURSYSTEMARCHITECTURE,SOTHEREUSABLESOFTWARECOMPONENTSHEREAREOFFEREDASSERVICESTHEUNFORMULATEDREQUIREMENTDESCRIPTIONWILLBECHANGEDINTOFORMULATEDSPECIFICATION,ANDTHESERVICESINTHESERVICESTOREWILLBEQUERIEDANDMATCHEDWITHTHESPECIFICATION,THENATLASTCOMBINEDINTOASYSTEMONTHEBASISOFSOATHEKEYOFTHISSTUDYISSYSTEMAUTOMATICGENERATION,MAINLYABOUTCHANGINGTHEREQUIREMENTDESCRIPTIONINTOAFORMULATEDSPECIFICATION,FORMULATEDDESCRIPTIONSOFSERVICECOMPONENTANDITSQUERYING,MATCHINGANDCOMBININGTECHNOLOGYINTHISWORKWEUSEARTIFICIALINTELLIGENCETECHNOLOGYANDGENETICALGORITHMINSOFTWAREAUTOMATION,ANDTHENGENERATEASOFTWARESYSTEMWITHTHESOARELATEDTECHNOLOGYONTHEBASISOFTHEABOVESYSTEMGENERATIONTHEORY,WEPROPOSEDASOLUTIONFORSYSTEMAUTOMATICGENERATIONPLATFORMWITHSOA,IMPLEMENTEDANAUTOMATICGENERATIONSYSTEMARCHITECTURECALLEDAUTOSOM,WHICHISAPLATFORMTOAUTOMATICALLYGENERATESOFTWARESYSTEMASANIMPORTANTCOMPONENTOFSOFTMAKER,AUTOSOMBUILDASYSTEMGENERATIONPLATFORMONESB,ANDITCANHELPTHESOFTWAREDEVELOPERINASPECTSFROMREQUIREMENTUNDERSTANDINGTOSERVICECOMBININGTHISSYSTEMISDESIGNEDWITHTHEIDEAOFAUTOMATICPROGRAMMING,ANDITCANAUTOMATICALLYGENERATEAPROPOSITIONALSOLUTIONBASEDONSOAACCORDINGTOTHEREQUIREMENTDESCRIPTIONKEYWORDSAUTOMATICPROGRAMMING,SOA,GENETICALGORITHM,ARTIFICIALINTELLIGENCE,SOFTWAREREUSE独创性声明本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。学位论文作者签名日期年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,即学校有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。保密,在_年解密后适用本授权书。本论文属于不保密。(请在以上方框内打“V”)学位论文作者签名指导教师签名日期年月日日期年月日华中科技大学硕士学位论文11绪论11课题背景软件开发工作的繁琐与低效一直困扰着广大开发人员,这种情况在软件规模越来越大、复杂度越来越高的今天显得尤为突出。如果在条件允许的情况下将一些重复性工作交给计算机来完成,即使用自动化的手段进行软件的开发,无疑将大大提高软件生产率和软件质量。在软件开发过程中使用自动化技术生成系统的行为被称为软件自动化。对于软件自动化这个概念,学术界有两种理解方式,广义的理解包括在软件开发过程中用到的所有计算机辅助行为和手段;狭义的理解则专指根据需求描述自动生成软件系统的技术和方法1。软件自动化的思想由来已久,自从软件诞生以来,研究人员就没有停止过对软件自动化的追求。然而,由于技术方面的原因,真正意义上的软件自动化从来就没有完整地实现过,但是在广大研究人员的不断努力下,也取得了很大成就,特别是以软件组件为基础的软件复用技术的发展,给软件自动化的实现开辟了新的思路和途径。软件复用是指通过引进可用的软件资产进行系统开发的技术和行为。目前,软件自动化和软件复用技术是伴随着发展的,两者互为手段,软件复用的过程要用到自动化技术,而软件自动化又往往是基于软件复用的。软件复用可以根据操作过程分为组装方式和生成方式,组装方式靠集成已有的软件组件得到系统,而生成方式则使用规约和应用逻辑来生成所需系统。由于对复杂逻辑进行准确描述的难度很大,有关生成方式的软件复用研究至今还没取得有现实意义的成果。随着分布式组件技术的发展,研究人员逐渐发现,以组装方式进行的软件复用更适合构建企业级、分布式应用系统,而基于组件的软件开发也因此成为研究的热点。软件组件是一个自运行的、能独立发布也便于合成的功能单元2。现在组件技术已经逐渐成熟并成为软件开发过程中的重要成分,在研究领域有3C模型、刻面模型和CCM(COMMONCOMPONENTMODEL)模型这类概念模型用于形式化研究,在工业华中科技大学硕士学位论文2界有COM/DCOMCOMPONENTOBJECTMODEL,DISTRIBUTEDCOMPONENTOBJECTMODEL、EJB(ENTERPRISEJAVABEAN)等组件标准用于系统构建。这些标准化组件在软件开发中得到广泛运用,尤其是在大型信息系统的实施过程中,使用标准组件进行软件开发已经成为增强系统扩展能力和可维护性的主要手段。然而,虽然有了各类组件模型以及相应的开发环境和技术,研究人员还是没有完整实现通过组件组装进行软件开发的理想,大多数情况下,开发人员仍然使用着手工编写代码的原始开发方法。原因很多,主要有以下几个方面1使用组件组装进行系统开发通常需要用到复杂的开发方法和技术;2大量存在的组件标准和异构的应用环境使得开发人员无从选择;3为满足各种应用系统的要求,组件需要具有较高的普适性,这也增加了组件开发与系统部署的难度。因此,在组件复用的过程中,不使用自动化开发平台进行组件的动态获取和组装,就无法保证软件质量,在增大软件出错率的同时还会造成严重的性能问题。基于以上认识,研究者们要求使用能够被计算机理解的方式描述用户需求和组件结构,并创立一套基于组件技术的自动化方案和工具来进行软件自动化开发3。另一方面,为了解决分布式系统中组件构建技术和组件运行平台的异构性问题,面向服务体系结构作为分布式系统解决方案逐渐成为软件开发者的首选。面向服务体系结构是一个分布式组件模型,把软件功能单元作为服务提供,并通过标准接口和契约进行调用,以服务总线的方式进行集成,给企业级系统开发提供了更为灵活的实施方法4,也为基于组件复用的软件自动化开拓了广阔的前景。12国内外研究现状121软件自动化研究现状随着软件产业的高速发展以及软件技术的不断进步,人们在长期的软件开发工作中积累了大量经验,并以此总结出一系列编程思想,而软件自动化技术在这些思想的带动下也逐渐成熟并开始应用于实际系统。华中科技大学硕士学位论文3以往研究人员用于软件自动化实现的途径主要包括演绎综合、程序变换、归纳综合和过程实现5,并在这些方面取得了不少成就,比如JROBINSON提出的用于自动定理证明的归结原理、德国慕尼黑大学研制的用于程序变换的广谱系统等。然而由于种种原因,这些系统并没有得到实际应用6。近年来,随着软件复用和软件组件技术的发展,基于组件复用的软件生成方法为实现软件自动化开辟了新思路。软件复用和组件技术的发展也经历了一个相当漫长的过程,软件复用的概念产生于1968年的NATO软件工程会议,在论文大量生产的软件组件中MCLLROY提出了组件和软件工厂的思想,并把软件复用看作是提高软件生产效率的主要途径79。由于技术方面的原因,这种思想直到80年代才慢慢成为现实,面向对象方法和技术的发展为组件复用提供了技术支持,在此基础上,软件复用技术的研究已取得了阶段性成果。在国际上,专家学者们提出了众多的组件模型,如3C模型、刻面模型等,微软的COM组件技术在其众多的软件开发工具中得到应用,而SUN的JAVA语言本身就是基于组件的。在国内业界,青鸟、中软等公司都通过组件复用来进行系统开发,并获得了一定范围内的成功。随着组件技术的发展,软件自动化也有了新的发展动向,人们开始从组件复用的思路来进行软件系统自动生成技术的研究,STANFORD大学的KOZA教授提出的基于遗传算法的遗传编程在软件复用领域得到应用,也给软件自动化的研究指明了方向。KOZA教授于1992年在基于自然选择法则的计算机程序设计中首次提出遗传程序设计的概念10,接着他又在1994年出版的专著可重用程序的自动发现进一步加深了对这种方法和技术的研究11。另一方面,其他研究人员也不断提出与此相关的理论和方法,使软件自动化的研究进入了一个全新的阶段。目前,在国内也有很多学者开展了这个方面的研究,如国家智能计算机研究开发中心的薛锦云、冯圣中提出的形式化方法制导的软件自动化研究已被列为科技部重大研究专项,武汉大学软件工程国家重点实验室的康立山等人提出了基于程序重用的自动程序设计方法12,中南大学的王四春等人提出了基于遗传程序设计的软件组件挑选方法13。华中科技大学硕士学位论文4122面向服务的体系结构作为一种分布式系统构建模型,SOA(SERVICEORIENTEDARCHITECTURE)于1996年由GARTNERGROUP提出,其基本思想是把软件功能作为服务提供,虽然提出较早,但由于当时技术的不成熟,并没有广泛应用。随着WEB服务以及相关技术的发展,SOA开始成为研究的热点,许多研究机构参与到SOA的研究之中,并取得了巨大的成就。在基础研究方面,国际计算协会创办了服务导向计算国际会议来发布SOA相关的创新成果,信息标准化组织OASIS也专门组织委员会对SOA标准进行了研究,并发布了SOA参考模型14。如今,SOA已经开始应用于业界,IBM、BEA等软件巨头都表示自己的产品完全支持SOA。在国内,中科院计算所、软件所对SOA技术都有研究,并取得一定的成果,不过目前国内对SOA的研究还处于发展阶段。由于SOA具有的良好跨平台和协议无关性,它被广泛的应用于企业级系统集成,这也推动了基于SOA的系统集成技术和集成框架的发展,如DIETERFENSEL提出的集成服务框架WSMF(WEBSERVICEMODELINGFRAMEWORK)15;费操提出的通过元模型进行操作的服务集成框架16;黄英提出的关于业务集成的服务合成框架17;IBM公司的WEBSPHERE平台技术文档中也介绍了相应的企业应用集成方案;IONA公司研制出服务集成平台ORBIXE2A系统。在本研究室,葛新宇对基于设计模式的服务集成框架进行了研究,杨文军提出了基于规则的服务动态组合框架,陈飞提出了基于工作流的服务动态组合模型。但是这些框架或原型系统都存在两个问题,第一,它们都是根据特定领域提出的具体方案,不具有普遍意义;第二,仍然需要手工的查找、匹配和集成系统,无法实现自动化生成。13研究内容和意义软件自动化要求在没有程序员参与的情况下将形式化规格说明转换成可执行程序,也就是说不需要进行编程就可以获得解决现实问题的计算机程序。在软件工程领域,由于大型软件系统的复杂性,纯粹通过程序生成来获得满足用户需求的应用系统非常困难,于是研究人员逐渐将研究重点从程序生成转向以组件技术为基础的华中科技大学硕士学位论文5系统自动组装方法。根据当前的技术条件,完全自动地进行大型系统生成还是难以实现,但是在系统规模不断增大、开发过程更加复杂的情况下,自动的系统生成方法和系统自动生成平台的研究很有必要,特别是在组件的发现、匹配和组装等过程中,没有自动化工具的帮助,系统质量难以保证。本课题对用户需求、软件功能以及组件模型的形式化描述进行研究,给出一个服务组件模型,并在此服务组件模型和SOA的基础上使用相关算法进行语义相关的检索、匹配和组装。最后设计出一个系统自动化生成的解决方案,并实现了原型系统AUTOSOM。该系统支持非形式化需求到形式化规格说明的转换,能够使用自动化的方法对服务组件进行获取和组装,实现自动化的软件复用和系统生成。为了构建系统自动生成平台AUTOSOM,论文围绕下面四个主要方面进行研究1需求的形式化描述自然语言通常用于编写干系人之间的约定和系统开发文档,由于自然语言容易产生歧义且无法对系统进行精确描述,需要使用形式化的表述方式来保证软件产品的可靠性。从软件自动化的角度出发,为了自动或半自动地生成软件系统,这对形式化方法提出了更高的要求,这里比较了各种形式化方法的适用性并结合匹配算法的特点,使用断句分析提取系统需求并使用XML对需求进行形式化描述。2用于组件获取的遗传算法研究研究致力于定义可复用组件的语义模型,设计并使用基于遗传算法的组件获取方案实现分布式系统中的服务发现、匹配和合成。遗传程序应用于自动程序设计领域已经取得成功,但只能获得程序而不是系统,如果把组件作为遗传程序的遗传个体,则可成为系统自动生成的重要途径。该研究设计了一种以语义WEB服务为原型的服务组件模型,并提出了一套以遗传程序为中心的SOA系统自动生成方案,把服务组件当成遗传个体,以组件语义为遗传编码,用户需求作为自然选择条件,使用各种遗传算子改变基因并淘汰适应度低的基因型,最终获得满足需求的服务。3基于SOA的系统集成研究组件组装是基于组件的软件开发的关键,而传统的组件技术由于结构复杂、协华中科技大学硕士学位论文6议私有等方面的因素不能很好的满足企业级集成的需求,SOA由于其协议的通用性和平台、语言无关性成为组装系统的首选。对现有的SOA相关技术进行研究,并以服务总线的方式进行系统集成。4系统生成的自动化工具系统的自动生成是软件自动化研究的目标,也是软件组件复用的最高境界。软件自动化需要有相关自动化工具的辅助,结合前面的检索、匹配算法和服务组装方案,给出面向用户需求的系统生成自动化设计方案,并实现了AUTOSOM原型系统。软件自动化的根本目标是提高软件生产率和软件质量。研究系统生成自动化平台AUTOSOM的目的就是辅助软件系统生成的自动化,为用户提供自动化智能化的服务检索、匹配和组装方式,减少软件开发人员的工作量和参与程度,提高软件产品的质量,根据用户需求生成软件系统。14论文的组织结构本论文系统地介绍了基于SOA的服务组件自动获取和集成的相关理论和技术,提出了一种使用遗传程序设计自适应匹配服务并构造系统的方案,并给出了一个原型系统AUTOSOM的实现。各章内容安排如下第一章是绪论,介绍了课题研究的背景和意义、国内外研究现状,以及论文的主要工作和组织结构。第二章对软件开发过程中的自动化和形式化相关技术进行讨论,并对软件需求、服务组件的形式化与建模进行了研究。第三章介绍了服务组件获取的全过程,对服务发现、匹配与合成算法分别进行了研究,并给出了使用本方案进行SOA系统生成的一般过程。第四章介绍了SOA相关技术,对服务封装技术和系统集成技术进行了研究,并给出了使用总线进行服务集成的方案。第五章详细介绍了系统自动生成平台AUTOSOM的设计和实现,并与当前流行的WEBSPHERE系统进行了比较。第六章对全文的主要工作进行总结,并提出了下一阶段工作的展望。华中科技大学硕士学位论文72形式化与建模软件是计算机的灵魂,自从计算机产生以来,硬件技术根据摩尔定律逐年翻番,而软件虽然也发展迅速,但始终跟不上硬件技术的发展速度,这和软件与日俱增的重要性成为矛盾。软件行业的现状不令人满意,其主要问题在于第一,质量问题,在软件工程领域开发人员通常使用诸如可靠性、健壮性、易维护性、安全性等词汇来描述软件质量属性。而这些属性中的每一项都可能是造成软件无法满足要求的因素,而目前也没有一种银弹技术来满足所有的质量要求;第二,生产率问题,随着软件规模的增大和复杂性的提高,软件编制的工作变得日益繁琐,完全依赖手工开发的现状是每个软件工作人员的梦魇18。软件人员一直努力需求一种提高软件质量和生产率的有效途径,使程序员从繁琐的机械性编码中解脱出来。软件自动化就是为此而生的一种技术,在软件开发过程中使用自动化技术,被认为是提高软件生产率和改善软件质量的根本途径。由于自然语言常有歧义且不够精确,使得用自然语言进行机器处理十分困难,因此这里必须采用形式化语言。在研制的系统中,非形式化的需求表述将被引导形式化,为了便于算法处理,这里使用自定的需求形式化结构,并以WEB服务为基础提出一个服务组件模型GS(GENETICSERVICE)模型。21软件自动化概述软件自动化是使用机器自动生成软件系统的手段和方法,狭义的理解主要指从规范化的功能规格说明自动生成计算机软件的过程19,广义的来看只要是通过计算机帮助进行软件生产活动都是某种程度的自动化。软件自动化的程度是相对的,比如编译系统就是一种低层的自动化。211研究范围研究人员尝试着以多角度进行软件自动化的研究,这些研究主要包括软件开发过程、规格说明、自动生成和自动验证四个方面的内容。华中科技大学硕士学位论文8软件开发过程的研究涉及面较广,包括开发风格、开发模型、开发方法和工具等方面。开发风格指开发的外在表现,如自顶向下的分解与细化风格、自底向上的组合与集成风格等。开发模型是指开发的内部结构,如瀑布开发模型、螺旋开发模型等。开发方法和工具是实现开发模型的手段,开发方法如结构化程序设计方法、JACKSON方法以及基于组件的开发等。工具则有支持需求分析的分析工具、辅助设计的设计工具以及测试工具等。规格说明是对软件各种属性的描述。软件实施按规格说明的要求进行,因此机器可理解的规格说明是软件自动化的基础。对规格说明的研究实质上就是形式化的研究,形式化是自动化的必要条件,使用什么样的形式化方法,使用什么样的形式语言,根据问题领域的不同而不同。自动生成是得到可执行程序的过程,这是软件自动化的关键,也是技术难点,并且随自动化层次越高,实施的难度越大。自动验证则是指软件系统正确性的自动验证,包括功能规格说明正确性、可执行程序正确性和转换过程正确性三个方面的工作。212理论基础为了解决软件自动化的相关问题,基础理论研究是不可缺少的,这些研究包括语言处理、人工智能和数理逻辑等方面。语言处理是不可缺少的,由于人特别是普通用户通常使用的是自然语言,而机器却很难理解各种不精确有歧义的自然语言,这样人与机器的沟通就成为一个待解决的问题,因此有必要给人机的自然交互搭成一座桥梁,这座桥梁是双道的,包括自然语言的形式化和机器语言的自然化。人工智能的研究必不可少,比如原型系统使用遗传程序对GS服务组件进行自动匹配就需要进化计算方面的知识,再比如机器学习应用于软件系统就可以使系统获得通过自我调节来适应环境的功能。数理逻辑不可或缺,动态的系统生成过程的描述需要对动态逻辑进行研究,这也是本课题研究的理论基础。华中科技大学硕士学位论文9213实现途径一般来说,软件自动化的基本实现途径包括演绎综合、程序转换、归纳综合与过程实现。所谓演绎综合就是将数学定理证明中的演绎综合方法应用于程序生成,将证明过程中的步骤与计算步骤相对应。这种方法要求使用形式逻辑对规格说明进行描述,通常用于小程序的推导。相对而言,程序转换途径的适用范围更广。顾名思义,程序转换就是将初始程序逐步转换使其合乎需求的过程,其整个开发流程可由一系列程序转换来完成。每次转换由开发人员选定的规则来实现,而系统的正确性则由清晰的过程结构以及完备的开发文档来保证。与演绎综合相反,归纳综合是通过反映系统属性的用例归纳出程序。其实现方法大体上说有输入输出法和轨迹法两种,前者通过给定的一组输入输出二元组,逐步归纳演化导出合适的程序,后者通过所给实例的运行轨迹逐步导出程序。过程实现是对规格说明各种元素进行映射而获得程序的方法。如果规则说明中的各种元素转换目标和映射结果明确,就能使用过程实现。其实现方法和程序编译原理基本相同,即使用某种语言来描述软件属性,然后使用该语言的编译程序自动生成目标程序。这种途径实现效率较高,但是从非算法性成分映射到算法性成分困难较大,因此通常只用于自动化层次较低的系统20。当然,除了以上基本途径外,还包括基于知识的程序综合途径和这里所研究的基于可复用组件的系统构造方法。基于可复用组件的软件自动化与传统的软件自动化的区别在于操作粒度的大小,前者以集成标准组件的方式生成系统,类似于工业生产中的零件装配生产线,而后者仅限于程序语句和表达式的操作。由于软件工业的发展,软件系统规模越来越大,操作粒度更大的标准化组件进行系统生成的方式显然更适于满足软件自动化的要求。22需求模型与形式化通常来说,软件需求是指软件系统必须满足的所有功能、限制和质量属性的描述。系统是否满足需求是衡量一个软件系统质量的主要标准,也是软件开发终极目华中科技大学硕士学位论文10标,而高效地获取软件需求和准确地描述软件需求也就成了软件工程研究的重点。这里的研究关注点是自动化生成系统,显然以自然语言的需求描述方式不符合机器处理的要求,因此需求的形式化也是必然选择。221面向问题领域的需求建模面向问题领域的需求分析是采用问题领域划分的方式进行需求分析的一种分析方法,也是一种需求建模方法。面向问题领域的需求分析将问题领域进行逐层划分,最后生成层次树型结构,而层次树型结构正是下一章算法操作的数据结构,这里借鉴这种需求分析方法进行需求建模。这里所说的问题领域指的是问题所处的客观世界21,问题领域是问题存在的基础和外部环境,问题不能离开问题领域而存在。为了满足用户的要求,计算机程序需要和问题所处的客观世界发生相互操作,这就表示一些操作将在问题域与机器域的重叠处进行。JACKSON认为,良好的软件设计以充分的需求描述为前提,而充分的需求描述包括三个方面的内容,这三个方面指的是问题域、机器域和公共域22。问题域代表用户需求与现实环境,用需求分析文档来描述。机器域代表计算机程序代码。而公共域代表前两者的接口,描述的是计算机程序在系统环境中运行的效果,由需求规格说明文档来表示,如图21所示。图21需求分析文档、规格说明和程序之间的关系需求分析文档可分为问题领域的相关知识表达(用K表示)和用户需求(用R表示)两方面。如果用S表示需求规格说明,则有如下关系RSK,21华中科技大学硕士学位论文11由上述式子可以看出,由于问题知识通常在一定范围内是不变的,因此表述清晰的需求规格说明可以充分表达用户需求。面向问题领域的分析方法以边界清晰的问题领域划分为基础。研究人员在分析复杂问题的时候通常采用困难分解的方法,在软件设计领域也是如此。结构化程序设计就是问题分解方法的典型应用,它采用自顶向下逐层分解的方法进行程序设计,这也是面向问题领域分析的基本方法23。由于每个功能层次都可能有多种划分方式,而在分解过程结束之前却无法评判划分方式的优劣,这里使用并行处理的方式对问题领域进行划分24。由于功能划分按照自顶向下逐步求精的方式进行,最终的需求模型必定是一个层次结构,比如一个校园信息化系统可分解为学籍管理、成绩管理、奖学金管理、课程管理等部分。而每个部分又可继续分解,如学籍管理可分为休学、毕业、退学和降级等部分,如图22所示。图22校园信息化领域划分当然,实际的应用系统远比此图复杂,但从整体上说通过问题领域划分建立的需求模型是层次结构的模型。222需求的形式化描述为了使需求模型更加规范、无歧义且便于机器处理,必须使用形式化的方法描述需求。应该说规格说明的形式化不只是一种技术,而是多种技术的综合运用,它华中科技大学硕士学位论文12需要将这些技术统一起来对系统的各个方面进行描述。通常使用的形式化方法需要用到集合论和形式逻辑基本理论,比如Z、VDM和B方法25。第五章所设计的应用系统提供将非形式化的需求引导转化为这些方法描述的功能,但由于第三章的服务匹配算法是基于树型结构的,故这里不对这些方法做进一步描述,有兴趣的可以参考相关文献。在这里的研究中将问题领域和需求模型看作是层次结构,可以用树结构来表达。而XML语言可以很好的描述树型结构并且和WEB服务相关技术有共同的理论技术,在实现上有大量相关技术可以运用,因此,可以认为XML是描述层次化需求模型的最好选择。上一节的问题划分用XML的形式化描述如下。学生基本信息申请理由审批结果复学时间全部学生信息符合毕业条件的学生信息课程名称课程编号开课老师课程相关信息学生信息课程信息选课结果华中科技大学硕士学位论文1323服务组件模型在SOA方法学中,服务组件无疑是其中的核心概念,在工业上用于SOA的组件标准也有不少,如SUN的JBI(JAVABUSINESSINTEGRATION)组件和IBM的SCA(SERVICECOMPONENTARCHITECTURE)组件就是其中较为出色的两个组件标准,但无论是这些SOA专用组件也好还是曾经的WEB服务、EJB也好,都没有一个统一的包含清晰语义描述的模型。这里根据组件模型的一般性原理,在考虑添加语义行为描述的同时参考当前流行的一些组件模型设计方案,给出了一种富语义的服务组件模型,并以此作为服务检索匹配算法的操作对象和服务组件复用的理论基础。231服务组件模型的一般原理通常来说,一个好的服务模型必须准确充分地描述服务在构建和运行过程中的特征属性和核心元素,它将是所有工业标准的抽象和依据,也是服务组件开发和服务组合的理论基础。服务组件作为一种可复用资产,其形式化表述即要遵循可复用资产表述的一般要求又要符合服务组件的自身特点。在可复用资产的形式化表述问题上,美国国防部软件复用促进文献给出这样七条要求以供参考261资产描述的形式化;2规模的可变性;3演变过程的记录;4面向对象方案的实施;5不带内部实现描述的规格说明;6多重保障的安全性;7人的因素。另一方面,作为服务组件,又必须满足跨平台、协议和语言无关的分布式系统构建需求。因此,综合可复用资产的上述要求以及服务组件自身的特点,可以得到好的服务模型应该遵循的一般原理1规范化,应该使用标准的机器可理解的方式表述服务,以免造成定义不清和语义表述的模糊性;2可变性,服务组件模型是各种服务实现方法的抽象,要在必要时能够进行扩展和变换,满足不同实现技术的要求,也要为新技术的出现留下余地;3全面性,服务组件模型要综合考虑各方项目干系人的需求,尽可能全面的反应服务在各种语境中的不同应用;华中科技大学硕士学位论文144充分性,应该具有充分描述各种组合关系的能力,能够描述通过继承、聚合等各种形式生成的系统;5通用接口和标准协议,在分布式系统中的跨平台调用要求服务组件模型使用通用接口和标准协议进行交互;6企业级,服务组件模型基于分布式企业应用背景,服务模型要能够支持企业级服务组件的描述。这里的服务组件模型将基于以上原则并结合SOA系统的特点来构建,并使之适用于下一章的遗传程序设计。232服务组件的概念模型这里研究定义一个服务组件概念模型GS模型,该模型不包含任何具体开发技术和实现方法,且富于语义描述,为下一章的服务自动发现、匹配和组合奠定基础。本模型的建立是依据上一节的一般原理和SOA体系结构的特点,并参照了GPCBD模型、SCA组件模型以及一些传统组件模型如3C模型、刻面模型等。定义21服务组件由组件接口、组件契约和组件实现三部分组成,即CISC222这里SC(SERVICECOMPONENT)表示服务组件,第一个I表示接口(INTERFACE),接口在不同的工业模型里表现不同,对于EJB是INTERFACE,COM的接口是IDL,而在WEB服务里接口是WSDL,第二个I表示实现(IMPLEMENTATION),而C则表示契约(CONTRACT)。接口、契约和实现都可以有多个,这三个符号代表的都是集合,而服务组件则是这三个集合的笛卡尔积。接口与实现分离是进行组件复用的技术基础,而将语义与接口、实现分离实现富语义组件则是为了实现组件优化检索、匹配和组合的基本要求,也是缩小组件创建者和组件使用者认识差别的需要。以往的组件通常将语义隐含在接口里,接口由于其使用技术不同导致的异构性使得其中的语义很难被充分运用,而且由于缺乏专用的语义表达使组件的自动发现、匹配和组合面临很大困难。因此,将语义独立出来是必要的,语义在这里的概念模型里表达为契约。华中科技大学硕士学位论文15契约是指在运行过程中,组件之间相互合作的动态结构以及组件服务之间相互依赖的静态关系,用来表示组件的上下文语义环境27。定义22契约由静态的服务内容和动态的服务行为组成,并基于一定的应用环境表达。可以由如下公式表达CONTEXTBEHAVIORCONTENTCONTRACT23对于服务组件来说,服务内容可有多个,服务行为和上下文环境也可有多个,契约依然表述为它们的笛卡尔积。用形式化的语言描述契约是发展趋势,下一节将讨论使用OWLS(ONTOLOGYWEBLANGUAGEFORSERVICE)语言描述服务组件契约。图23给出了前文定义的GS模型体系结构。图23GS组件模型的体系结构从图中可以看出,接口、契约和实现是GS模型的三个组要部分,而契约又可以由内容、行为和语境三部分来表达。下面将GS模型与其他组件模型进行比较,比较对象为主要参考模型GPCBD模型、3C模型、刻面模型。华中科技大学硕士学位论文161与GPCBD模型比较,GS模型和GPCBD模型在本质上是一致的,只是根据基于SOA的框架特色进行了适当改装,比如将契约用服务内容和服务行为来描述,以便于服务组件的发现与匹配。另外,GS模型在GPCBD模型的基础上进行了适当的简化,比如GPCBD模型的7个方面的描述改为3大组成部分。契约的名称和发布也被视做唯一而不在模型中标识出来。可以认为,GS模型更适合服务组件的自动发现、匹配和合成等过程。2与3C模型比较,3C模型从概念(CONCEPT)、内容(CONTENT)和语境(CONTEXT)三个方面对组件进行描述28。可以看出,3C模型没有对语法和语义进行明显区分,其接口和语境中均包含语法和语义的成分,因此可以认为它和GS模型是正交的。3与刻面模型比较,刻面模型通常用于组件的分类与查找,很多流行的组件模型实际上都是使用的刻面描述。该方法用一个词组或短语表示组件的一个方面,并根据关键词在语境中表现出的含义进行分类。刻面模型只包含语义元素且格式规范,便于形式化和计算机处理,应用非常广泛。事实上,GS模型的语义部分同样可以使用刻面模型,只是当前已经进入实践领域的刻面模型如REBOOT库还存在标准化程度不高,表达能力不强等缺点。表21是对四种模型的六个主要方面进行的对比分析抽象性形式化应用性复杂度描述能力关注点分离GS高强是低强是GPBCD低强是高强是3C高强否中不详不详刻面高强是低弱不详表21GS模型和现有组件模型对比233服务组件的语义描述GS模型的主要特点在于语法和语义分离的结构,这种结构如果没有标准化的语义模型支持也无法成为富语义的服务组件。另外,由于SOA属于企业级、分布式体系结构,而基于SOA的系统集成所用到的组件服务也必定是黑盒的,这种特性在提华中科技大学硕士学位论文17高了系统的可扩展性的同时也加大了语义问题的处理难度。因此,有必要在GS模型的基础上加强语义结构的形式化和标准化。下面就给出一个简单的语义模型,并使其符合WEB服务的特点。定义23服务语义是对服务的解释,包括服务的内容、意义和用法,由服务定义、服务领域和服务环境三部分描述,即CDS224上式中S表示服务组件语义,两个D分别表示服务定义和服务领域,C表示服务环境,它与23式的契约表述兼容。契约重在描述内容,而此模型重在描述语义结构。服务定义是指对服务个体语义的描述,它直接决定服务组件的语义,语义定义可以表示为树结构。服务语境是指组件服务匹配、组装的上下文环境,它可以影响服务组件语义,定义元素只有融合了语境元素,才能充分表达服务语义。领域模型是对服务领域的抽象描述,它描述语义的基本概念,同样表现为层次结构,其顶层为整个现实世界。从语义的角度上看,一个服务组件对应于一个领域模型。如果一个领域模型能充分必要的描述一个服务组件,那么该领域模型的语义元就代表该组件的语义。比如软件复用领域模型可用图24来表示。图24软件复用领域模型示例上图的表述是相当简陋、不完整、不规范、非标准的。事实上,目前还没有建华中科技大学硕士学位论文18立一个国际公认的领域模型标准,OMG正试图建立一个这样的行业标准,这可能是一个长期的过程。这里必须说明的是,如果不进行标准化,再好的语义描述方法也没有任何意义。24组件模型的参考实现GS组件模型可以通过现有的工业服务组件标准如SCA、JBI等进行改装实现。这里的实现采用给WEB服务添加语义信息的方式,这种经过改装的WEB服务被称为语义WEB服务。学术界对语义WEB服务已经有了一定程度的研究,并给出了基于本体的语义WEB服务描述语言OWLS。众所周知,WEB服务描述语言WSDL(WEBSERVICEDESCRIPTIONLANGUAGE)只是描述WEB服务接口语法定义的语言,不包含语义描述,而OWLS则是专门针对服务语义提出的。OWLS拥有一个完备的本体库用来进行服务语义的描述,以服务需求和影响为依据导出结果。语义WEB服务体系结构如图25所示。图25语义WEB服务体系结构使用语义WEB服务要先通过本体知识来对服务进行规范化表达,再对添加了语义表达的WEB服务来进行自动化的服务发现、匹配和组合。语义WEB服务是语义网和WEB服务复合的产物,OWLS将本体领域知识用于WEB服务,而本体具有结构清晰和知识表述丰富等优点,使得语义WEB服务具有强大的语义描述能力29。由图25可以看出,语义WEB服务体系结构基本符合GS模型。华中科技大学硕士学位论文1925本章小结为了使用自动化方法对服务组件进行搜索、匹配和组装,要求对代表问题域的需求和代表方案域的服务组件分别建模,并使之适合于相关算法操作。本章是后续各章的基础,首先对软件自动化的现有技术方法进行了综述,然后是对需求建模使其成为树型结构并用XML语言描述,完成需求的形式化描述。接着提出了一个富语义的服务组件模型,完成对服务组件的形式化描述,形式化的需求和形式化的服务组件将成为下一章算法的操作对象。最后使用OWLS语言描述的语义WEB服务作为该模型的参考实现。华中科技大学硕士学位论文203服务组件的获取面向服务体系结构(SOA)是跨平台、协议无关的分布式体系结构,基于SOA的开发包括服务组件的检索发现、匹配和集成过程。在这种体系结构中,服务组件的发现是基于整个互联网平台的,而互联网信息是海量的,如果使用人工查找的方式进行服务的检索将是相当繁琐的工作。当然,现今的企业系统开发也并非纯手工打造,也会用到一些辅助工具,比如搜索引擎之类。这些工具对服务的发现通常是基于关键词的,存在很多问题,比如高匹配低精度问题,动则搜到相关不相关的数万个结果让人无所适从,还有对词汇敏感度过高等一系列问题。因此,研究出一种对服务组件进行自动发现和匹配的方法势在必行。另一方面,目前的SOA应用系统主要是将已有系统进行集成,而基于SOA的开发也停留在开发组件、集成组件的传统开发方式上,并没有大规模地利用互联网上的已有服务。此外,从系统开发的自动化程度来看,现有的SOA系统都是静态的,集成的服务组件都是事先给定的、功能已知的,并没有动态的对互联网进行自动检索发现并匹配组件,没有充分利用到SOA跨平台整合的优势。本章将给出标准化服务组件动态搜索、匹配与合成的方案,其中自动化服务匹配方案是基于前文定义的GS模型的一个遗传程序框架,自动化服务合成方案是基于OWLS的语义WEB合成,最后将给出一个基于GS组件的一般开发过程。31服务组件的发现服务发现是进行服务匹配和组合的基础,目前常用的服务发现方案主要是基于UDDI(UNIVERSALDESCRIPTION,DISCOVERY,ANDINTEGRATION)技术的。UDDI把服务注册信息作为关键词,并对此进行匹配来发现服务,主要是对服务的各种属性值进行匹配30。同搜索引擎技术一样,UDDI也存在着准确率不高的问题。为了准确地获取所需服务,学者们通过大量地研究发现服务语义在服务发现方面具有重要价值,通过给定语义模型和相似度计算的方法来挑选最优服务是一条可行路径。测试结果显示,对于互联网上的海量服务,如果对每个服务进行精确匹配华中科技大学硕士学位论文21必然会影响效率,对于动态组合并不断演化的服务来说这种效率的影响将不是一次性的,每次优化的过程都会进行一次全范围的精确匹配,实在没有必要。而且本研究的服务获取过程的特点是分步进行,服务发现、匹配与组合过程分别独立,那么在服务发现过程只需对服务进行初步筛选,把精确匹配并使得服务最优化的过程交给服务匹配算法来完成。这样服务的选择就分两步进行,首先是初步挑选得到候选服务,然后对候选服务进行精确匹配。由于候选服务的数量相对于初选前要少很多,这样服务匹配的效率会更高。假设初选算法对服务筛选的平均时间是1T,匹配算法对服务匹配的平均时间是2T,服务总数为N,平均筛选率为1,1PP,那么使用分步匹配方法的加速比为PTTPNTNTNT112121231如果1T远小于2T的话,那么加速比近似的等于P。这里采用基于领域分类的方法进行服务的筛选,即使用OWLS中的PROFILE规范中的SERVICECATEGORY来描述服务类型,计算服务需求和候选服务的相似度,设置一定的阈值,把相似度大于该值的服务加入候选列表31。32服务组件匹配与演化本节将使用基于遗传算法的遗传程序设计方法来进行服务组件的匹配与演化。遗传算法是模拟遗传变异和自然选择过程的仿生计算模型,是一种通过模拟生物进化过程获取最优解的方法,由美国MICHIGAN大学HOLLAND教授于1975年率先给出。遗传程序设计是采用遗传算法的思想进行自动程序设计的一种方法,由STANFORD大学的KOZA教授于1989年提出,它使用层次化的树形结构来进行演化计算,可以被看作是具有定向搜索能力的结构优化算法。遗传程序通常运用于自动程序设计领域,它使用树结构来描述问题的解32。如果把树的叶子结点看成数据对象,中间结点看作操作这些对象的方法和过程,那么每个树结构代表着解决问题的一个方案,并由此得到对应的程序结构3。遗传程序通华中科技大学硕士学位论文22过遗传变异等仿生手段对上述结构进行优化,最终获得满足要求的计算机程序。如果把语义模型和服务组件看作是一对一,那么将表示成树结构的语义模型进行动态生成、演化使其适应服务运行的上下文环境就可以得到满足要求的服务组件,本章的服务组件自动匹配算法便是基于这种思想的,它适于对服务组件的动态匹配。如果把这种服务组件实例化为语义WEB服务,则可以使用语义匹配的方式在整个互联网上进行服务匹配。321遗传程序的适用性服务的自动匹配和遗传程序在思想上是相通的,都是在解空间动态搜索、逐步演化获得最优解。技术与非技术因素决定的服务使用事实上也存在“适者生存”似的竞争,这在哲学意义上是普遍一致的。下面从几个方面说明两种思想的相通性。1动态演化,服务组件要求

温馨提示

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

评论

0/150

提交评论