The 'SysMLHelper' profile code is open sourced hence community owned. It is extensible outside of Rhapsody release cycles and can be tailored for specific customers. It supports a variation of the Harmony SE method altered for automotive market usage.

One method that I advocate is dubbed "rocketeering". It follows the great work done in I-Logix, Telelogic and then IBM on Harmony/SE by Dr Hans-Peter Hoffman.

This variant of the Harmony SE process can be explained by the analogy of building a space station and launching a series of multi-stage rockets to reach it.

Take the following analogy:

Your goal is to define an international space station. The space station will consist of a set of interconnected hubs and components that will grow over time (the space station = your system architecture). The station needs to be built in space which means that the things needed to build it (functional requirements) will be assembled on Earth and sent up in rockets. Because of the need to achieve escape velocity a two stage rocket boost is needed.

The first rocket boosting stage is called Requirements Analysis. This is a very light weight and easy to consume. It involves creating text-based activity diagrams to describe use cases, and using these to create functional requirements. The Requirements Analysis phase using activity diagrams gets the functional requirements only partially into the atmosphere. At this point everybody can see the rocket. They can point and look at the great spectacle.

A second stage is required to reach escape velocity by converting the initial activity model into an interaction model. Functional Analysis involves turning the ideas defined in the Requirements Analysis phase into an executable form and using this to generate a set of test scenarios that trace to the same set of functional requirements. By integrating related use case scenarios into a single consistent and executable form the Functional Analysis booster phase explores and verifies the expected emergent behavior. This results in improved functional requirements and improved supporting information (sequence diagrams and state machines). Importantly, the test cases defined in the Functional Analysis phase are the primary input to the team building the space station.

The Functional Analysis phase (using sequence diagrams and state-machines) gives enough momentum to get the payload into space where the payload is then assembled into the space station in the Design Synthesis phase. This is done by a different team who receive all of the payloads of all of the rockets, and build a logical architectural model that can do them all. More than one rocket is needed, so the functional requirements will be worked on in parallel by different engineers (either in use cases or as groups of use cases called "features). Rockets can also be launched incrementally, i.e., it is possible to start building while new rockets are being created.

No comments:

Post a comment