一、基本信息
标题:SAwUML – UML-based, contractual software architectures and their formal analysis using SPIN
时间:2018
出版源:Computer Languages, Systems & Structures
领域分类:软件架构;UML;按合同设计;PROMELA;正式验证
二、研究背景
问题定义:基于UML的合同软件体系结构及其使用SPIN的形式分析
难点:复杂的设计决策,了解SAwUML,
相关工作:SAwUML结构;SAwUML行为;将SAwUML翻译成ProMeLa;
三、创新方法
1.SAwUML的工具支持
2.
四、实验
实验1:案例分析
要探究的问题:SAwUML中的加油站规范;ProMeLa加油站规范的翻译;
结论:如果结果等于客户请求的所选金额,则requestMade数据设置为false以发出新的气体请求。如果结果不等于所选的数量,则组件状态不会更改。泵方法不会返回任何值以发送回收银台组件。
收银员组件的客户提供的端口和releasePump所需的端口各自操作一种方法。虽然收银员提供的端口被转换为单个保护动作序列,但所需端口被转换为两个保护序列。最后,泵组件的油和来自凯西尔 提供的端口也被转换为单个保护动作序列
实验2:工具评估
要探究的问题:死锁的正式验证;对不完整性的正式验证;用户定义属性的形式验证;
结论:因为客户组件最初将requestMade数据设置为false ,所以永远不会满足。因此,这将阻止一系列方法 - 要求加油站系统达到其目标,即客户付款,收银员接收付款和释放气体,然后泵接收释放气体请求并向客户发送气体。直观地说,死锁情况发生此因为客户的将继续努力进行付款或无限期地泵请求永远不会发生,而收银台付款无限期等待,并释放气体要求无限期的等待泵。因此,这些组件都不能达到最终状态。
如果对于所需的端口方法没有满足任何请求前置条件,则不发送方法请求。如果提供的端口方法请求没有满足任何行为规范,则将方法调用请求重新写回通道以便稍后重新评估。不完整性与需要端口的客户和出纳组件有关。
每当客户支付燃气费时,出纳员最终要求泵释放燃气,最终泵将为客户释放燃气。指定了LTL属性后,我们使用了转换器并获得了ProMeLa模型,该模型还包括LTL属性的转换,并成功使用SPIN模型检查器正式验证了LTL属性的规范。注意,在验证不成功的情况下,发生断言违规错误,这可以通过给出的错误报告来观察。
五、结论
作者的总结:在本文中,我们提出了一种名为SAwUML 的新软件体系结构建模语言。SAwUML基于众所周知的UML软件建模语言,使用其组件和序列图来确定结构和行为设计决策的规范。SAwUML使用“ 按合同设计”扩展了序列图方法并允许组件从彼此请求/提供的方法的合同行为规范。SAwUML由建模编辑器支持,用于以线性时态逻辑(LTL)的形式指定软件体系结构和任何系统级属性。建模编辑器还使用正式的ProMeLa语言实现SAwUML的精确翻译,从而可以使用SPIN模型检查器对软件体系结构进行形式验证。SAwUML目前支持详尽检查死锁和不完整的行为规范。从业者还可以自动检查LTL属性规范。
自己的评价:软件架构一直是软件设计中最关键的部分,它涉及几个复杂的设计决策,这些决策对于成功构建软件系统非常重要。一些重要的设计决策是关于从独立组件组成系统的结构设计决策,行为和交互设计决策,非功能系统属性的决策以及与并发相关的问题的决策。可以在软件设计的早期架构阶段指定和分析这样的设计决策,并且可以做出正确和最佳的决策,从而使软件系统满足质量要求。
参考文献:
【1】R.N. Taylor, N. Medvidovic, E.M. Dashofy Software architecture – Foundations, theory, and practice 978-0-470-16774-8, Wiley (2010)
【2】M. Ozkaya Do the informal & formal software modeling notations satisfy practitioners for software architecture modeling? Inf Softw Technol, 95 (2017), pp. 15-33, 10.1016/j.infsof.2017.10.008
【3】Object Management Group. OMG unified modeling language secification – version 2.5. http://www.omg.org/spec/UML/2.5/; 2015. URL http://www.omg.org/spec/UML/2.5/.
【4】A. Pataricza, I. Majzik, G. Huszerl, G. Várnai UML-based design and formal analysis of a safety-critical railway control software module Tarnai G., Schnieder E. (Eds.), [Formal methods for railway operation and control systems], L’Harmattan Kiadó, Budapest (2003), pp. 125-132
【5】J. Cabot, R. Claris, D. Riera On the verification of UML/OCL class diagrams using constraint programming J Syst Softw, 93 (2014), pp. 1-23, 10.1016/j.jss.2014.03.023