This paper describes the advances in software design methods for concurrent, real-time and distributed applications from structured methods for centralized systems to distributed, object-oriented, component-based and service-oriented systems and product lines. The influence of software architectural and design patterns is also described. Current challenges for designing service-oriented architectures, adaptive software design, and evolutionary software design are also discussed.
['Hassan Gomaa']
Advances in Software Design Methods for Concurrent, Real-Time and Distributed Applications