一、基本信息

标题: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

SAwUML – UML-based, contractual software architectures and their formal analysis using SPIN的更多相关文章

  1. Architectural Styles and the Design of Network-based Software Architectures

    w Architectural Styles and the Design of Network-based Software Architectures  http://www.ics.uci.ed ...

  2. [工具] Altova UModel® 2017 is a UML tool for software modeling & application development.

    https://cdn.sw.altova.com/v2017sp2a/en/MissionKitEnt2017sp2.exe https://cdn.sw.altova.com/v2017sp2a/ ...

  3. Methods and Systems for Enhancing Hardware Transactions Using Hardware Transactions in Software Slow-Path

    Hybrid transaction memory systems and accompanying methods. A transaction to be executed is received ...

  4. Awesome Go精选的Go框架,库和软件的精选清单.A curated list of awesome Go frameworks, libraries and software

    Awesome Go      financial support to Awesome Go A curated list of awesome Go frameworks, libraries a ...

  5. 【UML】统一建模语言及工具

    共四个 Chapter,持续输出中. 参考资料: UML软件建模技术-基于IBM RSA工具(清华大学出版社) UML2.0基础与RSA建模实例教程(人民邮电) 面向对象葵花宝典(李运华)(电子工业出 ...

  6. Create and format Word documents using R software and Reporters package

    http://www.sthda.com/english/wiki/create-and-format-word-documents-using-r-software-and-reporters-pa ...

  7. (转) [it-ebooks]电子书列表

    [it-ebooks]电子书列表   [2014]: Learning Objective-C by Developing iPhone Games || Leverage Xcode and Obj ...

  8. SCI&EI 英文PAPER投稿经验【转】

    英文投稿的一点经验[转载] From: http://chl033.woku.com/article/2893317.html 1. 首先一定要注意杂志的发表范围, 超出范围的千万别投,要不就是浪费时 ...

  9. Github上的1000多本免费电子书重磅来袭!

    Github上的1000多本免费电子书重磅来袭!   以前 StackOverFlow 也给出了一个免费电子书列表,现在在Github上可以看到时刻保持更新的列表了. 瞥一眼下面的书籍分类目录,你就能 ...

随机推荐

  1. 关于d3.js 将一个element 拖拽到另一个element的响应事件

    rt 正在做机柜可视化, 一个需求是能拖拽左侧列表的设备名称, 拖到右侧42U机柜中,并将设备图片放置在对应机柜位置上. 开始的时候一切都很顺利,点击左侧设备名称,添加一个g容器,将设备名称作为tex ...

  2. java 诊断工具——Arthas

    该说不说!小编做的这些功能,最讨厌的就是优化!某些前辈大佬写的代码小辈我实在不敢恭维!那逻辑!那sql! 接下来!今天的主角就登场了,阿里巴巴最近开源出来的一个针对 java 的工具,主要是针对 ja ...

  3. zigbee_蓝牙_wifi的比较与区别分析

    现在无线通读热了起来.三个最大的Wifi.ZigBee.蓝牙它们三个始终困惑着我.那么它们三个有什么区别呢? Zigbee 和蓝牙都是一项无线通信技术.ZigBee的传输距离视发射功率而定,有几百到几 ...

  4. chm制作及Haroopad使用(makedown工具)

    所需工具 1.网文快捕(可以制作chm的工具,在IE浏览起立可以右键把复制内容保存到软件里) 下载地址:http://www.05sun.com/downinfo/278913.html 2.Haro ...

  5. pythone函数基础(15)接口开发初识

    导入需要的第三方模块 import flaskimport toolsimport json,redisimport random server = flask.Flask(__name__)#新建一 ...

  6. webpack简笔(1)

    1.npm init -> 生成package.json文件 2.npm install webpack --save-dev (不建议全局安装 ,会锁定版本) [ --save-dev 开发环 ...

  7. Oracle定时任务Job笔记

    定时任务应用场景: 某一个生产系统上面,临时表不断变多,占了不少磁盘空间.由于这套软件是直接买的,不方便修改源代码.所以考虑使用Oracle定时任务直接从数据库层删除临时表. 定时任务业务: 首先写好 ...

  8. 512MB内存VPS服务器安装宝塔WEB客户端建站 - 环境部署篇

    原本以为我们很多网友用VPS搭建网站不会用WEB面板,而采用一键包或者自己部署编译环境,但是最后发现其实目前我们使用WEB面板的还是挺多的,无论是免费还是付费的都有不少人使用.比如当初一直免费的AMH ...

  9. Python学习心得--变量类型篇

    1.Python允许同时为多个变量赋值.例如:a = b = c = 1 2.Python允许多个对象指定多个变量.例如:a1, b1, c1 = 1, 2, "john" 3.使 ...

  10. HTTP之请求消息Request

    客户端发送一个HTTP请求到服务器的请求消息包括以下格式: 请求行(request line).请求头部(header).空行和请求数据四个部分组成. 请求行以一个方法符号开头,以空格分开,后面跟着请 ...