HTC

What are the Benefits of Using a DSSA?


One key aspect of the architectural approach that allows dramatic improvement in cost and quality is that reuse, automation and work avoidance can be applied in multiple phases of the life cycle, not just the coding phase. A second key aspect of our approach is the ability to analyze and estimate product characteristics from architecture specifications. This helps avoid defects, increases the ability to manage development to meet requirements, and increases the ability to adapt to evolving requirements. There are many specific ways in which automation, reuse, work avoidance, and improved predictability and process management result in reductions in cost and schedule and increases in quality.

We estimate that where a reusable architecture can be rigorously specified and supported by tools, reductions in cost and schedule by factors of 3 to 10 should be achievable (overall life cycle effort should be reduced to 10-33% of current levels).

The methodology we used to estimate these benefits is as follow. First, we examine data about life cycle activities and the relative effort expended in each. We then examine gains achieved or estimated for specific examples of reuse, automation and work avoidance in various life cycle phases. From this data we estimate the expected gain achieved due to reuse, automation and/or work avoidance in each life cycle activity, which results in overall estimates of reduction in life cycle effort.

To summarize this analysis, we estimate that automation and reuse can be applied to 80-90% of life cycle activities and can reduce effort by a factor of 2 to 10. Significant work and rework avoidance can also be achieved, especially with the shift from current practices to concurrent multi-disciplinary development. We estimate this can further reduce effort by a factor of 2 in all activities. This leads to our final estimate that DSSA methods and tools can reduce software life cycle effort by factors of 3 to 10 or more.

This approach can be applied in a more detailed way to your particular process and product. You can do a more detailed evaluation of which technologies you can apply to which life cycle activities with what expected benefit. The following table gives two columns that provide examples of estimates for various life cycle activities that might be produced by particular development groups.

LIFE CYCLE ACTIVITY AND CHANGES                 PERCENT REDUCTION

Requirements                            50% of 20%             80% of 20%
  reuse requirements
  avoid iterations on requirements

Design                                  90% of 20%             95% of 20%
  automate analytic model generation
  reuse design specifications
  avoid coding simulation/prototype
  avoid redesigns

Implementation                          95% of 20%             95% of 20%
  automate code generation
  reuse code
  automate software/system integration
  avoid reimplementations

Testing                                 90% of 20%             95% of 20%
  reuse test specifications
  automate test code generation
  automate trace/coverage analysis
  avoid retesting unmodified units

Documentation                           50% of 20%             80% of 20%
  automate document generation
  reuse document boilerplate

Total                                   75% of 100%            90% of 100%
                                      (4X reduction)         (10X reduction)

Two important factors should be kept in mind when estimating the benefits of an architecture-based approach for your development efforts.

First, the approach is inherently domain-specific. If the types of products you build are not based on reasonably well-understood and stable kinds of requirements and technologies, and/or there is little or no similarity between multiple products, then it is difficult to define a common software architecture, or select languages to specify architectures, or acquire tools to operate on architectures.

Second, these savings in life cycle costs are achieved only at the expense of a capital investment in training and in reusable architectures and tools. You must make some investments in such assets, and you must do an assessment of the return on this investment based on estimates of future savings obtained over the life cycle of the entire product line. An adoption plan should consider the cost of acquiring and integrating different aspects of this technology into your current organization and practices versus the applicability and effectiveness of these technologies for your products and processes.

DSSA for GN&C Home Page