用于开发基于软件资产的解决方案的一致方法、系统和计算机程序的制作方法

文档序号:6477168阅读:126来源:国知局
专利名称:用于开发基于软件资产的解决方案的一致方法、系统和计算机程序的制作方法
技术领域
本发明主要涉及开发软件解决方案;更具体地,本发明应用于 开发基于软件资产的解决方案的方法。
背景技术
软件资产是为了在后续上下文中重复应用而被创建或完成的一 个或多个相关产品的集合。资产的消费者是从解决方案业务建模、 分析(使用的资产是模型)和设计到应用开发(使用的资产是代码 段)的任何类型的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,本目的是通过一种在计算机上执行的用于消耗
可复用软件资产的方法来实现的,其中每个资产可以根据决策树来
5定制,所述资产使用包括元素和属性的结构化语言来描述,某些元 素是可变元素(可变性点),每个可变元素包含至少一个变量元素
(变量),所述方法包括 -用户向计算机指示其想要消耗一个选定资产; -计算机遍历决策树,其中每一决策点被编码为所选资产的可变 元素,所述遍历是通过读取选定资产的描述以及通过以下方式来 处理决策树的每个决策点
-为用户提供与包括所述可变元素的至少一个变量元素的决
策点相关联的可变元素; -从用户收集对所述可变元素的修改; -相应地^f奮改所述可变元素; -存储修改后的资产描述。 本发明的目的还可以通过如权利要求2-12中任一项所述的用于 消耗可复用软件资产的方法来实现。本发明的目的还可以通过根据 权利要求13的包括编程代码指令的计算机程序产品来实现,当所述 程序在计算机上执行时,编程代码指令用于执行根据权利要求1-12 中任一项所述方法的步骤。本发明的目的还可以通过根据权利要求 14所述的包括适于执行根据权利要求1-12中任一项所述方法的装置 的系统来实现。
按照本发明的方法,软件资产消费者是利用基础决策树来指导 的,其中该基础决策树实现了要做出的消耗资产的决策之间的层级 关系。决策树嵌入在资产中,并通过将每一决策点映射到资产中的 可变性点而被编码。决策树分支(从一个决策点到下一个决策点的 链接)由可变性点的依赖关系来表示。此方法允许在一个步骤中建 立基于软件资产的解决方案。
此解决方案的一个优点是,与传统树相反,它可以从非根位置 进入决策树或者从非叶节点退出决策树。利用本发明的方法,可以 在到达叶节点层级之前停止,同时记录决策。这支持高度灵活的工 具。此解决方案的其他优点可以列举如下
-利用本发明的解决方案,消耗资产的规定性指导和资产本身 是通过设计一起完成的,这允许
*规定性指导由资产的结构一致地驱动,不允许差异或不匹
西己资产和指导是同步的。 *资产提供者不必再向 一侧的库提供资产而向另 一侧的另一 库提供资产指导(例如,文本文件),而是向"受指导资 产(guided asset)"数据库提供合二为一的材料(资产+指导)。
可变性点定义(包括可变性点依赖关系)反映了指导消费 者消耗资产所需的决策树的布局。 -指导对于所有规则而言一致地支持角色(role-enabled),这 支持具有合作(包括适当的移交)的端到端接合模型,这允许
*这使得存储部分填充的参数能与资产一起设置,反映当时 做出的决策。
*当他/她已做出与其角色和在消耗可定制资产的过程中相关 的技能有关的决策时,资产消费者可停止。然后他/她可将 产生的资产移交给团队中负责做出后续决策的下一消费 者。此过程允许不同的角色合作解决原始资产中的可变性 点。例如,业务分析师做出与业务过程有关的所有决策, 然后他/她将修改的资产传递给能做出架构决策的软件架构 师,等等。
*在任何级别做出的决策也被自动记录,不需要在该侧有它 们的i己录。
-指导对于所有规则是而言一致地支持工具 *因为每个可变性点定义以标准格式(在我们的实现中的 RAS)形式化地捕获,因此变量对用户的表示以及决策的 过程可以通过工具来支持,不论当前决策是否处理需求、 架构、业务建模、设计或代码。
7*使用相同的标准(在优选实施方式中,是RAS)来捕获资 产内容和规定指导可以显著节约软件厂商的规模单个工 具框架可以在指导和资产消耗上支持专业人员。这使得能
够根据一般性工具来消耗资产(与为每一资产类型开发专 用的工具相反)。
-本发明生成多个参数路径,其仅受依赖关系的约束(一般而 言,依赖关系产生森林而不是树)。本发明的树是动态的,并且通 过消耗方法的每一消费者通路且根据消费者的专业目标被修改。
可使用可复用资产规范v2.2 (RAS)来实现本发明。重点注意, 本发明独立于特定的标准或规范(如RAS),但是可用RAS实现。 而且,这意味着可以通过支持(理解)RAS的任何工具或框架支撑, 包括IBM Rational Software Architect ( RSA ) , RSA是用于软件架构 师和创建基于组件(SOA, J2EE和portal)的应用的;f莫型驱动开发 者的模型驱动的开发和静态分析工具。


图1所示为根据本发明的优选实施方式的创建"受指导资产" 的数据库的逻辑框图2所示为根据本发明的优选实施方式的消耗"受指导资产" 的逻辑框图3所示为根据本发明的优选实施方式的创建"受指导资产" 的方法的流程图4所示为根据本发明的优选实施方式,消耗"受指导资产" 的方法的流程图5 (5A、 5B、 5C)所示为根据本发明的优选实施方式的"受 指导资产"的一个例子的RAS表示;
图6所示为图5描述的"受指导资产"的RAS表示中实现的决 策树的图形表示;
图7所示为根据本发明的另一实施方式,消耗包含多个入口点的"受指导资产"的方法的流程图。
具体实施例方式
在优选实施方式中,本发明用RAS v2.2实现。 图1所示为根据本发明的优选实施方式的创建"受指导资产" 的数据库的逻辑框图。为了使用户开发基于资产的解决方案,必须 创建包含受指导的可复用软件资产的数据库。通常,资产数据库优 选地是关系型数据库(所谓的资产库),其提供到数据的筒单通路。 在下文中,对数据库或库的使用不做区别。在库中,资产被用结构 化语言(例如,RAS)描述为对象,其包括具有属性并链接到文件 产品自身(它是模型、代码)的元件。图l描述了创建"受指导资 产"的主要步骤,包括库中资产的修改的描述。"受指导资产,,的 描述包含关于怎样消耗资产的信息,该信息将为资产消费者提供逐 步的指导。
在优选实施方式中,创建"受指导资产"数据库的方法是用于 消耗计算机(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 )第一资产。在优选实施方 式中,资产以标准化的方式(例如使用RAS2.2)存储在数据库中。 如果找到了资产(对测试310回答"是"),则从资产消耗指导信 息数据库(110)中提取对应的决策树(320)。
标识(330)根决策点。它对应于对决策树分支的第一可能选择。 下 一 步骤包括通过使用先前标识的决策点中可用的信息以及先前从 资产消耗指导信息数据库(110)中提取的树(320 )中所包含的信 息,在资产中创建可变性点(VP),以及设置该VP的属性(340 )。 此信息包括* 决策点的名称名称需要在资产中是唯一的,使得它唯一标识 可变性点(决策点);
* 描述这是针对人(用户)的文本信息,描述在这个点做出的 决策;
* 一组变量决策点包括一组至少一个可能的选择或备选(在下 文中称为变量),其已与资产一起封装。而且,如果资产消费者 没有做改变,这些变量之一可以是被缺省使用的;
* 变量的类型对一个决策点,仅某种类型的变量是可接受的。 这些变量是可替换的(例如,模型、代码);
* 标识变量间的共存规则的参数(例如变量逻辑包含的、互斥 的、可选的);
* 工具为了支持自动化和上下文,每一可变性(决策)点需要 列出可处理它的软件工具(可用于做决策的工具)。图5示出可 变性点的详细例子;
* 标识决策点在决策树中位置的参数例如,其可以是树中祖先 节点的名称。
重复(对测试350回答Yes)同一步骤(340 ),直到考察完树 的所有决策点,即直到在决策树中再没有孩子(对测试350回答No )。 然后受指导资产被存储在受指导资产库(150)中,并且从资产库读 取(300)下一资产。
注意,只有当这些数据以标准化方式存储在资产;肖耗指导信息 数据库(110)中时,被提取的决策树(320)和用于填充VP ( 340) 属性的信息可以由用于消耗资产的程序(120)自动执行。如上所述, 结合图l的说明,此信息目前通常不是标准化的,且操作者(138) 可执行初始步骤通过提供用户接口 (优选地,图形用户界面(135)) 的程序、在资产消耗指导信息数据库(110)中、以使程序(120) 可消耗的形式来创建信息。这个步骤也可在创建受指导资产的阶段 期间同时执行。
图4所示为根据本发明的优选实施方式的消耗"受指导资产"
ii的方法的流程图。用于消耗资产的程序(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 表示,其全面地描述了决策点。请注意,这些细节只是为了说明本 发明是怎样工作而给出的,而不是应当如何以任何结构化语言为基 础(这里是RASv2.2)来实现本发明的限制性定义。此外,在优选 实施方式中,没有提出对RAS 2.2的扩展,而是使用相同的元素和 属性,但是其中的某些是在特定的语义中使用的。在此示例中,考 虑包含支持月良务配置和激活(Service Configuration and Activation ) 的 一 组应用组件的源代码实现的软件资产,如电信行业中所定义的, 例如在eTOM (对电信行业中的业务过程进行标准化的增强型电信 操作图)中。
更精确地,该资产已按如下方式设计,即提出具有多个可能备 选方案的服务构造实现(在服务订单管理系统中),并且利用主要 性能指标兼容性检查(在服务激活管理系统中)也具有可替换的实 现。在电信行业中,业务过程是很稳定的,但是其步骤的实现将会 根据使用的是内部能力还是外部能力而有所不同。在我们的例子中, 如果资产提供者以这种方式设计它,如果资产消费者选择服务构造 的特定备选方案,则他可以在几个外部订单创建实现(在服务设计 系统中)之间进行选择。
图5说明了受指导资产的基于RAS的简化定义,资产的例子如 上所述。为了清楚而简化这个定义。这个定义符合RAS2,2,如果不 想遵循RAS2.2,则可以使用描述资产的任何其他语法选项。这个受 指导资产定 义通过执行图1和图3所述的方法而被创建。RAS是使
述对象的结构化语言。每一元件具有属性(id,描述,引用;)。
描述是XML文本,其在图5A中具有第一个〈asset〉标签而在图 5C中具有最后的々asset〉标签。各种产品之间,标签描述如较早结合 图1和图3而说明的资产的各个可变性点及其变量。这些可变性点 被映射到图6所示的资产的对应决策树的决策点。决策树的决策点对应于当执行图2和图4所述的方法时资产消费者将必须选择的资
产定制的不同选项。
在图5B中,在两个产品上描述两个可变性点,在产品"Telco Service Configuration and Activation component(电孑言刀艮务酉己置和5敫活 组件)"中描述用于"Asset consumption(资产消耗)"的"root(根)" 可变性点(VP),以及在产品"Service Construction (服务构造),, 中描述用于"Service Construction implementation (月l务构造实现)" 的"VP1"可变性点。
在图5B中,根VP是如图3所示的资产定制的通常入口 ,并且 不存在定制的可能备选方案,没有"变量"。属性"reference(引用)" 描述根决策点在决策树中的位置(它是空,因为根没有祖先)。更 一般地,这个"reference"属性将限定VP在决策树中的依赖关系。 VP的描述、变量的类型以及指导变量间共存的规则(如果有的话) 由属性"context-id (上下文id)"提供。根VP的"context-id"的 值是"ctxtl"。由于与RAS 2.2的兼容性,所有VP的"context-id"
对于"ctxl",图5A中的描述仅包含名称和描述,因为没有变量。 图5B示出,在vpl决策点处,资产消费者将具有定制的选择。 vpl VP具有分另'j在产品"Service Construction implementation option 1
(月良务构造实现选项1 ) " 、"Service Construction implementation option 2 (服务构造实现选项2),,和"Service Construction implementation option 3 (服务构造实现选项3 )"中描述的3个变量。 vpl VP的属性"reference"是根(reference= "root"),因为vpl 在决策树中依赖于根。vpl VP的"context-id"的值是"ctx2"。对 于"ctx2",图5A中的描述包含名称、描述、变量类型和共存规则
("互斥的,,)。
在图5C中,在2两个产品上描述两个可变性点,在产品"Service Design System(服务设计系统),,中描述用于"External Order Creation implementation (外部订单创建实现)"的"vp2"可变性点(VP ),以及在产品"KPI Compliance Check (KPI兼容性检查),,中描述用 于"KPI Compliance Check implementation ( KPI兼容性检查实现),, 的"VP3"可变性点。
在图5C中,"vp2" VP具有分别在产品"External Order Creation implementation option 1 (夕卜部i丁单仓J建实J见选工页1) ,, 、 "External Order Creation implementation option 2 (夕卜部订单创建实现选项2 )" 中描述的2个变量。vp2VP的属性"reference"是vpl ( reference-"vpl"决策树中的父节点)。vp2 VP的"context-id"的值是"ctx3"。 对于"ctx3",图5A中的描述包含名称、描述、变量类型和共存规 则("exclusive (互斥),,)。
在图5C中,vp3VP具有分别在产品"KPI Compliance Check implementation option 1 ( KPI兼容性检查实现选项1 ) ,, 、 "KPI Compliance Check implementation option 2 ( KPI兼容性检查实现选项 2 ),,中描述的2个变量。vp2 VP的属性"reference"是vpl ( reference= "root"决策树中的父节点)。vp2 VP的"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)。决策点是根、vpl、 vp2、 vp3。表示了以下的依赖关系vp2依赖于vpl; vpl和vp3依赖于根。在优选实施方式中,依赖关系对应于受指导资产中VP的"reference"属性。对于每一决策点,依赖关系对决策树可能的分支编码。
如果与一个资产相关的消耗指导信息(no)包含设计模型和实
现模型,则在资产中有2个固有的逻辑决策树设计树和实现树。在受指导资产中,仅建立了一个决策树,即,每个资产有一个决策树。当资产中存在多个固有的逻辑树时,我们在开始处添加一个决策点(可变性点),称为根。然后,根可变性点简单地询问用户他想走哪个固有逻辑树(在我们的例子中,是他想消耗设计模型还是实现模型)。这保证了总是有一个且仅一个决策树指导消耗受指导资产。用于消耗资产的方法然后在参数中生成多个路径,仅受依赖关系的约束。
在图6中,树610、 620和630示出消耗图5的受指导资产的3种方式。在610中,消费者选择服务构造实现vpl决策点的选项1,它与其他变量(选项2和选项3)是互斥的(根据"ctx2"上下文的描述)。然后,消费者在外部订单创建实现vp2决策点选择选项2。
对于消耗的资产620,对受指导资产没有改变,因为用户已决定不消耗它。在630中,资产消费者在决策树的相继的决策点选择了不同的变量。
用于消耗受指导资产的方法的扩展允许多于一轮处理,这在图7的流程图中描述。假设已执行消耗资产的第一轮处理(图4),且还未完全遍历受指导资产的决策树,即该树的所有决策点未被处理(430, 440):未被处理的决策树的决策点的对应可变性点未被更
16新(440)。对于第一轮处理之后的处理,消费者可重新进入决策树 考察通过一个"入口点",它可以是在以前通路中已处理过(430, 440)的决策点或者是最近已访问的决策点之后(在相关树中)的决 策点。在这个更一般的图7的流程图中,建议消费者从决策树点所 有入口点中选择一个入口点,包括决策树的根,它是图4的流程图 中第一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的受指导 资产4苗述所示的〈reference value二filename.jar〉来添力口只寸应的 石马。生成的已修改受指导资产可能对于其他消费者而言是有用的,以及在 这种情况下,将增加的受指导资产的结果存储为新的"受指导资产,, 可能是有利的。增加的受指导资产的下 一 消费者将通过处理尚未处 理的决策点来定制它。根据消费者的专业能力和偏好以及依据使用
的结构化语言(RAS),可以有其他方式修改VP ( 430 )。
决策点处理和对应的可变性点修改可以发生在资产创建时(缺 省值),或者由其他消费者在资产消耗时。例如,架构师可能已对 资产做出架构决策当设计者得到资产且必须做设计决策时。
一般地,部分消耗的资产被存储(740)用于被同一用户、或者 执行与资产消耗不同角色的其他用户(架构师、设计者、IT专业人 员、安全专家等)进一步消耗。
图7所示为本发明的解决方案的最大优点资产消费者可以在 他/她做出了与他/她在消耗可定制资产的过程中的角色和相关技能 的决策时停止。然后他/她可将产生的资产移交给团队中负责做出后 续决策的下一消费者。如上文所述,这个方法允许不同的专业人员 合作解决原始资产中的可变性点,如业务分析师、软件架构师,作 为设计者和实现安全的不同设计专家。
注意,即使在给定资产中只有一个树被编码,向用户提供多个 入口点非常类似于提供多个树(子树)指导资产的消耗。
权利要求
1.一种在计算机上执行的用于消耗可复用软件资产的方法,每个资产可以根据决策树来定制,所述资产使用包括元素和属性的结构化语言(RAS)来描述,一些元件是可变元素(可变性点),每个可变元素包含至少一个变量元素,所述方法包括用户向计算机指示其想要消耗一个选定资产(400);计算机遍历决策树,其中每个决策点作为所述选定资产的可变元素而被编码,所述遍历是通过读取所述选定资产的描述以及处理所述决策树的每个决策点来进行的,所述处理是通过向用户(430)提供与包括所述可变元素的所述至少一个变量元素的决策点相关联的可变元素;从所述用户(430)处收集对所述可变元素的修改;相应地修改所述可变元素(440);存储经过修改的资产描述(740)。
2. 根据权利要求1所述的方法,其中遍历决策树的步骤在一轮 处理中执行。
3. 根据权利要求1所述的方法,其中遍历决策树的步骤重复部 分地执行,执行的次数等于遍历整个决策树所需的处理的轮数,这 是通过在每次部分遍历处理中,读取先前部分遍历处理中存储的 所述经过修改的资产描述;以及开始处理在所述先前处理中最后处 理的决策点之后的每个决策点。
4. 根据权利要求3所述的方法,其中遍历决策树的步骤还包括 读取具有根(420)标识属性的可变元素;读取具有根依赖关系属性的所有可变元素;读取依赖于根的可变元素的标识属性;相继地读取具有依赖关系属性的所有可变元素,所述可变元素 的标识属性已经读取。
5. 根据权利要求1-4中任一项所述的方法,其中在处理决策点c之后,部分遍历树的每一轮处理由用户主动停止。
6. 根据权利要求1-5中任一项所述的方法,其中使用可复用资 产规范(RAS)作为结构化语言来描述所述资产。
7. 根据权利要求6所述的方法,其中所述依赖关系属性是RAS "reference"属性。
8. 根据权利要求1-7中任一项所述的方法,其中用户提供、计 算机向用户提供、以及计算机从用户处收集的步骤是通过图形用户 界面完成的。
9. 根据权利要求1-8中任一项所述的方法,还包括以下初始步骤创建资产描述(受指导资产),对于相应资产决策树中的每个 决策点,所述资产描述包括具有标识属性和依赖关系属性(reference ) 的元素,所述依赖关系属性包含所述决策点在所述资产决策树中所 依赖的元素的标识属性。
10. 根据权利要求1-9中任一项所述的方法,其中从用户处收集 修改的步骤(430 )包括从可变元素的所有变量元素中选择至少一个 变量元素。
11. 根据权利要求1-10中任一项所述的方法,其中从用户处收 集修改的步骤(430)包括从用户处收集新的变量元素以及随附代码 元素。
12. 根据权利要求1-11中任一项所述的方法,还包括 在完成对所述决策树的遍历之后,将所述经过修改的资产描述应用于所述资产的内容,以创建定制的资产。
13. —种包括编程代码指令的计算机程序产品,当所述程序在 计算机上执行时,用于执行根据权利要求1-12中任一项所述的方法 的步骤。
14. 一种包括适于执行根据权利要求1-12中任一项所述的方法 的装置的系统。
全文摘要
本发明涉及用于开发基于软件资产的解决方案的一致方法、系统和计算机程序。具体地,公开了一种用于消耗可复用软件资产的方法、计算机程序和系统,所述资产用元件和属性描述,所述资产包含至少一个可变元素(VP),可变元素包含至少一个变量。用户通过首先选择要消耗的资产在计算机上执行程序。对应于资产的决策树被遍历,每个决策点对应于可变元素。通过让用户输入以修改对应的可变元素的变量来处理决策点。存储修改的可变元素。决策点的依赖关系通过可变元素中的依赖关系属性来指示。程序可被用户主动停止或者当完全遍历决策树时停止。当决策树被部分遍历时,程序可在最近处理的决策点之后重启,从被部分修改的对应可变元素开始。
文档编号G06F9/44GK101681263SQ200880015938
公开日2010年3月24日 申请日期2008年3月4日 优先权日2007年5月16日
发明者B·波尔捷, R·科克雷 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1