H5lagenarchitectuur

download H5lagenarchitectuur

If you can't read please download the document

Transcript of H5lagenarchitectuur

Gelaagde architectuur

Doel

Lage koppeling.

Hoge cohesie

Hoe? ==> systeem ontwerpen in lagen.

Elke laag is een onafhankelijke component.

Lagen gebruiken elkaar diensten.

Enkel domeinklassen?

Domeinklassen

Persistentieklassen

Boundary classes

Control classes

Event handlers

Inputfuncties

Outputfuncties

Domeinklassen (entity classes)

Structuur van oplossing

Structuur van probleem.

~

Domeinklassen in ontwerp opnemen

Persistentieklassen

Domeinobjecten opslaan in database.

Verantwoordelijkheid niet aan domeinklasse geven (==> cohesie !!).

Gevolg: introductie persistentieklassen.SQL-statements.

Connectie met database.

Overdraagbaarheid naar andere DBMS'en.

Boundary classes

Klassen voor dialogg met eindgebruiker.

Invoerformulieren, tabellen, lijsten, ...

Boundary classes vormen interfacelaag.

Control classes

Zorgen voor de uitvoering van de actieEvent handlers

Inputfuncties

Outputfuncties

Event handler

Voeren business events uit = atomaire wijziging aan domeinobjecten.

Stappen:Precondities testen.

Event uitvoeren.

uitlenen

UitlenenEventLidUItleningExemplaarTitel

uitlenen

uitlenen

uitlenen

uitlenen

Inputfuncties

Tussen interfacelaag en eventlaag.

Soms: n functie ==> n event;

Soms: functie cordineert meerdere events:Transactie: meerdere events in zijn geheel uitvoeren of terugdraaien (rollback).

Taak: meerdere events die we samen willen uitvoeren voor gebruiksgemak.

Transacties en taken

Transactie: bestelling plaatsen:Event: CRE_Bestelling.

Event: CRE_Bestellijn.

Taak: archiveer klant.arch_Bestelijnen (in alle bestellingen van die klant)

Arch_Bestelling (voor al zij bestellingen)

arch_Klant

Outputfuncties

Wijzigen niets ==> geen events.

Gegevens verzamelen, orderen, filteren, ...

Geven diensten aan interfacelaag en aan andere functies.

Raadplegen domeinobjecten.

Lagenmodel

Klassen van hetzelfde type vormen een laag.

Lagen gebruiken elkaars diensten, zijn van elkaar afhankelijk.

Interfacelaag, domeinlaag, eventlaag, functielaag, persistentielaag.

Interfacelaag

Communicatie met de buitenwereld.

Minst stabiele laag.

Afhankelijk van functielaag.

Domeinlaag

Kern van informatiesysteem.

Meest stabiele laag.

Gebruikt door alle andere lagen.

Eventlaag

Bevat event handlers.

Atomaire wijzigingen aan domeinobjecten.

Aangeroepen door functielaag (inputfuncties).

Functielaag

Tussen interfacelaag en eventlaag.Aangeroepen door interfacelaag.

Gebruikt persistentielaag, domeinobjecten en eventlaag.

Link met functionele eisen.

Input- en outfputfuncties.

Persistentielaag

Zorgt voor opslag van objecten.

Schermt databasespecifieke elementen af.

Gebruikt domeinobjecten.

Aangeroepen door alle andere lagen.

Persistentielaag

Klik om de opmaak van de titeltekst te bewerken