带可信属性的软件体系结构及其演化描述方法

2015-12-20 06:58姜火文曾国荪熊焕亮
计算机工程与设计 2015年9期
关键词:演化过程连接件构件

姜火文,曾国荪,熊焕亮,3

(1.江西科技师范大学 数学与计算机科学学院,江西 南昌330038;2.同济大学 计算机科学与技术系,上海201804;3.江西农业大学 软件学院,江西 南昌330045)

0 引 言

软件体系结构 (software architecture,SA)演化主要涉及软件系统中构件或连接件的增加、删除、替换,以及构件联系和拓扑结构等的改变[1-4]。体系结构及其演化过程的描述始终是SA演化研究的重点。文献[5-8]用不同的体系结构描述语言ADL (architecture description language)描述SA的组成及演化操作,具有形式化、描述精确等优点,但大多数ADL主要用于描述SA的规范,以及侧重分析SA 演化的某一方面,在整体上刻画SA 演化方面还存在一些不足[9];文献 [10,11]采用统一建模语言UML(unified modeling language)描述或分析SA演化,具有图形化、直观、易理解等优点,而UML主要是一种面向对象的建模语言,更适合SA模型的描述,缺乏形式化语义,难以精确刻画SA演化的特性[12];文献 [13-15]的研究均用图描述SA,对图的使用,各自赋予了不同涵义,但研究没有讨论基于构件增、删等基本操作的SA 演化过程,也没有涉及软件的可信特性;文献[4,16]研究了基于超图文法的SA动态演化,但没有考虑软件的可信要求;文献 [17]研究了一种支持软件可信演化的构件模型,侧重研究提高构件的环境感知与适应能力,来保证可信演化,但没有提取并表达系统的构件可信属性,也没有具体研究带可信属性表达的SA的演化过程。

可见,尽管有多种SA 及其演化的描述方法,但很少有表示构件可信属性,缺少对带构件可信属性SA 演化的描述。本文提出类E-R图描述方法,支持描述考虑可信属性的SA演化,对带可信属性的SA 建立类E-R图表示,并给出其形式化描绘,刻画构件和连接件的增加、删除、替换操作,最后通过一个演化实例,例证了该描述方法的有效性。

1 SA-T及其类E-R图表示

1.1 带可信属性的SA (SA-T)

定义1 (软件体系结构SA):一个软件系统的SA 由构成功能单元的构件,连接构件并建立构件间交互的连接件,以及规范构件和连接件之间连接配置和相关拓扑要求的约束。SA可以表示为一个3元组SA =(Cp,Cj,Cr),其中,Cp表示构件集合;Cj表示连接件集合,Cr表示约束集合。

需要指出,对SA,迄今为止并没有一个公认的定义,本文所给定义参考了文献 [4]中的概念。这里,构件(component)指具有一定功能的软件实体,可以是体现为一组代码的程序模块;也可以是独立的一个程序。连接件(connector)在构件之间起连接作用,定义了构件间的交互,如过程调用、管道等都可以被看成连接件。约束(constraint)指某些限制 (constrain),用来确定如构件是否连接正确、端口与角色是否匹配等,约束描述了软件系统中构件、连接件以及配置的相关要求[18]。

可信性是衡量软件品质量的重要属性,软件可信属性主要包括功能完备性 (completeness)、行为一致性 (consistency)、质量可靠性 (reliability)和程序安全性 (security)。功能完备性指软件能多大程度上实现其预先设计的功能,并满足用户需求;行为一致性指软件在运行过程中,前后系统行为不引起操作冲突、表现为运行中系统维持操作不矛盾的能力;质量可靠性指系统面对应用或者错误,在意外或者错误使用的情况下维持功能特性的能力;程序安全性指系统向合法用户提供服务的同时,能够阻止非授权用户使用或者拒绝服务的能力。以上4个属性综合体现了软件的可信性,构成软件可信的特征空间,其中每个属性实质是一个信任证据向量,如质量可靠性包括平均可用时间、平均无故障时间、平均故障恢复时间等信任证据。

定义2 (构件的可信属性):指反映构件的质量与性能等方面可信特性的属性集,即功能完备性、行为一致性、质量可靠性和程序安全性等。

构件是软件的功能组成单位,是构成SA 并研究其演化过程的主要载体,软件可信属性通过各个构件的可信属性体现。构件可信属性可以用基于观测逻辑的状态自动机、接口协议状态机和契约自动机等方法分析、评估,根据多个信任证据向量来源,综合判断构件的可信度。SA 演化前后,根据可信度与设定阈值的比较,可分别决定演化是否进行、演化能否被接受。

定义3 (带可信属性的SA,SA-T):指在SA表示及演化过程描述中,包含有功能完备性、行为一致性、质量可靠性和程序安全性,这4个构件可信属性表达的SA。即Software Architecture with Trusted Attributes,本文简称SA-T。

SA-T 的表示及演化描述是SA 可信演化研究的必要基础,其意义表现在两个方面:一是演化前的可信性评估,可用于控制演化是否进行,当评估的可信度大于设定的阈值被认为是可信的,可信构件才允许进行演化,不可信构件的演化将蕴含风险,禁止演化。二是演化后的可信度验证,可用于监控演化效果,方便系统决定是否接受该演化,或改变演化策略。本文研究在于提出一种描述方法,刻画包含构件可信属性表示的SA 及其演化过程。进一步地,对构件可信属性特征值的感知、评估与验证等技术,将在后续论文中展开讨论。

1.2 SA-T的类E-R图表示

在数据库设计中,经常用到E-R图 (entity relationship diagram)也称实体-关系图。在E-R图中有4个成分:矩形框,表示实体,框中记入实体名;菱形框,表示联系,框中记入联系名;椭圆形框,表示实体或联系的属性,框中记入属性名;连线,连接实体与联系之间、实体与属性之间和联系与属性之间的直线,直线上标注联系的类型,如:一对多联系,在连线一的一方写1,多的一方写N。本文引入E-R图形,对其4种成分赋予新的表达涵义,矩形框表示构件、菱形框表示连接件、椭圆形框表示构件可信属性、带标注记号的连线表示构件与连接件之间存在的相互关系,称为 “类E-R图”,用于表示带可信属性的软件体系结构。

图1 为类E-R 图表示的一个SA-T 实例,其中包含3个构件:Client、Webserver 和DBMS,每个构件附带功能完备性、行为一致性、质量可靠性和程序安全性这4个可信属性;2个连接件:C-W Connector 和W-D Connector;4条带标记的边 (简称标记边):连接各构件和连接件,表示相应构件和连接件之间的交互关系,其中边上面的标记表示构件传递给连接件的消息、边下面的标记表示连接件传递给构件的消息,如:Rclient、Rwebserver、ADBMS、RC-W分别表示客户请求、Web服务器请求、数据库管理器响应和Web服务器响应等构件与连接件的交互关系。

图1 Client/Webserver系统SA-T 的类E-R

类E-R图可直观地表示SA-T 的结构组成,还可以描述SA-T 的可观交互行为。SA-T 的可观行为是指软件系统中构件与连接件之间外部可见的交互序列,例如构件间通信时发生的交互动作序列[7]。如图1 中所示,客户Client发出查询请求Rclient,连接件C-W Connector 收到该服务请求后,封装成RC-W、传送给Web服务器Webserver,Webserver 响应请求、转而发请求Rwebserver给连接件W-D Connector,经W-D Connector 向后台数据库管理系统DBMS 发查询请求RW-D,DBMS 响应请求、发响应信号ADBMS给W-D Connector,经W-D Connector 封装、转发AW-D回应给Webserver,Webserver 再将响应消息AWebserver回复给CW Connector,再经C-W Connector 检查封装、最后将响应消息AC-W发给Client,完成一次完整的信息交户过程。从图1中抽离出该部分SA 可观行为序列,可以表示为

2 SA-T基本演化操作的类E-R图描述

SA-T 演化过程主要通过构件或连接件的增加、删除、替换等基本操作实现,研究SA-T 演化过程必须考虑体系结构的表示和演化操作的描述。如引言所述,研究者分别采用了ADL、UML、图或超图等作为描述工具,通过建立相关的形式语义或超图文法建模SA 演化过程,各有优势与缺陷。本文选用类E-R 图及其形式化的描述方法,可以更直观、简便地描述SA-T 及其基本演化过程。为方便对类E-R图表示的SA-T 演化操作进行形式化描述,下面先建立SA-T 图及其形式化描述的概念。

2.1 SA-T图及其形式化描述

定义4 (SA-T 图):利用类E-R 图表示的一个带可信属性的软件体系结构图,称之为SA-T 图,可以表示为一个五元组GSA=(VSA,ESA,ecp,ecn,ARSA)。

例如上文图1即为一个SA-T 图。在SA-T 图的五元组GSA=(VSA,ESA,ecp,ecn,ARSA)中,VSA是图中节点集合,表示SA-T 中所有构件或连接件,即VSA=(Cp,Cj),Cp是构件集合、Cj是连接件集合;ESA是标记边集合,表示SA 中构件与连接件之间的交互关系 (即可以表示两者间的通信端口);ecp和ecn均为VSA上的映射关系,分别是连接件和构件的入节点映射,表示构件与连接件之间的交互关系,其中,ecp:Cp→Cj,表示构件到连接件的消息输入,标记在连接边的上方,ecn:Cj→Cp,表示连接件到构件的消息输入,标记在连接边的下方;ARSA表示软件构件的可信属性集合,由Completeness、Consistency、Reliability和Security这4个构件的可信属性组成。

在SA-T 图中,具体的构件ci、连接件cni可以分别用一元关系Cp(ci)和Cj(cni)表示;ci和cni的连接关系,即两者的连接边ei可以用二元关系ei(ci,cni)表示;构件与连接件的交互关系,即消息传递关系ecp,ecn可以分别用一元关系cp(ei)和cn(ei)表示,cp(ei)表示对应边ei上,由构件ci输出到连接件cni的消息,cn(ei)表示反方向的、由cni输往ci的消息流。

SA-T 演 化 可 以 表 示 为SA-T 图 的 变 换。基 于SA-T图中各成分的一元或二元关系表示,可以很方便地利用集合并、差运算来反映图中各成分的增减,从而建立SA-T 图变化的形式化描述,方便刻画SA-T 的演化过程。增加、删除或替换构件/连接件的操作构成SA-T 的基本演化,而诸如拆分或重组构件/连接件等复杂演化,都能由一些基本演化操作组合而成。下面针对SA-T 图,分别给出其构件和连接件的增加、删除和替换演化的类E-R 图描述。

2.2 SA-T演化的类E-R图描述

软件体系结构演化包括构件或连接件的增加、删除基础演化及替换、拆分、重组等复合演化。为方便讨论,本节以增加、删除和替换3个典型演化为例,给出SA-T 演化的类E-R图描述方法。

2.2.1 增加构件和连接件

假定G 为当前SA-T 图,增加一个构件、连接件演化可以分别形式化描述为式 (1)、式 (2)

其中,式 (1)中Cp(ci)表示构件ci;e1(ci-G(cn1))表示构件ci与SA 图G 中某连接件cn1的连接,该连接边可能不止一条,即某构件可能分别通过多个连接件与多个其它构件建立联系;cp(e1),cn(e1)表示对应边e1上构件与连接件的交互关系,分别代表构件ci的输出与输入方向消息流;ARci(Completeness),…,ARci(Security)表示构件ci附带的可信属性。式 (2)中,Cj(cni)表示连接件cni,e1(cni-G(c1))表示连接件cni与SA图G中某构件c1的连接,该连接边也可能不止一条,即该连接件可能互联了两个构件;cp(e1),cn (e1)分别表示对应边e1上的交互关系。图2为增加一个构件/连接件演化操作的类E-R图表示。

2.2.2 删除构件和连接件

删除一个构件、连接件的演化操作可以分别形式化描述为式 (3)、式 (4)

图3用类E-R图表示了删除一个构件/连接件的操作。

2.2.3 替换构件和连接件

替换一个构件、连接件演化操作可以分别形式化描述为式 (5)、式 (6)

图4为类E-R图表示的一个构件/连接件的替换操作。

图2 增加一个构件/连接件的操作

图3 删除一个构件/连接件的操作

图4 替换一个构件/连接件的操作

3 SA-T演化描述实例

为进一步说明SA-T 演化过程的类E-R 图及其形式化描述方法,这里通过一个基于web的电子商务系统的演化实例说明。该系统包含3 类构件:web客户、web服务器和SQL Server数据库服务器,两类连接件:web 客户与web服务器间的连接件 (简称web连接件)和web服务器与SQL server数据库服务器间的连接件 (简称SQL 连接件)。Web客户通过web连接件向web服务器发出查询请求,web服务器再通过SQL连接件向SQL Server发出访问数据信息,SQL Server完成操作、将响应信号通过SQL 连接件发回给web服务器,web服务器再通过web连接件将信息发回给对应的客户,完成一次用户访问操作。该系统的SA如图5所示,其中3个矩形框WebClient、WebServer 和SQLServer分别表示web客户、web服务器和SQL Server数据库服务器,连接它们的4个椭圆框Completeness、Consistency、Security和Reliability分别表示各自的可信属性;两个菱形框WebConnector和SqlConnector分别表示web连接件和SQL连接件;RWClient、AWCon、RWebS、…分别表示web客户请求、对web客户的响应、web服务器请求、…等。

图5 系统初始SA-T

无线网络和移动终端技术的发展,使移动电子商务成为可能与趋势,为了适应该发展需求,系统需要相应改变,即进行演化。假定改变办法是:①改用功能更强的新服务器 “WMServer”取代原web服务器,新服务器既支持原web服务器的功能又支持移动电子商务功能,即利用上述演化式 (5)进行构件替换操作。②新增移动连接件和移动客户,以体现系统对移动用户电子商务需求的支持,即分别利用上述演化式 (2)和式 (1)进行添加连接件和添加构件的演化操作。图6为按此办法演化后系统的SA-T。

图6 增加移动电子商务功能后系统的SA-T

将上文中的图5标记为G1,图6标记为G′1。则G1到G′1的变换表示了对原电子商务系统增加移动电子商务功能的演化过程,可描述为

4 结束语

软件演化已成为软件的一种存在形式,软件只有通过演化才能维持它的可用性。体系结构演化从更高抽象层次反映了软件演化,是研究与实现软件演化的重要手段。目前,软件可信演化正成为软件演化研究的一个重要方面,而SA 可信演化则是研究软件可信演化的主要途径。研究SA 可信演化,一般要考虑SA-T 的表示及其演化描述。本文提出的类E-R 图描述方法,既有图的形式化理论基础,又有类E-R 图形化的简洁形象,能准确直观地描述SA-T及其演化过程。论文工作为深入研究SA 可信演化奠定了基础,后续我们将研究SA-T 演化前后构件可信属性特征值的感知、分析与验证,SA 行为语义演化的描述等。

[1]Salehie M,Tahvildari L.Self-adaptive software:Landscape and research challenges [J].ACM Transactions on Autonomous and Adaptive Systems,2009,4 (2):1-42.

[2]Breivold HP,Crnkovic I,Larsson M.A systematic review of software architecture evolution research [J].Information and Software Technology,2012,54 (1):16-40.

[3]CHENG Xiaoyu,ZENG Guosun,XU Hongzhen.Description of software architecture evolution based on Delta-Grammar[J].Computer Science,2010,37 (9):127-130 (in Chinese).[程晓瑜,曾国荪,徐洪珍.基于Delta-Grammar的软件体系结构演化的描述 [J].计算机科学,2010,37 (9):127-130.]

[4]XU Hongzhen,ZENG Guosun.Dynamic evolution of software architectures based on hypergraph grammars [J].Journal of Tongji University (Natural Science),2011,39 (5):745-750(in Chinese).[徐洪珍,曾国荪.基于超图文法的软件体系结构动态演化 [J].同济大学学报 (自然科学版),2011,39(5):745-750.]

[5]Navasa Amparo,Perez-Toledano Miguel A,Murillo Juan M.An ADL dealing with aspects at software architecture stage[J].Information and Software Technology,2009,51 (2):306-324.

[6]Di Ruscio Davide,Malavolta lvano,Muccini Henry,et al.Developing next generation ADLs through MDE techniques[C]//32nd International Conference on Software Engineering,2011:85-94.

[7]Mei H,Chen F,Wang QX,et al.ABC/ADL:An ADL supporting component composition [G].Lecture Notes in Computer Science 2495:Formal Methods and Software Engineering,2012:38-47.

[8]CHEN Xiangping,HUANG Gang,SONG Hui,et al.MOF based framework for intergration of software architecture analysis results[J].Journal of Software,2012,23 (4):831-845 (in Chinese).[陈湘萍,黄罡,宋晖,等.基于MOF的软件体系结构分析结果集成框架[J].软件学报,2012,23(4):831-845.]

[9]Mens T,Magee J,Rumpe B.Evolving software architecture descriptions of critical systems [J].IEEE Computer,2010,43 (5):42-48.

[10]Qu Chunyan.UML-based software process modeling [C]//International Conference on Computer,Mechatronics,Control and Electronic Engineering,2010:247-250.

[11]Spanoudakis George,Zisman Andrea.Discovering services during service-based system design using UML [J].IEEE Transactions on Software Engineering,2010,33 (3):371-389.

[12]Pelliccione P,Inverardi P, Muccini H.CHARMY: A framework for designing and verifying architectural specifications [J].IEEE Transactions on Software Engineering,2009,35 (3):325-346.

[13]Frank Hermann,Hartmut Ehrig,Ulrike Golas,et al.Formal analysis of model transformations based on tripe graph grammars[G].LNCS 5214:Graph Transformations,2008:178-193.

[14]Amirat Abdelkrim,Bouchouk Abderrezak,Yeslem Mohamed Ould,et al.Refactor software architecture using graph transformation approach [C]//Second International Conference on the Innovative Computing Technology,2012:117-122.

[15]Li Chen,Huang Linpeng,Chen Luxi,et al.BGG:A graph grammar approach for software architecture verification and reconfiguration [C]//Seventh International Conference on Innovative Mobile and Internet Services in Ubiquitous Computing,2013:291-298.

[16]XU Hongzhen,ZENG Guosun,CHEN Bo.Conditional hypergraph grammars and its analysis of dynamic evolution of software architectures [J].Journal of Software,2011,22(6):1210-1223 (in Chinese).[徐洪珍,曾国荪,陈波.软件体系结构动态演化的条件超图文法及分析 [J].软件学报,2011,22 (6):1210-1223.]

[17]DING Bo,WANG Huaimin,SHI Dianxi,et al.Component model supporting trustworthiness-oriented software evolution[J].Journal of Software,2011,22 (1):17-27 (in Chinese).[丁博,王怀民,史殿习,等.一种支持软件可信演化的构件模型 [J].软件学报,2011,22 (1):17-27.]

[18]Tibermacine Chouki,Sadou Salah,Dony Christophe,et al.Component-based specification of software architecture constraints[C]//Proceedings of the 14th International ACM Sigsoft Symposium on Component based Software Engineering,2011:31-40.

猜你喜欢
演化过程连接件构件
模因论视角下韩语“먹다”表“喝”动作演化过程研究
时间非齐次二态量子游荡的演化过程分析
基于有限元法改进螺栓连接刚度模型*
重庆万盛石林的形成时代及发育演化过程
基于耗散结构的农产品冷链物流系统演化分析
建筑构件
建筑构件
基于试验设计的汽车悬架轻量化设计
建筑构件
建筑构件