SISMIC交互式状态图模型解释器和检查器

sismic的Python项目详细描述


https://travis-ci.org/AlexandreDecan/sismic.svg?branch=masterhttps://coveralls.io/repos/AlexandreDecan/sismic/badge.svg?branch=master&service=githubhttps://api.codacy.com/project/badge/grade/10d0a71b01c144859db571ddf17bb7d4https://badge.fury.io/py/sismic.svghttps://readthedocs.org/projects/sismic/badge/?version=master

Sismic交互式状态图模型解释器和检查器

sismic是一个递归的缩写,代表sismic交互式状态图模型解释器和检查器

状态图是一种著名的可视化建模语言,用于表示可执行行为 复杂的基于反应事件的系统。Sismic Library for Python(3.5或更高版本)提供了一组 定义、验证、模拟、执行和测试状态图的工具。 更具体地说,Sismic提供:

  • 一种基于人类友好的yaml标记语言定义和导入状态图的简单方法
  • 一个状态图解释器,提供一个离散的、逐步的、完全可观察的模拟引擎
  • 完全可控的模拟时钟,支持实时和模拟时间
  • 内置支持使用常规python代码表示操作和保护,可轻松扩展到其他编程语言
  • 对状态图的契约式设计(DBC)的支持:可以指定契约来表示状态和转换的不变量、前置和后置条件
  • 以状态图表示的行为属性的运行时监视
  • 内置支持行为驱动开发(bdd)
  • 支持状态图之间的通信
  • 同步和异步执行
  • 使用PlantUML
  • 进行状态图可视化

安装

Sismic要求python>;=3.5。 Sismic可以像往常一样使用pip安装:pip install sismic。 这将安装最新的稳定版本。

您还可以通过克隆此存储库来安装Sismic。

从1.0.0版开始,Sismic遵循semantic versioning方案。

文档

最新发行版本的文档可在sismic.readthedocs.io上找到。

docs/examples中提供了许多示例。

也可以使用sphinx从docs目录直接构建文档。

科学文章A method for testing and validating executable statechart models介绍了SISMIC支持的验证和测试状态图的方法和技术,发表在2018年的Springer软件和系统建模杂志上。

更改日志

参见文档的changelog

学分

用于python的sismic库主要由alexandre decan在 ^在many contributors的帮助下,University of Mons的{a13}。

Sismic是作为开源软件在GNU Lesser General Public Licence version 3.0 (LGPLv3)下发布的。

您可以使用以下命令引用Sismic库:

@software{sismic,
  author = {Decan, Alexandre},
  title = {Sismic Interactive Statechart Model Interpreter and Checker},
  url = {https://github.com/AlexandreDecan/sismic},
}

您可以引用相关的研究文章:

@article{sismic2018-sosym,
   author = {Mens, Tom and Decan, Alexandre and Spanoudakis, Nikolaos},
   journal = {Software and Systems Modeling},
   publisher = {Springer},
   year = 2018,
   title = {A method for testing and validating executable statechart models},
   doi = {10.1007/s10270-018-0676-3},
   url = {https://link.springer.com/article/10.1007/s10270-018-0676-3},
 }

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
与ReentrantLock相比,java ReentrantReadWriteLock的性能非常差   java如何使用Maven Android Studio正确导入?   安卓将ADB添加到我的Java PC应用程序   反射Java getDeclaredConstructor失败,来自JUnit的NoSuchMethodException   JSP上siteedit标记库的java替代   JavaSpring环境概要文件和JPA   java中是否有一个类似于StringBuilder的类,唯一的区别是它具有固定的长度?   JavaMathContext。小数点32 vs MathContext。小数点64,使用哪一个,为什么?   java使用spring在Ibm Websphere MQ中实现重试逻辑   java调用SpriteBatch。开始()和结束()   java有一种从文本中读取文本的方法。文件,并将其设置为pom中的maven属性。xml专家?   java让sitemesh使用struts2   Java Swing:在现有窗口上定位对话框   使用带有MemSql的JPA本机查询的java Select json列