OCICT Opleidings Centrum ICT
informatie@ocict.nl 030 7370799



printer view
Domain Driven Development in UML [Evans]
CodeDuurTrainingsvorm
OCFODDD5 dagenIndividueel, Virtueel en/of Klassikaal, op aanvraag.
Lesmethoden: Individueel, Virtueel en/of Klassikaal
Prijs:€ 2.475,00 BTWvrij.

Overview
Een softwareproject begint bij het domein waarin het actief is. Software moet het domein verbeteren, dus harmonieus passen en geen verstoring, schade of chaos veroorzaken.

Daarvoor moet software diep geworteld zijn in het domein en over de kernpunten ervan gaan, anders kan het niet goed reageren op veranderingen in tijd.

Een domein is iets van deze wereld; u moet er een abstractie van maken. Dit domein model maakt u geleidelijk beter, en duidelijker. Daarvoor moet u in gesprek gaan en blijven met experts.

Volgens grondlegger Eric Evans gaat het om de kennis die het diagram wil overbrengen. Het is een rigoureus georganiseerde en selectieve abstractie van die kennis. Een diagram, maar ook zorgvuldig geschreven code, kan de kennis van een model tonen en overdragen.

De wereld van het domein is te veel om volledig te bevatten. Wij moeten de informatie ordenen, systematiseren, in stukken opdelen, om die in logische modules te groeperen, en een-voor-een te behandelen. We moeten zelfs delen van het domein eruit laten.

Al uw gedachten over het domein synthetiseert u in dit model. Maar u moet het uitwisselen met domeinexperts, collega-ontwerpers en ontwikkelaars door grafieken, use cases, plaatjes en tekst. Zo maakt u een specifieke taal om domein kwesties te bespreken.

Als u een begin van een model heeft, kunt u code gaan ontwerpen. Dit is geen software ontwerp. Software ontwerp is als het ontwerp van de architectuur van een huis, het grotere plaatje. Code ontwerp werkt aan details, zoals de plaats van een schilderij aan de muur.

Code-ontwerp is belangrijk, maar niet zo fundamenteel als software-ontwerp. Een code ontwerp fout is vaak eenvoudig te corrigeren, zoals een schilderij verhangen. Software ontwerp fouten repareren is veel duurder.

Agile software ontwerp kan analyse verlamming door te lang aan iets vast te houden voorkomen. Agile vermijdt te veel vooraf ontwerp en gebruikt flexibele implementatie en iteratieve ontwikkeling. Voortdurende deelname van belanghebbenden en veel refactoring geeft het team meer informatie over het domein en levert betere software die voldoet aan de behoeften van klanten.

Agile-methoden hebben hun eigen problemen. Ze pleiten voor eenvoud, maar elk heeft daar een eigen kijk op. Continue refactoring zonder goed ontwerp produceert moeilijk te begrijpen of veranderen code.

Domain Driven Design kan in elk ontwikkelproces complexe problemen in het domein op een onderhoudbare manier modelleren en implementeren. Het combineert ontwerp- en bouwpraktijk, en laat die samenwerken voor een betere oplossing. Een goed ontwerp versnelt de bouw, en verbetert feedback vanuit het bouwproces aan het ontwerp.
Doelstelling
Domain Driven Design kan in elk ontwikkelproces complexe problemen in het domein op een onderhoudbare manier modelleren en implementeren. Het combineert ontwerp- en bouwpraktijk, en laat die samenwerken voor een betere oplossing. Een goed ontwerp versnelt de bouw, en verbetert feedback vanuit het bouwproces aan het ontwerp.
Doelgroep
Systeem-ontwikkelaars en -architecten
Onderwerpen
  • Introductie Domain Driven Design
  • Een gemeenschappelijke projecttaal
  • Model Driven Design
  • Bouwstenen van een model gestuurd ontwerp
  • Gelaagde architectuur
  • Soorten objecten: Entiteiten, Value objecten, Services, Modules
  • Domein levenscyclus patronen: Aggregaten, Factories, Repositories, Query een repository, Objecten ontwerpen voor relationele databases
  • Uitgebreid DDD voorbeeld [Evans]
    • Introductie van het Cargo Shipping Systeem
      • Domein isoleren: introductie van de applicaties
      • Entities en value-objecten onderscheiden
      • Associatie-ontwerp in het Shipping-domein
      • Aggregatie Grenzen
      • Repositories selecteren
    • Controle en implementatie
    • Factories en Constructors maken voor Cargo
    • Handling Event toevoegen
    • Refactoring pauze: een alternatief Cargo aggregaat ontwerp
    • Een nieuwe functie introduceren
      • Allocation Checking
      • Model verbetering: bedrijf segmentatie
      • Performance tuning
      • Een laatste blik

Klik voor detailsGedetailleerde inhoud
Certificering
Op deze module is geen aparte certificering van toepassing
Materiaal
* Syllabus met theorie en uitgebreide casus[Eric Evans] - Nederlands
* Modelio UML en Eclipse java project als uitgangspunt, als opdracht om te vormen tot Domain Driven Design project. Uitwerkingen beschikbaar.
Kennis niveau
associate
Voorkennis
Kennis op het niveau van de training:
* Functie ontwerp met UML (OCFOUML)
Mogelijk vervolgtraject
* DDD Refactoring naar een dieper inzicht (OCFODDDRF)
* DDD Strategic Design (OCFODDDSD)

©2020   OC ICT - OpleidingsCentrum Informatie Communicatie Technologie