3. Software architecture Flashcards
Software architecture
z Describe six major components their relationships and how they interact with each other Delete several contributory factors, such as business strategy, quality attributes, human dynamics, design and it environment.
Begin segregain software architecture and design into two distinct phases:
1. Software architecture
2. software design
Software architecture
- Non functional decisions are cast and separated by functional requirements
- Serves as blueprint for a system
It provides an abstraction to maintain the system complexity and establish communication and coordination mechanism among components
role of software architecture views.
- Design expertise
- Domain expertise
- Technology expertise
- Methodological expertise
C and c views
components
Computational elements or data stores that have some presence during the system execution
connectors
Connectors connect the components and provide means of interaction between them
Architectural designs
Communication
1. Message Bus
Prescribes the use of software system that can receive and send messages using one or more communication channels
2. service oriented architecture
Applications that consume functionality service using contracts and messages.
3. clinet - server
Separates the system into two applications where client makes requests to the servers
4. Domain driven design
Focused on modelling a business domain and defining business objects based on entities with business domain
5. component based
It breaks the Application design into reusable functional or logical components that expose well defined communication interfaces
5. Layered
Divide the concerns of the application into stacked groups or layers
6. Object oriented
Company is viewed as set of one or more cooperating classes.
Based on division of responsibilities of an application system in two object each containing data and the behaviour relevant to the object