Skip to main content

A tool to manage RAMS data and analyses.

Project description

The RAMS ToolKit (RAMSTK)

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

Documentation Documentation Status
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 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. Also at this time, patch versions will not be released. This will change after version 1.0.0 is released.

🎨  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:

  • Function Module
    • Functional decomposition
    • Hazards analysis
  • 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 Module
    • Task description
    • Task acceptance value(s)
    • Task time
    • Task cost
    • Overall validation plan time/cost estimates

💾  Installing

These instructions will hopefully get RAMSTK up and running on your local machine. RAMSTK uses a Makefile to install/uninstall itself because there are various icon, data, and configuration files that also need to be installed outside site-packages. Thus, only the actual RAMSTK application is available at PyPi and the initial installation must be done using the source asset at GitHub for the release you wish to install or cloning the RAMSTK repository if you'd like the latest code.

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.

Download and Install

Install any missing RAMSTK dependencies using pip, your package manager, and/or build from source. Then 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>
$ make install

The install target recognizes PREFIX= so you can install RAMSTK in your $HOME or a virtual environment. Since RAMSTK is still a version 0 product, it's highly recommended that you install in a virtual environment.

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

When upgrading RAMSTK, you can simply:

$ pip install

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

$ make install.dev

Development Dependencies

I use poetry to manage the dependencies for RAMSTK while I'm developing. 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

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

$ pytest -m integration tests/modules/test_allocation.py
$ pytest -m calculation 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 installs a *.desktop file and can be found where ever applications in the category Math or Science are listed.

Documentation

Documentation for RAMSTK can be found at Read the Docs You should check it out!

💬  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.

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ramstk-0.15.8.tar.gz (330.9 kB view hashes)

Uploaded Source

Built Distribution

ramstk-0.15.8-py3-none-any.whl (580.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page