Abstract :
Software technology has evolved rapidly to satisfy the demands from the expansion of various applications of information technology. From the applications perspective, the demands for producing high-quality software for real-time systems, distributed computing infrastructure, internet, mobile and ubiquitous (or pervasive) computing systems, etc. are enormous. The quality involved may include not only robustness, high performance and security, but also light weight, composibility and situation awareness. During the last three decades, the phenomenal progress and changes in software technology have been obvious. New paradigms and techniques in developing and maintaining software systems have been introduced, such as object- and aspect-oriented software development, component-based software development, situation-aware and adaptive software, middleware, service-oriented architecture and secure software engineering.