Architecture, Interface, Boundary object
- what is an architecture of a SW systemm
- 4+1 view model
- architecturally significant requirements
- architectural styles and patterns
- UML diagrams used to capture architecture


Requirements, Requirements analysis
- requirement types
- requirement elicitation
- capturing requirements
- use case, scenario, user story
- UML use case and activity diagram


Modelling domain, UML class diagrams
- system, model, view
- what is a good model
- inputs and outputs of domain modelling
- UML class diagrams
- analysis patterns


Design principles, testable code, UML state machines
- design goals, principles
- principles of OO design
- design principles that make code testable
- test driven development
- GOF design patterns
- UML state machines


Microservices, containers, BPMN
- microservice architecture
- continious integration
- containers
- stateless vs stateful interface
- container orchestration
- orchestration vs choreography
- BPMN


Generic programming
- templates, concepts
- type erasure
- comparing generic and OO programming
- UML sequence diagrams
- UML communications diagrams


Concurrency, databases
- object-relational impedance mismatch
- ORM
- active record, data access object, unit of work - persistence as an extension of domain logic
- ACID vs BASE
- underlying data structures of databases


DSL, Executable specifications, UML extensibility, immutable design
- domain specific languages
- executable specifications
- UML profiles and profile diagrams
- immutable data structures