HOGESCHOOL ROTTERDAM IAN02 - Informatie-analyse (objectgeoriënteerde analyse) M O D U L E W I J Z E R I A N 0 2 1 V A N 1 5
Modulecode: IAN02 Modulenaam: Informatieanalyse 2 Belasting (aantal cp): 2 Bestemd voor: INF/TI Categorie: Behoort tot traject: Vereiste voorkennis: kennis van objectgeoriënteerd programmeren Werkvorm: college en practicum Toetsing: ontwerp + verslag (van case) Vrijstelling: - Leermiddelen: Boek: Titel: Learning UML 2.0 Aanbevolen boek: Auteur: Russel Miles, Kim Hamilton Uitgever: ISBN: 0-596-00982-8 Jaar: 2006 Auteur: L.A. Maciaszek Titel: Requirements Analysis and System Design Uitgever: Addison Wesley ISBN: 0-201-70944-9 Hoofddoel: 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. Leerdoelen: 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) Inhoud: 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. Competenties Competentie 9 - Software systeem eisen specificeren (VT10) Competentie 10 - Software systeem analyseren en ontwerpen (VT11 en VT13) Opmerkingen Met UML wordt steeds de standaard UML versie 2.0 bedoeld Auteur: A.L.J. Busker Versie 6 Datum: April 2011 M O D U L E W I J Z E R I A N 0 2 2 V A N 1 5
Inhoudsopgave 1 Inleiding... 4 2 Doelstelling van de module... 5 3 Begineisen... 6 4 Werkvorm(en)... 7 5 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: Sequencediagrammen...12 7.5 Leereenheid 5: Toestandsdiagrammen...12 7.6 Leereenheid 6: praktijkopdracht...12 7.7 Leereenheid 7: praktijkopdracht...13 7.8 Leereenheid 8: afronding praktijkopdracht...13 8 Toetsing... 14 8.1 Praktisch deel... 14 8.2 Herkansing... 14 Bijlage A: practicum beoordelingsformulier...15 M O D U L E W I J Z E R I A N 0 2 3 V A N 1 5
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 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. M O D U L E W I J Z E R I A N 0 2 4 V A N 1 5
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. M O D U L E W I J Z E R I A N 0 2 5 V A N 1 5
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. M O D U L E W I J Z E R I A N 0 2 6 V A N 1 5
4 Werkvorm(en) De module is opgebouwd uit een theoriedeel (hoor-/instructiecollege) en een practicumdeel. 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 casus. In het practicum wordt een teamcasus uitgereikt dat met behulp van een case-tool (bijv. JUDE, Astah, System Architect) moet worden uitgewerkt. M O D U L E W I J Z E R I A N 0 2 7 V A N 1 5
5 Leerstof 5.1 Powerpoint presentaties Zie http://confluence.cmi-hro.nl 5.2 Verplichte literatuur Boek Auteurs : Russel Miles & Kim Hamilton Titel : Learning UML 2.0 Uitgever : Prentice Hall ISBN : 0-596-00982-8 Jaar : 2006 Dit boek wordt gebruikt bij de modules IAN02 en programmeren. 5.3 Aanbevolen literatuur Boek Auteurs : Grady Booch Titel : Object-Oriented Analysis and Design with Applications Uitgever : Addison Wesley ISBN : 0-80-535340-2 Boek Auteurs : Richard D. Lee & William M. Tepfenhart Titel : Practical object-oriented development with UML and JAVA Uitgever : Prentice Hall ISBN : 0-13-067238-6 Boek Auteur : Hoogendoorn, Sander Titel : Pragmatisch modelleren met UML 2.0 Uitgever : Addison-Wesley ISBN : 90-430-0652-1 Boek Auteur : Bruegge, Bernd & Dutoit, Allen H. Titel : Object-oriented Software Engineering using UML, Patterns and JAVA Uitgever : Prentice Hall ISBN : 0-13-191179-1 Boek Auteur : Fowler, Martin Titel : UML distilled 3 rd ed. Uitgever : Addison-Wesley ISBN : 0-321-19368-7 Boek Auteur : Connallen, J. Titel : Building Web Applications with UML Uitgever : Addison-Wesley ISBN : 0-201-32579-9 Boek Auteur : Warmer, J. en Kleppe, A. Titel : The object Constraint Language, Preciese Modeling with UML Uitgever : Addison-Wesley ISBN : 0-201-37940-6 Boek Auteur : Oestereich,Bern Titel : Developing Software with UML Uitgever : Addison-Wesley M O D U L E W I J Z E R I A N 0 2 8 V A N 1 5
ISBN : 0-201-39826-5 M O D U L E W I J Z E R I A N 0 2 9 V A N 1 5
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 werkvorm sbu Inhoud 1 HIC 1 Inleiding werkvorm, module Inleiding object oriëntatie Inleiding UML (use-case diagram) ZS 2 opstellen niet-functionele, functionele eisen en use-cases voor het systeem in de oefencasus. Bestuderen: [Miles] H1 en H2 PR+ZS 4 Uitreiking en toelichting teamopdracht (teamcase) Gebruik case-tool Formuleren probleemstelling, functionele en niet-functionele eisen van de teamcase 2 HIC 1 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 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 2 Stel lijst met (voorlopig) klassen van de oefencase op. Bestuderen: [Miles] H4, H5, H6 PR+ZS 4 Bespreken per team: probleemstelling, functionele en niet- functionele eisen van de teamcase Opstellen use cases, identificeren en selecteren van kandidaatklassen. 3 HIC 1 Dynamische diagrammmen (sequence- en collaboratiediagram) ZS 2 Ontwikkelen sequencediagrammenvan de case Bestuderen: [Miles] H7, H8 PR+ZS 4 Bespreken per team: use cases, kandidaatklassen Opstellen lijst met definitieve klassen Ontwikkelen van het klassediagram voor teamcase met behulp van casetool 4 HIC 1 Dynamische diagrammmen (sequence- en collaboratiediagram) Bespreken resultaten oefencase ZS 2 Ontwikkelen sequencediagrammen Bestuderen: [Miles] H7, H8 PR+ZS 4 Bespreken per team: use cases, kandidaatklassen Opstellen lijst met definitieve klassen Ontwikkelen van het klassediagram voor teamcase met behulp van casetool 5 HIC 1 Dynamische diagrammen (toestands- en activiteitsdiagram). M O D U L E W I J Z E R I A N 0 2 1 0 V A N 1 5
Week werkvorm sbu Inhoud ZS 2 Ontwikkelen toestandsdiagrammen Bestuderen: [Miles] H14 PR+ZS 4 Bespreken sequencediagrammen voor de teamcase en verder ontwikkelen model. 6 HIC 1 Bespreken/toelichting/behandelen vragen ZS 1 Bestuderen stof [Miles], presentaties http://www.med.hro.nl/busal PR+ZS 4 Afronden teamcase ontwerp+verslag 7 HIC 1 Bespreken/toelichten/behandelen vragen ZS 1 Bestuderen stof [Miles], presentaties http://www.med.hro.nl/busal PR+ZS 4 Ontwikkelen teamcase en inleveren ontwerp+verslag 8 HIC 1 Bespreken/toelichting/behandelen vragen ZS 1 Bestuderen stof [Miles], presentaties http://www.med.hro.nl/busal PR+ZS 4 Afronden teamcase en inleveren ontwerp+verslag M O D U L E W I J Z E R I A N 0 2 1 1 V A N 1 5
7 Leereenheden 7.1 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: Sequencediagrammen 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 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 7.6 Leereenheid 6: praktijkopdracht Tijdens dit practicum werken de studenten verder aan hun praktijkopdracht en wordt kennis verder aangescherpt. M O D U L E W I J Z E R I A N 0 2 1 2 V A N 1 5
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. M O D U L E W I J Z E R I A N 0 2 1 3 V A N 1 5
8 Toetsing De module wordt afgesloten met een teamverslag van de case en een ontwerp. 8.1 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 A: 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.2 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. M O D U L E W I J Z E R I A N 0 2 1 4 V A N 1 5
Bijlage A: practicum beoordelingsformulier 1 4 6 8 10 Punten per punten per HOOFD subonderd onderdeel eel Waardering 5 ORGANISATIE 0.0 3 planning 0.00 2 samenwerking 0.00 5 RAPPORT 0.0 2 duidelijke titel 0.00 1 structuur / indeling 0.00 1 layout 0.00 1 literatuurlijst 0.00 30 PROBLEEMSTELLING 0.0 10 probleembeschrijving (kort en helder) 0.00 10 functionele eisen 0.00 10 niet-functionele eisen 0.00 60 Analyse en ontwerp 0.0 use-case diagram (overzicht use-cases en 10 gedetailleerde beschrijving van elke use-case) 0.00 klasse-diagram (inclusief attributen, operaties, associaties, rollen, aggregaties en composities 20 en beschrijving daarvan) 0.00 15 sequencediagrammen (incl. beschrijvingen) 0.00 15 toestandsdiagrammen 0.00 100 Totaal aantal punten 0.0 Cijfer slecht matig voldoende goed uitstekend deel totalen Punten Totalen M O D U L E W I J Z E R I A N 0 2 1 5 V A N 1 5