"Without better methods for developing dependable software, it may not be possible to build the systems we would like to build." —from a National Research Council study*
An architecture-centric, model-based approach to development and the building of an assurance case provide tools to develop dependable systems at all scales. For example, use of the Architecture Analysis and Design Language (AADL) supports predictive analysis for security, real-time performance, availability, and other quality concerns early and often during system design or when upgrading existing system architecture. An assurance case provides a means to structure the reasoning that engineers use implicitly to gain confidence that systems will work as expected.
We've noted examples of how these tools are being used, such as
Calculating the return-on-investment (ROI) from the use of tools like AADL and assurance cases needs to account for the ways they help organizations avoid problems that often lead to cost overruns, schedule slips, and performance shortfalls when traditional development approaches are used. The ROI factors to consider include the following:
* Software for Dependable Systems: Sufficient Evidence? (2007), Computer Science and Telecommunications Board (CSTB)