Design SA - Architecture centric approaches Flashcards
What approaches can be differentiated?
- Domain Driven Design
- Evolutionary Architectury
- Global analysis
- Model Driven Architecture
What are important parts of DDD?
- Functional and Domain Model and Domain Language
- How to structure domains
- Types of Domains
- Integration of Domains
Describe the connection in DDD of Functional Model, Domain Model and Domain language
- domain model should be based on functional basis
- acceptence throughout the project of this model is important
- on basis of domain model the domain language is developed
- this also needs to be accepted and used throughout the project, even in code
In DDD what are the elements of the domain model?
Functional elements:
- value objects (no identity, simply describe a value or contain other value objects)
- entities (identifiable objects)
- services (operations with input/output of entities and value objects, aggregates)
Management elements:
- Factories (for creation of functional objects)
- Aggregates (for collection of objects with identity with one root access-object)
- Repositories (encapsulation of persistence)
In DDD how can a domain model be structured?
Either based on
- functional objects
- or user transactions
In DDD when should the structuring be based on functional objects?
- functional logic is complex, extensive or flexible
- reuse is important
- object-oriented paradigm is well understood
In DDD when should the domain structuring be based on user transactions?
- simple data operations and acquisition
- integration of external systems
- simple or limited functional logic
In DDD what are user transactions?
- every action a system user can execute
- also internal operations like checking input data
In DDD what types of domains exist?
- Core Domain
- Support Subdomain
- Generic Subdomain
In DDD describe the Core Domain
- core part of the functionality of the system
- should be implemented by most experienced developer
In DDD describe the Support Subdomain
- supporting and subordinate functionality
- should be strictly seperated from core domain
In DDD describe the Generic Subdomain
- can be supplied externally through buy-in or outsourced
- functionality of importance that is not part of the Core Domain
In DDD what different options do we have for Intergration of Domains?
- usage of same language (JSON, XML)
- usage of open host service, one domains offers an api of sorts (REST, …) for use by other domains
- anti-corruption layer, usage of other domain services via an isolation layer
- seperate ways, no integration
Describe the core concepts of Evolutionary Architecture?
- usage of a fitness function to describe ability of the system to fulfill the requierements
- this makes different architectures comparable to each other
- fitness function should be calculated often via inclusion of CICD
What are the main concepts/principles of Evolutionary Architecture?
- Last responsible moment principle
- responsibility should be structured along domain or subject
- Reverse Conway-maneauver
- Focus on testablity
- Postels Law
In Evolutionary Architecture what is the fitness function and what is important about its creation?
- describes extent to which the system fulfills the goal
- can be difficult to create because we need for each requierement/target quality a way of measuring it
- should be calculated often in order to have quick feedback
- time of measurement can have an impact on result
- therefore description should mention when it it so be calculated
Which Reference Architectures need to be known?
- Generative creation of building blocks
- Aspect orientation
- Object orientation
- procedural approaches
Describe the reference architecture
Aspect orientation
- can be used for cross-cutting tasks
Example use cases: - security
- monitoring
- logging
- error handling
- validation
- session
What is a white box?
- a black box view can be decomposed into the white-box view below it
- in the white box view a building block is broken down into component elements
- this again shows how building blocks are constructed, potentially from other building blocks