Jeffrey J.P. Tsai and Prasad Sistla
Dept. of Electrical Eng. and Computer Sci.
University of Illinois at Chicago
Chicago, IL 60607-7053
Real-time systems are becoming increasingly important to everyday life. Examples include command and control systems, process control systems, telecommunication systems, patient monitoring systems, flight control systems, robotics, avionics systems, and so on. With increasing computing power and high demand for multimedia applications, larger and more complex real-time systems are being continuously developed. However, the development of real-time systems is difficult and takes longer time than the development of a system without real-time constraints. This is due to the fact that the supporting software for real-time systems has not kept pace with the rapid progress in new hardware architectures. When supporting software lags hardware development, systems are more error prone and difficult to develop. In order to improve the usability and reliability of real-time systems, the supporting software and development tools need to be greatly improved. However, in a waterfall-based software development process, a significant portion of the entire effort remains devoted to the maintenance activities of the software life cycle. To enable the software industry to evolve software better, faster, cheaper, and more predictably, a new software paradigm needs to be developed. The concept of software architecture has recently emerged as a new way to improve our ability to effectively construct large-scale software systems. In spite of many attempts to develop architecture specification languages, this area still lacks a solid formal foundation. Without a solid foundation, it is difficult to develop and apply rigorous analysis methods to assure the correctness of real-time software systems as well as to analyze the impacts of changes on various system properties such as safety, consistency, reliability, and so on. In this project, we plan to develop a formal foundation for an architecture specification language using the integration of non-monotonic logic and temporal logic. The syntax of the language will be based on the concepts of object, frames and production rules. This will facilitate the developers to easily describe the attributes and constraints of each software component, and also the hierarchical relations among the software components in the software architecture. The semantics of multiple inheritance and exceptional handing will be established using a non-monotonic logic. This will allow software developers to localize the change of software components in the low-level architecture specification without modifying the high-level architecture specification. Based on the formal foundation of the architecture specification language, we will be able to analyze software properties such as liveness, safety, consistency, temporal constraints as well as to incrementally analyze the impacts of the changes to a real-time software system. After we have a correct architecture specification, a proposed transformation system will be developed to transform architecture specifications into target programs.