Jellyfish is a product suite for the System Descriptor (SD) which is an Architecture-as-Code construct modeled after the DevOps Infrastructure-as-Code paradigm. Jellyfish is made up of several components:
The System Descriptor language is a simple text based language that describes the architecture of a system or product. The jellyfish-systemdescriptor-dsl project contains the language's grammar, parser, editor, and other components that deal with the DSL directly
The jellyfish-systemdescriptor project contains the API and default implementations that interact with the System Descriptor language. Developers use this project to build custom tooling that interacts with System Descriptor projects. Developers rarely use the DSL directly; they should use the APIs provided by this project.
The jellyfish-cli project contains the API for creating various tooling built on top of the System Descriptor language. The API may be extended by developers to add custom features without having to build tooling from scratch.
The jellyfish-cli-commands project contains commands for generating software projects directly from System Descriptor models.
The jellyfish-cli-analysis-commands project contains commands for generating various reports derived from System Descriptor models. These commands provide a static analysis of architectural quality.
The jellyfish-packaging project is used to package Jellyfish for different deployments. This includes
- a command line interface
- a set of Gradle plugins
- an Eclipse update site for installing the language support into Eclipse
- a Sonarqube plugin for running Jellyfish analysis with Sonarqube
The jellyfish-systemdescriptor-lang project contains the default models and data types that are built into the language. By default, all System Descriptor projects can reference elements in these projects.
The jellyfish-examples project contains various examples of both System Descriptor models and running the Jellyfish CLI.
You can download the latest releases at https://github.com/NorthropGrumman/jellyfish/releases.
Learn more about the System Descriptor language and Jellyfish at https://northropgrumman.github.io/jellyfish/.