信号时序逻辑(STL)规范对非正式文本要求的系统验证。

STLInspector的Python项目详细描述


信号时序逻辑(stl)规范的系统验证 反对非正式的文本要求。


目标 STLInspector是 识别在形式化过程中发生的典型故障 通过修改候选规范的需求。 STLInspector计算 一系列代表性的信号,使需求工程师能够 为了根据所有变异的变体验证候选规范, 从而实现全变异覆盖。通过目视检查 通过基于web的gui,工程师可以获得对 形式化的正确性-即使她不熟悉 史崔。STLInspector 使形式化规范的评估可被广泛使用 因此有助于利用 规范和计算机辅助验证。

安装

STLInspector取决于 关于Python 2ANTLR v4,定理证明者 Z3使用python绑定和 python包FlaskFlask-Assets。 另外,gui依赖于 BootstrapjQueryjQuery UIChart.js,和 handlebars

使用包管理器安装或下载python 2>;=2.7.9 来自http://www.python.org/downloads。这也提供了python 包装经理皮普。 STLInspector是 作为python package提供,可以是 使用PIP安装:

pip install STLInspector

注意,所需的javascript框架不是本地安装的, 但通过网络连接加载。这是有限制的 你只能在互联网上使用图形用户界面。由于 出于安全原因,禁止对gui进行网络访问,并且gui 仅通过本地主机可用。

教程

这是一个演示如何使用 STLInspector。它显示 程序的标准工作流程和示例需求。为了一个 更深入的理解考虑阅读 documentation

  1. 通过执行stlinspector .启动服务器。

  2. 打开浏览器并转到http://localhost:5000

  3. new requirements project按钮,输入标题 tutorial requirements project并按add按钮。这个 项目概述打开。

  4. text requirements块中,按edit按钮 输入:

    The velocity should be higher than 5km/h from second 1 to second 3.

  5. current stl candidate块中,按edit按钮 输入:

    F[1,3] velocity > 5

  6. visual inspection results下,将name替换为test user 然后按new visual inspection

  7. 显示了文本需求和测试信号。评估 对测试信号的文本要求并按yesno 按钮。执行此操作,直到不再显示测试信号。然后按 返回项目概述

  8. 要查看评估结果,请按show results按钮。 因为在我们的例子中stl候选是错误的,一些 评估结果应与STL候选结果不同。

  9. 将stl候选更改为:

    G[1,3] velocity > 5

  10. 重新对新的stl候选者进行目视检查。

  11. 不应获取stl的冲突计算结果 现在是候选人。

  12. 按“保存”按钮,项目将保存到 tutorial_requirements_project.stlinspector当前 目录。恭喜,你验证了STL候选人 文本要求!

文档

更多信息请参见 documentation 详细介绍了基于web的gui的使用、解析器和变异 操作员。gui提供了文档的html版本。

贡献

我们非常感谢为 STLInspector。全部 对这个项目的贡献应该作为请求在github上发送。 STLInspector使用 语义版本控制卧床 packaging.python.org。 在请求拉取之前,请运行测试套件python setup.py test

许可证

STLInspector是 在Apache Licence 2.0下释放。

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

推荐PyPI第三方库


热门话题
java HikariCP连接池Tomcat调试启用   java如何在javascript中访问JSON数组的元素?   jasper使用HttpServlet报告Java空白PDF   用于存储海量数据的java最佳集合   JBPM&springboot组织。流口水。坚持不懈jta。JtaTransactionManager在JNDI位置[java:comp/UserTransaction]未找到任何UserTransaction   java Grails maven插件需要Groovy 2.4.2   获取列表中访问最少的元素(Java 8)   java在IntelliJ中下载cn1lib不起作用   java Akka构造函数通过spring进行布线   swing在Java中创建JList时,如何更改条目的背景颜色?   为什么Java8Lambda允许访问非最终类变量?   javajavax。邮政MessaginException:无法连接到SMTP主机   java Android Webview高度在滚动后增加