|
Probably the biggest problem we face in systems engineering is maintaining continuity of vision throughout the project lifecycle. We have recognized for some time that specifications alone are inadequate. Initially the problem space is interpreting what it is the customer is really asking for. Then we move into design iterations, followed by development, test and delivery. Throughout, even perfectly crafted requirements and specifications are subject to reinterpretation over time and especially when individual requirements are viewed with out context. Generally it is not the quantitative performance requirements that cause problems but rather the functional or behavior requirements. The elements of behavior that must be understood include the architectural components and abstractions (both logical and physical), the interactions between components, and the activities of individual components. All the while recognizing that every system is hierarchical, and every aspect; architectural, interactions and activities decompose downward and abstract upwards. We have seen a variety of diagrams and techniques come in and out of vogue as systems engineers struggle to perform the basic tasks of systems engineering; Define the problem, Design a solution, Communicate the design, Build the product system, and Test the product system against the design. Notice I didn’t say; write requirements, create a DOORS database, generate specifications, write a Conops Document, generated FFBD, IDEF0 diagrams, Rose models, etc. These are artifacts and tools (the means not the end) to achieve the true goal; a product system that fulfills the customer’s needs within the programmatic constraints of budget, time and the reality of physics. These artifacts and tools only have value when they are used towards the goal and not seen as ends in themselves. “Begin with the end in mind” ModelingThrough a single model… we derive the product system requirements? we design the product system? we communicate the product system design? we test the product system? By recognizing that every system is hierarchical a suite of multiple levels of diagrams depict the system. An activity of a part of any system is a Use Case or activity of that part of the system. That is a natural decomposition. That “part” owns its Use Case as a requirement to be implemented by the components of that part. Just as the “part” decomposes into components or elemental parts, the behavior (the Use Case/Activity/Requirement) decomposes into elemental behaviors. Behavior and architecture decompose. The typical specification tree captures this as A-Specs, B-Specs, etc. The hierarchal model inherently does the same. The point is not to model individual requirements but to model the system in its entire hierarchical state because the whole is indeed more than the sum of its parts and only in understanding the whole can we avoid the ambiguity of analysis in isolation. >>>WARNING<<< Such a hierarchy is exponential, especially when alternate or exception flows are considered. Triage – not everything is essential to be modeled. The number one attribute of a systems engineer is common sense. Focus on risk; essential functionality, new technologies, and interfaces. Model the high risk areas. Scenario Sequence Diagrams and SysML Activity DiagramsScenario Sequence Diagram or SysML Activity Diagrams provide, in a single diagram, the capability to model; architectural components and abstractions (both logical and physical), the interactions between components, and the activities of individual components. By focusing on the essential behaviors of every system; Installation, Initialization, Operation, Fault detection, Fault restoration & Maintenance, and Disposal a set of scenarios will define the Level 0 system. Architecture and interactions are exposed during this exercise thus the first level of decomposition is realized. The Scenario Sequence Diagram and SysML Activity Diagram are graphic depictions of a behavior sequence. The key elements of the SSD are:
The SysML Activity Diagram, in the Swim Lane version, provides the same functionality but uses a slightly different vernacular. Actors are “Parts”, Lifelines are replaced with Swim lanes, Use Case are termed activities, and Messages can be richly represented. Error! Reference source not found. illustrates these SSD elements in a trivially simple system.
Figure 1 - 3-way lamp Scenario Sequence Diagram Utility of the Scenario DiagramsThe Scenario Sequence Diagram or SysML Activity Diagram are multi-purpose diagrams which capture the essential aspects of physical and functional architecture, and system behavior, in one diagram. These diagrams supplant several of the diagrams commonly used in Systems Engineering design derivation and documentation, and provide utility beyond the combination of all of them. Context Diagrams - The Scenario Sequence Diagram or SysML Activity Diagram, by listing the involved actors across the top of the diagram, illustrates the system’s physical, and functional, context and shows which actors interact in the scenario. Interface Diagrams - The Scenario Sequence Diagram or SysML Activity Diagram, through depiction of message traffic graphically, illustrates physical and logical interfaces between actors. Data Flow Diagram - The Scenario Sequence Diagram or SysML Activity Diagram data messages illustrates data flow between actors. Data Dictionary - The Scenario Sequence Diagram or SysML Activity Diagram, and especially the companion Event Flow Table, through the capture of each specific message provides the equivalent of a data dictionary for the scenario. Message Sequence Chart- The Scenario Sequence Diagram or SysML Activity Diagram illustrates sequential message exchanges between actors accomplishing the scenario. Use Case Model Diagram – The activities populating the vertical “life lines” of the actors are the Use Cases executed by each actor for the scenario. Activity Diagram - The Scenario Sequence Diagram or SysML Activity Diagram, through depiction of sequential Use Case execution is analogous, but superior, to the UML “Activity Diagram” in that it identifies the behaviors required of the actor in the execution of the scenario. The UML “activity diagram” merely shows state without exposing or elaborating behavior. Event Flow TableIn use, the Scenario Sequence Diagram or SysML Activity Diagram will typically be combined with a textual capture of the system design in an Analysis Package for the scenario. We use the Event Flow Table as the textual mechanism. The Event Flow Table provides significant additional aspects which enable the Analysis Package’s utility as a design and requirements validation tool. As CASE tools evolve we can see products such as Telelogic’s TAU integrating the graphic modeling tools with the traditional requirements repositories creating powerful tool sets for the practicing systems engineer and replacing the manual text approach. Structurally the Event Flow Table is a multi column table capturing the Source, Destination, Message and Activity of each “transaction” in the Scenario Sequence Diagram or SysML Activity Diagram. Because the diagrams represent a sequence the first 2 columns of the EFT can be used to capture the sequential numbering of the transactions in the Scenario and relative times (typically t -0 times) for sequences of transactions. Additionally the Requirements and assumptions columns are used to allocate requirements to design (or derive requirements from functions) and to capture assumptions associated with either. It is here where the integration of graphic model and requirements repositories are indicated. A comments column is often useful to capture the extraneous bits of information exposed during the analysis of the behavior. Additional columns are often added for specific attribute capture such as constraints and fault mode identification. Table 1 Event
Flow Table (format)
Function/Utility of
the Scenario Sequence Diagram or SysML Activity
Diagram and EFT Elements
Additional discussion of Scenario Sequence Diagram conventions can be found at http://www.sanelson.com/Work/SAN_work.htm#Papers The analysis package may be revisited several times during the development lifecycle with emphasis on various aspects of systems engineering appropriate to the time in the lifecycle. Requirements derivation, design validation, verification planning and test development, operations procedure development, and troubleshooting are some of the aspects of systems engineering that are assisted through use of the Analysis Package. |