HTC

What are some Qualitative Benefits of Using a DSSA?


Here are several specific examples of how automation, reuse, work avoidance, and accurate analysis are applied during specific life cycle activities. Some quantative data and estimates of cost and schedule reduction are available for specific cases.

Increased Requirements Reuse

Where there is a common understanding of your product line among your customer base, a reusable requirements outline can be produced. This can often be done in such a way that there is a well-defined mapping between the requirements outline and the reusable architecture specification. This allows refinements of the requirements outline to be mapped in a methodical way to refinements of the reusable software architecture.

Increased Design Reuse

A software architecture captures reusable design information in a clear and unambiguous way. Once an architecture is captured in a formal architecture specification language, automation can be applied to increase the ability of developers to reuse this design information in a reliable way.

Increased Source Module and Unit Test Reuse or Generation

A standard software architecture defines the context in which source modules are used. This provides interface coding guidelines that help insure source modules will plug-and-play together. It also provides a categorization of functionality that assists in developing a modular decomposition of the source code, and assists in structuring a reuse library so that developers can more easily find useful source modules. Aspects of an architecture-based approach resemble the use of fourth generation languages, in that much of the source code is automatically generated or assembled from high-level architecture specifications.

Decreased Module Interaction and System Integration Defects

Software architectures provide common product-wide standards for module interaction. This includes both coding guidelines and semantic models of how modules are combined and interact. System-level analysis performed on the architecture specification allows complex interactions between modules to be assessed and verified. To put this another way, tools are available to automatically check that certain module interactions behave correctly.

Increased Reuse of System Integration and Test Artifacts

Embedded software products must inevitably transition from host-based development and simulation through hardware-in-the-loop test fixtures and ultimately into the target system. By capturing and managing the context-dependent portions of an application, an architecture-based approach allows modules and subsystems to be reexecuted in a number of configurations and environments without change. Standard system integration and test architectures can be defined, with well-defined methods for integrating, testing and transitioning the application modules into the final product.

Increased Documentation Reuse or Generation

A reusable architecture has a structure that can be mirrored in the structure of some of the related documentation. Documentation about the various components that appear in the software architecture can be assembled in an analogous manner into the standard documentation structure. For example, hypertext annotations of the boxes and arrows that appear in an architecture diagram can be automatically assembled according to a standard outline to automatically generate design documentation.

Increased Ability to Predict and Manage Product Characteristics

The ability to analyze architectures to determine product characteristics, especially the ability to perform approximate analysis on partial specifications, allows developers to more accurately and consistently meet product objectives. Using initial analysis results obtained from a partial architectural specification very early in the development cycle, a developer can establish performance budgets and identify key uncertainties. Development steps can be scheduled to resolve the key uncertainties early in the development process, and design modifications can be made more easily to meet the product objectives.

Increased Development Process Predictability and Repeatability

The increased ability to predict and manage product characteristics leads to increased predictability and repeatability of the development process. Well-defined and repeatable methods are used to tailor a reusable software architecture and to assemble software components from a software architecture specification, which makes the implementation phase more repeatable. An enhanced ability to reconfigure systems during development makes it possible to more rapidly and easily respond to changes or new information.

Decreased Development Risk and Rework

The use of accurate system analysis and precise module interface guidelines leads to significant reductions in defects, which in turn can lead to significant savings in the effort spent finding and fixing bugs. The ability to accurately predict and manage product characteristics and to adapt to changing circumstances, coupled with a methodical and repeatable process for obtaining an implementation from an architecture specification, significantly reduces development variability and risk and significantly reduces rework due to defects or failure to meet requirements.

DSSA for GN&C Home Page