没有合适的资源?快使用搜索试试~ 我知道了~
可在www.sciencedirect.com在线获取理论计算机科学电子笔记339(2018)43-62www.elsevier.com/locate/entcs基于本体的建筑知识共享、集成和检索方法Luciana Roldan1 Silvio Gonnet2 Horacio Leone3国立Tecnol'ogicaNacional大学,圣菲理工学院,CONICET阿根廷圣菲摘要在软件体系结构项目中产生的体系结构知识(AK)是软件组织的宝贵资产。尽管许多组织已经采用支持工具来捕获生产的AK,但是在使其可供消费者取回方面仍然存在一些困难。此外,组织的知识边界可以扩展到共享的AK存储库或由其他组织公布。因此,组织必须处理知识表示的异质性,这使得来自多个来源的知识的集成变得复杂。 需要有一种从各种来源分享、整合和检索科学和知识的方法,使各组织能够重新审视和检索自己和他人过去的决定,作为今后决定的基础。基于ISO/IEC/IEEE 42010标准,提出了一种基于本体的知识共享、集成和检索方法。 开发了概念验证以应用该方法在一个知识获取管理工具上,进行了一个知识获取的场景关键词:软件体系结构,本体,软件体系结构知识,知识检索1引言随着软件系统变得越来越大和不断发展,它们的软件架构变得越来越复杂,软件架构师需要应对不断增长的架构知识。在几个项目的软件架构过程中产生的知识是软件组织的宝贵资产尽管许多组织已经采用了一些策略和工具来支持体系结构知识(AK)的生产者(架构师、设计师、文档管理员),但在将AK提供给AK消费者(维护者、开发者、评审者等)方面仍然存在一些困难1电邮地址:mailto:lroldan@santafe-conicet.gov.ar2电邮地址:mailto:sgonnet@santafe-conicet.gov.ar3电邮地址:mailto:hleone@santafe-conicet.gov.arhttps://doi.org/10.1016/j.entcs.2018.06.0041571-0661/© 2018作者。出版社:Elsevier B.V.这是一篇基于CC BY-NC-ND许可证的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。44M.L. Roldán等人/理论计算机科学电子笔记339(2018)43其他管理工具等)。我们发现,实际上,自组织尝试从以前的项目中检索和重用工件、决策及其原理,但由于一些障碍,他们发现这项任务很困难[4]。 阻碍AK步枪回收和使用的障碍之一目前,体系结构知识管理(AKM)工具没有提供有效的知识恢复功能,为了充分利用这些知识,组织需要适当的方法来有效地探索和恢复这些知识,此外,还可以扩展知识库的检索范围,以包括来自其他组织共享或公开的知识库的知识。在这种情况下,障碍是知识表示的异质性和来自多个来源的知识的集成因此,需要一种方法,能够从现有的AK资源中整合、共享和检索架构知识,这应该使组织能够重新审视和检索自己和他人本体和语义网是表示知识和编码其意义的强有力的机制它们可以用于建模和表示在若干来源中发现的知识,例如在AKM工具中生成和存储的知识,以便使其能够作为重用资产进行集成、探索、恢复和开发。本文描述了一个初步的基于本体的方法SAK-SIR,它是基于ISO/IEC/IEEE 42010标准,集成,共享,并从不同的SAK源检索知识。然后,作为概念的证明,我们应用的方法,共享,集成和检索知识的AKM工具,作者已经开发了在以前的作品(Traced)提供的知识。知识检索的情况下开发的TracED元模型包括支持捕获的软件体系结构设计过程(SADP)的完整演化的本文的结构如下。本体和语义Web技术的背景,以及ISO/IEC/IEEE 42010在第2节中给出。在第3节中,确定和表征了SAK的可能来源,并介绍了SAK-SIR方法在第4节中,我们应用了集成AKM元模型和TracED工具存储库的方法[14],[16],并从历史SA项目中检索SAK。第5节讨论相关词汇。第6节给出了结论。2背景2.1知识检索基于本体的技术已经被接受为用于标记和执行语义搜索的手段此外,本体可用于提供对不同术语的共同理解,并使知识可用于未来使用。 在之前的论文[17]中,我们已经采取了第一步来构建软件架构知识的本体(SAKOnto),其中包括概念,关系和约束来表示来自几个类别的知识:i)一般知识,ii)上下文知识,iii)设计知识和iv)推理知识[19]。根据定义,本体论是一种明确的形式化规范,M.L. Roldán等人/理论计算机科学电子笔记339(2018)4345一个领域中的概念(也称为类)以及它们之间的关系[21]。本体被用于各种应用领域,以促进对领域中的信息结构的共同理解,并使得能够重用领域知识。本体使相互关联的领域概念的层次分类成为可能。它们可以使用RDF4模式和OWL5来表示,OWL 5是一种表达能力更强的语言。RDF的使用使得本体具有人类可读性和机器可解释性,允许对知识进行查询和推理[7]。OWL是一种用于定义和实例化Web本体的语言。OWL本体可以包括类、它们的属性和实例的描述。给定一个本体,OWL形式语义指定如何导出其逻辑结果(推断新知识),换句话说,事实不是字面上存在于本体中,而是语义所包含的。关于本体用于知识检索的潜力,应该注意的是,数据集中的RDF三元组表示明确描述并可直接访问的知识对象之间的关系因此,SPARQL6查询与用户对领域的心理模型更好地保持一致在关系数据库上的传统查询中,必须遍历连接链的查询特别复杂,而在SPARQL中非常简单使用RDF,模式级信息的存储和查询方式与数据相同。这意味着概念数据模型可以通过查询进行充分的探索。 它还可以轻松地创建灵活驱动的查询。 一项关键优势RDF的最大优点是它被专门设计用于容易地合并不同的数据源。相应地,SPARQL包括在单个查询中调用两个或多个数据源的语法。因此,这些语义技术适合用于从异构知识源中检索知识。2.2ISO/IEC/IEEE 42010标准和AKM工具描述软件架构的ISO/IEC/IEEE 42010国际标准[9]为软件架构的描述提供了核心本体。标准体系结构是用体系结构描述来描述的,体系结构描述包括系统元素、系统元素之间的关系、系统设计的原则以及指导系统在其生命周期中演化的原则。ISO/IEC/IEEE 42010提供了一个模型,描述了记录SADP及其原理所需的标准认为AD元素是体系结构描述中的任何构造。架构描述包括一个或多个架构视图。架构视图根据架构视点来表达感兴趣的系统的架构。一个观点是由一个观点决定的。 架构视图由一个或多个架构模型组成。架构模型使用适合于要处理的关注点的建模约定。这些会议-4https://www.w3.org/TR/rdf-schema/5https://www.w3.org/TR/owl-features/6https://www.w3.org/TR/rdf-sparql-query/46M.L. Roldán等人/理论计算机科学电子笔记339(2018)43由管理该模型的模型类型指定。一个模型类型可以通过指定一个定义其核心构造的元模型来记录。Meta模型表示AD元素,这些元素包括模型类型的词汇表.元模型应该呈现实体、属性和关系,它们都是架构描述元素。该标准还指出,当一个视点指定多个模型类型时,指定一个统一模型类型定义的单个视点Meta模型通常是有用的。此外,使用单个元模型来表达多个相关的视点通常很有帮助。架构理性记录了对已经做出的架构决策的解释、论证或推理。一个决策可以通过几种方式来影响体系结构。这些可以在架构描述中反映如下:要求AD元素的存在;改变AD元素的属性;触发交易分析,其中一些AD元素,包括其他决策和关注点,被修改;提出新的关注点。迄今为止最广为人知的AKM工具[19]都有一个相关的存储库存储和管理AK。事实上,AKM工具之间的关键差异因素之一是相应存储库的数据模型。这些数据模型定义了架构构造及其相互之间的关系,因此代表了在软件架构设计和分析期间使用或生成的架构设计知识。数据模型可以帮助组织在软件架构过程中定义和获取有关其架构资产和设计原理的各个方面的数据[4]。过去十年的几种AKM方法描述了设计决策和其他软件工件之间的联系,以及如何表示决策因此,将这些概念整合到一个本体中并不是一个困难的任务,RDF和OWL这样的语言用于定义层次关系,并在概念和实例之间设置任何类型的语义关联然而,每种AKM方法都提出了自己的架构描述元素,其中包括一系列特定概念,这些概念需要在与ISO/IEC/IEEE 42010标准的概念兼容的本体中进行适当的表示。许多概念可能在标准中缺失,或者可能存在但以通用方式表达这意味着在某些情况下,需要专家或本体工程师的工作来识别和规范概念,关系,属性和规则,以便定义本体。3SAK-SIR方法共享、集成和检索软件体系结构知识的方法(SAK-SIR方法)在Tang等人[19]重新访问的AK生产者-消费者模型中进行了研究,该模型描述了AK的一般活动和利益相关者。这种生产者-消费者模型的核心是推理知识的概念,包括设计决策、基本原理、考虑的替代方案、做出的交易以及确定的力量与这些知识相关的是:一般知识,M.L. Roldán等人/理论计算机科学电子笔记339(2018)4347Fig. 1. SAK-SIR方法概述。情境知识和设计知识,这些知识可以追溯到推理知识.一般知识包括在任何系统设计中可用的知识(例如架构风格,模式和策略),而上下文知识包含关于问题空间的知识,这是特定于系统的,例如架构重要需求和项目上下文。设计知识包括关于系统设计的知识,例如,架构模型或视图。这四种知识共同构成了建筑知识的概念。消费者可以学习和搜索/搜索此AK。此外,消费者可以评估推理/设计知识。设计者通过构造产生推理知识,通过综合产生设计知识.生产者还可以提取和应用一般知识,同时构建/合成和集成上下文知识。最后,生产者可以分享生产的建筑知识。SAK-SIR方法关注于生产者如何共享他们拥有的软件体系结构知识(SAK),如何将其与其他知识源集成,并提供工具指南,使消费者能够探索和检索知识。SAK-SIR由五个阶段组成,并非所有阶段都完全由计算机支持,因为仍然需要一些人类专家的工作。它们是:A)SAK源识别,B)SAK处理,C)SAK集成,D)SAK加载,以及E)SAK检索。SAK-SIR方法的概述如图1所示。48M.L. Roldán等人/理论计算机科学电子笔记339(2018)433.1SAK源识别阶段(A)SAK源的特征在于它们是组织的内部还是外部,关于它们的内容是基于文件的,还是基于本体的,还是在数据库中结构化的,关于它们提供的AK类型(一般,上下文,设计或推理)等。在这项工作中,已经确定了以下知识来源类型(KS-TX):• KS-T1:软件架构文本和出版物,网页和目录,标准。这些知识是通用的,与组织的特定架构设计项目• KS-T2:软件架构文档,架构决策模板,Wiki(基于文件的方法,基于本体的方法)。它们的内容来自特定的建筑设计项目。• KS-T3:来自架构知识管理工具的元模型和项目存储库。KS-T1来源(图1)是公开的,提供一般AK知识,如回顾SA实践、架构模式、风格和策略,以及有关方法和文档方法的知识[3],[20]。KS-T1源代码大多是文本文档。KS-T2和KS-T3 SAK源可以是组织内部的,也可以由外部组织共享/公开,并提供有关由产生它的组织开发的SA项目的知识。KS-T2源提供分散在多个文档中的知识,这些文档是不同SA项目的产品。它们大多来自软件架构师使用某种文本处理器创建的文档。此外,它们可以是从基于文件的方法生成的文档,或者采用模板方式。在这一组中,我们考虑基于本体的文档方法,实现了基本的软件本体和语义wiki工具,从而解决了基于文件的文档在知识检索方面的局限性。KS-T3源来自AKM工具[11],[5]。这些知识来自于AKM工具实现所基于的元模型和使用该工具开发的SA项目。在KS-T3范畴内,还可以考虑使用关于通用软件架构知识的本体SAK来源特征的识别源于选择必须应用的适当方法和技术,以处理知识并使其与其他可用的SAK整合成为可能3.2SAK处理阶段(B)根据知识来源,这一阶段采用的技术和机制各不相同。对于文本文档(KS-T1和KS-T2),该阶段包括一系列基于自然语言处理(NLP)的提取技术,以及必须使用复杂工具执行的术语和属性识别。也可以使用网页解析。为了添加语义,一些注释或标记机制也是必要的为这些M.L. Roldán等人/理论计算机科学电子笔记339(2018)4349知识源的类型,应创建特定的领域本体。定义本体的目的有两个:识别文档(文本文件)中的术语(或个体)及其关系;以及使这些知识源与驻留在其他本体中的可用知识的集成成为可能最后一项活动应作为SAK集成阶段的一部分完成当考虑KS-T3源时,需要一些自适应机制。 可能需要对特定用途的包装器或适配器进行编程,以将数据转换为通用格式,或者使用AKM工具提供的API来访问其存储库。3.3SAK集成阶段(C)这一阶段是SAK-SIR方法的核心。知识集成活动由SAK本体网络提供支持。SAK本体网络分为四个本体级别,如图2所示。它们是:L1)ISO/IEC/IEEE 42010标准本体层。ISO/IEC/IEEE 42010标准[9]本体构成了描述SAK本体网络中因此,所有的网络元模型和领域本体继承相同的基本概念和关系,这是本体集成的必要条件L2)元模型层。 该层定义了表示AKM方法实现的架构描述的术语的概念、关系和规则。这一层主要是通过扩展层次结构的概念和对象属性构建在L1上的L3)软件体系结构域层。此层构建在L1和L2层上,包括SA域特有的概念。一个域包括一组概念,这些概念涉及在SA项目中用于描述软件体系结构的构建块类型及其可能的关系。一个域还可以包括通用设计决策的定义,如设计模式和风格。L4)项目层。这一层由填充SAK本体的个体组成,SAK本体的rdf:type由来自上述任何层的概念或对象属性给出。尽管网络中集成的所有AK元模型和领域本体共享相同的概念基础,但它们仍然需要与其特定知识保持一致,以便能够从不同的本体中检索知识。RDF和OWL提供了有用的结构来指定属性公理,如类之间的等价关系(owl:equivalentClass)和与其他属性的关系(owl:equivalentProperty和owl:inverseOf),以及逻辑属性特性(owl:SymmetricProperty和owl:TransitiveProperty)。作为SAK网络基础并构成L1层的本体是bor-50M.L. Roldán等人/理论计算机科学电子笔记339(2018)43反 对 其 他 作 者 的 建 议 。 Guessi 等 人 [6] 提 出 了 OntolAD , 这 是 一 种 基 于ISO/IEC/IEEE 42010标准的OWL 2架构描述的本体。该本体是通过将原始AD构造转换为OWL类而构建的。ISO/IEC/IEEE 42010标准中描述的许多关系在Onto-1AD中被实现为对象属性。但是,作者没有提供对象属性的域或范围。因此,本体得到了丰富,为每个对象属性提供了足够的域和另外,OntolAD上的一些公理限制性太强,我们解释它们不符合标准语义,因此将它们删除。应该注意的是,SAK-SIR方法不是完全计算机支持的,因为人工干预是必要的。在集成阶段,本体工程师或专家的作用是至关重要的,以保证质量和表达的知识模型。例如,关于来自KS-T3源的知识的集成,本体工程师(在相关组织的架构师的帮助下)应该识别想要集成的AKM工具的元模型中定义的概念。因此,这些概念必须被定义为IEEE 42010标准本体(stprefix)中概念的扩展。例如,让我们考虑AKM工具元模型本体(akmprefix)包括一种特定类型的视图,用于使用模板方式描述详细决策。然后,类akm:DetailedDecisionViewType必须被定义为st:ArchitectureViewType的子类,以及涉及该概念的必要数据属性、注释属性和对象属性,以及与这种视图相关的尚未在本体中定义的其他概念。3.4SAK装载阶段(D)虽然前一阶段涉及本体网络中元模型/方案的集成(AKM工具或文档集的属性和类的词汇表的含义),但SAK加载阶段涉及该方案的人口。填充本体的个体来自在几个SADP项目期间生成的知识/工件本体填充可以通过手动创建必要的实例和三元组来完成,或者通过特定的加载程序将数据从存储库/数据库转换为方便的RDF三元组。JENA本体API可以用于此目的。3.5SAK回收阶段(E)该阶段包括一组用于探索和检索SAK的工具和机制,这些工具和机制可以从内部/外部源收集并集成到SAK本体网络中。由于SAK消费者对知识的不同需求,该方法必须提供一个灵活的接口,用于在本体上放置查询(查询编辑器,图1中)。一方面,它必须是直观和用户友好的。此外,另一方面,它必须足够强大,以创建复杂的查询。M.L. Roldán等人/理论计算机科学电子笔记339(2018)4351图二. SAK本体网络层。查询编辑器应帮助用户定义查询。可以通过推理机对可用的SAK知识进行复杂的推理,以生成非显式知识。此外,一组预定义的SPARQL查询可以作为服务执行,这将实现不同AKM工具之间的互操作性4应用SAK-SIR方法虽然所提出的方法是为了集成异构的体系结构知识,从几个来源,在这项工作中,我们减少的范围,以实现TracED的概念与ISO/IEC/IEEE 42010标准的集成,并填充一个数据集的知识收集从不同的SAK项目。然后,一些查询被放置到检索有价值的知识,从SA的进化。4.1SAK来源识别Traced7是作者开发的AKM,可用于研究和教育目的。Traced所基于的元模型很容易访问,并已发布[14],[16]。Traced存储库保留了在不同SA域上开发的几个项目中捕获的知识,并具有结构化表示和一些文本文档(决策7http://traced-doc.appspot.com52M.L. Roldán等人/理论计算机科学电子笔记339(2018)43图3.第三章。用于支持SA模型版本的版本控制和跟踪的TracED元模型模板),这是由传统的数据库支持。然而,Traced工具的存储库尚未与其他各方共享,也未公开,并且没有用于访问其内容的API。因此,它构成了作者组织的内部知识来源4.2SAK加工上述特征(Traced是一个内部知识源,因此组织知道工具4.3SAK集成在以前的工作[17]中,SAKOnto本体是从头开始构建的。采用基于能力问题的方法来指导SAKOnto开发过程[7]。分析了Traced的元模型,并在本体中识别和定义了它们的主要术语和关系。然而,为了应用SAK-SIR方法,并实现在本体网络中的成功集成,本体需要基于ISO/IEC/IEEE 42010标准的概念进行指定。这意味着一些概念将在元模型层定义,作为标准定义的一些类和对象属性的“专门化”。因此,集成阶段包括将本体添加到本体网络中,该本体包括用于表示TracED元模型的所有概念、关系和公理(图3)。M.L. Roldán等人/理论计算机科学电子笔记339(2018)4353元模型层TracED[14],[16]认为架构设计决策是软件架构两种状态之间的该工具采用了一个操作的角度来看,设计决策是通过执行一系列的设计操作来实现的。设计操作是由设计人员执行的操作,这些操作在设计过程的产品上进行。这些产品,在本提案中称为设计对象,构成了最终希望在现实世界中实现的抽象,并且是设计师所做的其他设计决策的结果。典型的设计对象是正在设计的工件的结构元素组成软件体系结构的组件和连接器),以及要满足的规范(即,质量要求,如可修改性或性能)。这些对象随着SADP的发生而演变,产生了几个版本。在设计过程的给定点处的设计对象的版本的集合构成软件体系结构的模型版本模型版本描述了设计过程在该点的状态在SADP项目期间做出的设计决策可以在一系列操作中实现。对模型版本(称为前趋模型版本)应用操作序列φ,以便生成新的模型版本(称为后继模型版本)。在这种方法下,SADP遵循树结构,其中每个节点代表一个模型版本。初始模型版本是树的根,并且每个弧表示应用于前趋模型版本以获得新模型版本的操作序列。因此,模型版本是由自初始模型版本以来应用的所有操作序列给出的设计过程历史的结果图3显示了TracED元模型的主要元素,其中设计对象在两个级别上表示:存储库级别和版本级别(请参见VersionsandRepository包)。由于在设计项目期间发生的自然进展,存储库级别为每个创建和/或修改的设计对象存储库中保存的任何实体都被视为可版本化的对象。此外,不同版本对象之间的关联也保存在存储库中,以表示架构模型的配置(关联,图3)。版本级别维护由每个设计对象的演变产生的不同版本,称为对象版本。可版本化对象与其每个对象版本之间的关系由Version关联捕获。因此,对于一个给定的设计对象,一个唯一的实例被保存在存储库中,它在不同模型版本中的设计过程中假设的所有版本都属于版本级别。因此,Traced将架构模型的演化表示为历史,其中通过对先前模型版本应用一系列操作来生成新的模型版本。应用于模型版本的每个操作序列通过模型历史链接(由类关联Model History表示,图3)捕获,并且在操作序列中执行的每个操作通过版本历史链接(由类VersionHistory表示,图3)捕获,该版本历史链接还在操作所应用的对象版本之间保持跟踪54M.L. Roldán等人/理论计算机科学电子笔记339(2018)43作为操作执行的结果,生成的对象版本。如图3所示,ModelHistory链接是各种VersionHistory链接的聚合在Domain包中,中心类是Design对象类型,它提供了用于定义架构模型或视图的可能构建块类型的元素设计对象类型根据它们适合在TracED中描述的视图类型进行专门化。考虑到TracED支持诸如组件和连接器、部署 [3] 和 架 构 原 理 模 板 等 视 图 类 型 。 设 计 对 象 类 型 专 用 于StructureBehaviourDeploymentDOT和Ra- tionaleDOT类。每种类型的属性都由Property类的一组实例指定同时,通过域关系描述了域中不同设计对象类型之间可能存在的关系。TracED元模型还提供了用于指定和执行适用于域中的操作的元素[14],[16],[15]。操作是根据添加、删除、修改原语和其他域操作来定义的,使操作能够实现与应用模式一样复杂的操作,并根据所实现的要求设置显式的跟踪。由于空间限制,这些细节在本案例研究中被隐藏。在本体网络中集成TracED元模型意味着将每个术语定义为一个owl:class,并在L1中为相应的概念设 置 适 当 的 rdf : subClassOf 属 性 。 图 4 显 示 traced :SoftwareArchitectureDomain是st:Metamodel类的一个特化。traced:DesignObjectType、traced:DomainRelationship和traced:Property概念分别定义为st:Entity、st:Relationship和st:Attribute类的专门化另一方面,traced:ModelVersion被定义为子类或st:ArchitectureModel,traced:ModelHistory被包括为子类或st:ArchitectureDecision。图4显示了将元模型概念定义为类和相应的对象属性,它们被插入到预先固定为跟踪的RDF图中。对于每个类,添加了一组属性注释,以维护本体中每个概念的元数据。rdfs:label和rdfs:comment注释属性用于表示概念的名称和概念的描述此外,rdfs:isDefinedBy注释属性指示定义主题的本体。畴层Traced允许定义多个域,这取决于要设计其架构的系统的上下文。 特定设计对象类型 的域被包括在SA本体网络的域层,作为标准和元模型层中的概念的子类,因此使用rdfs:subClassOf和rdfs:subPropertyOf属性。在图5中,显示了域集成的部分视图,其中在本体中指定了IaaSCloudDomain(定义云系统架构的设计对象类型的域)在这个领域中,设计对象类型专门用于云系统的特定组件:包装器,数据库和同步器。M.L. Roldán等人/理论计算机科学电子笔记339(2018)4355LSISO/IEC/IEEE 42010标准本体层rdfs:st:ArchitectureViewst:ArchitectureViewpointst:ModelKindst:元模型 st:包含st:实体rdfs:subClassOfst:架构原理rdfs:subClassOfrdfs:subClassOfst:ArchitectureModelst:ArchitectureDecisionst:影响st:关系st:属性rdfs:subClassOfrdfs:subPropertyOFrdfs:subClassOftra MV跟踪:SoftwareArchitectureDomain跟踪:sourceMVStraced:StructureBehaviourDeploymentDOTtraced:建筑设计tr不元模型层跟踪:捕获跟踪:结果跟踪:版本traced:操作跟踪:版本历史跟踪:ObjectVersion跟踪:VersionableObjectAced:argumen标签:Belongtraced:属性rdfs:subClassOftraced:模型历史跟踪:模型版本域名关系DomainRelationshiptraced:DesignObjectTypeced:结果rdfs:subClassOf英文名:Thing…ISO/IEC/IEEE 42010斯特尔标准本体层st:实体rdfs:st:包含rdfs:subClassOf元节点层traced:designObjectTypesrdfs:subClassOftraced:StructureBehaviourDeploymentDOTrdfs:subClassOfRDF:软件体系结构域层traced:Componentrdf:type标签:Wrapper追踪:IaaSCloudDomaintraced:设计对象类型跟踪:数据库traced:设计对象类型跟踪:traced:设计对象类型跟踪:SoftwareArchitectureDomaintraced:DesignObjectTypest:元模型st:st:建筑st:ADElementst:架构描述见图4。 用于支持版本控制和跟踪集成的SA模型版本的TracED元模型概念在SAK Ontology Network中。图五. ISO/IEC/IEEE 42010标准概念与TracED元模型和域概念集成的部分视图。4.4SAK加载我们在Apache Fuseki服务器上加载了本体。关于这项工作的范围,我们创建了一个数据集“SAKOnto”,它有两个RDF三元组图。 第一个图是从可用的IEEE 42010标准本体(OntolAD,前缀st:)加载的,它导入OntolAD的命名空间,第二个图是从TracED本体(前缀traced:)加载的。TracED图使用从使用TracED工具开发的项目中收集的知识进行填充TracED数据库是直接的,因为它是作者组织的内部工具,所以项目的数据通过使用JENA API实现的加载程序作为RDF三元组导入。接下来,描述了在云迁移域中开发的项目片段,该项目片段从TracED存储库加载[15]。56M.L. Roldán等人/理论计算机科学电子笔记339(2018)43SportsInc是一家传统上致力于运动服装和服装批发的公司。在过去十年中,该公司将其业务扩展到电子商务零售,维护硬件和软件基础设施以运行网上商店。由于在线销售的数量不断增加,该公司决定将网上商店迁移到云端,以降低基础设施和维护成本,从而引发了软件架构需要满足的可扩展性,性能和可用性的新质量要求。尽管如此,SportsInc还是决定保留传统系统,该系统主要用于批发订单和分销管理。出于安全原因,SportsInc希望保持对数据库的完全控制,这些数据库将继续部署在本地。虽然TracED提供了一个可视化的用户界面,其中使用表单输入参数值来执行操作,并且使用组件和连接器的观点来呈现所得到的模型版本,但在该项目中做出的架构决策以应用于模型版本的设计决策序列的紧凑格式呈现。该项目的第一个模型版本是mv0,其中SportsIncSystemv1是该系统,零售模块体系结构由现有的Presentationv1、urgesLogicv1和DataAccesv1组件以及批发模块和DBSportsIncv1数据库的其他组件提供。第一个决策体现在操作序列φ1中,该操作应用于mv0,并包含对架构必须满足的新质量要求的识别。φ1={addQualityRequirement(SportsIncSystemv1,下一个决定是根据IaaS合同与云服务提供商达成协议,以迁移零售子系统(网络商店)的组件因此,云服务提供商(CSP)提供了一个Web服务器虚拟机,Web商店的表示层将在其上运行。类似地,业务逻辑层和数据访问层被移动到云,从而将它们分配在应用服务器虚拟机的顶部。为了最小化用户这些决策是由以下操作序列捕获的,从mv1开始。φ2={addCloudProviderNetwork(SportsIncSystemv1,φ3={addV irtualMachine(CSPNetworkv1,M.L. Roldán等人/理论计算机科学电子笔记339(2018)4357φ4={reallocateComponent(Presentationv1,VM-WebServerv1),reallocateComponent(BusinessLogicv1,VM-AppServerv1),reallocateComponent(DataAccessv1,VM-AppServerv1)}为了保持对SportsInc虚拟专用网络的安全访问,VPN网关服务被承包了。 这个决定在操作序列φ5中具体化应用于模型版本mv4,从而生成mv5。φ5={addComponent(CSPNetworkv1,然后,将用户认证、数据验证和订单提交责任分配给Web组件的用户界面(表示层),以使销售代表能够在系统中输入订单(模型版本mv5上的操作序列φ7)。φ6={addResponsibility(Presentationv2,下一个决策,在模型版本mv6上应用的操作序列φ7中具体化,涉及应用云模式,该云模式添加了一个wrapp-per组件,该组件将负责将订单提交从Web系统封装和转发到Whole-sale子系统中的OrdersManagement组件包装器转发的订单通过VPN网关组件进行通道化φ7={addWrapper(CSPNetworkv1,'Orders-Wrapper',[‘Resp-ReceiveRequest’, ‘Resp-ForwardRequest’], [‘PortOW1’, ‘PortOW2’],为了提高Web系统性能并减少延迟,架构师决定复制数据库并将其部署在VM-DBServer上(由操作序列φ8、φ9和φ10表示)。 复制的数据库包含一个简化的数据模式,其中包括产品目录,成本和当前的订单。此外,还集成了一个同步服务,它在本地运行,并通过VPN网关与主数据库和复制数据库进行通信(为了减少项目规模,一些决定被驳回)。φ8={replicateDataBase(DBSportsIncv1,‘Products catalogue and marketing schemes’, VM-DBServerv58M.L. Roldán等人/理论计算机科学电子笔记339(2018)43φ9 ={addConnector(CSPNetworkv1,'DataTool-DBCatalog',[φ10 ={synchronizeDatabases(SportsIncSystemv1,'DBSynchronizer',[用关于这个项目的知识填充本体意味着对于每个执行的操作序列,必须创建一个个体,作为traced:ModelHistory的实例。此外,每个模型历史都由VersionHistory的 实 例 组 成 , 这 些 实 例 表 示 每 个 应 用 的 操 作 。 生 成 的 模 型 版 本 是 traced :ModelVersion的一个实例,每个生成的对象版本都是traced:ObjectVersion的一个实例。traced:ObjectVersion的实例维护其各自的traced:VersionableObject的对象属性,而traced:VersionableObject又与各自的设计对象类型具有对象属性(关系)4.5SAK检索一旦将项目加载到数据集中,就会使用Apache Jena Fuseki服务器执行一系列SPARQL查询。接下来,提出了一些检索关于SportsInc项目的SAK的查询示例:(i) 由于某些决策(应用操作或操作序列),哪些架构元素被忽略(ii) 从模型版本X发展到模型版本Z时,应用了哪些设计操作/模式?(iii) 哪些质量要求被更改、增加或改进?(iv) 作为执行X设计决策的结果,生成了哪些新的架构元素(v) C部分增加了哪些职责?图6显示了从ModelVersion 0到Mod- elVersion 4生成的模型版本。特别地,示出了在sequenceOfOperations 4期间应用的操作以及由每个操作执行的设计对象5相关工作在文献[2]、[8]中提出的一些软件架构本体集中在一般知识的表示上,如用于实现某些质量的架构模式、策略、视图类型及其相应的构建块,以及其他知识,如质量需求之间存在的交易关系。ArchVoc[2]是一种识别这些关于软件体系结构的知识的方法,它采用了不同的技术。一方面,该方法通过人工搜索软件体系结构中一些主要文本的书后索引,另一方面,M.L. Roldán等人/理论计算机科学电子笔记339(2018)4359见图6。从SportsInc项目中获取知识。在本例中,查询可以找出从ModelVersion 0到ModelVersion 4连续生成的模型版本。特别地,示出了在sequenceOfOperations 4期间应用的操作以及由每个操作执行的设计对象。维基百科页面的半自动解析技术。只考虑一般的架构知识来构建本体,跳过了软件组织可以共享的项目上生成的知识其他作者[1],[10],[13],[18]提出了本体来支持软件架构的设计和架构决策的表示以及基本原理。然而,这些本体与架构师的其他支持工具无关,这些支持工具构成了为这些本体提供知识的来源已经提出了其他本体来为基于文件的软件架构文档提供语义,以改善知识的检索[11],[5]。Lopez等人[11]使用Toeska架构本体和NFR设计原理(NDR)本体来表示、恢复和探索来自文本文档的软件架构和原理信息。提取机制基于自然语言处理(NLP)技术,并且必须使用复杂的工具来执行术语和属性之间De Gra Eugene等人[5]采用了类似的方法,旨在解决基于文件的文档问题。他们实现了一个轻量级的软件本体和语义维基工具。然而,这些建议并没有探讨本体的术语与IEEE 42010概念的整合由于这些建议旨在从提供基于文件的文档的来源中检索知识,因此所采用的一套技术可以作为SAK-SIR方法处理阶段的解决方案Figueiredo et al.[8]提出了一种搜索机制来帮助找到AK。为了实现这一目标,他们建议使用应用领域本体,使检索的基本原理相关的软件建设。这种架构知识在虚拟社区环境中
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 构建基于Django和Stripe的SaaS应用教程
- Symfony2框架打造的RESTful问答系统icare-server
- 蓝桥杯Python试题解析与答案题库
- Go语言实现NWA到WAV文件格式转换工具
- 基于Django的医患管理系统应用
- Jenkins工作流插件开发指南:支持Workflow Python模块
- Java红酒网站项目源码解析与系统开源介绍
- Underworld Exporter资产定义文件详解
- Java版Crash Bandicoot资源库:逆向工程与源码分享
- Spring Boot Starter 自动IP计数功能实现指南
- 我的世界牛顿物理学模组深入解析
- STM32单片机工程创建详解与模板应用
- GDG堪萨斯城代码实验室:离子与火力基地示例应用
- Android Capstone项目:实现Potlatch服务器与OAuth2.0认证
- Cbit类:简化计算封装与异步任务处理
- Java8兼容的FullContact API Java客户端库介绍
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功