Software Architecture Flashcards
What are the Architecture Characteristics?
(May be dependent on the context of the system)
- specifies operational and design criteria on how to
implement a certain requirement
- influences design aspect so that a (combination of)
components are specified to realize the
requirement? (and not best practice)
- Critical that application performs as intended and
meets (functional and non-func.) requirements
Operational Architecture Characteristic
Merkmale: - Availability (Time interval the system to be online, quick recovery, ...) - Performance - Scalability
Structural Architecture Characteristic
- Extensibility
- Maintainability
- Configuration
Cross-Cutting Architecture Characteristic
Need to be considered across multiple components
- Accessibility (Usable by all users including disabilities)
- Privacy (Data protection,..)
- Security (encryption, authorization,..)
Different Types of Architecture Styles
monolithic: - Layers - Model-View-Controller distributed: - Service-Based - microservices
Layered Architectural Style
Technologically partitioned - definition of responsibilities for each layer Layer types (open, closed) - request muss pass through closed and can skip open layers Topology: - Presentation layer - Business layer - Persistence layer - Database layer
Layered Architectural Style - Trade Offs
+ Simplicity and Costs
+ Reliable
-> works well for medium sized systems
- Elasticity and scalability
- performance (parallelization not supported)
- availability (long startup/recovery time)
Model-View-Controller (MVC) AS
Separates system in three modules
- Model (Backend & Data)
- View (presentation of the model data (user interface))
- Controller (translates user interaction to operations
on the model)
Model-View-Controller - Trade Offs
+ Interactive application (#views not fixed, datat should
be presented differently,…)
+ change propagation mechanism (ensures consistency between view and model on various platforms)
- not all views are interested in all changes
- increased complexity (separate components)
- high dependency between view and controller
Service-Based AS
User interface with one or more services that are connected to a common database
- multiple interfaces, services and databases in different arrangements possible
The services are composed of differen components
- domain partitioned service (components realize domain specific tasks)
- technically partitioned service (components in layered structure)