没有合适的资源?快使用搜索试试~ 我知道了~
扩展统一过程:组成和体系结构驱动的OMG标准方法的全球性扩展
129理论计算机科学电子笔记65 N° 4(2002)网址:http://www.elsevier.nl/locate/entcs/volume65.html13页使用组合Valérie Monfort(*)Hubert Kadima(**)(*)Q-Labs(**)Bouygues Telecom 28,villa Baudran 52,avenue demonfort@objectif.frhkadima@bouyguestelecom.fr摘要:统一过程(UP)是一个OMG标准。这个过程是由UML用例和体系结构驱动的。UP提出了一些规则,但不足以满足企业的所有需求。这些需求之一是组成。在本文中,我们简要介绍了UP和原则,我们的方法命名为扩展统一过程(EUP)。EUP为UP添加了一个特定的体系结构规程,包括一个组合过程。本文是对这一过程的概述。1 介绍没有已知的专门用于组合物的方法。一些现有的架构方法,如TOGAF[15],基于架构的开发ABD和PORE [16]部分集成了一些组合方面。在本文中,我们扩展了对象管理组(OMG)的统一过程(UP),定义了一个全球性的过程集成的一些组成任务的体系结构活动。在指出了UP的不足之后,我们提出了我们的方法,扩展统一过程(EUP)作为UP的一个实例。EUP包括一些额外的学科,如体系结构。在本文中,我们专注于组成过程及其集成方面在一个完整的EUP过程。2 扩展的统一过程:一个全局过程2.1. 统一过程在本节中,我们介绍了统一过程[2]的主要概念和我们的扩展。2002年由Elsevier Science B.V.出版 在CC BY-NC-ND许可下开放访问。蒙福特和卡迪马1302.1.1. 的概念UP是一种提供通用建议的方法,可以为不同类型的项目实例化。它提供了一些通过限制风险来管理项目的指导方针。UP既包括项目本身及其组织,也包括产品及其不同的成熟度级别和版本。项目及其组织允许将项目分为几个步骤(或工作流或规程),如需求管理,分析,设计,实现,测试,部署。所有这些步骤都有粗略的文字描述。每个规程都由活动(要完成的任务)、工作人员(从事项目的人员)、工件(要交付的各种东西:文档、文件、代码、模式从成熟度的角度来看,产品开发包括初始阶段(项目初始化),细化阶段(架构,功能等的设计UP过程将一个项目划分为几个迭代,覆盖了项目的所有步骤。产品生命周期被划分为多个阶段(产品的成熟度级别或版本),这些阶段又被划分为多个迭代。在每次迭代中,新的功能或架构概念都会在新的增量中添加该过程由UML[1][3]用例和架构模型驱动,并集成了风险管理。2.1.2. UP的缺点UP是一个通用的过程,可以应用于所有类型的项目;这需要UP过程为每个组织实例化。这是一项耗费大量成本和时间的任务。实际上,UP没有提供解决以下问题的方案:-路线图、风险和项目管理-结构、制图和流程组成-变更管理流程环境流程与工具,方法,质量,配置管理-管理从事同一项目的不同组织:-在一个项目中一起工作的人之间的沟通2.2 扩展的统一过程扩展统一过程(EUP)是UP的一个实例[9][11][12]。它基于相同的语义、学科和工作流程。它扩展了UP与其他学科改善实际UP缺失。蒙福特和卡迪马131EUP由以下学科组成:- 启发:可能有必要研究一个信息系统,绘制其地图,收集需求,批评现有的信息系统,以提供临时的技术解决方案.或只是了解和掌握现有的信息系统。已经做过这种研究的人知道这可能是非常棘手的。因此,这项研究可能需要特定的技术来获取知识。提出了一种方法,以获取知识,并提供业务的初稿(作为业务通用不变组件)。这种方法收集了现有和批准的方法的最佳部分,如KOD [18]和KADS [19]。- 需求和要求:通常很难收集需求并确保它们得到正确和完整的表达。需求的稳定及其研究需要一个特定的过程。原型有时是必要的,以确保适合的需求。有时,一个特定的组织,例如,更多地参与客户,是必要的。这些需求用功能和技术维度- 分析将需求考虑在内,并开始设计类和第一个UML模型。-一般和详细设计细化分析模型,并在建模中使用实施概念。- 实施导致代码开发和单元测试类作为建模和检查客户需求的结果。-集成及其测试允许收集多个组件并检查其工作。集成可以分为步骤或不分步骤。如果有步骤,则可以将源交付给特权客户端以测试产品。- 然后,将产品作为部署交付给客户并进行测试。- 方法论和质量评估,影响整个开发过程,需要作为一个特定的学科正式化。- 战略是一种思考在开始项目之前要做什么的方式,如何组织它们,定义预算,设计总体架构,定义企业方法,定义组织整个项目的总体时间表- 项目管理允许管理与项目相关的风险这意味着必须考虑许多参数:资源,需求稳定,技能,营业额,架构,技术掌握- 配置管理允许管理文档、源、模型的配置- 工具和环境影响项目过程,并与规程密切相关。- 制图是一种利用UML模型设计企业知识的方法。它是一种从项目过程中收集模型,并对其进行汇总和管理的方法。项目进程通过更新制图库(可能是一个配置管理工具)来提供信息。-架构影响项目过程的某些步骤,对设计非常必要。在这个学科中,我们可以应用自上而下的过程,允许开发一个蒙福特和卡迪马132组件从零开始,自下而上的过程组成不同的组件作为COTS或混合过程,包括自上而下和自下而上的方法时,一些组件被重用和其他开发。所有这些需要都必须在方法上加以考虑,并在EUP中作为学科UP中这些学科的完整定义是基于项目步骤之间的区别,核心支持为项目管理,工具和环境......诱导EUPNeeds studyAndRequirement()ImplementationAndTests集成()架构()制图()Strategy()项目管理()System.out.println()工具和环境方法学()质量水平研究()图1.一、:EUP和UP之间的继承2.3 风险管理UP在其项目管理纪律中没有提供明确的风险管理方法。这就是为什么我们在EUP中添加了风险管理方面的原因,这些方面受到了项目管理知识体系PMBOK [20]的启发。PMBOK提出了一些关于项目风险管理的不同主题,如:–风险管理规划–风险识别–定性风险分析–定量风险分析–风险应对规划–风险监控风险识别必须在生命周期早期的第一次迭代中完成,主要是在初始阶段。在初始阶段,启动原型。这是一种尽快评估技术、质量和性能风险的方法一些组件可以集成为概念的技术证明并进行测试。重复使用外部组件会增加风险很难评估一个组件的质量。此外,在动态合成期间,可以非常容易地添加和组合外部组件。由于组件的质量没有得到证明,因此似乎很难确保所提供的服务是程序员所期望的。functionality()分析()设计()实施()测试()部署()起蒙福特和卡迪马133企业方法的一个实例是用与项目相关的特定指导方针定义的。这个实例是经过一次又一次的迭代和几次审计后改进的。它允许有一个最好的想法,可能会在项目过程中遇到的问题,寻找解决方案,培训项目团队,并搜索特定的技能加入团队。规划可能包括这些风险和潜在的解决方案。通常,项目负责人使用几种方案来防止这些风险。在项目启动会议期间,将每种方案中与时间表和资源相关的成本与预算进行比较并说明项目管理的另一个风险是企业内部缺乏沟通。例如,测试和集成团队必须很早就收到项目的时间表,以便在他们自己的时间表中添加集成和测试任务有时,企业的组织会延迟进度,因为部门的目标不一样,或者战略不明确。这种延迟取决于企业改变其组织的反应能力3 服从驱动的方法基于组件的开发(CBD)[4][5][7][8][10]与传统的或面向对象的开发没有什么不同,因为它也需要一个过程该过程是创建软件解决方案的框架,考虑到各种各样的问题,包括(但不限于)项目管理,个人技能,工具可用性,软件最终用户/客户强加的质量标准,当然还有重用策略。基于组件的开发是基于组件组装的。它允许组件的静态和动态组合它的特点是以下技术问题:-明确组件的接口规范。组件提供的接口必须明确定义。对于它所期望的任何其他插入其中的组件的接口也是如此。-清楚地说明组件的输入和输出组件通常使用属性、方法和事件来描述事件是组件在经典OO类上添加的关键为了将软件部件连接在一起,我们需要一种方法来描述每个组件的输入和输出的等价物,在整个组件的级别上,或者单独为该组件的多个接口-适应性组件需要以灵活的方式构建,以便它们可以在不同的上下文中进行调整和重用。您可以在设计或构建时调整组件,甚至在运行时调整。蒙福特和卡迪马134-发展过程大量使用组件的开发过程-活动和角色。从组件组装有不同的活动-找到使用中的共性,重构并使用合适的参数或用于定制的“插件”来自下而上的方法。组件的可用性和集成它们的可行性可能会推动时间盒需求,反之亦然-早期的可行性原型和测试。与最后一点部分相关的是,必须建立早期原型,并对单个和集成组件进行受控实验。-组件必须是“可组合的必须有一种简单的方法将它们“粘合”在一起,需要在当前OO建模语言和过程中进行微小的增强或变化。-灵活的思考方式。这种机制提供了程序员编写的组件规范在基于组件的软件开发中,使用组件库应用程序可以通过重新配置组件、调整现有组件或引入新组件来适应使用面向对象的编程语言和设计技术来开发基于组件的系统目前并不适合,原因如下:- 重用方面在开发过程中引入得太晚:面向对象的分析和设计方法是领域驱动的,这通常导致基于领域对象和非标准体系结构的设计。所有这些技术都是基于应用程序是从头开始构建的假设因此,在开发过程中重用现有架构、架构风格和组件的方面引入得太晚了。-缺乏显式组件交互可见性。面向对象的源代码公开类层次结构,但不公开对象交互。因此,使应用程序适应新的需求通常需要详细的研究,即使实际的变化很小。为了解决这些问题,组合环境和语言必须建立在一个适当的语义基础上,以理解软件组件的各个方面及其组成的一个小集合的原语和功能。蒙福特和卡迪马1354 软件组合现有的范例没有完全解决基于组件的开发所需的抽象。最近的一些研究解决的问题,发现正确的抽象软件组合和定义一个统一的范式,满足所有组成方面。为了增强基于组件的应用程序的适应性和灵活性,我们不仅需要考虑组件,还需要考虑体系结构、脚本、协调和粘合。组件是一个既提供服务又需要服务的“黑盒”实体.这些服务可以被视为“插件”。组件的主要利益是由于插头必须标准化(即组件必须设计为组合[22])。组件是组件基础结构的元素;它们遵循特定的连接器是用于将组件插在一起的布线机制[30]。体系结构描述语言(ADL)可用于指定和推理体系结构风格[30]。脚本指定组件如何插入在一起[28]。脚本语言允许配置组件,可能在语言定义。协调机制允许在分布式(或至少是并发)环境中被视为代理的组件之间进行交互。协调语言涉及管理并发或分布式组件之间的依赖关系。经典的协调语言如Linda [22]和Darwin[25]可以应用。粘合代码通过使组件适应它们所使用的新环境来克服被称为组合不匹配的情况[29]。Glue不仅适应接口,还适应组件之间的交互契约或桥接平台依赖关系。可以编写粘合代码以适应单个组件,或者它可以由通用抽象组成以桥接各种组件基础设施。一个精确的语义是必不可少的,以表达软件组合的基础,在一个共同的,统一的框架内解决多种体系结构风格和组件模型。最简单的方法,似乎是适当的通信,并发代理。异步多元Pi演算[26,23]目前被用作对象建模,组件和软件组合的工具。但是Pi演算的基于元组的通信限制了可扩展性和重用性。这导致很多时候引入表单的通信-可扩展记录的一个特殊概念-而不是元组。蒙福特和卡迪马136Carto不形式化组合语言的常见方法是所有语言特征都通过转换到实现Pi L演算的核心语言来定义,Pi L演算是Pi演算的多态变体[26,23],其中代理通过传递表单(特定的可扩展记录)进行通信。表单和多态扩展是语言中表达可扩展性、灵活性和健壮性的主要机制。5 在建筑学科中整合组合过程图2显示了受输入信息影响的不同体系结构活动,并产生了新的信息或流。建筑是一个横向学科,涉及以下项目学科:–分析:结果是架构的规范–设计:结果是架构的设计–实施和/或整合:结果是组装组件。在开始任何项目之前,必须明确定义企业信息系统的战略目标体系结构和达到该目标的迭代必须得到管理层和架构师的批准。根据这些迭代的目标,架构将在迭代的范围内定义这意味着它将在业务的细化和架构的应用功能和技术需求以及需求以用例作为输入来表达。制图模型也可以用作输入。项目经理根据风险分析以及架构和战略要求启动原型,定义项目时间表和迭代,制定项目和质量计划架构的设计允许清楚地指定要调用或重用的组件和服务的属性然后,所有这些信息允许开始组成活动。需要和要求战略目标制图更新项目需要模式graphy需要和架构模型现有资产要求更新地图制图模式现有接口需求和工作人员目标体系结构概述现有资产更新地图集成组件项目发展图二、作为建筑学科的构成组装部件ts建筑设计建筑设计蒙福特和卡迪马1376 组件组装活动6.1. 组成过程的步骤图3是该过程的三个步骤的简化视图现有接口需要和要求目标体系结构概述图3.第三章。作文的三个步骤组件组装流程活动包括以下三个步骤:-组成目的规范-重用组件-组合(重用组件或调用远程服务)组件的规范是此过程的基石。它是在需求和需求步骤期间完成的用例模型这里使用的用例是非常低级的描述。还使用了场景图和序列图。规范允许描述所需组件必须满足的功能、接口等方面的需求。如果这类组件作为遗留或作为产品参数(服务板形式,ERP ......)存在只有然后,必须在工作流程、数据存储库等方面进行一些调整6.2. 组成步骤的质量标准活动组件识别阶段将来自上层活动的业务概念模型和用例模型作为需求规程的输入已经制作的制图模型可用作输入。制图现有资产组件查询接口组件规范和体系结构匹配组件未修改组件接口改良组件集成组件谱写重用组件为合成指定蒙福特和卡迪马138以识别组件规格系统和架构接口业务接口接口要指定交互,请执行以下操作组件规格和架构目标是为业务组件确定一组初始的业务接口,为系统组件确定一组初始的系统接口,并将它们合并到一个初始的组件体系结构中。任何现有的组件或其他软件资产也需要考虑在内,以及您计划使用的任何架构模式。除了识别系统接口之外,识别阶段还在需要由系统支持的操作上进行第一次切割他们的名字被识别,但签名和其他细节在稍后阶段添加所需的系统操作是通过检查不同用例中的步骤并决定系统的职责来获得的现有接口需要和要求目标架构概述制图现有资产组件查询业务类型模型Interfa企业规范和体系结构图四、:合成步骤的质量标准活动6.3. 重复使用步骤的活动如果没有匹配的组件,则必须完全实现指定的组件,并且该过程是经典项目过程之一这意味着所有的纪律都必须履行。否则,分析已购买或给予的组件(共享件)。可能已经提交了一些关于组件的文件。将组件与需求进行比较,并列出所有要做的任务和计划,以定制组件。它的接口可能会被修改,新的功能可能会被添加自定义组件的实现之后是测试步骤,其中用例和需求有助于测试场景。细化规范CES孔蓬蒙福特和卡迪马139接口调整工作流和存储库实现胶水组件规格和架构匹配组件接口组件接口匹配组件接口组件规格和架构修改组件测试接口接口组件图五、:重复使用活动6.4. 组装步骤活动装配步骤确保组件之间根据业务工作流进行通信为此目的,适配器被静态或动态地添加到组件中组件存储库随之更新。必须重新审视具体的工作流程,使其与一般和具体的工作流程相适应。工作流必须是一致的,然后存储在存储库中。然后进行测试,包括集成测试。接口修改组件组件组装组件集成组件测试7 结论集成组件见图6。:集合活动虽然最初制定面向对象的软件开发,UP过程已被证明是有用的组合。然而,为了给基于数据的开发提供足够的支持,增加了额外的合成过程。在本文中,我们扩展了EUP的可重用性和组合活动。在我们看来,我们的方法是一个务实的过程,集成对象技术和基于组件的开发。它可以用来补充基于组件开发的统一软件过程。我们正在研究这些主题。本文只是我们通过在行业中的不同项目中使用它来巩固更全球化方法的一部分调整组件获取组件的蒙福特和卡迪马140引用[1] Booch Grady等人统一建模语言用户指南。艾迪森-韦斯利Reading MA,1998年[2] Booch Grady等,统一软件开发过程。Addison-Wesley,Reading MA,1998.[3] D'Souza,D.F.和ac所意欲UML的对象、组件和框架:催化方法。Addison-Wesley,MA,1999年。[4]迪格雷,T.《业务对象组件体系结构》,IEEE软件,15(5):60-69,1998年。[5] 西科德和K.C. Nwosu «基于一致性的软件工程过程的生命周期活动领域»TOOLS30(编辑)D.火匠河Riehle,G.倒,B。Meyer)。IEEE Computer,LosAlamitos,CA,1999,P.537-541[7] Hansen,W.J.《评估COTS软件的通用过程和术语》TOOLS30(编辑)D.火匠河Riehle,G.倒,B。Meyer)。IEEE Computer,Los Alamitos,CA,1999,P. 五四七至五五一[8] 雅各布森,我。Bylund,S.;琼森,P.,使用契约和用例构建可插入的体系结构,面向对象编程杂志,1995年5月/6月,Rational统一过程5.1[9] 设计模式:可重用面向对象软件的元素。(Addison-Wesley,1995; ISBN:0201633612):[10] D. Garlan和M.Shaw,“An Introduction to Software Architecture,”Advances inSoftware Engineering and Knowledge Engineering,Vol.1、世界科学出版社,新加坡,1993年。[11] G.阿博德河Allen和D. Garlan,“使用风格来理解软件体系结构的描述”,ACM Software Eng. 注,12月。1993,pp.九比二十[12] Paul Clements,“从领域模型到架构”,A。Abd-Allah等人,编辑,Focused Workshop on Software Architecture,1994,pp.404-420[15] Cornelius Ncube和alhttp://www.sei.cmu.edu/cbs/icse99//[16] Less Bass an al[18] DSW Tansley等人《基于知识的系统分析与设计》,Prentice Hall,1993年[19] 来自http://www.pmi.orgPMBOK指南[20] Patrice Godefroid[21] Nicolas Carriero 和 David Gelenter 如 何 编 写并 行 程 序 : 困 惑 指南 。 ACMComputing Surveys,21(3):323-357,1989年9月[22] 本田康平和马里奥所郎。异步通信的对象演算。在Pierre America编辑,Proceedings ECOOPSpringer,1991年141[23] Markus Lumpe、Jean-Guy Scheneider和Oscar Nierstrasz。使用元对象与PIC对并发对象进行建模,《语言与对象模型96》,第1-12页,Leysin,1996年10月[24] 杰夫·马吉,纳兰克·杜雷和杰夫·克莱默。构建并行和分布式程序。可配置分布式系统国际研讨会论文集,1992年[25] 罗伯特·米尔纳作为过程的功能。在Proceedings ICALPSpringer,1990年[26] 奥斯卡·尼尔斯特拉斯和 劳伦特·达米。 面向对象的软件技术。 OscarNierstrasz和Dennis Tsichritzis,编辑,面向对象软件组合,第3-28页。PrenticeHall,1995年[27] Oscar Nierstrasz,Dennis Tsichritzis,Vicki de Mey和Marc Stadelman。对象+对象=应用程序。1991年Esprit会议论文集,第534-552页。荷兰多德雷赫特,1991年。Kluwer学术出版社[28] 约翰内斯·萨梅廷格。软件工程与可重用组件Springer 1997[29] 玛丽·肖和大卫·加兰软件架构:新兴学科的观点。Prentice Hall,1996年
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Java集合ArrayList实现字符串管理及效果展示
- 实现2D3D相机拾取射线的关键技术
- LiveLy-公寓管理门户:创新体验与技术实现
- 易语言打造的快捷禁止程序运行小工具
- Microgateway核心:实现配置和插件的主端口转发
- 掌握Java基本操作:增删查改入门代码详解
- Apache Tomcat 7.0.109 Windows版下载指南
- Qt实现文件系统浏览器界面设计与功能开发
- ReactJS新手实验:搭建与运行教程
- 探索生成艺术:几个月创意Processing实验
- Django框架下Cisco IOx平台实战开发案例源码解析
- 在Linux环境下配置Java版VTK开发环境
- 29街网上城市公司网站系统v1.0:企业建站全面解决方案
- WordPress CMB2插件的Suggest字段类型使用教程
- TCP协议实现的Java桌面聊天客户端应用
- ANR-WatchDog: 检测Android应用无响应并报告异常
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功