How to Choose a UML Tool
for Predictable Response Design

Your goal is to analyze, synthesize, and demonstrate the characteristics of your existing or proposed systems more easily and quickly—a model is worthless, or a needless expense, if it hinders communication or takes longer to construct than an actual system.

Of the many traits available to evaluate UML tools, you want to focus on those that are of particular relevance, of notable importance, of necessity when you are designing predictable response systems. Here we list the relevant traits a suitable UML tool should have.

1. Demand Good Usability
Usability traits are of direct benefit to the modeling engineer and address your goal of being able to model systems quickly. Demand that your UML tool support UML Standard Conformance, an Intuitive User Interface, Context-specific Properties and Help, Configurable Drill-down (Double-click) Behavior, a Common Data Dictionary, Referential and Consistency Checks, Element-specific Color Customization, Configurable Route and Place, Iconic Stereotypes, Customizable Toolbars, Application-specific Palette, Batch Stereotyping, Element-specific Configurable Detail Presentation, Diagram Scaling, and Automatic Diagram Generation (including: OCDs from OSDs, OSDs from Activity Diagrams and vice versa, OSDs from Code Traces, Class Diagrams from Legacy Code, Activity Diagrams from Code Import).

2. Require Lifecycle Integration
A suitable UML tool should integrate throughout the lifecycle of engineering a system with your Requirements Management, Economic Bill of Materials, Change Management, Methodology Build Management, Test Management, Code Management, and Failure Reporting, Analysis, and Correction Action System (FRACAS) tools. Integration should be such that you no longer need to create separate analysis-specific models of your system; ideally, you design your model in one tool and employ that model as needed for each analysis.

3. Require Systems Engineering Support
Predictable response systems are generally complex and their satisfactory implementation requires systems engineering. The goals of Systems Engineering are to understand and communicate what exists and what needs to exist, to facilitate rapid decision making when confronted with potential alternative solutions, and to demonstrate that any implemented system is everything-and nothing but-the system described by its requirement specification. Your UML tool should support Context Modeling, Subsystem Modeling, Component Modeling, Deployment Modeling, Modes Modeling, Constraints Modeling, Econometric Analysis, Messaging Abstractions, Pattern Support, and Actor Generalization.

4. Look for Collaborative Features
Because predictable response systems are complex, their successful, timely analysis and synthesis typically calls for a diverse, distributed team of collaborating engineers. Many studies have shown that communication overhead is geometrically proportional to the number of stakeholders. A suitable modeling tool should recognize the need for frequent, simultaneous collaboration and facilitate—not hinder—such communication. Look for a UML tool that supports Change Management Integration, Simultaneous, Multi-user Access, Access Control, Work-flow Integration, and Task Management.

5. Demand Predictability Analysis Support
Predictability Analysis is the set of various studies that Systems Engineers perform to assure that their systems are safe, reliable, maintainable, and satisfy their time constraints. Predictable systems do not harm their human actors, are available for service when called upon, deliver required performance, and degrade gracefully when compromised. Ideally, your UML tool supports Concurrency Modeling, Synchronicity Iconic Stereotypes, the Schedulability Profile, RMA Tool Integration, a Reliability Profile, a Failure Mode Effects Analysis (FMEA) Profile, FMEA Tool Integration, and RTOS Integration.

6. Require Solid Presentation Capabilities
While modeling tools usually offer adequate user interfaces that enable the modeling engineers to understand their models, these engineers must present their models to vendors, partners, auditors, clients, documentation writers, and various other stakeholders who lack access to the modeling tool or who do are not familiar with the modeling language. A suitable modeling tool for complex systems must provide a means of presenting models in general, more traditional formats. Require that your UML tool support Certification Document Templates (such as ISO 9001, CMMI, DO-178B, IEEE 12207, and the C4ISR Framework), Microsoft Word and HTML/XML document generation, Web access, Visio integration, and the printing of large diagrams.

7. Look for Strong Implementation Support
Modern software engineering tools can break the tradition of dust collecting specifications if the modeling utilities contain sufficient information and design engineers can use the modeling tool as a code generator for their software (or the model can be sufficiently precise to be the code…) Therefore look for UML tools that support Code Generation (C++, Java, Ada95), Code Import (C++, Java, Ada95), Code Synchronization, Activity Diagrams, UML 1.5 Action Language, Middleware Integration, RTOS Integration, Model Simulation, Execution, and Trace, and Test Execution Integration.

8. Choose a Vendor who knows Real-time
Consider the experience of the vendor of your candidate UML tool. Make sure that they understand that the aerospace, industrial automation, medical, and telecommunications industries have demands unique from those of the information technology and business industries. Look for a vendor that is focused on addressing the needs of Systems and Reliability Engineers.

637 Witter Gulch Road
Evergreen, CO 80439

(800) 630-7938
info@predictableresponse.com

Summary

The goal of Systems Engineering is to accelerate the analysis, synthesis, and presentation of models of systems such that stakeholders can quickly make accurate decisions. A UML tool suitable for the design of predictable response systems must offer good usability, integrate with analysis efforts over the lifecycle of the system, support the engineering of systems, facilitate collaboration, efficaciously present model information, and support implementation of a system from its model.

Related Information
"Designing Concurrent, Distributed, and Real-Time Applications with UML"
"The Unified Modeling Reference Manual"
"How to Model a Good Use Case"
"How to Perform Rate Monotonic Analysis"
"Systems Engineering" Defined
"Predictable Response" Defined
© 2003 Predictable Response Consulting, All Rights Reserved Modified: February 11 2003.