CN101681263B - 用于开发基于软件资产的解决方案的一致方法和*** - Google Patents
用于开发基于软件资产的解决方案的一致方法和*** Download PDFInfo
- Publication number
- CN101681263B CN101681263B CN2008800159383A CN200880015938A CN101681263B CN 101681263 B CN101681263 B CN 101681263B CN 2008800159383 A CN2008800159383 A CN 2008800159383A CN 200880015938 A CN200880015938 A CN 200880015938A CN 101681263 B CN101681263 B CN 101681263B
- Authority
- CN
- China
- Prior art keywords
- assets
- decision
- variable element
- user
- decision tree
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 70
- 238000003066 decision tree Methods 0.000 claims abstract description 65
- 230000008569 process Effects 0.000 claims description 25
- 238000012545 processing Methods 0.000 claims description 17
- 238000012986 modification Methods 0.000 claims description 5
- 230000004048 modification Effects 0.000 claims description 5
- 238000002203 pretreatment Methods 0.000 claims 1
- 238000004590 computer program Methods 0.000 abstract description 2
- 238000013461 design Methods 0.000 description 18
- 238000012360 testing method Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 13
- 238000010276 construction Methods 0.000 description 6
- 230000007717 exclusion Effects 0.000 description 6
- 230000004913 activation Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000005538 encapsulation Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000003745 diagnosis Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0637—Strategic management or analysis, e.g. setting a goal or target of an organisation; Planning actions based on goals; Analysis or evaluation of effectiveness of goals
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Economics (AREA)
- Educational Administration (AREA)
- Entrepreneurship & Innovation (AREA)
- Strategic Management (AREA)
- Development Economics (AREA)
- Game Theory and Decision Science (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及用于开发基于软件资产的解决方案的一致方法、***和计算机程序。具体地,公开了一种用于消耗可复用软件资产的方法、计算机程序和***,所述资产用元件和属性描述,所述资产包含至少一个可变元素(VP),可变元素包含至少一个变量。用户通过首先选择要消耗的资产在计算机上执行程序。对应于资产的决策树被遍历,每个决策点对应于可变元素。通过让用户输入以修改对应的可变元素的变量来处理决策点。存储修改的可变元素。决策点的依赖关系通过可变元素中的依赖关系属性来指示。程序可被用户主动停止或者当完全遍历决策树时停止。当决策树被部分遍历时,程序可在最近处理的决策点之后重启,从被部分修改的对应可变元素开始。
Description
技术领域
本发明主要涉及开发软件解决方案;更具体地,本发明应用于开发基于软件资产的解决方案的方法。
背景技术
软件资产是为了在后续上下文中重复应用而被创建或完成的一个或多个相关产品的集合。资产的消费者是从解决方案业务建模、分析(使用的资产是模型)和设计到应用开发(使用的资产是代码段)的任何类型的IT或业务过程解决方案的架构师或设计师。
IT行业具有标准化的软件资产封装。对象管理组(OMG)(OMG是Object Management Group公司在美国和/或其他国家的注册商标或商标)的可复用资产规范(RAS)是关于可复用软件资产的结构、内容和描述的一套指导和建议(见2005年11月的版本2.2)。RAS标识具有一致封装的软件资产的种类。RAS支持对资产的定制,这对软件资产消费者而言是一个关键点。在RAS中,资产是产品(artifact)的容器,可变性点(variability point)是产品中预期将由消费者进行调整以适应目标解决方案的点。利用RAS的可变性支持,例如可以仅消耗资产的子集。
2003年3月6日公布的专利申请US 2003/0046282公开了资产检索模块,其用于根据用户的输入,从资产库有选择地检索软件资产的子集。本专利申请的目的还在于基于消费者的定制决策来提供促进访问软件资产的步骤的解决方案。但是,本专利申请的目的更关注于资产的创建和消耗,而不是其访问或搜索。
在支持软件资产封装和访问的基础上,需要提供对可复用软件 资产的消耗的完全支持。可以使用RAS来制定用于安装、定制和使用软件资产的规则。在RAS中,资产的使用(Usage)部分包含用于安装、定制和使用资产的规则。虽然使用文本描述了将由用户或工具执行以便使用资产的活动,但是该自由形式的文本没有提供足够的结构化指导。
为了消耗资产,用户还需要考虑其想要实现的基于资产的解决方案。在Nokia研究中心的Alexandre Ran和Juha Kuusela发表于1996IEEE,Proceedings of IWSSD-8的论文Design Decision Trees中,提出将设计模式的分级组织应用于设计决策树,该设计决策树是对较早决策施加的设计决策约束的部分排序。一般而言,决策树可以帮助用户通过一系列决策达到最终目标,即,树的一个叶子。通过应用与软件资产集合相对应的设计模式,软件资产消费者可以得到决策树。一旦决定了好的设计路径(即,基于资产的解决方案),消费者必须使用诸如RAS的库来执行对目标解决方案的每个软件资产的定制。
这种方法的主要缺点在于,因为资产提供者在一侧创建资产存储库而通常在文本文件中(包含编辑的文本、HTML、XML、SGML等等)创建单独的文档,因此资产消费者建立基于软件资产的解决方案要依赖于两个分离的信息源,即,所消耗的资产和指导此消耗的决策树,这导致了两步的方法:浏览决策树并决定采取哪条路径,即选择通向目标的路径;第二步是必须沿着该路径来定制资产。需要为软件资产消费者提供一种构建目标软件解决方案而避免两步(路径决策、软件资产定制)过程的方法。
发明内容
本发明的目的是为可复用软件资产的消费者提供一种用于设计其基于资产的解决方案并同时定制所复用的软件资产的方法。
根据权利要求1,本目的是通过一种在计算机上执行的用于消耗可复用软件资产的方法来实现的,其中每个资产可以根据决策树来 定制,所述资产使用包括元素和属性的结构化语言来描述,某些元素是可变元素(可变性点),每个可变元素包含至少一个变量元素(变量),所述方法包括:
-用户向计算机指示其想要消耗一个选定资产;
-计算机遍历决策树,其中每一决策点被编码为所选资产的可变元素,所述遍历是通过读取选定资产的描述以及通过以下方式来处理决策树的每个决策点:
-为用户提供与包括所述可变元素的至少一个变量元素的决策点相关联的可变元素;
-从用户收集对所述可变元素的修改;
-相应地修改所述可变元素;
-存储修改后的资产描述。
本发明的目的还可以通过如权利要求2-12中任一项所述的用于消耗可复用软件资产的方法来实现。本发明的目的还可以通过根据权利要求13的包括编程代码指令的计算机程序产品来实现,当所述程序在计算机上执行时,编程代码指令用于执行根据权利要求1-12中任一项所述方法的步骤。本发明的目的还可以通过根据权利要求14所述的包括适于执行根据权利要求1-12中任一项所述方法的装置的***来实现。
按照本发明的方法,软件资产消费者是利用基础决策树来指导的,其中该基础决策树实现了要做出的消耗资产的决策之间的层级关系。决策树嵌入在资产中,并通过将每一决策点映射到资产中的可变性点而被编码。决策树分支(从一个决策点到下一个决策点的链接)由可变性点的依赖关系来表示。此方法允许在一个步骤中建立基于软件资产的解决方案。
此解决方案的一个优点是,与传统树相反,它可以从非根位置进入决策树或者从非叶节点退出决策树。利用本发明的方法,可以在到达叶节点层级之前停止,同时记录决策。这支持高度灵活的工具。
此解决方案的其他优点可以列举如下:
-利用本发明的解决方案,消耗资产的规定性指导和资产本身是通过设计一起完成的,这允许:
●规定性指导由资产的结构一致地驱动,不允许差异或不匹配:资产和指导是同步的。
●资产提供者不必再向一侧的库提供资产而向另一侧的另一库提供资产指导(例如,文本文件),而是向“受指导资产(guided asset)”数据库提供合二为一的材料(资产+指导)。
●可变性点定义(包括可变性点依赖关系)反映了指导消费者消耗资产所需的决策树的布局。
-指导对于所有规则而言一致地支持角色(role-enabled),这支持具有合作(包括适当的移交)的端到端接合模型,这允许:
●这使得存储部分填充的参数能与资产一起设置,反映当时做出的决策。
●当他/她已做出与其角色和在消耗可定制资产的过程中相关的技能有关的决策时,资产消费者可停止。然后他/她可将产生的资产移交给团队中负责做出后续决策的下一消费者。此过程允许不同的角色合作解决原始资产中的可变性点。例如,业务分析师做出与业务过程有关的所有决策,然后他/她将修改的资产传递给能做出架构决策的软件架构师,等等。
●在任何级别做出的决策也被自动记录,不需要在该侧有它们的记录。
-指导对于所有规则是而言一致地支持工具:
●因为每个可变性点定义以标准格式(在我们的实现中的RAS)形式化地捕获,因此变量对用户的表示以及决策的过程可以通过工具来支持,不论当前决策是否处理需求、架构、业务建模、设计或代码。
●使用相同的标准(在优选实施方式中,是RAS)来捕获资产内容和规定指导可以显著节约软件厂商的规模:单个工具框架可以在指导和资产消耗上支持专业人员。这使得能够根据一般性工具来消耗资产(与为每一资产类型开发专用的工具相反)。
-本发明生成多个参数路径,其仅受依赖关系的约束(一般而言,依赖关系产生森林而不是树)。本发明的树是动态的,并且通过消耗方法的每一消费者通路且根据消费者的专业目标被修改。
可使用可复用资产规范v2.2(RAS)来实现本发明。重点注意,本发明独立于特定的标准或规范(如RAS),但是可用RAS实现。而且,这意味着可以通过支持(理解)RAS的任何工具或框架支撑,包括IBM Rational Software Architect(RSA),RSA是用于软件架构师和创建基于组件(SOA,J2EE和portal)的应用的模型驱动开发者的模型驱动的开发和静态分析工具。
附图说明
图1所示为根据本发明的优选实施方式的创建“受指导资产”的数据库的逻辑框图;
图2所示为根据本发明的优选实施方式的消耗“受指导资产”的逻辑框图;
图3所示为根据本发明的优选实施方式的创建“受指导资产”的方法的流程图;
图4所示为根据本发明的优选实施方式,消耗“受指导资产”的方法的流程图;
图5(5A、5B、5C)所示为根据本发明的优选实施方式的“受指导资产”的一个例子的RAS表示;
图6所示为图5描述的“受指导资产”的RAS表示中实现的决策树的图形表示;
图7所示为根据本发明的另一实施方式,消耗包含多个入口点 的“受指导资产”的方法的流程图。
具体实施方式
在优选实施方式中,本发明用RAS v2.2实现。
图1所示为根据本发明的优选实施方式的创建“受指导资产”的数据库的逻辑框图。为了使用户开发基于资产的解决方案,必须创建包含受指导的可复用软件资产的数据库。通常,资产数据库优选地是关系型数据库(所谓的资产库),其提供到数据的简单通路。在下文中,对数据库或库的使用不做区别。在库中,资产被用结构化语言(例如,RAS)描述为对象,其包括具有属性并链接到文件产品自身(它是模型、代码)的元件。图1描述了创建“受指导资产”的主要步骤,包括库中资产的修改的描述。“受指导资产”的描述包含关于怎样消耗资产的信息,该信息将为资产消费者提供逐步的指导。
在优选实施方式中,创建“受指导资产”数据库的方法是用于消耗计算机(160)上执行的资产的软件应用(120)中的初始操作(130,140)。这个操作(130,140)可由资产提供者本身执行或者由开发解决方案并向其IT专业人员提供受指导的软件资产的公司来执行。资产本身(模型、代码)位于资产库(100)中,并用作输入。创建“受指导资产”的流程图稍后将在本文中结合图3的描述进行说明。总体上,对于每个从资产库中读出的资产,根据资产消耗信息(110)检索(130)决策树,然后将决策树编码并嵌入(140)到资产中。产生的“受指导资产”存储在“受指导资产”库中(150)。
在优选实施方式中,资产消耗信息作为文本文件(包含编辑的文本、HTML、XML、SGML等)存储在“资产消耗指导信息”数据库中。这些文本文件不允许通过自动执行程序来从数据中自动提取决策树。这就是创建决策树(130)通常由有资格的操作者(138)通过用户界面(优选地为图形用户界面(135))来执行的原因。如果软件资产消耗指导信息以标准化的方式存储,则不再需要这一人 为干预。注意,在将来,资产提供者不再保持资产库和资产信息数据库,而是将仅仅处理一个被提供的“受指导资产”库。
注意,导致创建“受指导资产数据库”的所有提及的程序(130,135和140)可在不同的计算机上执行。
图2所示为根据本发明的优选实施方式的消耗“受指导资产”的逻辑框图。一旦构建了受指导资产库,则为了创建基于资产的解决方案,IT专业人员(资产消费者)将按所指导的方式、通过执行用于消耗资产(120)的程序的部分(230,240)来定制软件资产,其可在相同的计算机(160)上或在不同计算机上执行。资产消费者将优选地通过图形用户界面(200)来访问受指导资产数据库(150)以创建定制的受指导资产(220)。该程序将针对每一资产向用户显示(230)决策树。然后该程序将在决策树的每一决策点捕获(240)用户的输入,并将相应地定制受指导资产。注意,如本领域技术人员公知的,当资产被消耗时,最终解决方案(更新的模型或用于进一步使用的代码)的构建完成,完成解决方案的这个步骤不在本发明的范围之内。
图3所示为根据本发明的优选实施方式的创建“受指导资产”的方法的流程图。在计算机(160)上执行用于创建受指导资产的程序(130,140),此后可以通过相同计算机(160)或不同计算机上执行用于消耗资产的程序(230,240)来消耗该资产。
从资产库数据库(100)读取(300)第一资产。在优选实施方式中,资产以标准化的方式(例如使用RAS 2.2)存储在数据库中。如果找到了资产(对测试310回答“是”),则从资产消耗指导信息数据库(110)中提取对应的决策树(320)。
标识(330)根决策点。它对应于对决策树分支的第一可能选择。下一步骤包括通过使用先前标识的决策点中可用的信息以及先前从资产消耗指导信息数据库(110)中提取的树(320)中所包含的信息,在资产中创建可变性点(VP),以及设置该VP的属性(340)。此信息包括:
●决策点的名称:名称需要在资产中是唯一的,使得它唯一标识可变性点(决策点);
●描述:这是针对人(用户)的文本信息,描述在这个点做出的决策;
●一组变量:决策点包括一组至少一个可能的选择或备选(在下文中称为变量),其已与资产一起封装。而且,如果资产消费者没有做改变,这些变量之一可以是被缺省使用的;
●变量的类型:对一个决策点,仅某种类型的变量是可接受的。这些变量是可替换的(例如,模型、代码);
●标识变量间的共存规则的参数(例如变量逻辑:包含的、互斥的、可选的);
●工具:为了支持自动化和上下文,每一可变性(决策)点需要列出可处理它的软件工具(可用于做决策的工具)。图5示出可变性点的详细例子;
●标识决策点在决策树中位置的参数:例如,其可以是树中祖先节点的名称。
重复(对测试350回答Yes)同一步骤(340),直到考察完树的所有决策点,即直到在决策树中再没有孩子(对测试350回答No)。然后受指导资产被存储在受指导资产库(150)中,并且从资产库读取(300)下一资产。
注意,只有当这些数据以标准化方式存储在资产消耗指导信息数据库(110)中时,被提取的决策树(320)和用于填充VP(340)属性的信息可以由用于消耗资产的程序(120)自动执行。如上所述,结合图1的说明,此信息目前通常不是标准化的,且操作者(138)可执行初始步骤:通过提供用户接口(优选地,图形用户界面(135))的程序、在资产消耗指导信息数据库(110)中、以使程序(120)可消耗的形式来创建信息。这个步骤也可在创建受指导资产的阶段期间同时执行。
图4所示为根据本发明的优选实施方式的消耗“受指导资产” 的方法的流程图。用于消耗资产的程序(120)的该部分在计算机(160)上执行,该计算机可以与用于创建受指导资产的计算机相同或不同。资产消费者(IT专业人员)优选地通过图形用户界面(通常是向导)与该程序部分进行交互。用户知道哪个资产需要被包括在他正在开发的基于资产的解决方案中。将指导用户根据他正在开发的解决方案的细节来定制资产。
第一步骤包括:通过图形用户界面显示用户可从中选择(400)资产的屏幕。当资产被选择时(测试410的结果为“是”),对应的决策树的根的可变性点被程序(420)定位。对应于根的VP描述被显示(430),并且用户通过修改VP的内容来提供输入,以便将修改引入根VP,从而反映其定制选择。计算机按照用户的建议更新(440)VP描述。如果资产的下一决策点(测试450的结果为“是”)被用户选择(测试460的结果为“是”),则对其进行显示和更新(430,440),直到决策树被遍历,即访问了每一节点(测试450的结果为“否”)。注意,可以通过依赖于同一决策点而访问所有决策点或者通过相继地访问每一分支来遍历决策树,所有的选项都是可能的,即,可使用所有树遍历策略和算法,只要其符合决策点间的依赖关系关系。这是通过在一轮处理中执行方法来定制资产的第一选项。稍后在本文中参考图7详细说明的另一可能性是在多于一轮处理中定制一个资产。在这种情况下,当用户决定停止时(对测试460回答No),第一轮可结束。这意味着定制的结果是部分消耗的资产,图4表示消耗受指导资产的第一轮处理。
指导资产消费者输入其消耗资产的选择(430),因为:
-决策点根据树的依赖关系而相继地显示;
-在每一决策点,计算机显示VP和所有VP变量的描述。
在步骤440,通过输入消费者的选择来更新受指导资产。消费者的选择被用于映射该决策点的VP。这记录了消费者做出的选择。消费者可改变VP描述中的任何内容:根据变量间的共存规则来抑制或添加变量,修改变量的属性等。下面在本文中参考图5说明描述资 产的结构化语言。
图5所示为根据本发明的优选实施方式的“受指导资产”的RAS表示,其全面地描述了决策点。请注意,这些细节只是为了说明本发明是怎样工作而给出的,而不是应当如何以任何结构化语言为基础(这里是RAS v2.2)来实现本发明的限制性定义。此外,在优选实施方式中,没有提出对RAS 2.2的扩展,而是使用相同的元素和属性,但是其中的某些是在特定的语义中使用的。在此示例中,考虑包含支持服务配置和激活(Service Configuration and Activation)的一组应用组件的源代码实现的软件资产,如电信行业中所定义的,例如在eTOM(对电信行业中的业务过程进行标准化的增强型电信操作图)中。
更精确地,该资产已按如下方式设计,即提出具有多个可能备选方案的服务构造实现(在服务订单管理***中),并且利用主要性能指标兼容性检查(在服务激活管理***中)也具有可替换的实现。在电信行业中,业务过程是很稳定的,但是其步骤的实现将会根据使用的是内部能力还是外部能力而有所不同。在我们的例子中,如果资产提供者以这种方式设计它,如果资产消费者选择服务构造的特定备选方案,则他可以在几个外部订单创建实现(在服务设计***中)之间进行选择。
图5说明了受指导资产的基于RAS的简化定义,资产的例子如上所述。为了清楚而简化这个定义。这个定义符合RAS 2.2,如果不想遵循RAS 2.2,则可以使用描述资产的任何其他语法选项。这个受指导资产定义通过执行图1和图3所述的方法而被创建。RAS是使用元素(<asset>,<classification>,<VariabilityPoint>,<artifact>等)来描述对象的结构化语言。每一元件具有属性(id,描述,引用等)。
描述是XML文本,其在图5A中具有第一个<asset>标签而在图5C中具有最后的</asset>标签。各种产品之间,标签描述如较早结合图1和图3而说明的资产的各个可变性点及其变量。这些可变性点被映射到图6所示的资产的对应决策树的决策点。决策树的决策点 对应于当执行图2和图4所述的方法时资产消费者将必须选择的资产定制的不同选项。
在图5B中,在两个产品上描述两个可变性点,在产品“TelcoService Configuration and Activation component(电信服务配置和激活组件)”中描述用于“Asset consumption(资产消耗)”的“root(根)”可变性点(VP),以及在产品“Service Construction(服务构造)”中描述用于“Service Construction implementation(服务构造实现)”的“VP1”可变性点。
在图5B中,根VP是如图3所示的资产定制的通常入口,并且不存在定制的可能备选方案,没有“变量”。属性“reference(引用)”描述根决策点在决策树中的位置(它是空,因为根没有祖先)。更一般地,这个“reference”属性将限定VP在决策树中的依赖关系。VP的描述、变量的类型以及指导变量间共存的规则(如果有的话)由属性“context-id(上下文id)”提供。根VP的“context-id”的值是“ctxt1”。由于与RAS 2.2的兼容性,所有VP的“context-id”的值列出在图5A中在全局<classification>标签的<context>标签下。对于“ctx1”,图5A中的描述仅包含名称和描述,因为没有变量。
图5B示出,在vp1决策点处,资产消费者将具有定制的选择。vp 1VP具有分别在产品“Service Construction implementation option 1(服务构造实现选项1)”、“Service Construction implementationoption 2(服务构造实现选项2)”和“Service Constructionimplementation option 3(服务构造实现选项3)”中描述的3个变量。vp1VP的属性“reference”是根(reference=“root”),因为vp1在决策树中依赖于根。vp1 VP的“context-id”的值是“ctx2”。对于“ctx2”,图5A中的描述包含名称、描述、变量类型和共存规则(“互斥的”)。
在图5C中,在2两个产品上描述两个可变性点,在产品“ServiceDesign System(服务设计***)”中描述用于“External Order Creationimplementation(外部订单创建实现)”的“vp2”可变性点(VP), 以及在产品“KPI Compliance Check(KPI兼容性检查)”中描述用于“KPI Compliance Check implementation(KPI兼容性检查实现)”的“VP3”可变性点。
在图5C中,“vp2”VP具有分别在产品“External Order Creationimplementation option 1(外部订单创建实现选项1)”、“ExternalOrder Creation implementation option 2(外部订单创建实现选项2)”中描述的2个变量。vp2VP的属性“reference”是vp1(reference=“vp1”决策树中的父节点)。vp2 VP的“context-id”的值是“ctx3”。对于“ctx3”,图5A中的描述包含名称、描述、变量类型和共存规则(“exclusive(互斥)”)。
在图5C中,vp3VP具有分别在产品“KPI Compliance Checkimplementation option 1(KPI兼容性检查实现选项1)”、“KPICompliance Check implementation option 2(KPI兼容性检查实现选项2)”中描述的2个变量。vp2VP的属性“reference”是vp1(reference=“root”决策树中的父节点)。vp2VP的“context-id”的值是“ctx4”。对于“ctx4”,图5A中的描述包含名称、描述、变量类型和共存规则(“exclusive(互斥)”)。
如上所述,通过指向同一上下文,可变性点及其变量链接在一起,以及上下文定义包括细节,如组合或不组合变量(在我们的例子中是互斥的),以及可接受的变量类型(J2EE企业档案文件,Java档案文件,Java文件)。
可变性点“Service Construction implementation(服务构造实现)”和“KPI Compliance Check implementation(KPI兼容性检查实现)”引用“Asset Consumption(资产消耗)”可变性点,它代表决策树的根。这反映了决策树的入口点。
可变性点“External Order Creation implementation(外部订单创建实现)”引用“Service Construction implementation(服务构造实现)”可变性点。这反映了决策树中结构的依赖关系。
这个优选实施方式使用RAS v2.2,仅存在一个小例外。在RAS 中,可变性点上的引用属性可用于提供更多的背景和说明;我们改变了<variability-point>XML标签的“reference”属性的语义,以捕获可变性点之间的祖先关系,反映决策树的结构,即必须考虑的决策点的顺序。
图6所示为图5的RAS表示所示的受指导资产的决策树所隐含的依赖关系树的图形表示(600)。决策点是根、vp1、vp2、vp3。表示了以下的依赖关系:vp2依赖于vp1;vp1和vp3依赖于根。在优选实施方式中,依赖关系对应于受指导资产中VP的“reference”属性。对于每一决策点,依赖关系对决策树可能的分支编码。
如果与一个资产相关的消耗指导信息(110)包含设计模型和实现模型,则在资产中有2个固有的逻辑决策树:设计树和实现树。在受指导资产中,仅建立了一个决策树,即,每个资产有一个决策树。当资产中存在多个固有的逻辑树时,我们在开始处添加一个决策点(可变性点),称为根。然后,根可变性点简单地询问用户他想走哪个固有逻辑树(在我们的例子中,是他想消耗设计模型还是实现模型)。这保证了总是有一个且仅一个决策树指导消耗受指导资产。用于消耗资产的方法然后在参数中生成多个路径,仅受依赖关系的约束。
在图6中,树610、620和630示出消耗图5的受指导资产的3种方式。在610中,消费者选择服务构造实现vp1决策点的选项1,它与其他变量(选项2和选项3)是互斥的(根据“ctx2”上下文的描述)。然后,消费者在外部订单创建实现vp2决策点选择选项2。
对于消耗的资产620,对受指导资产没有改变,因为用户已决定不消耗它。在630中,资产消费者在决策树的相继的决策点选择了不同的变量。
用于消耗受指导资产的方法的扩展允许多于一轮处理,这在图7的流程图中描述。假设已执行消耗资产的第一轮处理(图4),且还未完全遍历受指导资产的决策树,即该树的所有决策点未被处理(430,440):未被处理的决策树的决策点的对应可变性点未被更 新(440)。对于第一轮处理之后的处理,消费者可重新进入决策树考察通过一个“入口点”,它可以是在以前通路中已处理过(430,440)的决策点或者是最近已访问的决策点之后(在相关树中)的决策点。在这个更一般的图7的流程图中,建议消费者从决策树点所有入口点中选择一个入口点,包括决策树的根,它是图4的流程图中第一轮处理的唯一入口点。
一旦计算机读取了用户选择的受指导资产(400)(测试410的结果为“是”),计算机定位资产的入口可变性点(700):如果不是所有决策点在以前的通过中已被处理(测试710的结果为“是”),则要求消费者选择其中之一,并且如果选择了一个(测试720的结果为“是”),则处理决策点,即要求用户输入其选择(430),且计算机相应地更新资产中对应的可变性点(440)。通过抑制刚处理的决策点的可变性点以及通过在资产的相关树中添加后续决策点,即决策树的孩子(730),添加用于维护入口点列表的新步骤。这个列表被计算机读出,用于执行定位所有入口点的后续步骤(700)。
用于消耗受指导资产的程序可以结束,因为消费者不选择消耗资产(测试410的结果为“否”)。如果计算机没发现任何入口点,因为不再有其余入口点(测试710的结果为“否”),或者如果消费者不选择处理其余入口点(测试720的结果为“否”),则所选资产的处理完成且计算机存储(740)资产,因为它已被处理,即资产被消费者完全消耗(测试710的结果为“否”)或部分消耗(测试720的结果为“否”)。
图7的流程图说明的过程的变化是:当消费者仅消耗了受指导资产的一部分时(测试720的结果为“否”),部分消耗的受指导资产被存储(测试720的结果为“否”)为新的受指导资产。其原因取决于资产怎样被消耗。通过选择对应VP的变量,消费者可处理(430,440)决策点。但是,在决策点,消费者可增加(430,440)对应的VP,例如,通过添加新变量以及通过添加如图5B的受指导资产描述所示的<reference value=filename.jar>来添加对应的代码。生 成的已修改受指导资产可能对于其他消费者而言是有用的,以及在这种情况下,将增加的受指导资产的结果存储为新的“受指导资产”可能是有利的。增加的受指导资产的下一消费者将通过处理尚未处理的决策点来定制它。根据消费者的专业能力和偏好以及依据使用的结构化语言(RAS),可以有其他方式修改VP(430)。
决策点处理和对应的可变性点修改可以发生在资产创建时(缺省值),或者由其他消费者在资产消耗时。例如,架构师可能已对资产做出架构决策当设计者得到资产且必须做设计决策时。
一般地,部分消耗的资产被存储(740)用于被同一用户、或者执行与资产消耗不同角色的其他用户(架构师、设计者、IT专业人员、安全专家等)进一步消耗。
图7所示为本发明的解决方案的最大优点:资产消费者可以在他/她做出了与他/她在消耗可定制资产的过程中的角色和相关技能的决策时停止。然后他/她可将产生的资产移交给团队中负责做出后续决策的下一消费者。如上文所述,这个方法允许不同的专业人员合作解决原始资产中的可变性点,如业务分析师、软件架构师,作为设计者和实现安全的不同设计专家。
注意,即使在给定资产中只有一个树被编码,向用户提供多个入口点非常类似于提供多个树(子树)指导资产的消耗。
Claims (13)
1.一种在计算机上执行的用于消耗可复用软件资产的方法,每个资产可以根据决策树来定制,所述资产使用包括元素和属性的结构化语言RAS来描述,一些元素是可变元素,每个可变元素包含至少一个变量元素,所述方法包括:
接收用户向计算机指示其想要消耗一个选定资产;
计算机遍历决策树,其中每个决策点作为所述选定资产的可变元素而被编码,所述遍历是通过读取所述选定资产的描述以及处理所述决策树的每个决策点来进行的,所述处理包含:
向用户提供与包括所述可变元素的所述至少一个变量元素的决策点相关联的可变元素;
从所述用户处收集对所述可变元素的修改;
相应地修改所述可变元素;
存储经过修改的资产描述。
2.根据权利要求1所述的方法,其中遍历决策树的步骤在一轮处理中执行。
3.根据权利要求1所述的方法,其中遍历决策树的步骤重复部分地执行,执行的次数等于遍历整个决策树所需的处理的轮数,这是通过:在每次部分遍历处理中,读取先前部分遍历处理中存储的所述经过修改的资产描述;以及开始处理在所述先前处理中最后处理的决策点之后的每个决策点。
4.根据权利要求3所述的方法,其中遍历决策树的步骤还包括:
读取具有根标识属性的可变元素;
读取具有根依赖关系属性的所有可变元素;
读取依赖于根的可变元素的标识属性;
相继地读取具有依赖关系属性的所有可变元素,所述可变元素的标识属性已经读取。
5.根据权利要求1-4中任一项所述的方法,其中在处理决策点
之后,部分遍历树的每一轮处理由用户主动停止。
6.根据权利要求1-4中任一项所述的方法,其中使用可复用资产规范作为结构化语言来描述所述资产。
7.根据权利要求4所述的方法,其中所述依赖关系属性是结构化语言RAS“reference”属性。
8.根据权利要求1的方法,其中用户提供、计算机向用户提供、以及计算机从用户处收集的步骤是通过图形用户界面完成的。
9.根据权利要求1所述的方法,还包括以下初始步骤:
创建资产描述,对于相应资产决策树中的每个决策点,所述资产描述包括具有标识属性和依赖关系属性的元素,所述依赖关系属性包含所述决策点在所述资产决策树中所依赖的元素的标识属性。
10.根据权利要求1-4中任一项所述的方法,其中从用户处收集修改的步骤包括从可变元素的所有变量元素中选择至少一个变量元素。
11.根据权利要求1-4中任一项所述的方法,其中从用户处收集修改的步骤包括从用户处收集新的变量元素以及随附代码元素。
12.根据权利要求1-4中任一项所述的方法,还包括:
在完成对所述决策树的遍历之后,将所述经过修改的资产描述应用于所述资产的内容,以创建定制的资产。
13.一种包括适于执行根据权利要求1-12中任一项所述的方法的装置的***。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP07301047 | 2007-05-16 | ||
EP07301047.2 | 2007-05-16 | ||
PCT/EP2008/052608 WO2008138654A1 (en) | 2007-05-16 | 2008-03-04 | A consistent method system and computer program for developing software asset based solutions |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101681263A CN101681263A (zh) | 2010-03-24 |
CN101681263B true CN101681263B (zh) | 2013-12-04 |
Family
ID=39705202
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008800159383A Active CN101681263B (zh) | 2007-05-16 | 2008-03-04 | 用于开发基于软件资产的解决方案的一致方法和*** |
Country Status (6)
Country | Link |
---|---|
US (1) | US8234634B2 (zh) |
EP (1) | EP2147370A1 (zh) |
JP (1) | JP5166519B2 (zh) |
KR (1) | KR101307711B1 (zh) |
CN (1) | CN101681263B (zh) |
WO (1) | WO2008138654A1 (zh) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9721216B2 (en) * | 2007-11-26 | 2017-08-01 | International Business Machines Corporation | Solution that automatically recommends design assets when making architectural design decisions for information services |
US8341155B2 (en) * | 2008-02-20 | 2012-12-25 | International Business Machines Corporation | Asset advisory intelligence engine for managing reusable software assets |
US8719314B2 (en) * | 2008-03-13 | 2014-05-06 | International Business Machines Corporation | Faceted search on assets packaged according to the reusable asset specification (RAS) |
US20100131326A1 (en) * | 2008-11-24 | 2010-05-27 | International Business Machines Corporation | Identifying a service oriented architecture shared services project |
US20100211925A1 (en) * | 2009-02-19 | 2010-08-19 | Interational Business Machines Corporation | Evaluating a service oriented architecture shared services project |
US20100217632A1 (en) * | 2009-02-24 | 2010-08-26 | International Business Machines Corporation | Managing service oriented architecture shared services escalation |
US8392540B2 (en) * | 2009-02-24 | 2013-03-05 | International Business Machines Corporation | Service specific service oriented architecture shared services solution |
US9268532B2 (en) * | 2009-02-25 | 2016-02-23 | International Business Machines Corporation | Constructing a service oriented architecture shared service |
US8935655B2 (en) * | 2009-02-25 | 2015-01-13 | International Business Machines Corporation | Transitioning to management of a service oriented architecture shared service |
US8607190B2 (en) * | 2009-10-23 | 2013-12-10 | International Business Machines Corporation | Automation of software application engineering using machine learning and reasoning |
US8726236B2 (en) * | 2009-10-26 | 2014-05-13 | International Business Machines Corporation | Determining context specific content |
US8645904B2 (en) * | 2009-10-26 | 2014-02-04 | International Business Machines Corporation | Cross repository impact analysis using topic maps |
US9704130B2 (en) * | 2009-10-26 | 2017-07-11 | International Business Machines Corporation | Standard based mapping of industry vertical model to legacy environments |
US8566358B2 (en) * | 2009-12-17 | 2013-10-22 | International Business Machines Corporation | Framework to populate and maintain a service oriented architecture industry model repository |
US9111004B2 (en) | 2009-12-17 | 2015-08-18 | International Business Machines Corporation | Temporal scope translation of meta-models using semantic web technologies |
US8775462B2 (en) * | 2009-12-17 | 2014-07-08 | International Business Machines Corporation | Service oriented architecture industry model repository meta-model component with a standard based index |
US8631071B2 (en) * | 2009-12-17 | 2014-01-14 | International Business Machines Corporation | Recognition of and support for multiple versions of an enterprise canonical message model |
US8244768B2 (en) * | 2009-12-17 | 2012-08-14 | International Business Machines Corporation | Implementing service oriented architecture industry model repository using semantic web technologies |
US9026412B2 (en) | 2009-12-17 | 2015-05-05 | International Business Machines Corporation | Managing and maintaining scope in a service oriented architecture industry model repository |
US9244659B2 (en) | 2010-04-26 | 2016-01-26 | International Business Machines Corporation | Extensible meta model for capturing solution patterns |
US8572567B2 (en) | 2010-06-16 | 2013-10-29 | International Business Machines Corporation | Specifying and processing composed patterns |
US8607191B2 (en) * | 2010-06-30 | 2013-12-10 | International Business Machines Corporation | Automated discovery of programmatic resources |
US9342809B2 (en) | 2010-08-25 | 2016-05-17 | International Business Machines Corporation | Method and apparatus to populate asset variant relationships in repositories |
US9569445B2 (en) * | 2014-06-30 | 2017-02-14 | International Business Machines Corporation | Dynamic asset assembly using a rule based methodology |
US9678982B2 (en) * | 2014-07-09 | 2017-06-13 | International Business Machines Corporation | Accessibility advisement system for digital assets |
FR3024236B1 (fr) | 2014-07-25 | 2018-10-12 | Universite De Bourgogne | Capteur et dispositif pour la detection de fongicides en milieu hydro-alcoolique |
US10083369B2 (en) | 2016-07-01 | 2018-09-25 | Ricoh Company, Ltd. | Active view planning by deep learning |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003001343A2 (en) * | 2001-06-22 | 2003-01-03 | Wonderware Corporation | Supervisory process control and manufacturing information system application having an extensible component model |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4849879A (en) * | 1986-09-02 | 1989-07-18 | Digital Equipment Corp | Data processor performance advisor |
IL100990A (en) * | 1991-02-27 | 1995-10-31 | Digital Equipment Corp | Multilingual optimization compiler that uses Gladi in the production of a multi-pass cipher |
IL100986A (en) * | 1991-02-27 | 1997-01-10 | Digital Equipment Corp | Method for compiling code |
US5450575A (en) * | 1991-03-07 | 1995-09-12 | Digital Equipment Corporation | Use of stack depth to identify machine code mistakes |
JPH09198242A (ja) * | 1996-01-17 | 1997-07-31 | Sumitomo Electric Ind Ltd | オブジェクト指向設計支援装置 |
US5854929A (en) * | 1996-03-08 | 1998-12-29 | Interuniversitair Micro-Elektronica Centrum (Imec Vzw) | Method of generating code for programmable processors, code generator and application thereof |
US6405173B1 (en) * | 1998-03-05 | 2002-06-11 | American Management Systems, Inc. | Decision management system providing qualitative account/customer assessment via point in time simulation |
CA2256931A1 (en) * | 1998-12-23 | 2000-06-23 | Robert Weisz | Source editing in a graphical hierarchical environment |
US6665866B1 (en) * | 1999-05-28 | 2003-12-16 | Microsoft Corporation | Extensible compiler utilizing a plurality of question handlers |
US6681383B1 (en) * | 2000-04-04 | 2004-01-20 | Sosy, Inc. | Automatic software production system |
US7149734B2 (en) * | 2001-07-06 | 2006-12-12 | Logic Library, Inc. | Managing reusable software assets |
JP2003091416A (ja) * | 2001-09-17 | 2003-03-28 | Toshiba Corp | 業務アプリケーションシステムの機能構成定義方法 |
US8473922B2 (en) * | 2001-09-19 | 2013-06-25 | Hewlett-Packard Development Company, L.P. | Runtime monitoring in component-based systems |
US7246102B2 (en) * | 2001-12-21 | 2007-07-17 | Agere Systems Inc. | Method of improving the lookup performance of three-type knowledge base searches |
US7296223B2 (en) * | 2003-06-27 | 2007-11-13 | Xerox Corporation | System and method for structured document authoring |
US20060242180A1 (en) * | 2003-07-23 | 2006-10-26 | Graf James A | Extracting data from semi-structured text documents |
US7412687B2 (en) * | 2003-10-15 | 2008-08-12 | International Business Machines Corporation | Creating customized applications using templates having points of variability |
US20050229153A1 (en) * | 2004-04-07 | 2005-10-13 | International Business Machines Corporation | Method, apparatus, and program for application design based on diagram specialization |
US20050262489A1 (en) * | 2004-05-12 | 2005-11-24 | Streeter Gordon S | Knowledge representation language and knowledge processing environment |
GB0500150D0 (en) * | 2005-01-06 | 2005-02-16 | Ibm | Method, and aggregation component for aggregating application components |
US7735062B2 (en) * | 2005-01-21 | 2010-06-08 | Outsystems—Software Em Rede, S.A. | Software development system and method |
JP4444867B2 (ja) * | 2005-03-31 | 2010-03-31 | 富士通株式会社 | 業務プロセスモデル作成支援システムおよびプログラム,ならびに業務プロセスモデル作成処理方法 |
US20070022106A1 (en) * | 2005-07-21 | 2007-01-25 | Caterpillar Inc. | System design using a RAS-based database |
US7321883B1 (en) * | 2005-08-05 | 2008-01-22 | Perceptronics Solutions, Inc. | Facilitator used in a group decision process to solve a problem according to data provided by users |
US7873946B2 (en) * | 2006-03-23 | 2011-01-18 | Oracle America, Inc. | Scalable vector graphics, tree and tab as drag and drop objects |
US8433667B2 (en) * | 2007-08-17 | 2013-04-30 | Juniper Networks, Inc. | Embedded reactive and proactive intelligence |
-
2008
- 2008-03-04 EP EP08709277A patent/EP2147370A1/en not_active Ceased
- 2008-03-04 CN CN2008800159383A patent/CN101681263B/zh active Active
- 2008-03-04 KR KR1020097018829A patent/KR101307711B1/ko active IP Right Grant
- 2008-03-04 JP JP2010507861A patent/JP5166519B2/ja active Active
- 2008-03-04 WO PCT/EP2008/052608 patent/WO2008138654A1/en active Application Filing
- 2008-05-05 US US12/114,939 patent/US8234634B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003001343A2 (en) * | 2001-06-22 | 2003-01-03 | Wonderware Corporation | Supervisory process control and manufacturing information system application having an extensible component model |
Also Published As
Publication number | Publication date |
---|---|
US8234634B2 (en) | 2012-07-31 |
KR20090120481A (ko) | 2009-11-24 |
CN101681263A (zh) | 2010-03-24 |
EP2147370A1 (en) | 2010-01-27 |
US20080288944A1 (en) | 2008-11-20 |
JP2010534870A (ja) | 2010-11-11 |
KR101307711B1 (ko) | 2013-09-11 |
JP5166519B2 (ja) | 2013-03-21 |
WO2008138654A1 (en) | 2008-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101681263B (zh) | 用于开发基于软件资产的解决方案的一致方法和*** | |
Acher et al. | Familiar: A domain-specific language for large scale management of feature models | |
CN107273117B (zh) | 一种编程友好型的敏捷代码自动生成*** | |
CN107291450B (zh) | 一种编程友好型的敏捷代码自动生成方法 | |
CN102576363B (zh) | 扩展商业智能***的形式和功能的基于内容的方法 | |
US11392393B2 (en) | Application runtime configuration using design time artifacts | |
US7546577B2 (en) | Method and apparatus for producing software | |
CN101617292B (zh) | 面向生成器图的编程和执行 | |
CN101114226A (zh) | 一种基于模型组件的代码自动生成装置、***及方法 | |
Said et al. | A method of refinement in UML-B | |
Jézéquel | Model‐Driven Engineering for Software Product Lines | |
Mazo | A generic approach for automated verification of product line models | |
CN101907988A (zh) | 用于建立软件套件的***和方法 | |
Limbourg et al. | Multipath transformational development of user interfaces with graph transformations | |
Casare et al. | Medee Method Framework: a situational approach for organization-centered MAS | |
Thalheim | From Models_For_Programming to Modelling_To_Program and Towards Models_As_A_Program | |
Bode et al. | Comprehensive model integration for dependency identification with EMFTrace | |
Apel et al. | A development process for feature-oriented product lines | |
Laguna et al. | UML support for designing software product lines: The package merge mechanism. | |
Le Calvar et al. | Coupling solvers with model transformations to generate explorable model sets | |
Ganser et al. | Staged model evolution and proactive quality guidance for model libraries | |
Eshete | Integrated case based and rule based reasoning for decision support | |
KR20130058348A (ko) | 자산 기반의 요구사항 시뮬레이터 및 요구사항 관리 방법 | |
Gómez-Abajo et al. | Seed model synthesis for testing model-based mutation operators | |
Kechaou et al. | Modularizing and layering metamodels with the modular EMF designer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |