基于过设计与欠设计约束的服务质量控制方法*
2015-03-29段玉聪高洪皓唐朝胜杜文才万世想卢俊星
段玉聪,高洪皓,唐朝胜,杜文才,万世想,卢俊星
(1.海南大学信息科学技术学院,海南 海口570288;2.上海大学计算中心,上海200444)
1 引言
面向服务的计算模式能够无缝地把各种商业应用服务组合起来,以形成新的增值服务。基于Web模式的应用发展迅速,Web服务成为电子商务的有效解决方案。然而,随着网络形式趋于多样化(Internet、3G、WSN 等),服务模式和类型不断丰富,满足相同需求的服务越来越多,使得在选择服务时不仅要考虑功能性需求,还要考虑诸如服务响应时间(Response Time)、费用(Cost)、安全性(Safety)等非功能性需求。互联网具有开放性、分布性、多变性和不确定性,如何在具有不同QoS 属性值的服务组合中,给出一种有效的、动态的服务策略满足用户QoS 需求的服务,已成为限制Web服务发展的难题之一[1]。
1.1 软件开发生命周期
从工程角度看,传统软件工程开发生命周期包括需求分析、系统设计、编码、测试、交付和运维等阶段。从价值工程角度看,Boehm B W 等人[2]提出了软件经济的概念,并论述了软件开发过程应当是一个价值创造的过程。理想情况下在整个软件开发阶段,过程质量必须服从于整体经济目标[3]。软件开发的最终目的是为用户提供价值,并获取自身经济利益。然而,由于缺乏有效的技术和商业一体化建模或者集成方法和技术,当前在一个软件开发生命周期中,开发人员的技术决策目标和项目最终是为用户创造价值的目标两者之间存在着信息流通的间隙。这在用户需求不断变化的情形下更是一个挑战。当前实际中过程质量和产品质量仍欠缺相关性[4],软件经济学观点[2]以价值为媒介为将二者互相关联提供了质量指标。
1.2 传统软件工程与面向服务软件工程开发对比
软件经济概念的落实要求在软件开发全过程可以无缝地实时进行对于商业建模的技术实现状况的价值层面的评价和度量,并根据评价和度量结果进行实时反馈调整。这要求评价操作实施者即涉众(Stakeholders)均能全程理解并参与软件开发的全过程。然而,通常的软件开发过程中,受利用相关者知识和经验的限制,开发者全程参与开发,用户限于信息则只能参与需求分析和交付验收两个阶段。同时,现实中用户需求往往还具有多变性[5],因此开发者的开发决策与用户商业需求之间并不能保证在整个开发过程的每个阶段都得以沟通,从而导致在开发过程中开发人员的开发决策和用户商业需求的不匹配现象普遍存在。开发决策方只能单从技术层面控制项目的开发,而无法实时与用户进行信息沟通来反映客户商业诉求方面的要求,因此无法在最终软件产品上线之前的软件开发过程中确保满足用户需求。这将导致在功能或性能实现方面,如用户预期开发的网站背景能按照实际天气智能更换,但先期开发过程完成后,核算出的成本超过了客户在该部分的开销和收益预期,这样就只好与开发人员沟通后,出于成本原因最终放弃相应需求。
面向服务体系结构是开发分布式应用软件的新型体系结构,它将应用程序的不同功能单元描述为服务,通过这些服务之间定义良好的接口(Interface)和契约(Contract)联系起来[6,7]。服务所具有的接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言,这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互,是一种可插拔模式的构件集成形式。传统软件工程开发过程中的模型元素往往只承载了功能或者性能内容,属于技术层面。而Web服务系统中的服务作为基本建模和实现元素,与传统软件工程模型元素不同。它既是一种建模商业分析的商业建模元素,又是建模功能和性能的技术实现元素。相比于传统开发的复杂流程开发,Web服务应用程序的开发,模型元素基础更好,流程更加简易,极大降低开发者与用户间的沟通障碍,缩短了开发时间。因此,Web服务组合具有更好的集成商业分析和技术建模的潜力,有助于推动在软件开发过程中实现软件经济的理念。
1.3 基于可变性的建模
模型驱动工程中的可变性建模(Variability Modeling)经常被当作管理和协调软件开发的多种过程和关注的重要机制。在质量驱动(Quality Driven)[8~11]或质量意识(Quality Aware)[12]的设计开发领域,从面向单一软件产品到面向软件产品家族在过去的几年里均取得了巨大发展。无论是软件产品线SPL(Software Product Line)、特征建模(Feature Model)[13],还是模型驱动架构MDA(Model Driven Architecture)[12,14,15],对 质 量 的 控制核心之一就是可变性建模。针对Web 服务系统,已有很多可变性建模技术被提出,然而几乎每个可变性建模解决方案都依赖于不同的技术背景,并使用自己特有的概念。本文考虑面向Web服务的软件开发,基于软件开发流程的质量分析阐述如何将质量因素运用到设计决策过程中,提出了一种质量驱动的软件建模解决方案,即“问题-质量-约束”方法PQC(Problem Quality Constraint)。该方法基于约束的建模解决方案,能够满足软件开发中过程质量和产品质量的双重要求,涵盖涉众的质量评估(Assessment)、协议(Agreement)和在质量生命周期中的经济价值。
基于此,本文提出了过设计(Over Design)与欠设计(Under Design)两种偏离需求的服务设计,分别表示在服务组合过程中的过设计与欠设计行为,并构建能够约束服务组合的变化空间(Variability Space)实现控制服务质量的目的。本文主要贡献概括如下:
(1)介绍了以软件经济为驱动,以综合质量为目标,权衡过程质量的质量建模和质量评估。
(2)针对Web服务应用系统开发,从流程的过设计与欠设计角度进行质量设计分析。
本文内容安排如下:本文第2节介绍基于电子商务的运行实例;第3节介绍后文的概念和计算方法;第4 节引入解决框架“Problem-Quality-Constraint”;第5节通过实验表明本文方法的有效性;最后讨论相关工作与总结展望,并指出今后的研究方向。
2 运行实例
运行实例是一个跨国手机购买电子商务系统。图1a展现的是其基于传统软件工程开发的一系列流程,该商务系统开发过程为传统的瀑布模型,横轴包括需求分析、系统设计、程序编码、系统测试和系统部署五个基本阶段。在这一系列流程中,存在大量的设计目标(Target)。纵轴表示在不同开发阶段中设计目标的值。为了简化分析,选取推荐服务(Recommendation)、响 应 时 间(Response Time)、翻译服务(Translation)作为典型设计目标研究。每种服务的综合价值(Value)的取值参考了我们在该系统建模的过程模型,数值为经验估计所得,仅为定性展示目的。其中,翻译服务在系统部署阶段假定为无,推荐服务在需求分析阶段假定为无,响应时间在各个阶段均有出现。而图1b则展现出面向服务的软件工程开发流程,该体系为服务组合形式MASHUP构造。很明显,面向服务的软件工程开发流程更加简单,在服务组合阶段,用户根据服务合同进行服务寻找与发现,匹配需要的服务价值,大大改善了传统软件工程中的开发决策与用户需求之间的沟通问题。
基于面向服务的软件工程开发流程(如图1b所示),以响应时间服务指标为例,我们定义ID(Ideal Design)表示每种要素的理想设计值,ND(Negative Design)表示每种要素偏离ID的设计值。另外,我们定义基于ID的变化空间(Variability Space),上 界 是VUB(Variability Upper Boundary),下 界 是VLB(Variability Lower Boundary)。假定目标要素响应时间的价值如表1所示。
Table 1 Value of response time表1 响应时间价值表
Figure 1 Comparison between traditional software engineering and service oriented software engineering development图1 传统软件工程与面向服务软件工程开发对比
我们基于对该电子商务系统的分析,经验方式定义实际软件产品开发过程的质量与理想情形的偏离程度为SPR-QU:
其中,Ci是目标要素的实际价值;CID是目标的理想价值;n是所有目标的数量。
根据上述公式计算出的表1 的SPR-QU如表2所示。
Table 2 Subject properties SPR-QU表2 目标属性的SPR-QU
SPR-QU的数值大小反映出软件产品实际设计与理想设计之间的偏离程度。值愈大表示整体的产品质量越低,反之亦然。如表2所示,不良设计的SPR-QU值已严重偏离变化空间。因此,基于技术决策和价值创造,借助质量指标SPR-QU可设计出使过程与产品质量最大化的解决方案。假定在需求分析阶段中所有设计情形均较理想,后面的开发流程才会出现无法精确预知或控制的情形。如在系统设计阶段,出现超出理想设计价值的情形;在编码阶段,出现无法满足理想设计价值的情形,且此二者价值设计均在变化空间之外,属严重偏离。此外,翻译服务、推荐服务都有相似的偏离情形。考虑现实的软件开发过程,对每个流程下的每种设计目标均需考虑所有涉众进行优化,才能得到最佳的产品质量和经济效益。因此,必须将实际设计折线限制在变化空间内,减小SPR-QU以使其接近理想设计线。
3 质量指标分析
3.1 欠设计与过设计
定义1 过设计OD(Over Design)指软件在开发过程中,软件中间成果或者最终成果超过了期待的理想情形。这里的理想情形的评价是基于软件经济的策略做出的最优评价。实际设计相对理想设计包含了不该在该模型中出现的设计内容。过设计不仅会降低在随后设计中的系统综合质量、运行效果和商业目标实现的机率,其多余部分或者过度约束的内容也会增加项目相对理想设计的额外时间、变更成本和金钱成本。
令过设计的系统模型为OD,系统需求模型为RM,那么OD⊇RM,其中,RM≠∅并且OD≠∅。
定义2 欠设计UD(Under Design)指软件在开发过程中,软件中间成果或者最终成果少于期待的理想情形。从软件经济的角度评价,欠设计的内容对应的价值在特定评价时刻少于理想设计。欠设计会使体系在功能上有欠缺或者在性能上无法满足要求,最终影响实现商业目标,或者其本身也会造成项目变更或者维护时相对理想设计的额外时间和金钱成本。在设计未完成的情形下判别欠设计可以参照中间结果的理想情形,有时也依赖被评估设计在被评估时刻与之关联的其它设计部分的评估情况来判断估计。
令欠设计的系统模型为UD,系统需求模型为RM,那么UD⊂RM,其中,RM≠∅并且UD≠∅。理想设计ID(Ideal Design)与实际设计AD(Actual Design)之间的设计偏差(△D)可数值化为:
ΔD=ID-AD
其中:
(1)若△D>0,那么AD<ID,实际设计不能满足理想设计需要,出现了欠设计;
(2)若△D<0,那么AD>ID,实际设计超出了理想设计需要,出现了过设计。
将减少△D的问题表示为△PD,那么应当是系统中过设计与欠设计的作用之和,即:
ΔPD=ΔPOD∪ΔPUD
其中,△PUD表示UD空间,△POD表示OD空间。
UD/OD 都是偏离理想设计的设计形式[12,16]。在软件产品线中,对众多的模型决策中设置优先权并不容易。使用基于约束的方法[17]有益于解决此问题,同时避免欠设计和过设计。图2的UML 图展示了以约束(Constraint)形式平衡欠设计和过设计的一种解决策略,UD 和OD 承载了兼顾各种涉众理解基础的设计偏差评估指标(Design Evaluation)的意义。为简化分析我们暂时忽略了对功能的考察,着重于在完成软件经济商业目标(Business Goal)下,使用约束通过对设计过程整体的质量(Process Quality)以及各个阶段的质量(Stage Quality)指标的控制,来实现各类涉众对减少设计偏差的需求。这些需求包括长期需求和当前需求的范围(Scope)形式和精确(Precise)形式。范围形式表达的设计需求一般为当前设计阶段不宜细化的内容。例如,确立对象属性或方法在类继承体系中的位置不应当在对其重用范围确立之前确认,可临时以范围形式表达。
Figure 2 Constraint based design图2 基于约束的设计
3.2 质量生命周期
在本文中,所有的质量属性都被假定是正交的,即它们之间不会相互影响。如表3 所列的性质,彼此不相互影响。令Pro为质量属性集合,那么∀x∈Pro,∀y∈Pro↓{x}·x∩y=∅。
软件质量可以在功能性、质量属性和资源规范上定义。后面两种定义与系统的非功能性需求有关。质量评估可以通过以下几种阶段组成的软件生命周期完成:设计阶段、执行阶段、维护阶段和效益评估阶段。在所有涉众的一系列调节之后将达到一致协定。表3 展示了质量属性QP(Quality Property)和相关联的评估标准CR(CRiteria)。
Table 3 Evaluation items of software quality表3 软件质量评估条目
3.3 质量经济
质量经济是一种衡量消费者为达到其理想产品质量而愿意花费的价值。在相同的质量标准下,资源花费得越少,则质量经济越好。基于价值分析的角度,SPR-QU越低,那么产品价值越高,质量经济越好。而通过下面两个阶段的优化设计便可得到最佳的产品质量。
(1)设计时(Design Time)服务利益权衡。
在这个质量协商的利益权衡点,所有利益相关者必须在质量经济上达成一致,使其满意度达到最大化[18]。因此,第i个质量属性的利益相关点可以表示为:
其中,Vi表示第i个质量属性量化价值;Wij表示在特定质量属性下的第j个涉众权重。
通过对系统设计和执行过程的动态调整,AG(Vi)|STG将可以取到最大值。这种动态调整被称为CG-STG,其可变域称为CPCG-STG。
以第2节的运行实例为例,可以计算出考虑所有涉众的最优质量值。对于每个质量目标,有若干的设计值可以选择。这里以需求分析阶段下的翻译服务为例,假设其有1美元、2美元和3美元共三个可选价值(Vi)。由于对于每种设计值都有不同的权重,选取三个涉众,亦得到矩阵Wij。
依据实际情形,这里的每种权重(行向量)不满足和为1,例如,对于3美元的质量属性所有涉众都可以拒绝。经过简单的计算,得到对于每个质量属性的综合后的价值:
因此,最优值是2.7,对应着2美元是在翻译服务上的最优价值。此时在需求分析阶段得到了翻译服务的最大价值,并且考虑到所有涉众。
(2)运行时(Runtime)服务利益权衡。
与独立阶段的利益权衡类似,动态阶段的利益权衡也是建立在所有利益相关者的价值最大化基础之上的。不同的是,在动态阶段中的权重是实时变化的,因此,动态利益权衡可以表示为:
其中,Vi是第i个质量属性价值;j∈N 是第j个利益相关者(涉众);k∈N是第k个阶段;Wij是第j个利益相关者的权重;fk()是第k个状态中第j个利益相关者的权重。
为了得到最佳的AG(Vi)|QL,需要对设计要素的利用率、关联阶段的进程进行干预优化。这种优化标记为CG-QL。这种变化的可变域标记为CPCG-QL。这里的分析与静态分析相似,由于篇幅所限,不再详述。
4 问题-质量-约束(PQC)
为了减少过设计和欠设计对系统设计产生的影响,通过“问题-质量-约束”PQC(Problem-Quality-Constraint)来解决软件项目生命周期中的质量保证问题。
4.1 问题建模
问题建模具体由功能建模和过程建模来实现,主要分为抽象层次上的功能建模和过程建模两个方面。
(1)抽象层次上的功能建模。
合理的系统架构能缩短项目安排和预期系统实现上的差距[19,20]。在理想模型设计层次上建立相应参考模型。此参考模型考虑到软件项目系统架构中的过设计和欠设计,并希望通过减少这两种情形来提高软件质量的满意度。
(2)过程建模。
过程建模是根据软件产品实际开发的流程来建立寻找最优价值的建模。这种建模具有动态和实时的特点。
4.2 改进的质量建模
对于一些有非功能性需求的利益相关者而言,在系统设计时有必要控制预定的变化空间[10],代表某种质量要求,用NFRV表示。除明确描述NFRV设计外,最重要的目标是压缩质量生命周期的变化空间,减少过设计和欠设计的空间。因此,在开发过程中,有必要从所有涉众的角度来确定一个质量要求,用NFRP表示。文献[21]中描述的质量模型(QMS)由NFRp并NFRV,并作为先决条件满足系统实现,公式定义为:
QMS=NFRV∪NFRP
在模型中,需最大限度考虑所有已知信息,其中超出合适设计上边界将变成过设计。如运行实例中系统设计阶段的翻译服务价值,在严重偏离设计情形下已经超出变化空间上限,出现过设计。在模型中,需最小限度考虑所有未知信息,其中超出合适设计下边界将变成欠设计。如运行实例中编码阶段的翻译服务价值,在严重偏离设计情形下已经超出变化空间下限,出现欠设计。因此,在实际的软件产品线中,基于系统价值或质量控制即是在实际设计流程中通过将设计值限制在变化空间内来减少欠设计和过设计的因素,使系统综合价值最大化。
5 案例研究
在本节中,将对第2节的运行实例进行功能拓展,运用基于过设计和欠设计的服务质量控制理论,对比Web服务在电子商务中的设计情形,验证避免过设计与欠设计的必要性。
5.1 电子商务特征模型
图3有两种服务结构类型:静态类型和动态类型。静态类型描述了一个工作流模型的服务组合设计;而动态类型描述了一个基于SLA 协议的服务编舞组合设计,其服务构件成员动态组合。假定设计A是一个理想设计,设计B是一个实际设计。
(1)静态类型。如图3中左边所示,所有的服务都被定义为静态的。在设计A中的推荐汽车服务(Car)在设计B中被设计成了音乐服务(Music),在设计A中的住宿代理服务(Accommodation Agent)在设计B中被取消,在设计A中的并行(And)关系在设计B中被设计成了多选一(Or)关系。显然这个设计是一个欠设计。
(2)动态类型。动态结构是新的概念,它通过创建一个连续的服务流,形成一个特定的动态服务。图3中右边的投票器系统就是动态类型。例如,在设计B中的投票器(Responder Auction)相对设计A多了一个,并且投票器的多选一被设计成了并行结构。显然这个设计是一个过设计。在电子商务系统中,价值(Value)和价值增益(Value Added)的总和分别由系统中所有服务组件价值和价值增益的和组成。
上述分析是针对单独的服务质量进行的精确设计。在实际的软件项目中,总是希望可以更精确地控制软件生产的过程。然而,在很多情况下是不实际甚至是不可行的。解决方案就是动态设计。有必要把足够大的变化空间留给“未知”的设计因素,从而避免陷入严重的欠设计和过设计情形。因此,寻求一个精确设计的代价是昂贵的。例如,在设计B中有比设计A更多的服务组合,设计B可选择性强,设计价值也更高,但此时却不是最佳的服务设计,这里出现了过设计。由图3可知,每个服务组件对应特定的价值。例如,推荐服务(Recommendation)、购买记录服务(Purchase Record)和私人信息(Privacy Information)服务虽然不在一级,但都属于系统服务,故计算时需要全局考虑。每个图例产生若干种不同服务组合。
Figure 3 Comparison between design Aand design B图3 设计A 与设计B 的对比
5.2 服务组合统计分析
为阐述理想设计与包含过设计和欠设计的实际设计之间的差异,建立了一个计算所有服务组件价值总和的实验模型。使用两种质量权衡指标:价值与附加值。价值是指设计时综合考虑技术决策、用户需求和所有涉众的最优值。附加值是指特定服务设计带来的收益。显然服务价值越高,其附加值越高。如表4所示,依据经验假设出服务组件的价值和附加值。选取了部分服务用于过设计和欠设计计算过程中的利益权衡。如表5 所示,其中WE表示天气服务,PA 表示支付验证服务,SA 表示安全服务,SE-BA 表示服务带宽服务,IN 表示接口服务。表5各列分别描述需求、设计、编码、测试以及部署,数值分别代表所需要花费的成本百分比。
Table 4 Values and values added of service components表4 服务组件的价值与附加值
Table 5 Cost vs service in percentage表5 服务与成本百分比
令五个服务依次得到不同的权重,进行利益权衡,计算矩阵如下:
我们计算综合后的质量属性的价值如下所示:
从结果上看,对于场景1,SA 服务最优;对于场景2,PA 服务最优;对于场景3,IN 服务最优;对于场景4,SE-BA 服务最优;对于场景5,WE 服务最优。这些服务在各自实现过程中,需要重点关注。
6 相关工作
Dao T M 等人[22]尝试了定义一个问题解决框架来控制软件设计中的非功能性需求指标。Alebrahim A 和Heisel M[23]提出了一个UML原型来构建问题描述质量模型。现有大多数方法基于对质量的过后分析,而指导系统开发过程中则需要预先分析或者实时解决方案。本文提供一个系统性指导设计,并阐述基于约束驱动的设计方法。Eiffel M B[24]表述了一种基于软件规约的约束实现方案。Boogie[25]给出限定预条件和传输条件(Pre-&Post-Conditions)来控制程序流中的非确定性因素。但是,两者都限于开发流程的编码阶段,无法用于整个软件开发流程。Czarnecki K 等人[26]证实了功能模型映射与决策模型间存在缺口,他们归结缺口存在的部分原因是在绑定策略的执行和质量属性实现之间缺少明确认知和关联。本文引入过设计与欠设计的概念来弥合此缺口。Demuth A 等人[16]提出了基于约束的方法来挑选设计方案。而本文的方法是利用基于约束的模型从协助设计过渡到驱动整个设计流程。由于PQC与模型质量的变化密切相关,因此,它能够补充实现更高层次的决定[22,23]。PQC也将适用于系统设计的新趋势,如MASHUP[11]的系统是建立在以下三者之上:具有独立功能的服务、记录在相应电子合同中的QoS 和体现商业价值最大化的服务代理模式(SVB)[10]。
7 结束语
软件开发过程的工程性目标是生产出优异的软件产品。一个软件产品的评价既要从技术角度评价软件功能和性能,从软件经济的角度考虑,评价所依据的更本质的是软件系统对项目实施各涉众的价值增益衡量。软件经济的价值衡量涵盖了包括设计时和运行时的整个软件生命期的各个阶段。为了实现对每个阶段从商业分析到技术实现的关联评价,理论上要求对相关涉众的跨越商业分析和技术实现的评价支持。这种评价应当是建立在相关涉众对相关开发阶段的理解和信息流通的基础上的。然而,当前实现对在整个软件生命期中沟通跨越商业分析和技术实现这两个层面的涉众的共同理解和交流这一需求的支持尚不足够。对比传统软件工程开发过程和Web服务系统开发过程,我们认识到Web 服务本身有别于传统软件系统,它既是一种商业建模元素又是技术实现元素,从而Web服务组合潜在地可以更有效地集成商业分析和技术建模来实现软件经济的策略。针对衔接商业分析和技术建模,我们认为在概念层次应该提供有效的桥接商业领域的价值分析和技术领域的QoS指标的中间概念,来支持相关涉众的跨域信息交流和沟通。具体地,我们在模型驱动软件开发的背景下依据经验提出以约束为主要设计形式的解决方案,称为约束驱动设计,并选择了过设计和欠设计作为中间概念辅助实现价值驱动(Value Driven)的开发过程。我们讨论了相关概念的内涵并基于其构造了相关的方法框架来基于约束[27,28]填补整个软件生命周期中预期设计与最终设计之间的设计缺口,帮助实现整个业务细化和设计模型演化两个过程的集成。该方案从保证过程质量的角度管理抽象的设计决策变化空间。此外,此方案亦可用于在一个动态的过程上减轻质量损失,有利于对OD 或UD 的影响做出选择。
未来我们计划围绕软件经济和可变性技术,将本方法运用到实际系统的需求设计、功能组合、运行维护和质量评估中,并集成功能性需求和非功能性需求。我们还将进一步研究欠设计和过设计服务系统到目标系统的自动化转换方案。
[1] Wang Shang-guang,Sun Qi-bo,Yang Fang-chun.Web service dynamic selection by the decomposition of global QoS constraints[J].Journal of Software,2011,22(7):1426-1439.(in Chinese)
[2] Boehm B W,Sullivan K J.Software economics:A roadmap[C]∥Proc of the Future of Software Engineering,2000:319-343.
[3] Pautasso C,Alonso G.Flexible binding for reusable composition of web services[C]∥Proc of the 4th International Conference on Software Composition,2005:151-166.
[4] Yue Kun,Wang Xiao-ling,Zhou Ao-ying.Underlying techniques for web services:A survey[J].Journal of Software,2004,15(3):4-28.(in Chinese)
[5] Garlan D.Software architecture:A raodmap[C]∥Proc of the Fureture of Software Engineering,2000:91-101.
[6] Gamma E,Helm R,Johnson R E,et al.Design patterns:Abstraction and reuse of object-oriented design[C]∥Proc of the 7th European Conference on Object-Oriented Programming,1993:406-431.
[7] Ogrinz M.Mashup patterns:Designs and examples for the modern enterprise[M].1st ed.Boston:Addison-Wesley Professional,2009.
[8] Duan Y.A survey on service contract[C]∥Proc of the 13th ACIS International Conference on Software Engineering,Artificial Intelligence, Networking and Parallel/Distributed Computing,2012:805-810.
[9] Kattepur A,Benveniste A,Jard C.Negotiation strategies for probabilistic contracts in web services orchestrations[C]∥Proc of ICWS,2012:106-113.
[10] Duan Y,Kattepur A,Zhou H,et al.Service value broker patterns:An empirical collection[C]∥Proc of SNPD,2013:675-682.
[11] Al-Naeem T,Gorton I,Babar M,et al.A quality-driven systematic approach for architecting distributed software applications[C]∥Proc of ICSE,2005:244-253.
[12] Drago M L,Ghezzi C,Mirandola R.A quality driven extension to the QVT-relations transformation language[J].Computer Science-Research and Development,2011(11),DOI 10.1007/s00450-011-0202-0.
[13] Lee K,Kang K C,Lee J.Concepts and guidelines of feature modeling for product line software engineering[M]∥Software Reuse:Methods,Techniques,and Tools,Berlin:Springer,2002:62-77.
[14] Duan Y,Lee R.Knowledge management for model driven data cleaning of very large database[M]∥Software Engineering,Artifical Intelligence,Networking and Parallel/Distributed Computing,Berlin:Springer-Verlag,2013:143-158.
[15] Duan Y,Kattepury A,Getahun F,et al.Releasing the power of varibility:Towards constraint driven quality assurance[C]∥Proc of IEEE AAI/ESKM,2013:15-20.
[16] Schobbens P Y,Heymans P,Trigaux J C.Feature diagrams:A survey and a formal semantics[C]∥Proc of the 14th IEEE International Conference on Requirements Engineering,2006:136-145.
[17] Demuth A,Lopez-herrejon R E,Egyed A.Constraint-driven modeling through transformation[C]∥Proc of ICMT’12,2012:248-263.
[18] Feldstein M.Domestic saving and international capital movements in the long run and the short run[J].European Economic Review,1983,21(1-2):129-151.
[19] Nassaj A,Lienig J.A new methodology for constraint-driven layout design of analog circuits[C]∥Proc of ICECS,2009:996-999.
[20] Group O M.Formal/2011-08-05,OMG unified modelling language(OMG UML),Infrastructure[S].OMG,2011.
[21] Chung L,do Prado Leite C S.On non-functional requirements in software engineering[M]∥Conceptual Modeling:Foundations and Applications,Berlin:Springer,2009:363-379.
[22] Dao T M,Lee H,Kang K C.Problem frames-based approach to achieving quality attributes in software product line engineering[C]∥Proc of the 15th International Conference on Software Product Line,2011:175-180.
[23] Alebrahim A,Heisel M.Supporting quality-driven design decisions by modeling variability[C]∥Proc of the 8th International ACM SIGSOFT Conference on Quality of Software Architectures,2012:43-48.
[24] Meyer B.Eiffel:A language and environment for software engineering[J].The Journal of Systems and Software,1988,8(3):199-246.
[25] Barnett M,Chang B E,Deline R,et al.Boogie:A modular reusable verifier for object-oriented programs[C]∥Proc of FMCO’05,2006:364-387.
[26] Czarnecki K,Grünbacher P,Rabiser R,et al.Cool features and tough Decisions?:A comparison of variability modeling approaches[C]∥Proc of the 6th International Workshop on Variability Modeling of Software-Intensive Systems,2012:173-182.
[27] Egyed A,Wile D S.Support for managing design-time decisions[J].IEEE Transactions on Software Engineering,2006,32(5):299-314.
[28] Lano K.Constraint-driven development[J].Journal of Information and Software Technology,2008,50(5):406-423.
附中文参考文献:
[1] 王尚广,孙其博,杨放春.基于全局QoS约束分解的Web服务动态选择[J].软件学报,2011,22(7):1426-1439.
[4] 岳昆,王晓玲,周傲英.Web服务核心支撑技术:研究综述[J].软件学报,2004,15(3):4-28.