一、基本信息

标题: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. 知识点---js监听手机返回键,回到指定界面

    方法一. $(function(){ pushHistory(); window.addEventListener(“popstate”, function(e) { window.location ...

  2. JQuery+formValidator实现表单验证

    <!-- 需求: 用户注册页面要有用户名.密码.确认密码.邮箱 用户名文本框:用户名不能为空,且必须为数字与字母的6到12位的组合 密码框:密码不能为空,最少6位,包括至少1个大写字母,1个小写 ...

  3. ApplicationListener接口的生命周期

    create:游戏初次创建时被调用,一般在这里创建ApplicationListener对象,初始化布景信息,将数据或UI布局绑定到监听器等,执行完该方法后会执行resize方法,是游戏创建立即执行的 ...

  4. Masonry与AmazeUI结合实现瀑布流

    做一个图片列表展示,由于照片数量太多,决定用瀑布流来实现 由于之前没有接触过瀑布流,不知从何下手 百度一下大家都在用Masonry 官网 https://masonry.desandro.com/ 这 ...

  5. spring boot + apache camel 传输文件

    一 sftp搭建略 这里简单说一下为什么使用sftp.ftp和sftp各有优点,差别并不是太大.sftp安全性好,性能比ftp低.ftp对于java来说并不复杂,效率也高.之所以使用sftp主要是可以 ...

  6. I/O多路复用之 epoll 详解

    1,epoll 原理(POLLIN,POLLOUT 状态): https://blog.csdn.net/hdutigerkin/article/details/7517390 https://blo ...

  7. 什么是HTML?

    html是很多人编程的入门领域.作为初学者,不管你是在哪里学的,学校,视频教程,网络教程等等……它们都会告诉你HTML即:超文本标记语言(Hyper Text Markup Language).但第一 ...

  8. 一文看懂大数据的技术生态Hadoop, hive,spark都有了[转]

    大数据本身是个很宽泛的概念,Hadoop生态圈(或者泛生态圈)基本上都是为了处理超过单机尺度的数据处理而诞生的.你可以把它比作一个厨房所以需要的各种工具.锅碗瓢盆,各有各的用处,互相之间又有重合.你可 ...

  9. 记忆化搜索 P1464 Function

    题目描述 对于一个递归函数w(a,b,c) 如果a≤0 or b≤0 or c≤0就返回值1. 如果a>20 or b>20 or c>20就返回w(20,20,20) 如果a< ...

  10. mysql权限操作(转)

    慢慢看吧mysql中可以给你一个用户授予如select,insert,update,delete等其中的一个或者多个权限,主要使用grant命令,用法格式为: grant 权限 on 数据库对象 to ...