JavaScript required
We’re sorry, but Coda doesn’t work properly without JavaScript enabled.
Gallery
Share
Explore
Software Architecture
Week 1
Why do we need Software Architecture?
Large and Distributed System
Complex System
Should be delivered on time and within budget
Software problems changes in nature
The system must have conceptual integrity, which can be only achieved by seperating architecture from implementation.
Definition for Software Architecture
Defines the blueprints of a system
Gross level structure
Including components
Connections (Relationships) between these components
3 different classes of architectural elements
Processing elements
Data elements
Connection elements
Design Principles
SOLID
Separation Of Concerns
Encapsulation
Don’t Repeat Yourself (DRY)
Principle of Least Knowledge
Principles of Component Cohension
The Reuse/Release Equivalence Principle (REP)
The Common Closure Principle (CCP)
The Common Reuse Principle (CRP)
Terms
Software Architecture Realization
Program Families
Information-hiding Modules
Week 2
Rationale for Software Architecture
Abstract Specification
Ignore the details
Help to cope with complexity
Improve understanding of the software system
Stackholder Communication
Software Architecture provide a common medium for communication among stackholders
Improve understanding of the system among stackholders
Coping with Evolution (Manifestion of the earliest design decisions)
Deal with changes and evolution
Changes will be limited to the abstraction boundaries
Balance between fixed and adaptable parts of the system
Guides Software Development Process
Organization of the Development Project
Organization of Documentation
Basis of integration
Division into teams
Basis of test plan, testing
Basis of maintenance
Incremental deployment
Large Scale Reuse
Can be reused for similar structure and requirements
Can promote software product lines
Week 3
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
Ctrl
P
) instead.