SAwUML – UML-based, contractual software architectures and their formal analysis using SPIN
一、基本信息
标题: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的更多相关文章
- 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 ...
- [工具] 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/ ...
- 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 ...
- 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 ...
- 【UML】统一建模语言及工具
共四个 Chapter,持续输出中. 参考资料: UML软件建模技术-基于IBM RSA工具(清华大学出版社) UML2.0基础与RSA建模实例教程(人民邮电) 面向对象葵花宝典(李运华)(电子工业出 ...
- 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 ...
- (转) [it-ebooks]电子书列表
[it-ebooks]电子书列表 [2014]: Learning Objective-C by Developing iPhone Games || Leverage Xcode and Obj ...
- SCI&EI 英文PAPER投稿经验【转】
英文投稿的一点经验[转载] From: http://chl033.woku.com/article/2893317.html 1. 首先一定要注意杂志的发表范围, 超出范围的千万别投,要不就是浪费时 ...
- Github上的1000多本免费电子书重磅来袭!
Github上的1000多本免费电子书重磅来袭! 以前 StackOverFlow 也给出了一个免费电子书列表,现在在Github上可以看到时刻保持更新的列表了. 瞥一眼下面的书籍分类目录,你就能 ...
随机推荐
- el-input的color修改无效问题
相信很多前端初学者跟我一样也遇到过el-input的color修改无效问题 如下图:我想把el-input里面的文字改成蓝色,但是使用总是失败 修改方法:打开调试界面,找到el-input对应的sty ...
- UVALive 3942 Remember the Word
题意:给出一个由S个不同单词组成的字典和一个长字符串.把这个字符串分解成若干个单词的连接(单词可以重复 使用),有多少种方法? Sample Input abcd 4 a b cd ab Sample ...
- JSONObject optString
JSONObject optString 获取后台返回的{"state":1001,"data":"数据保存成功"} 用optString ...
- 利用redis实现分布式锁知识点总结及相关改进
利用redis实现分布式锁知识点总结及相关改进 先上原文,本文只为总结及对相关内容的质疑并提出若干意见,原文内容更详细https://www.cnblogs.com/linjiqin/p/800383 ...
- pandas操作行集锦
pandas移花接木 数据准备两表: 我们接下来要进行的操作: 增 将两表进行合并 # 把两张表合并,但是这样有问题,索引会重复的进行0-19 students = page_001.append(p ...
- 关于pycharm有时候提取不了form表单POST提交的数据
1.有可能标签没有name属性 2.name属性要放在第一个位置,放在末尾有时候会出现BUG导致识别不出,提取的值为None.
- 关于逻辑回归是否线性?sigmoid
from :https://www.zhihu.com/question/29385169/answer/44177582 逻辑回归的模型引入了sigmoid函数映射,是非线性模型,但本质上又是一个线 ...
- Python基础-文件操作(七)
一.文件基本操作 1.open 打开模式: w模式 写模式write 文件不存在时会创建文件,如果文件已存在则会清空文件 r模式 读模式read 文件不存在就报错,存在则准备读取文件 a模式 追加模式 ...
- 浙江省赛之Singing Everywhere
题目:http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=5996 方法: 在大佬的指导下完成. 寻找峰值,找到一共k个 ...
- Java往指定地址接口发送内容方法
package com.upload.tool; import java.io.BufferedReader;import java.io.InputStreamReader;import java. ...