Software Architecture in Practice (3rd Ed) Introduction The Many Contexts of Software Architecture • Architecture in a Technical Context • Architectures inhibit or enable the achievement of quality attributes • Architectures and the technical environment • The technical environment that is current when an architecture is designed will influence that architecture. • Architecture in a Project Life-Cycle Context • Conventional/common software development processes: Waterfall, Iterative, Agile, Model-Driven development • Activities that are involved in (1) creating a software architecture, (2) using that architecture to realize a complete design, and (3) implementing or managing the evolution of a target system: 1. 2. 3. 4. 5. 6. 7. Making a business case of the system Understanding the architecturally significant requirements Creating or selecting the architecture Documenting and communicating the architecture Analyzing or evaluating the architecture Implementing and testing the system based on the architecture Ensuring that the implementation conforms to the architecture Software Architecture in Practice (3rd Ed) Introduction The Many Contexts of Software Architecture • Architecture in a Business Context • Architectures and business goals • Architectures and the development organization • A Development organization contributes many of the business goals that influence an architecture. • An organization often has an investment in assets, such as existing architectures and the products based on them. • An organization may wish to make a long-term business investment in an infrastructure to pursue strategic goals and may view the proposed system as one of means of financing and extending that infrastructure. • The organizational structure can shape the software architecture, and vice versa. • Architecture in a professional context • Architect’s duties • Architect’s background and experience Software Architecture in Practice (3rd Ed) Introduction The Many Contexts of Software Architecture • Stakeholders • A stakeholder is anyone who has a stake in the success of the system being developed. Software Architecture in Practice (3rd Ed) Introduction The Many Contexts of Software Architecture • How is Architectures Influenced Software Architecture in Practice (3rd Ed) Introduction The Many Contexts of Software Architecture • What do Architectures Influence • Technical context • The architecture can affect stakeholder requirements for the next system similar to the current system • Project context • The architecture affects the structure of the developing organization. • Business context • The architecture can affect business goals of the developing organization. • Professional context • The process of system building will affect the architect’s experience with subsequent systems.