Skip to main content

The RAMS ToolKit (RAMSTK)

A ToolKit for Reliability, Availability, Maintainability, and Safety (RAMS) analyses.

Tests GitHub Workflow Status Coverage Status
Quality CodeFactor Quality Gate
Packages GitHub release (latest SemVer including pre-releases) PyPI

🚩 Table of Contents

Disclaimer

RAMSTK attempts to use Semantic Versioning 2.0.0. Per spec item 4, major version 0 is for initial development and anything may change at any time. That is certainly the case for RAMSTK! Because RAMSTK is a one developer show, there is no active develop branch at the moment. This may change after release of 1.0.0. Until then, tagged releases can be used, but the latest tag may not work and may not be backwards-compatible. While major version is at 0, breaking changes will be reflected in bumps to the minor version number. That is, version 0.15.0 is not compatible with version 0.14.0.

🎨  Features

RAMSTK is built on the concept of modules where a module is a collection of related information and/or analyses pertinent to system development. The modules currently included in RAMSTK are:

  • Revision Module
    • Usage profile
  • Function Module
    • Functional decomposition
    • Hazards analysis
    • Failure definitions
  • Requirements Module
    • Stakeholder input prioritization
    • Requirement development
    • Analysis of requirement for clarity, completeness, consistency, and verifiability
  • Hardware Module
    • Reliability allocation
      • Equal apportionment
      • AGREE apportionment
      • ARINC apportionment
      • Feasibility of Objectives
    • Hardware reliability predictions using various methods
      • Similar items analysis
      • MIL-HDBK-217F parts count
      • MIL-HDBK-217F parts stress
    • FMEA/FMECA
      • RPN
      • MIL-STD-1629A, Task 102 Criticality Analysis
    • Physics of failure analysis
  • Validation & Verification Module
    • Task description
    • Task acceptance value(s)
    • Task time
    • Task cost
    • Overall validation plan time/cost estimates

💾  Installing

RAMSTK uses postgresql for its database engine. You'll need to have a user with read/write access to a postgresql server to use RAMSTK. Instructions for setting up the postgresql servers and creating users with the appropriate permissions can be found in the project Wiki.

Download and Install

Since RAMSTK is still a version 0 product, it's highly recommended that you install in a virtual environment. The instructions below presume you will be installing in a virtual environment and system-wide Python packages that RAMSTK depends on will be unavailable. That being the case, you will need various system development packages available via your operating system's package manager to install RAMSTK.

Once you have installed any missing development file packages using your operating system's package manager, download the <version> of RAMSTK source from GitHub you wish to install.

$ wget https://github.com/ReliaQualAssociates/ramstk/archive/v<version>.tar.gz
$ tar -xf v<version>.tar.gz
$ cd ramstk-<version>

The other option for obtaining the RAMSTK source code is to clone the repository.

$ git clone https://github.com/ReliaQualAssociates/ramstk.git ramstk.git
$ cd ramstk.git

Create and activate a virtual environment however you are acustomed to. One approach is to use pyenv and poetry. Using pyenv isn't necessary unless you want to install and use a Python version other than that provided by your operating system.

$ pyenv install 3.8.7
$ poetry env use ~/.pyenv/shims/python3.8
$ poetry shell

This will install Python-3.8.7 and tell poetry to use the Python interpreter you just installed. Finally, poetry will create, if needed, and activate the virtual environment using Python-3.8.7 as the interpreter.

Now that the virtual environment is activated, you can install the necessary RAMSTK dependencies and RAMSTK itself. Omitting the PREFIX variable will cause RAMSTK to install to /usr/local by default.

$ make depends
$ make PREFIX=$VIRTUAL_ENV install

When upgrading RAMSTK, you can simply:

$ pip install -U ramstk

This will only install the latest RAMSTK version from PyPi and will leave configuration, data, and icon files untouched. If you cloned the RAMSTK repository, you can also use the Makefile:

$ git switch master
$ git pull
$ make install.dev

Development Dependencies

We use poetry to manage the dependencies for developing RAMSTK. Using the Makefile, install as follows:

$ make depends

This should get all the needed development and runtime requirements installed if they're not already.

Running the Tests

To run the entire test suite for RAMSTK after installing, simply execute:

$ make test

To run the test suite with coverage, execute:

$ make coverage
$ make coverage.report

To run specific tests or groups of tests, use pytest:

$ pytest -m integration tests/modules/test_allocation.py
$ pytest -m unit tests/analyses/prediction

🔨  Usage

After installing RAMSTK, it can be launched from a terminal emulator:

$ ramstk

This is a good option if you need to file an issue as the output should be included in your report. RAMSTK also installs a *.desktop file and can be found where ever applications in the category Math or Science are listed. If you've installed in a virtual environment or other non-standard location, this *.desktop file may not be found.

See the User Guide for the latest usage instructions.

Documentation

Documentation for RAMSTK is built and included as release assets. For each release, you will find a pdf and html implementation of the User Guide. For each minor and major version release, you will also find a pdf and html implementation of the Developer's Guide.

💬  Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Also read DEVELOPMENT_ENV.md for instructions on setting up a development environment to work on and test RAMSTK.

🍞  Authors

  • Doyle 'weibullguy' Rowland - Initial work - weibullguy

📜  License

This project is licensed under the BSD-3-Clause License - see the LICENSE file for details.

RAMSTK is also registered with the United States Copyright Office under registration number TXu 1-896-035 because I have an attorney and attorneys like to file paperwork for $300/hour.

Similar Products

The following are commercially available products that perform RAMS analyses. We are not endorsing any of them; they are all fine products and may be a better fit for you or your organization depending on your needs and budget. Obviously, we would prefer you use RAMSTK.

Metadata

Release files for ramstk 0.19.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ramstk 0.19.0
File Size Uploaded Provenance
ramstk-0.19.0.tar.gz 335.2 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for ramstk 0.19.0
File Interpreter ABI Platform
ramstk-0.19.0-py3-none-any.whl Python 3 none any Details

Total release size: 940.6 kB

Release files / ramstk-0.19.0.tar.gz

Download URL ramstk-0.19.0.tar.gz
Size 335.2 kB
Tags Source
SHA-256 checksum
How to use checksums
94d8aea2de6f4e72007ed501f6e1c697703273b4b52291e6fdf38a91ed2a02c2
BLAKE2b-256 checksum
How to use checksums
6629b81d7242ed1319914cf909679ab27f49a5f1dfe533450057ac5eb6c12945
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.13

Release files / ramstk-0.19.0-py3-none-any.whl

Download URL ramstk-0.19.0-py3-none-any.whl
Size 605.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
158f70385f3134d07f4b19478ee0abc97507ca59f565aae2fce8d4366160024d
BLAKE2b-256 checksum
How to use checksums
e40236bc56e765f20bd371b4298e4ed2f5db0d2cd8585681b69984ef5ab778c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.13

Security for ramstk 0.19.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page