一、基本信息

标题: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. Oracle:查询各组最新的一条记录

    oracle中怎么查询各组中最新的一条记录呢?比如说现在有一个表中几条数据如下: 有两种写法:写法一:over partition by 分析函数 SELECT * FROM (select ID_, ...

  2. 如何使用wepy和 vant-weapp开发小程序

    这里记录一下  使用wepy框架和  vant-weapp库开发小程序废话 不多说 wepy文档: https://tencent.github.io/wepy/document.html#/ van ...

  3. office2016产品密钥

    office2016专业增强版产品密钥: VL批量授权版:QCKNG-29MKJ-74G4B-X7DT8-JFHBB(亲测有效) office2016专业增强版密钥(Retail零售版),可电话激活 ...

  4. WCF基础_使用svcutil.exe 工具来生成调用文件

    右键单击一个服务在浏览器中打开时,通常会有这么一段话: ServiceDemo 服务 已创建服务. 若要测试此服务,需要创建一个客户端,并将其用于调用该服务.可以使用下列语法,从命令行中使用 svcu ...

  5. mpvue前期准备

    一.配置环境: 1.下载node.js,去官网上下载相应的版本.http://nodejs.cn 2.安装就是下一步下一步,检查是否安装成功,打开cmd.输入  node -v 会出现版本号. 3.推 ...

  6. 第六周博客作业 <西北师范大学| 周安伟>

    第六周博客作业 助教博客链接:https://home.cnblogs.com/u/zaw-315/ 本周工作:评阅作业24份点评困难的作业:无作业要求:https://www.cnblogs.com ...

  7. usb设备驱动的分析

    怎样来分析驱动程序呢? 1.将一个usb设备插入到电脑上,在串口软件上能够显示一些打印信息,用source insight软件打开linux内核2.6.22版本,然后从第一行查找通用的关键字,找到这一 ...

  8. [剑指Offer]60-n个骰子的点数

    题意 输入骰子个数n,打印出所有骰子朝上的点的点数之和,及对应的概率. 题解 循环. n个骰子,点数之和在n~6n范围内.计算n个骰子扔出和为m的情况数,等于n-1个骰子扔出m-1,m-2...m-6 ...

  9. oracle 中查看数据库表中某个字段是否重复

    1.select  表中重复的字段 from  表名 group by 表中的重复的字段 HAVING count(表中的重复的字段)>1 举例说明 : 表名 : psp_cell_model  ...

  10. 显式Intent 和隐式 Intent 的区别

    显式 Intent : 在知道目标组件名称的前提下,去调用Intent.setComponent().Intent.setClassName()或Intent.setClass()方法或者在new I ...