H5lagenarchitectuur
-
Upload
arne-vandenbussche -
Category
Education
-
view
856 -
download
1
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