Domeinmodellering/2 Activiteiten/Assignments/Opdracht12-B05/2 Opdrachtbeschrijving

Uit Werkplaats
Ga naar: navigatie, zoeken

Domeinmodellering
BCFA-IPI004




Studietaak 12 - B05: Object Oriented Modeling via UML (Unified Modeling Language): een aantal (statische en dynamische) aspecten


Achtergrond

Tot nu toe hebben we de ‘data-gerichte aanpak’ van systeemontwikkeling gevolgd, waarbij we vooral gekeken hebben naar het achterliggende datamodel. In de praktijk is het vaak zinvol [vooral bij meer ‘technische systemen’] om tegelijk met de data-analyse ook een proces-analyse te doen; meestal gebeurt dat dan via de zogenaamde ‘object-oriëntatie’. De industrie-standaard voor objectgericht werken is momenteel: UML (Unified Modeling Language).


Leerdoelen

Na afloop van deze studietaak kun je:
  • eenvoudige ‘use cases’ opstellen;
  • eenvoudige UML class diagrams opstellen;
  • een bij een use case-scenario behorend (eenvoudig) sequence diagram opstellen;
  • een samengesteld class diagram ‘Rmappen’ naar een zinvolle ‘relationele databasestructuur’.



Instructie

Vereiste voorkennis: de materie van blok A en de voorafgaande onderdelen van blok B.


Voorbereiding:
Zoals ook voor opdracht 10 en 11 hoef je in de DM-werkplaats voor deze opdracht maar één bijdrage aan te maken: eentje waarin je je reflectie erop plaatst in Speciaal:Mypage/2010-11/Domeinmodellering/Opdracht12-B05/Reflectie en waarbij om verduidelijking/hulp/etc. van anderen kan worden gevraagd. Let er weer op, dat je helemaal op het einde van deze 'URL's' (dus achter enerzijds 'Opdracht' en anderzijds 'Reflectie' géén '/' backslash plaatst! Plaats -zoals aangegeven in de 'Werkplaats instructies'- de daar gegeven exacte code aan het begin van de bijdrages.


De taken: 1. Voer vóór maandag 19 december 2011 (13:30u) de volgende studieactiviteiten uit:
a) Bestudeer de sheets van de colleges van maandag 12 en donderdag 15 december 2011 (en zonodig artikelen/stukken via de opgegeven URL’s);
b) Stel, mede naar aanleiding van je ervaringen/problemen/invallen bij het uitwerken van de hierna gestelde opgaven, een lijstje op van punten die je op het werkcollege van maandag 19 december 2011 ter sprake wilt brengen (ter verduidelijking ...).
c) Werk de volgende 2 opgaven uit:


Let op:
  1. je bent op het werk(groep)college alléén welkom als je serieus aan deze studietaak hebt gewerkt en je uitwerking (ook al heb je maar een deel van de opdracht succesvol kunnen oplossen) hebt ingeleverd en een print/kopie van je uitwerkingen meeneemt naar het werkcollege. Op die print kun je dan voor jezelf eventueel benodigde correcties/aantekeningen maken.


Opgave 12.a : online banking system

Imagine an Online Banking System where -through internet- a client (after a successful login) may consult her bankaccount(s), see all her transfers, remit money to other accounts and change her address.

  1. Make a use case diagram for such a banking system. If possible: try to use <<include>>, <<extend>> and [maybe] ‘generalizations’.
  2. Make a use case description for at least the use case ‘remit money to other account’. Make use of one of the given ‘use case templates’. Use in this description one or more extension points!
  3. Such a banking system holds [at least] data about account holders, their accounts and all money transfers.
    Design for this UoD a UML class diagram, capable of taking account of all these data. Indicate of all relevant classes their names, their attributes and their class relationships. Make use of your own ‘domain knowledge’ (text, nouns...) and see if you can get inspiration from your own use case description.
  4. Develop a sequence diagram for the ‘main-flow-of-events’-scenario of the (described) use case ‘remit money to other account’.


Opgave 12.b : UML classes and relational mapping

  1. Apply a transformation (‘Rmap’) from the following UML class diagram to an appropriate relational database structure (in a ‘horizontal layout’). Pay special attention to data integrity.
    TeacherCourseClasses.gif
  2. Maybe you designed a relational database structure with 4 tables... Try to optimize your database structure (to get less than 4 tables) and explain why and how you can do this.


Resultaat: de gevraagde (UML-) diagrammen en/of verkregen relationele structuur.
Indien gevraagd moeten ook bijbehorende verklaringen worden gegeven.


(zelf)Reflectie / discussie

In dit deel (dat je bent begonnen via het tweede te kopiëren werkplaatssjabloon) geef je enerzijds kort aan hoe het er bij deze opdracht vanaf hebt gebracht en geef je anderzijds aan andere studenten een mogelijkheid om op een vraag van jou te reageren. Dit ‘reflectieonderdeel’ is voor iedereen zichtbaar en kan door iedereen die een verbetering of aanvulling wil doorvoeren, aangepast worden. Dus als je twijfels hebt bij je eigen beheersing van de stof, vraag dan expliciet om reacties van anderen.


a) je reflectie
Beantwoord hier (kort) de volgende vragen:

  • Wat heb je deze week geleerd in relatie tot de vooraan in deze opdracht geformuleerde leerdoelen? Heb je die bereikt?
  • Hoe moeilijk vond je deze te bestuderen/verwerken stof?
  • Heb je tips voor verbetering?


Uiteraard ben je van tevoren al specifiek bij deze opdracht behorende beoordelingscriteria nagegaan als:

  • 'use case'-, 'class'- en 'sequence'-diagrammen moeten voldoen aan de geldende syntaxregels;
  • voor de tekstuele use case beschrijving heb je een van de in het college getoonde en/of besproken sjabloons gebruikt;
  • het opgestelde sequence-diagram moet in overeenstemming zijn met zowel de 'main flow of events' uit het use case scenario als met het class-diagram;
  • de beperkingsregels uit het UML class-diagram moeten uitdrukkelijk terugkomen in de relationele databasestructuur;
  • het aantal gevonden gegevenstabellen moet minimaal zijn.


Daarnaast blijven uiteraard criteria zoals geformuleerd in eerdere studietaken van kracht, zoals:

  • algemeen: helder, leesbaar en niet-omslachtig.


b) je discussie-bijdrage/verzoek
Bij dit tweede deel (waar anderen op kunnen reageren) kan je bijdrage heel divers zijn. Het kan zijn dat je hier aan anderen vraagt je te helpen om een bepaalde 'theoretische' vraag te beantwoorden.

Het is hierbij uitdrukkelijk niet de bedoeling, dat je anderen vraagt hier een uitwerking van een opgave uit het eerste deel te geven!


N.B. Geef in het gekopieerde -bij deze opdracht behorende- werkplaatssjabloon bij de parameter 'Percentage' aan hoeveel procent -naar jouw eigen inschatting- van deze opdracht je correct gemaakt hebt. (dus bijvoorbeeld [tussen dubbele vierkante haken..] Percentage::80 ).
En geef bij de parameter 'Status' een van de volgende waarden aan: 'bezig', 'klaar', 'opgegeven', 'deels geslaagd'. (Dus bijvoorbeeld de default-waarde Status::bezig geeft aan dat je op dat moment nog bezig bent met het werken aan deze opdracht. Als je later er verder aan gewerkt hebt, pas dan die Status- en Percentage-waarde aan.) Vul voor de Studie-parameter een van de volgende waarden in: IC of IK.


Vergeet ook niet om bij het reflectiedeel waarden in te vullen voor zowel 'Studie' als voor 'Remark' (de inhoud van die laatste parameter verschijnt in het reflectieoverzicht onder het kopje 'Korte opmerking van auteur zelf').


Kijk ook bij de 'reflectieonderdelen' van anderen wat zij daar als vraag hebben gesteld of moeilijke gegevensvraag hebben bedacht en of je correcties in of aanvullingen bij hun uitwerking kunt aanbrengen. We verwachten dat je bij de 'reflecties' van zeker 2 andere studenten een reactie/commentaar/suggestie hebt gegeven.
Breng je commentaar als volgt aan: Bewerk de reflectie-pagina van je mede-student. Kopieer en plak onderstaande regel onder zijn/haar reflectie en vervang "Mijn commentaar" door je eigen commentaar en/of vragen.

{{!|~~~|| Mijn commentaar }} 


En kijk uiteraard regelmatig bij je eigen 'reflectie' of je door anderen aangebrachte veranderingen begrijpt en/of ze correct zijn en reageer er desnoods op!


Nogmaals: op het werk(groep)college van maandag 19 december 2011 worden (van 13:45-14:30u) de ingeleverde opdrachten en eventueel gerezen vragen&problemen nabesproken. Zorg er voor dat je eventuele problemen/onduidelijkheden, die je tegen gekomen bent bij het maken van het inleverdeel van deze opdracht, op een rijtje hebt staan, zodat als die knelpunten in de nabespreking niet al eerder ter tafel zijn komen, jij ze zèlf kunt aankaarten. Vraag je ook af, of je de hiervoor omschreven beoordelingscriteria zèlf goed begrijpt en kunt toepassen.

N.B. Breng een uitdraai/kopie van zowel je uitwerkingen als van je reflectie-deel als entreebewijs mee naar het werkcollege.
Als je er echt serieus aan hebt zitten werken, is ook een print van een slechts ‘gedeeltelijk gelukte’ uitwerking al voldoende als entreebewijs...


Dead line voor het inleveren

Deadline voor het inleveren: maandag 19-12-2011 vóór 13:30u in de DM-inleverbus op de 2e verdieping (vleugel 5); vergeet niet je naam (en studie en studentnummer) ook binnen je uitwerking te vermelden.