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.
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.