Download presentation
Presentation is loading. Please wait.
1
What’s the Difference Between Architecture and Design Paul Clements Subrahmanyam Allamaraju
2
Architecture and Design All architecture is design NOT all design is architecture Architect draws the boundary between architectural and non-architectural design
3
Traits of the Software Architect Gained enough breadth and depth in the relevant domain Strong communication/development/debugging skills “cross domain and technology proficiency and appreciation” “knowledge of patterns in domain/technology areas” Looking for challenging problems In summary: SUPER ENGINEER
4
What is Software Architecture? Represents the structure of the software Expressed using certain views Includes principles behind the design and evolution of the software Essential characteristics of architecture: –High level view –Realize ALL the use case scenarios –Present a systemic view to all stakeholders
5
Examples of Architectures (all of these are incomplete) High level Design –Only contains the implementer’s view of the software Deployment –Concerns how software is deployed across various platforms Generic Technology Architectures –Examples: COM, CORBA –Does not address the domain the software must exist and evolve in
6
Survival and Evolution Software survives as long as it meet the requirements for which it was built Software must evolve to meet future requirements Software Architecture’s fundamental requirement: “design a structure for the software considering the long-term consequences”
7
Architecture Paradox Survival vs Evolution 1.There is pressure on successful to change –New requirements –Changing environment 2.Software must evolve to survive 3.Changes increase the entropy of the software 4.Changes eventually increase the entropy to a point to where further changes are impossible 5.Software cannot evolve, therefore cannot survive
8
How to defy the Software Paradox Identify the goals of the architecture Discover the principles based on the goals Design an architecture integrating these principles
9
Identify the goals of architecture best-case requirements long term organizational focus reuse considerations User wish lists Other anticipated changes
10
Goals to principles “discover” the principles the software must follow to meet its goals Principles will guide designers to find the “right” implementation Principles may be expressed as rules –DOs and DONTS Enforcing these principles is difficult
11
Integration of Principles and Architecture Remove the human element from enforcement of principles Software structure will dictate: –How the software will be changed –What changes are possible –What changes are not possible
12
Summary Software can defy the architecture paradox if: –The structure can accommodate changes –A set of architecture goals is abstracted –Devise a set of principles to realize the goals –Integrate the principles into the architecture
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.