Please enable JavaScript.
Coggle requires JavaScript to display documents.
Introduction to Software Architecture, Runtime Attributes - Coggle Diagram
Introduction to Software Architecture
What is architectural design?
defines the relationship between major structural elements
define the styles and design patterns
constraints that affects the way architecture
'skeleton'
Why is architecture design is important?
reduces the risks
helps development team works together
makes the system traceable
Software Requirements Specification
Serves as contract between
Developer
Customer
Specifies
Functional Requirement
Non-functional requirements
Software Design Description
Describes high and low level design
Components of the system
Modules of each components
Detailed information of each module
DB oriented application - data dictionary
SDLC consists of
Specification Analysis
Design
Implementation
Testing, Maintenance
Two Steps in Software Design
Architectural Design
describe user accessible components and the interconnections among them
Detailed Design/Tactical design
specify the internal details of each component
What is architecture style?
abstracts the common properties
contains a set of rules, constraints, and patterns
governs runtime interaction of flow control and data transfer
Key component
Elements
Connectors
Attributes
Constraints
How to decide architecture style?
Implementation Attributes
Flexibility
Portability
Maintainability & Extensibility
Testability
Scalability
Runtime Attributes
Availability
Security
Performance
Usability
Business Attributes
Time to market
Cost
Lifetime
Software architecture design guidelines
Think of What to Do before How to Do It.
Think about abstract design before thinking about concrete design.
Think about abstract design before thinking about concrete design.
Think of reusability and extensibility!
High Cohesion and Loose Coupling
Tolerate refinement of design.
Avoid ambiguous design and over-detailed design.
Runtime Attributes