Introduction to software architecture (Overview (Software Architecture:…
Introduction to software architecture
Goal of SW Design is to build a model that meets all customer requirements and leads to successful implementation.
It defines the relationship between major structural elements
It also define the styles and design patterns used to achieve requirements.
Also the constraints that affects the way architecture can be implemented.
Software Architecture: very important in software development.
Shows how system is stuctured
highlights early design decision.
Covers functional and non-functional requirements.
Blueprint guideline for development.
Two steps in software design
Architectural design : describe user accessible components and the interconnections among them that are visible to stakeholders.
Detailed design: specify the internal details of each component and might introduce new invisible to component- to the stakeholder into the design.
Software Design Description (SDD): an overall representation of the software to be build.
What is architecture style?
An architecture style abstracts the common properties of a family of similar design.
It contains a set of rules, constraints, and patterns of how to structure a system into a set of elements and connectors
It governs runtime interaction of flow control and data transfer.
Key components are:
Elements : that perform functions required by a system
Connectors : that enable communication, coordination, and cooperation among elements
Constraints: that define how elements are integrated to form the system
Attributes: that describe the advantages and disadvantages of the chosen structure.
Why architecture style
Saves cost and time on design
Architecture style represents
Once overall structure determined , rest are easy.
How to decide architecture style?
Depends on how quality attributes are satisfied.
Each architecture style has its advantages, disadvantages, and potential risks. choosing the right style to satisfy required functions and quality attributes is very important.
Quality attributes are identified in the requirement analysis process.
Three categories: Implementation attributes, runtime attributes, business attributes.
Maintainability & Extensibility
Time to market
Quality attribute Trade-off