Abstract :
It is widely recognized that a good and appropriate architecture is critical to the success of a software product or system [5]. However, neither the system nor its architecture is static, and a good architecture anticipates and guides the evolution of the system over time. As the system evolves over time, the role of the software architect evolves as well, and skills that enabled an architect to be successful during one phase of a system’s lifetime may not enable success in later phases. This paper proposes a three-phase model to describe the evolution of software systems, and describes the contributions of the software architect which are necessary for success in each phase. This topic is of interest to practicing architects, and to software development managers responsible for selecting and hiring architects to contribute to a software system.