Skip to content

Lightweight Open BMW Software Traceability Evidence Report

License

AGPL-3.0, AGPL-3.0 licenses found

Licenses found

AGPL-3.0
LICENSE.md
AGPL-3.0
LICENSE.txt
Notifications You must be signed in to change notification settings

bmw-software-engineering/lobster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LOBSTER

The Lightweight Open BMW Software Traceability Evidence Report allows you to demonstrate software traceability and requirements coverage, which is essential for meeting standards such as ISO 26262.

This repository contains the prototype for LOBSTER, which is a key ingredient to make TRLC and other supported tools more useful.

It has tools to extract tracing tags from a variety of sources to combine them and produce a tracing report. The TRLC tracing report from the TRLC Project is a reasonable example of what is possible when lobster is used in combination with TRLC or any of the other supported tools.

Installing

All tools can be installed separately from PyPI, but there is a convenient meta-package bmw-lobster which installs everything.

$ pip3 install bmw-lobster

For the HTML Report graphviz is also used to generate the tracing policy diagram. More on that on the user manual.

$ sudo apt-get install -y graphviz

The lobster-cpp converter tool needs a specific version of clang-tidy. Please see here to create it.

Supported inputs

The following requirements frameworks are supported:

  • TRLC (only some use cases supported right now)
  • Codebeamer (only some use cases supported right now)

The following programming languages are supported:

The following verification and miscellaneous frameworks are supported:

Documentation

(More to come...)

Installing individual packages

The individual PyPI packages that bmw-lobster depends on are:

  • bmw-lobster-core the core API and various report generators. All other tools depend on this Link
  • bmw-lobster-tool-codebeamer (for requirements in Codebeamer) Link
  • bmw-lobster-tool-cpp (for C/C++ code) Link
  • bmw-lobster-tool-cpptest (for C/C++ code) Link
  • bmw-lobster-tool-gtest (for GoogleTest tests) Link
  • bmw-lobster-tool-json (for activities in JSON) Link
  • bmw-lobster-tool-python (for Python3 code) Link
  • bmw-lobster-tool-trlc (for TRLC code) Link
  • miss_hit (for MATLAB/Octave code or Simulink models) Link

For LOBSTER developers

Requirements Coverage

Here are the links to the individual html requirements coverage reports:

Simple lobster-demo

  • A simple example can be found in the repository: lobster-demo

Workflow of LOBSTER

The lobster tool uses several steps to accomplish a fully modular software traceability and requirements coverage report. You can consider lobster as a set of 1) conversion tools, 2) a common interchange format, 3) the report creation tool and 4) a renderer for the tracing report.

For a more detailed description please read our user guide.

These steps are in the following diagram and go from left to right side:

graph LR
    subgraph "Converter-Tools"
        direction TB
        A1[Lobster-python]
        A2[Lobster-trlc]
        A3[Lobster-json]
        A4[Lobster-cpp]
        A5[Lobster-codebeamer]
        A6[Lobster-gtest]
    end
 
    subgraph "Common inter. format"
        direction TB
        B1[Python.lobster]
        B2[Trlc.lobster]
        B3[Json.lobster]
        B4[Cpp.lobster]
        B5[Codebeamer.lobster]
        B6[Gtest.lobster]
    end
 
    subgraph "Generate lobster report"
        direction TB
        D1[Lobster-online-report]
        D1 ---> D2
        D2[Lobster-report -> report.lobster]
        D3[Tracing policy -> lobster.conf]
        D3 ---> D2
    end
 
    subgraph "Renderer"
        direction TB
        C1[html]
        C2[CI]
        C3["..."]
    end
 
    %% Main connections
    A1 ---> B1
    A2 ---> B2
    A3 ---> B3
    A4 ---> B4
    A5 ---> B5
    A6 ---> B6

 
    %% Connect all schema elements to Lobster-report -> report.lobster
    B1 ----> D2
    B2 ----> D2
    B3 ----> D2
    B4 ----> D2
    B5 ----> D2
    B6 ----> D2
 
    %% Connect Lobster-report -> report.lobster to renderers
    D2 ---> C1
    D2 ---> C2
    D2 ---> C3
Loading

Planned inputs

The following inputs are planned but not implemeted yet:

  • lobster-java: Java code
  • lobster-kotlin: Kotlin code

Copyright & License information

The copyright holder of LOBSTER is the Bayerische Motoren Werke Aktiengesellschaft (BMW AG), and LOBSTER is published under the GNU Affero General Public License, Version 3.