OPLEIDING INFORMATICA
HOGESCHOOL ROTTERDAM
INA02 - Informatie-analyse (objectgeoriënteerde analyse)
MODULEWIJZER INFINA02
1 VAN 18
OPLEIDING INFORMATICA
Modulecode: Modulenaam: Belasting (aantal cp): Bestemd voor: Categorie: Behoort tot traject: Vereiste voorkennis: Werkvorm: Toetsing: Vrijstelling: Leermiddelen:
IAN02 Informatieanalyse 2 2 INF/TI
kennis van object georiënteerd programmeren gewenst college en practicum tentamen en ontwerp + verslag (van case) Boek: Titel: Learning UML 2.0
Aanbevolen boek:
Auteur: Uitgever: ISBN: Jaar: Auteur: Titel: Uitgever: ISBN:
Hoofddoel:
Leerdoelen:
Inhoud:
Competenties
Opmerkingen Auteur: Versie Datum:
MODULEWIJZER INFINA02
Russel Miles, Kim Hamilton 0-596-00982-8 2006 L.A. Maciaszek Requirements Analysis and System Design Addison Wesley 0-201-70944-9
Na het met succes voltooien van deze module is de student in staat om voor een eenvoudig systeem (bestaande uit 7 tot 10 klassen) een analyse en een ontwerp te maken op basis van functionele en niet-functionele specificaties. aan het eind van de module is kan de student: concepten van de objectgeoriënteerde analyse begrijpen en hanteren; een object georiënteerd model van een eenvoudig systeem analyseren en ontwerpen in UML (Unified Modelling Language); een objectgeoriënteerde analyse/ontwerp maken met behulp van een case-tool (Rational Rose, Jude, System Architect) In deze module wordt aandacht besteed aan: object georiënteerd analyseren, ontwerpen; Statische modellen van een (informatie)systemen: klassediagram, objectdiagram, use-casediagram; Dynamische modellen van (informatie)systemen: sequencediagram, collaboratiediagram, toestandsdiagram; Concepten van objectoriëntatie: objecten, klassen, associatie, aggregatie, compositie, (meervoudige) overerving, instantiëren, abstractie, encapsulation, dynamische binding, overloading, polymorfisme, persistentie, message en methode. Competentie 9 - Software systeem eisen specificeren (VT10) Competentie 10 - Software systeem analyseren en ontwerpen (VT11 en VT13) Met UML wordt steeds de standaard UML versie 2.0 bedoeld A.L.J. Busker 6 April 2011
2 VAN 18
OPLEIDING INFORMATICA
Inhoudsopgave 1 2 3 4 5
Inleiding .......................................................................................................................................4 Doelstelling van de module ..........................................................................................................5 Begineisen ...................................................................................................................................6 Werkvorm(en)..............................................................................................................................7 Leerstof .......................................................................................................................................8 5.1 Powerpoint presentaties ........................................................................................................8 5.2 Verplichte literatuur ...............................................................................................................8 5.3 Aanbevolen literatuur ............................................................................................................8 6 Kwartaalschema ........................................................................................................................ 10 7 Leereenheden ............................................................................................................................ 12 7.1 Leereenheid 1: introductie ................................................................................................... 12 7.2 Leereenheid 2: Eisen en Usecases ..................................................................................... 12 7.3 Leereenheid 3: Klasse - en Objectdiagram .......................................................................... 12 7.4 Leereenheid 4: Sequence- en collaboratiediagrammen ....................................................... 12 7.5 Leereenheid 5: Toestandsdiagrammen en activiteitsdiagrammen ....................................... 12 7.6 Leereenheid 6: oefententamen............................................................................................ 13 7.7 Leereenheid 7: praktijkopdracht .......................................................................................... 13 7.8 Leereenheid 8: afronding praktijkopdracht ........................................................................... 13 8 Toetsing ..................................................................................................................................... 14 8.1 Theoretisch deel ................................................................................................................. 14 8.2 Praktisch deel ..................................................................................................................... 14 8.3 Herkansing.......................................................................................................................... 14 Bijlage A: Oefententamen ................................................................................................................. 15 Bijlage B: practicum beoordelingsformulier ....................................................................................... 18
MODULEWIJZER INFINA02
3 VAN 18
OPLEIDING INFORMATICA
1
Inleiding
Object oriëntatie (OO) speelt een belangrijke rol op veel gebieden in de Informatie technologie. Het veelvuldig gebruik van de term OO dat je de indruk krijgt dat het een oplossing is voor alle problemen. Natuurlijk is dit niet het geval maar het belang van OO mag ook niet worden onderschat. Object Oriëntatie is een wijze van modelleren die door inkapseling van gedrag en gegevens de onderhoudbaarheid (aanpassingen en uitbreidingen) van systemen kan bevorderen. Mechanismen als overerving en delegatie dragen bij aan de configureerbaarheid van systemen. Belangrijk hierbij is het woord “kan”. Gebruik van OO vereist namelijk een andere wijze van denken en werken. Softwareontwikkelaars moet zich de mechanismen eigen maken en deze op een correcte wijze toepassen om tot flexibele systemen te komen. Na het succesvol doorlopen van deze module moet de student voldoende kennis en vaardigheden bezitten om zelfstandig of in teamverband te kunnen functioneren bij de ontwikkeling van systemen volgens de OO-principes Deze module vormt een belangrijke bijdrage bij het optimaal kunnen vervullen van functies als: systeemontwerper, software-architect, software-engineer en applicatieprogrammeur.
MODULEWIJZER INFINA02
4 VAN 18
OPLEIDING INFORMATICA
2
Doelstelling van de module
Na het met succes voltooien van deze module is de student in staat om voor een eenvoudig systeem (bestaande uit 7 tot 10 klassen) een analyse en een ontwerp te maken op basis van functionele en niet-functionele specificaties. Dit ontwerp dient als basis voor de implementatie van het systeem in een objectgeoriënteerde programmeertaal als C++ of Java.
MODULEWIJZER INFINA02
5 VAN 18
OPLEIDING INFORMATICA
3
Begineisen
Voor deze module is voorkennis van en ervaring met een object georiënteerde programmeertaal (JAVA, C++) noodzakelijk (PRG02). Kennis van andere analysemethoden (technieken) is wenselijk, IAN01 (gegevensanalyse, ERD) is aan te bevelen.
MODULEWIJZER INFINA02
6 VAN 18
OPLEIDING INFORMATICA
4
Werkvorm(en)
De module is opgebouwd uit een theoretisch deel (hoor-/instructiecollege) en een practicum. Het eerste uur van theorieles wordt de theorie uitgelegd en in het tweede uur wordt gewerkt in groepjes van 2 á 3 studenten, aan het toepassen van de theorie op de uitgereikte kleine oefencasus. In het practicum wordt een aparte iets grotere teamcasus uitgereikt dat met behulp van een case-tool (bijv. JUDE, Astah, System Architect) moet worden uitgewerkt.
MODULEWIJZER INFINA02
7 VAN 18
OPLEIDING INFORMATICA
5
Leerstof
5.1
Powerpoint presentaties
Zie http://confluence.cmi-hro.nl
5.2 Boek
Verplichte literatuur Auteurs Titel Uitgever ISBN Jaar
: Russel Miles & Kim Hamilton : Learning UML 2.0 : Prentice Hall : 0-596-00982-8 : 2006
Dit boek wordt gebruikt bij de modules IAN02 en programmeren. 5.3
Aanbevolen literatuur
Boek
Auteurs Titel Uitgever ISBN
: Grady Booch : Object-Oriented Analysis and Design with Applications : Addison Wesley : 0-80-535340-2
Boek
Auteurs Titel Uitgever ISBN
: Richard D. Lee & William M. Tepfenhart : Practical object-oriented development with UML and JAVA : Prentice Hall : 0-13-067238-6
Boek
Auteur Titel Uitgever ISBN
: : : :
Hoogendoorn, Sander Pragmatisch modelleren met UML 2.0 Addison-Wesley 90-430-0652-1
Boek
Auteur Titel Uitgever ISBN
: : : :
Bruegge, Bernd & Dutoit, Allen H. Object-oriented Software Engineering using UML, Patterns and JAVA Prentice Hall 0-13-191179-1
Boek
Auteur Titel Uitgever ISBN
: : : :
Fowler, Martin UML distilled 3rd ed. Addison-Wesley 0-321-19368-7
Boek
Auteur Titel Uitgever ISBN
: : : :
Connallen, J. Building Web Applications with UML Addison-Wesley 0-201-32579-9
Boek
Auteur Titel Uitgever ISBN
: : : :
Warmer, J. en Kleppe, A. The object Constraint Language, Preciese Modeling with UML Addison-Wesley 0-201-37940-6
Boek
Auteur Titel
: Oestereich,Bern : Developing Software with UML
MODULEWIJZER INFINA02
8 VAN 18
OPLEIDING INFORMATICA
Uitgever ISBN
MODULEWIJZER INFINA02
: Addison-Wesley : 0-201-39826-5
9 VAN 18
OPLEIDING INFORMATICA
6
Kwartaalschema
In dit schema staat een beknopt overzicht van de onderwerpen die tijdens hoorcollege en practicum aan bod komen. Toelichting: HIC = theorie (hoorcollege en/of werkcollege), ZS = zelfstudie, PR = practicum Week 1
werkvorm HIC
sbu
Inhoud
2
Inleiding werkvorm, module Inleiding object oriëntatie Inleiding UML (use-case diagram)
ZS
3
opstellen niet-functionele, functionele eisen en use-cases voor het systeem in de oefencasus. Bestuderen: [Miles] H1 en H2 Uitreiking en toelichting teamopdracht (teamcase) Gebruik case-tool Formuleren probleemstelling, functionele en niet-functionele eisen van de teamcase Concepten objectoriëntatie object analyse (statische diagrammen): klasse- en objectdiagram en use cases oefencase: identificeren van kandidaatklassen, selecteren van de klassen, maken van model dictionary, identificeren van associaties, attributen en operaties, opzetten concept objectmodel
PR+ZS 8
HIC
2
Identificeren en selecteren van kandidaatklassen van de case via: brainstormsessies isoleren van zelfst. naamw. uit probleemomschrijving(Rumbaugh) categorisatie, clustering, prototyping, met gezond verstand (Booch)
ZS
3
PR+ZS 8
3
HIC
2
ZS
3
PR+ZS 8
4
HIC
2
ZS
3
PR+ZS 8
5
HIC
2
MODULEWIJZER INFINA02
Bespreken resultaten oefencase Opgave 2: Stel lijst met (voorlopig) klassen van de oefencase op. Bestuderen: [Miles] H4, H5, H6 Bespreken per team: probleemstelling, functionele en niet- functionele eisen van de teamcase Opstellen use cases, identificeren en selecteren van kandidaatklassen. Dynamische diagrammmen (sequence- en collaboratiediagram) Bespreken resultaten oefencase Ontwikkelen sequence- en collaboration-diagrammen van de oefencase Bestuderen: [Miles] H7, H8 Bespreken per team: use cases, kandidaatklassen Opstellen lijst met definitieve klassen Ontwikkelen van het klassediagram voor teamcase met behulp van casetool Dynamische diagrammmen (sequence- en collaboratiediagram) Bespreken resultaten oefencase Ontwikkelen sequence- en collaboration-diagrammen van de oefencase Bestuderen: [Miles] H7, H8 Bespreken per team: use cases, kandidaatklassen Opstellen lijst met definitieve klassen Ontwikkelen van het klassediagram voor teamcase met behulp van casetool Dynamische diagrammen (toestands- en activiteitsdiagram). Bespreken resultaten oefencase
10 VAN 18
OPLEIDING INFORMATICA
Week
6
7 8
werkvorm ZS
sbu
Inhoud
4
Opgave 6: Ontwikkelen toestandsdiagrammen en oefencase Bestuderen: [Miles] H14
PR+ZS 8 HIC 2 ZS 12 PR+ZS 10
Ontwikkelen sequencediagrammen voor de teamcase Oefententamen maken en bespreken Bespreken/toelichting/behandelen vragen over tentamen Bestuderen: tentamenstof H1-H8en H14, presentaties confluence Afronden teamcase en inleveren ontwerp+verslag
ZS
Bestuderen: tentamenstof H1-H8 en H14, presentaties confluence
12
PR+ZS 10
Afronden teamcase en inleveren ontwerp+verslag
HIC
Oefententamen maken en bespreken Bespreken/toelichting/behandelen vragen over tentamen Bestuderen: tentamenstof H1-H8 en H14, presentaties confluence Afronden teamcase en inleveren ontwerp+verslag
2
ZS 12 PR+ZS 10
MODULEWIJZER INFINA02
11 VAN 18
OPLEIDING INFORMATICA
7 7.1
Leereenheden Leereenheid 1: introductie
In deze leereenheid maak je kennis met de principes van object oriëntatie en het gebruik van een hulpmiddel (tool) Rational Rose of JUDE. Na het volgen van leereenheid 1 kan de student: het doel (nut) van object georiënteerde analyse uitleggen object georiënteerde analyse plaatsen in een automatiseringsproject(traject) een probleembeschrijving opstellen van een eenvoudige automatiseringsopdracht verschillende notatiewijzen rondom UML benoemen een Case-Tool (bijv. Astah, Jude) op eenvoudige wijze gebruiken begrippen als encapsulation, data hiding en data abstraction uitleggen 7.2
Leereenheid 2: Eisen en Usecases
Na het volgen van leereenheid 2 kan de student: de begrippen functionele eisen en niet-functionele eisen uitleggen de relatie tussen eisen en use-cases uitleggen functionele en de niet-functionele systeem eisen formuleren van een eenvoudige systeem use-cases diagrammen inclusief use-case templates maken en gebruiken 7.3
Leereenheid 3: Klasse - en Objectdiagram
Na het volgen van leereenheid 2 kan de student: de begrippen: klasse, associatie, aggregatie, compositie, overerving, attribuut, operatie en methode uitleggen en toepassen een lijst met kandidaatklassen opstellen aan de hand van een probleemstelling en eisen een overwogen selectie van de klassen maken abstracte klassen en operaties herkennen en benoemen associaties, attributen, operaties en rollen herkennen en toepassen een concept klassediagram ontwikkelen klassen aanmaken met een case-tool een concept objectmodel verfijnen en klassen aanmaken met een case-tool een object(domein)model aanmaken met case-tool 7.4
Leereenheid 4: Sequence- en collaboratiediagrammen
Na het volgen van leereenheid 3 kan de student: de begrippen interactie, a-synchroon event, conditioneel event en tijdconstraints uitleggen en toepassen de werkwijze voor het ontwikkelen van een dynamisch model hanteren inzicht hebben in gebruik en doel van sequence (event trace) diagrammen inzicht hebben in gebruik en doel van collaboration (event flow)diagrammen essentieel verschil tussen sequence - en collaboration- diagrammen uitleggen 7.5
Leereenheid 5: Toestandsdiagrammen en activiteitsdiagrammen
Na het volgen van leereenheid 4 heeft de student: kennis van de begrippen: toestand, transitie, begin en eindtoestand, activiteit, activiteitstoestand, guard, actie en automatische transitie en kan deze hanteren kennis van de begrippen: subtoestanden, splitsing , synchronisatie en swimlanes en kan deze toepassen inzicht in gebruik en doel toestandsdiagrammen (state transition diagram) vaardigheden om sequence - en toestandsdiagrammen te maken met een case-tool
MODULEWIJZER INFINA02
12 VAN 18
OPLEIDING INFORMATICA
7.6
Leereenheid 6: oefententamen
Tijdens het laatste hoorcollege maken de studenten tijdens het eerste lesuur een deel van een oefententamen. Tijdens het 2e lesuur wordt het oefententamen besproken. Tijdens het laatste practicum wordt het verslag en het ontwerp van de teamcase afgerond en ingeleverd. 7.7
Leereenheid 7: praktijkopdracht
Tijdens dit practicum werken de studenten verder aan hun praktijkopdracht en wordt kennis verder aangescherpt. 7.8
Leereenheid 8: afronding praktijkopdracht
Tijdens dit practicum werken de studenten verder aan hun praktijkopdracht en wordt kennis verder aangescherpt. Aan het einde van de les worden de praktijkopdrachten ingeleverd.
MODULEWIJZER INFINA02
13 VAN 18
OPLEIDING INFORMATICA
8
Toetsing
Het theoretische deel van de module wordt afgesloten met een tentamen. Het praktische deel van de module wordt afgesloten met een teamverslag van de case en een ontwerp. Het eindcijfer is het gemiddelde van de deelcijfers en wordt afgerond op een heel cijfer. Indien een van de deelcijfers lager is dan een 3.5 is het eindcijfer niet hoger dan een 3.
8.1
Theoretisch deel
De theorie wordt getoetst met een schriftelijke tentamen van 90 minuten. Bij de tentamenvragen zullen de onderwerpen uit leereenheden 1 t/m 6 aan de orde komen. Bijlage A: Oefententamen is een oefententamen. De antwoorden zijn te vinden in de sheets van hoorcollege 6. Zie http://confluence.cmi-hro.nl. 8.2
Praktisch deel
Het practicum wordt beoordeeld op de volgende punten: doelstelling probleembeschrijving niet-functionele systeemeisen functionele systeemeisen klassen* associaties, attributen, rollen en operaties* aggregaties en composities definitieve klassediagram* use-case template use-case diagram* sequencediagrammen* toestandsdiagrammen* samenvatting / conclusie / evaluatie literatuurlijst *) uitwerken met case-tool Alle hierboven genoemde onderdelen (criteria) moeten in het verslag zijn opgenomen, tenzij in overleg met de begeleidende practicumdocent, de lijst met criteria is bijgesteld. Bijlage B: practicum beoordelingsformulier is een formulier dat gehanteerd wordt bij de beoordeling van het practicum. Hierin is tevens de verdeelsleutel van de genoemde criteria te vinden. 8.3
Herkansing
Herkansing van het practicum is alleen mogelijk in het kwartaal volgend op het kwartaal waarin deze module in het curriculum is opgenomen. Hiervoor wordt een nieuwe opdracht beschikbaar gesteld in overleg met de begeleidend practicumdocent. Herkansing van de theorie is in de tentamenperiode van de onderwijsperiode die volgt op de onderwijsperiode waar deze module in het curriculum staat.
MODULEWIJZER INFINA02
14 VAN 18
OPLEIDING INFORMATICA
Bijlage A: Oefententamen Hogeschool Rotterdam Datum Module INA02-theorie (oefententamen Tijd Studierichting INF Duur Aantal pagina’s 3 Lokaal Aantal opgaven 6 Docent Hulpmiddelen Boek “Learning UML 2.0” Opgave Eindcijfer = 1 + 9 * aantal behaalde punten / maximaal aantal te behalen punten
90 minuten T. Busker
Inleiding bij vragen 1 t/m 5 Bij het cluster Informatica is behoefte aan een nieuw systeem om de cijfers van de studenten bij te houden. De opdrachtgever heeft de onderstaande systeemeisen geformuleerd: Administratief medewerkers moeten per module de cijfers van de studenten kunnen invoeren. Dit moet op een betrouwbare manier gebeuren: achteraf moet kunnen worden gecontroleerd wanneer en door wie een cijfer is ingevoerd. Bovendien moeten administratief medewerkers per module een overzicht van de cijfers kunnen printen. Studenten moeten via Internet een overzicht van hun eigen cijfers kunnen krijgen. Het systeem moet veilig, eenvoudig en gebruikersvriendelijk zijn, en bovendien 7*24 uur beschikbaar. Figuur 1 geeft een indruk van het scherm dat de administratief medewerker gebruikt om een cijfer in te voeren. De medewerker krijgt dit scherm alleen te zien als hij/zij is ingelogd. De medewerker voert studentnr, modulecode en cijfer in. De overige gegevens worden ter controle door de applicatie getoond. Het userid van de ingelogde medewerker wordt links onderin het scherm getoond.
Figuur 1 De use-cases in figuur 2 en het domeinklassediagram in figuur 3 zijn de resultaten van een eerste analyse.
MODULEWIJZER INFINA02
15 VAN 18
OPLEIDING INFORMATICA
voegt student toe
voert cijfer in
administratief m edewerker
print cijfers per m odule
bekijkt cijfers student
Figuur 2
Figuur 3 Bij de beantwoording van de vragen moet gebruik gemaakt worden van de begrippen en notatiewijzen zoals toegepast in het boek “Practical Object-Oriented Development with UML and JAVA”. Werk de use-case “voert cijfer in” uit volgens het use-case template. (10 punten) Teken het sequence diagram voor de use-case “voert cijfer in”. (10 punten) Geef aan of en zo ja welke klasse(n) moet(en) worden toegevoegd. Geef bovendien aan hoe bestaande klassen moeten worden uitgebreid voor het realiseren van het sequence diagram voor het toevoegen van cijfers. (10 punten) Teken het toestandsdiagram van de klasse Cijfer (10 punten)
MODULEWIJZER INFINA02
16 VAN 18
OPLEIDING INFORMATICA
Wat moet er gebeuren (extra klassen / attributen / methodes, aanroepen van methode binnen sequence diagram) om het systeem uit te breiden met de volgende functies a) het automatisch sturen van een email naar een student als er een cijfer voor haar/hem is ingevoerd (7 punten) b) het bijhouden van het aantal studiepunten per student (studiepunten worden toegekend per module als daarvoor een voldoende is gehaald) (8 punten) Paardenrace spel Het doel van de te ontwikkelen applicatie is dat 2 spelers tegen elkaar het paardenrace spel kunnen spelen. Het spel bestaat uit een bord met daarop 2 banen van ieder 32 vakjes. Een aantal van die vakjes zijn hindernissen, hier aangegeven met een donkere kleur. Baan A
Baan B
finish
Start
De spelers kiezen een kleur voor hun pion. Eerst gooien de spelers eenmaal met de dobbelsteen en wie het hoogst gooit, speelt in baan A en mag beginnen. Voor de aanvang van een ronde staan de pionnen van de spelers voor de startlijn. Nu gooien de spelers om de beurt de dobbelsteen en wordt de pion van de speler zoveel vakjes opgeschoven als de dobbelsteen aangeeft. Komt men hierbij op een hindernis dan wordt de pion 2 vakjes voor de hindernis gezet. De speler die het eerst over de finish komt, heeft de ronde gewonnen. Ontwerp het domein klasse diagram inclusief de attributen. Maak hiervoor eerst een lijst met kandidaat klassen en stel vervolgens het klasse diagram op met de geselecteerde klassen. Geef de relaties tussen de klassen aan en de bijbehorende multipliciteit. (40 punten)
MODULEWIJZER INFINA02
17 VAN 18
OPLEIDING INFORMATICA
Bijlage B: practicum beoordelingsformulier EMBED Microsoft Excel 97-Tabelle
MODULEWIJZER INFINA02
18 VAN 18