Software architectuur en design

Duur

5 dagen

Algemeen

Het opstellen van de juiste architectuur en design is een nogal complexe taak omdat er zoveel verschillende mogelijkheden zijn die je kunt toepassen in een software systeem. In deze training krijgt u een goed overzicht van alle mogelijke architectuur en design stijlen, patterns en best practices zodat je goed in staat bent om zelf de best architectuur en design op stellen.

In een traditioneel software project was voornamelijk de architect verantwoordelijk voor de architectuur en design van een software systeem. In een agile/scrum project is het ontwikkel team verantwoordelijk voor architectuur en design. In deze training bekijken we hoe we het beste architectuur en design kunnen toepassen in een agile project.

Met behulp van vele hands-on oefeningen zullen we de geleerde theorie in de praktijk brengen. 

Doel

Na deze training

  • Hebt u een goed overzicht van de bestaande architectuur en design stijlen, patterns en best practices
  • Bent u in staat om zelf de juiste architectuur en design op te stellen en deze te communiceren met de belanghebbenden

Doelgroep

Deze training is bedoeld voor ontwikkelaars, ontwerpers en architecten die betrokken zijn bij de architectuur en design van software systemen. 

Voorkennis

Kennis van UML klasse en sequence diagrammen is een pre

Onderwerpen 

  • Agile architectuur en design
    • Architectuur requirements
    • Software kwaliteiten
    • Architectuur en design principes
    • Communicatie en visualisatie van de architectuur
    • Architectuur analyse m.b.v. risk storming
  • Architectuur stijlen, patronen en best practices binnen een software systeem
    • Architectuur stijlen
    • Layering
      • Service class, repositories en gateways
    • Client-server
    • Pipe-and-filter
    • Master-slave
    • Domain Driven Design (DDD)
      • Entities, value objects, domain services, domain events, aggregates
      • Event storming
      • Factories, repositories
    • Front-end
      • Server-side web framework
      • Client-side web framework
      • Single Page Application (SPA)
      • Micro frontends
    • Database access
      • Relationele databases
      • Stored procedures
      • ORM
      • NoSQL databases
      • Brewers CAP theorie
    • Transacties
      • Two phase commit
      • Optimistic locking
      • First commit wins
    • Integration
      • Synchroon en asynchrone communicatie
      • Webservices
      • Messaging
    • Security
    • Component Based Development (CBD)
      • DDD aggregates
      • API design
      • DTO objecten
      • Adapters
  • Architectuur stijlen, patronen en best practices tussen software systemen
    • Integration patterns
    • Integration frameworks
    • Service Oriented Architectuur (SOA)
    • Enterprise Service Bus (ESB)
      • Event Driven Architectuur (EDA)
    • Process denken en event denken
      • Microservice architectuur
    • Microservice design
      • Microservices en databases
      • UI en microservices
      • Microservice boundaries
      • Communicatie stijl
      • Orchestration en choreography
      • Saga transactions
      • CQRS
      • Event sourcing
    • Microservices in de organizatie
      • Conways law
    • Supporting services
      • Configuratie server
      • Registry
      • API gateway
      • Distributed tracing
      • Distributed logging
      • ELK stack
    • Load balancing
      • Server site load balancing
      • Client side load balancing
    • Resilience
      • Failover
      • Circuit breaker
      • Bulkhead
      • Idempotent services
    • Reactive architecture
    • Security
      • Token based security
    • Stream based architectuur
      • Event streams
      • Kafka
    • Messaging patterns
    • Blackboard
  • Cloud based architectuur
    • Eigenschappen van een cloud based architectuur
    • Containers
      • Docker
    • Kubernetes
    • Serverless

 

Vraag vrijblijvend informatie aan.