Friday, August 18, 2006

On Architecture

What’s Architecture

“the fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution”. (IEEE 1471)

Architecture defines major components ,
Architecture defines component relationships (structures) and interactions,
Architecture defines the rationale behind the components and the structure
Architecture is not a single structure -- no single structure is the architecture
Architecture represents the set of earliest design decisions
-Hardest to change
-Most critical to get right
Architecture is the first design artifact where a system’s quality attributes are addressed

Architecture serves as the blueprint for the system but also the project:
-Team structure
-Documentation organization
-Work breakdown structure
-Scheduling, planning, budgeting
-Unit testing, integration
Architecture establishes the communication and coordination mechanisms among components


Architecture is important
-it should be analyzed
Architecture can be prescribed
-decisions should be analyzed
Architecture is central for communicating
-it should be documented
Architecture is expensive to change
-it is cheaper to analyze early
Architecture affects the entire project
-many stakeholders should be involved
Requirements can be understood early
-architecture should be designed to meet them

Different view points

End user view:
Performance
Availability
Usability
Security

Developer’s view:
Maintainability
Portability
Reusability
Testability

Business user view
Time To Market
Cost and Benefits
Projected life time
Targeted Market
Integration with Legacy System
Roll back Schedule

No comments: