Software-Design - Basic terms

  1. Component, Module, Application, System
  2. Cohesion
  3. (Loose) coupling
  4. DRY
  5. YAGNI
  6. Design patterns (GOF)

Software-Design - Concepts

  1. Inversion of control (IoC)
  2. Dependency injection (DI)
  3. SOLID principles
  4. Single responsibility principle
  5. Open/Closed principle
  6. Liskov's substitution principle
  7. Interface segregation principle
  8. Dependency inversion principle
  9. Test driven design
  10. Clean code

Software architecture - Basic terms

  1. Software design vs. software architecture
  2. Codebase
  3. CI/CD/Buildpipelines
  4. Deployments
  5. Release
  6. Agile
  7. Application lifecycle
  8. Business domain
  9. Different type of tests
  10. Stakeholder

Software architecture - architectural styles

  1. Monolith
  2. Microservices
  3. Modulith
  4. Layered architecture
  5. Onion architecture
  6. Clean architecture
  7. Serverless
  8. When to use which style?

Software architecture - Quality, goals and scenarios

  1. What is software quality
  2. Quality requirements
  3. ISO 25010
  4. Scalability
  5. Maintainability
  6. Reliability
  7. Security
  8. Quality goals
  9. Quality scenarios
  10. Quality trees

Software architecture - Documentation

  1. Why documentation
  2. Architectural decision records (ADRs)
  3. Arc42 overview
  4. Arc42 template
  5. Arc42 example
  6. C4
  7. Principles of good documenation
  8. Know your audience!

Enterprise architecture - introduction

  1. What is enterprise architecture in a nutshell
  2. What this course covers about enterprise architecture

Enterprise architecture - Integration styles

  1. Synchronous communication: RPC
  2. Synchronous communication: REST and HTTP
  3. File transfer
  4. Shared database
  5. Asynchronous communication and messaging

Enterprise architecture - High level considerations

  1. Message broker
  2. Event streaming platforms
  3. Event driven architecture and when to consider introducing it
  4. Operating platforms: Kubernetes and others
  5. Business process modelling and execution
  6. Reporting: Datawarehouses
  7. Observability in distributed systems (Monitoring, Alerting, OpenTelemetry)
  8. Enterprisewide security architectures