80 likes | 185 Views
This paper explores the essential aspects of software architecture, focusing on the critical design decisions architects must make and the knowledge required for effective architecture. It discusses the assumptions inherent in software architecture, the importance of capturing key decisions, and methods for extracting and managing architectural knowledge (AK). Additionally, it outlines an architecture ontology, strategies for sharing AK in distributed settings, and practices for incremental architectural reviews. The authors present case studies and practical use cases to illustrate the application of these concepts.
E N D
Building up and Exploiting Architectural Knowledge Philippe Kruchten Paticia Lago Hans van Vliet Timo Wolf
Griffin objectives • Software architecture as a set of design decisions • What knowledge does an architect use/need? • What types of assumptions are made in an architecture? • Which types of decisions are important to capture explicitly? • How to extract “important” architectural knowledge (AK)? • How does an architecture ontology look like? • How to share AK in a distributed setting? • How to describe AK • How to manage AK WICSA5, 8 november 2005
Part of an AK-graph WICSA5, 8 november 2005
Use Cases for AK • Incremental architectural review • Evaluate impact • Get a rationale • Study chronology • Add a decision • Spot the critical stakeholder • Clone AK • Determine integration strategy • Detect and interpret patterns WICSA5, 8 november 2005
Use Case operation on AK graphs • Subset operation • Closure operation • … • Visualization (Tufte) WICSA5, 8 november 2005
Ongoing work • 4 case studies • “4” use cases • Model AK • Provide tooling to support use cases WICSA5, 8 november 2005