ABSTRACT

Software is ubiquitous in the mission-critical systems that are used today, ranging from embedded systems such as flight control to stand-alone systems that manage international financial flows. Real-time embedded systems are a special class of mission-critical systems, which have to satisfy both dependability and timeliness requirements. The traditional constraints on these systems were processing power and memory availability; however, with the quantum increases in computing power and miniaturization of electronics, the challenges revolve around integrating multiple embedded components within a larger systems context and managing the evolution of technology. Building, evolving, and ensuring confidence in these complex systems in a cost-effective and schedule-compliant manner is becoming increasingly more difficult. As Boehm (1981) noted, the most difficult part of developing a software-intensive system is not in the software development phase itself, but in the design, integration, and verification phases. There needs to be a unifying framework that covers the complete system life cycle, from initial requirements all the way to sustainment and eventual retiring.