OOAA. Object Oriented Analysis Advanced. Arie Bubberman 12/10/2009



Vergelijkbare documenten
Software Processen. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1. Het software proces

UML. From weblog Dennis Snippert

Aliens?

1. Welke diagrammen beschrijven het dynamisch gedrag van een applicatie?

Inhoud. Deel een Het ontwikkeltraject 13. Inleiding 11

UML is een visuele taal om processen, software en systemen te kunnen modeleren.

Unified Process. Een introductie. Algemene informatie voor medewerkers van SYSQA B.V.

Zelftest OOAD/UML. Document: N0767Test.fm 30/08/2010. ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium

Object Oriëntatie Foundation (OOF.NL)

BRP-BZM Use Case Realisations Guidelines

Toelichting op dit erratum

Les F-02 UML. 2013, David Lans

VAN USE CASE NAAR TEST CASE ORDINA SMART COMPETENCE CENTER

Domeinmodellen en klassendiagrammen

ARE methodiek Het ontwikkelen van Informatie Elementen

Deel II: Modelleren en software ontwikkeling. Hoofdstuk 7 Software ontwikkeling - Overzicht. Naïeve benadering

Software Test Plan. Yannick Verschueren

beschrijvingstechnieken bij systeemontwikkeling

Canonieke Data Modellering op basis van ArchiMate. Canonieke Data Modellering op basis van Archimate Bert Dingemans

voorbeeldexamen Object Oriëntatie Foundation (OOF.NL) editie juli 2010 inhoud inleiding 3 voorbeeldexamen 4 antwoordindicatie 11 evaluatie 22

DATAMODELLERING ARCHIMATE DATA- & APPLICATIEMODELLERING

Kenmerken van DLArchitect

Unified Modeling Language

Titel, samenvatting en biografie

Inleiding ontwikkelmethoden

Voor en nadelen (spatieel) gedistribueerd

case: toestandsdiagrammen

Unified Modeling Language ACTIVITY DIAGRAMS

Scrumscrumscrumscrumscrumscrum scrumscrumscrumscrumscrumscrum scrumscrumscrumscrumscrumscrum agileagileagileagileagileagileagileagil

Systeemontwikkeling met UML

Inhoud Deel een Het ontwikkeltraject 1 2 3

Ontwikkelmethoden en technieken. Ontwikkelmethoden & Technieken HC 2

Agile systeemontwikkeling. Een introductie. Algemene informatie voor medewerkers van SYSQA B.V.

Satisfy the real (and changing) customer expectation

DATAMODELLERING BASIS UML KLASSEMODEL

Eigenschappen van moderne ontwikkelmodellen

Modeleren. Modelleren. Together UML. Waarvan maken we een model? overzicht les 14 t/m 18. ControlCenter 6.2

1750,00 excl. BTW. analytisch denkvermogen, empathie, assertief, communicatief, aanleg voor formalisme,...

Inhoudstafel. UML (Unified Modeling Language)

Introductie. Hoofdstuk Over softwareontwikkeling

Capita Selecta Design Patterns voor administratieve applicaties

Inhoud. Introductie tot de cursus

INFORMATIE ANALYSE. Sla de brug tussen Business en ICT.

Objectgericht Ontwerpen

Inhoud. 1. Agile werken. 2. Het belang van Agile werken. 3. Basisprincipes van Agile werken. 4. De meest gebruikte Agile methode: Scrum

DATAMODELLERING DATA MAPPING MODEL

Op de computer kan naar eigen inzicht software op worden geïnstalleerd, een andere besturingssysteem is mogelijk.

Oplossingen voor het testen van objectgeoriënteerde software

Ontwikkelmethoden en technieken DSDM POMT HC3

voorbeeldexamen I-Tracks voorbeeldexamen ISDDF Information Systems Design and Development Foundation uitgave april 2005

Toegepaste notatiewijzen DLA software

Software Test Plan. Yannick Verschueren

RAD Rapid application development. Een introductie. Algemene informatie voor medewerkers van SYSQA B.V.

Agile ervaring Ir.ing. Erik van Daalen

Een inleiding in de Unified Modeling Language 79

Ontwikkeling informatiesysteem

Model Driven Software Development: Geen toekomst maar realiteit. 4 juni 2009, WTC, Amsterdam.

Rapportage Lineage. Introductie. Methode. J. Stuiver

Interactie diagrammen

Projectplan. Elektronica-ICT Artesis. Auteur: Coopman Tom Interne Promotor: Peeters Tom Externe Promotor: Delepierre Bruno, Adforce

Bijlage 3: Master testplan

Software Quality Assurance Plan

Cyberpesten: social media platform mining tools

DATAMODELLERING SIPOC

Technische architectuur Beschrijving

Agile (Scrum) Werken Jeroen Hak

Modulebeschrijving voor MOD1

1. De watervalmethode Agile softwareontwikkeling Iteratief werken Agile technieken voor teams... 3

DATAMODELLERING ARCHIMATE DATAMODELLERING

Eindtoets. Opgaven. 1 Gegeven is het domeinmodel van figuur 1. Domeinmodel voor betalingen. Eindtoets I N T R O D U C T I E.

Business Process Management

Application interface. service. Application function / interaction

HOGESCHOOL ROTTERDAM

Project methodiek. Auxilium BV Oude Delft CD Delft. T: F: E:

J2EE/.NET en de rol Applicatie Architectuur

Oplossingen voor het testen van objectgeoriënteerde software. Oplossingen voor het testen van. Overzicht. Pieter van den Hombergh.

Scrum. Een introductie

DATAMODELLERING CRUD MATRIX

Software Test Plan. PEN: Paper Exchange Network Software Engineering groep 1 (se1-1415) Academiejaar

Martin van Leeuwen Happy Testing

Technisch Ontwerp W e b s i t e W O S I

RUP Rational Unified Process. Een introductie. Algemene informatie voor medewerkers van SYSQA B.V.

Software Project Management Plan

bedrijfsprocessen en vormt daarmee de kapstok voor de producten van andere disciplines. Het PAM is geen RUP concept.

Methodiek. Versie: 16/05/ :42:35

Continuous Delivery. Sander Aernouts

VOICE OF THE CUSTOMER

Use-Case 2.0. Requirements Kenniscentrum 15 November Eric Lopes Cardozo

Agenda. Introductie Aan het werk Conclusie / restrospective

Agile Foundation examen - OEFENVragenformulier

DATAMODELLERING DATA FLOW DIAGRAM

Het belang van. Data Modellering. GEMINIT Training. Data Modellering. Frédéric BARBIER

Unified Modeling Language

MDA experiences in een uitvoeringsorganisatie. Eelco van Mens (Architect, Mn Services) 5 juni 2008

EXIN Agile Scrum Foundation

DATAMODELLERING BEGRIPPENBOOM

Archimate risico extensies modelleren

Systeem modellen. Topics covered

Agile game productie

Transcriptie:

OOAA Object Oriented Analysis Advanced Arie Bubberman 12/10/2009

Contents 1 Analyse...3 Kiezen van een ontwikkelproces...3 Agile Methoden...3 Deelprocessen in het OO-ontwikkelproces...Fout! Bladwijzer niet gedefinieerd. De plaats van analyse in het ontwikkelproces...5 Agile methods...7 2 Statisch modelleren...8 Bepalen van Analysis Classes...8 Opstellen van een initieel Domeinmodel...9 Uml diagrammen...9 3 Statisch Modelleren Detailleringen... 11 Associaties en Attributes... 11 Toepassen van Inheritance... 11 Uitbreiding Use Case Notatie... 11 4 Dynamisch modelleren... 11 Objecten en Klassen... 11 Interactie tussen domeinobjecten... 11 Interactiediagrammen... 11 Toestanden en gedrag van objecten... 12 5 Modelmanagement... 12 Analysis Packages... 12 Case Tools... 12 Quality Assurance... 12 2

1 Analyse Kiezen van een ontwikkelproces Voor het ontwikkelen van software is een standaard aanpak noodzakelijk. Een software - ontwikkelingsmethode biedt 2 vormen van ondersteuning: 1) Een proces(stappenplan) dat men kan volgen, gebaseerd op het maken van modellen 2) Een aantal gestandaardiseerde notaties om de modellen in neer te schrijven. Watervalmethode/traditioneel ontwikkelen In deze aanpak vinden alle stappen sequentieel plaats. Voordat er aan een volgende fase begonnen kan worden, moet de vorige fase dus volledig voltooid zijn. Het waterval proces wordt ook wel cascade genoemd. Erg geliefde methode bij projectleiders, door duidelijk afgelijnde milestones. Requirements Analysis Design Program Testing Nadelen van de watervalmethode: 1) Het systeem houdt geen rekening met de evolutie van vereisten(requirements) 2) Testen kan pas helemaal aan het einde van het volledige proces 3) Er zijn hoge kosten voor aanpassingen op het moment dat het systeem niet voldoet aan de wensen van de klant Agile Methoden Om aan de tekortkomingen van het waterval proces te beantwoorden is er een werkwijze ontwikkeld die een incrementele en iteratieve aanpak vooropstelt 1) Incrementeel: functionaliteiten deelsgewijs ontwikkeld en toegevoegd aan een continu groeiende applicatie. 2) De verschillende fases van het ontwikkelingsproces worden meerdere keren herhaald. Agile manifesto Dit is de definitie van een doeltreffende en moderne software- ontwikkelmethodologie. Het bestaat uit 4 punten: 1) Medewerkers en onderlinge interactie primeren over processen en tools 2) Werkende software is belangrijker dan uitgebreide documentatie 3) Goede samenwerking met de klant primeert over contractonderhandeling 4) Proactief inspelen op veranderingen is belangrijker dan het volgen van een planning. Iteratieve ontwikkeling Agile staat veelal bekent door de iteratieve aanpak. Enkele voordelen hiervan zijn: 1) Het gebruik van korte iteraties werkt motiverend voor medewerkers 2) Als er ergens iets fout gaat binnen een iteratie, en de klant is niet tevreden met het resultaat, dan verliest men maximaal 2 tot 6 weken in plaats van maanden of zelfs een jaar. 3) Deze aanpak houdt rekening met de werkelijkheid. In het begin van het project is het namelijk onmogelijk om de vereisten van de klant nauwkeurig te beschrijven. In de iteraties worden de eisen en wensen verder verfijnt. Relatie met OO Doordat er kleine componenten (stukken functionaliteit) worden opgeleverd, worden hier wel zwaardere en specifieke eisen aan gesteld. E moeten gemakkelijk aanpasbaar en onderhoudbaar zijn. Daarnaast moeten componenten duidelijk beschreven interfaces hebben zodat ze onderling kunnen samen werken. Hiervoor is een objectgeoriënteerde taal eigenlijk onontbeerlijk. Unified Process Unified Proces, ofwel UP is een volledig ingevulde methode en bied werkwijzen, technieken, richtlijnen, standaarden en afbeeldingwijzen. Het is ontstaan uit de behoefte naar een goed 3

gedocumenteerd en beschreven software- ontwikkelingstechniek. Vaak wordt er verwezen naar RUP, waarbij de R staat voor Rational. Het is samengesteld uit verschillende werkwijzen. 1) Het is een verzameling van best practices in een modern softwareproces 2) Het is een aanpasbaar kader waarin aangewezen processen voor je organisatie/probleem aangemaakt kunnen worden. UP heeft een processtructuur waarbij er twee dimensies zijn te onderkennen: De core flows. De core flows lopen over de gehele project, door de verschillende fasen van het project heen 1) Requirements: Dit is het verzamelen van de vereisten en het formuleren van de vereisten die door zowel door de teamleden als de klant kunnen worden begrepen. De vereisten worden verwerkt in use case diagrammen. Deze beelden de relatie tussen de gebruiker en de functionaliteiten uit. Een hulpmiddel om te controleren of aan alle vereisten zijn voldaan is: FURPS (Functionality, Usability, Relability, Performance en Supportability) 2) Analyse: Specificeren wat ontwikkeld moet worden. Het omvat het analyseren van het probleemdomein en het maken van een domeinmodel. Het systeem wordt van buiten af beschreven. 3) Design: Deze fase omvat het ontwerp van de architectuur van het systeem. Nadruk ligt op de interne werking van het systeem, en de uitwerking van de functionaliteit in termen van hardware en implementatiespecifieke technologie. Ook worden er beslissingen over strategieën genomen (database schema s etc.) 4) Implementatie: In deze fase wordt het systeem gebouwd. Ontwerpmodellen worden vertaald naar code. Klassendiagrammen kunnen hier het beste voor gebruikt worden 5) Test: In deze fase wordt het systeem getest. Er wordt gekeken of het systeem voldoet aan de verwachtingen, maar ook om defecten uit de software te halen De fasen. UP bestaat uit 4 fasen: 1) Inception: Dit wordt ook wel de initieele fase genoemd. Deze fase bestaat uit 1 enkele iteratie. Er wordt geen software gebouwd in deze fase. De volgende dingen worden gedaan: a. De scope van het project opstellen b. Een uitgbreide risicoanalyse uitvoeren c. Een proof of concept bouwen d. Een visie(vision) document opstellen. Aan de hand van dit document wordt bepaald of het project al dan niet doorgaat 2) Elaboration: De gewenste functionaliteit wordt verder uitgediept. De volgende dingen worden gedaan: a. Mogelijke kritieke punten in de architectuur en het ontwikkelpad worden onderzocht. b. Componenten worden gedefinieerd. Deze zijn van hoge kwaliteit en maken deel uit van de uiteindelijke applicatie. Vereisten en analyse activiteiten zijn erg belangrijk, design en implementatie worden belangrijker, vooral aan het einde van de fase. c. Het skelet van de applicatie, ook wel kernarchitectuur genoemd, maken. 3) Construction: Design en implementatie worden hier belangrijker, vereisten en analyse komt meer op de achtergrond te staan. In deze fase wordt het volgende gedaan: a. Het skelet van de applicatie uitbreiden tot een volledig systeem b. Aan het einde van elke iteratie worden de afzonderlijke componenten uitvoerig getest en gelinkt. Deze releases kunnen in een testomgeving geplaatst worden. 4) Transition: In deze fase wordt er langzaam overgegaan naar de nieuwe situatie. De volgende dingen worden gedaan: 4

a. Opstarten piloot project waarbij de bètasoftware op een aantal pc s geïnstalleerd wordt. b. Na feedback kleine aanpassingen in de code aanbrengen c. Productdocumentatie maken d. Eindgebruikers trainen e. Uitrollen van de final release DSDM DSDM staat voor Dynamic Systems Development Method. Het is een Rapid Application Development methode (RAD). Wordt voornamelijk gebruikt bij ontwikkeling van gecomputeriseerde informatiesystemen. Tijdens de ontwikkeling met DSDM komen steeds meer gedetailleerde specificaties boven water. Deze worden vervolgens op basis van prioriteiten ingedeeld. Timeboxes: Dit is een specifieke, afgebakende tijdsplanning. Hierin worden eerst de zaken opgeleverd die het belangrijkste zijn voor de bedrijfsbehoeften. Op deze manier kan snel resultaat behaald worden. XP XP staat voor Extreme Programming. Ook deze methode heeft een iteratieve werkwijze. Het is een erg pragmatische aanpak. De klant moet bij deze methode deel uitmaken en beschikbaar zijn voor het ontwikkelteam. Geschikt voor kleine projecten. XP promoot het gebruik van pair programming. Een medewerker richt zich volledig op de code, terwijl de andere fouten in de code of aanpak probeert te vinden. Na een tijd wisselen de medewerkers van rol FDD FFD staat voor Feature Driven Development. Dit is een aanpak waarbij het proces gedreven wordt door de features van het systeem.de onderscheidende processen binnen FFD zijn: 1) Bouwen featurelist 2) Opstellen planning per feature 3) Maken van design per feature 4) Bouwen van applicatie per feature De plaats van analyse in het ontwikkelproces Analysis- model Het doel van het analysis- model is het verfijnen en structureren van de verzamelde vereisten. Dit model is een verzameling van diagramme, waarmee de vereisten van het systeem in beeld gebracht kunnen worden. Het zorgt er voor dat het systeem makkelijker begrepen kan worden. Materiële en technische aspecten komen niet ter sprake. Use case diagrammen en het domeinmodel zijn erg belangrijk. Use case model: Een use case bepaalt een reeks interacties tussen de externe actoren en het systeem dat we willen bouwen. Actoren zijn partijen die interactie aangaan met het systeem. Dit kunnen gebruikers zijn, maar ook een ander systeem Concept: Een concept is een voorstelling van iets dat echt bestaat in het kader van het project dat men wil uitvoeren. Een concept hoeft niet per se tastbaar te zijn, tijd kan bijvoorbeeld ook een concept zijn. Een concept wordt ook wel een conceptuele klasse genoemd. 5

Domeinmodel: Dit is een verzameling van concepten, samen met de associaties die bestaan tussen de concepten onderling. Representational gap: Deze term slaat op het verschil ( gap ) dat bestaat tussen de concepten die verzameld worden in een domeinmodel (op basis van vereisten), en de klassendiagrammen die na grondige analyse en design worden aangemaakt. Artifacts van OO- Analyse Use case Model: Een use case bepaalt een reeks interacties tussen de externe actoren en het systeem dat we willen bouwen. Actoren zijn partijen die interactie aangaan met het systeem. Dit kunnen gebruikers zijn, maar ook een ander systeem. Er wordt onderscheid gemaakt tussen primaire en secundaire actoren: 1) Primaire actor: deze heeft bepaalde doelstellingen, en de actor gebruikt het systeem direct om deze te bereiken 2) Secundaire actor: deze heeft indirect baat bij het systeem. Het beschrijft een opeenvolging van succes en optionele faal interacties tussen actoren en het systeem, die noodzakelijk zijn om de dienst te leveren die het doel tevreden stelt. Een use case maakt gebruik van een black box aanpak. Het beschrijft dus alleen wat de functionaliteit is van het systeem, niet hoe dit technisch gerealiseerd wordt. De beschrijvingen worden geschreven in de taal van de klant. Use Case realization: Dit beschrijft de interne werking van de Use case. Voor elke Use case wordt de interne communicatie getoond door gebruik van een of meerdere diagrammen. Het toont de functionaliteit op systeemniveau. Dit is in de taal van de ontwikkelaar. Er worden twee stromingen onderscheiden tijdens de analyse: 1) Use case driven Development: Use Cases staan centraal in de UP methodologie. Alle UMLartefacten (afbeeldingen en diagrammen) worden hieruit afgeleid. 2) Responsibility driven development: Dit is het ombuigen van de gebruikelijke analyseaanpak naar een werkwijze waarbij objecten centraal staan. Een object is een voorstelling van een fysisch of logisch concept dat is afgeleid uit de vereisten van het project. Patterns: Hierin is vastgelegd welk werk een object krijgt toebedeeld. Objecten werken op een bepaalde manier samen. a. Controleur: 1 van de objecten speelt de baas b. Expert: welk object weet het antwoord op een bepaalde vraag c. Creator: wie is verantwoordelijk voor het aanmaken van nieuwe objecten d. Low Coupling: objecten moeten met een minimaal aantal andere objecten kunne praten e. High Cohesion: objecten hebben graag gerelateerde verantwoordelijken. Er zijn een aantal regels die belangrijk zijn: 1) Iedere Use case(weergeven als ellips) is gerelateerd aan minstens 1 actor, of een andere Use case 2) Iedere Use case stelt een bedrijfsproces voor, dat bestaat uit verschillende stappen 3) Iedere Use case moet een toegevoegde waarde hebben voor de organisatie. 6

Use case scenario: Dit is een specifiek geval van een use case, het vertegenwoordigd 1 enkele weg door de use case. Het beschrijft de opeenvolging van stappen die worden gevolgd, vanaf de start tot een van de uitkomsten. Meestal werkt met met een basisscenario, ook wel Happy path genoemd, waarna de verschillende uitzonderingen of alternatieven onder het basisscenario worden vermeld. Happy Path: Deze aanpak betekent dat de use case zonder problemen, en dus zoals verwacht wordt doorlopen. Sequence diagram: Dit diagram wordt gebruikt om de interacties te tonen tussen de actoren en het systeem. Ze worden ook wel System Sequence Diagrams genoemd (SSD). Het legt de speciale nadruk op de volgorde waarmee de interacties tussen de actors en het systeem plaatsvinden. In dit diagram worden de actoren en het systeem als objecten voorgesteld boven aan het diagram, en elk object heeft zijn eigen lifeline (levenslijn). Deze lifeline wordt voorgesteld als een verticale onderbroken lijn, en de tijd verloopt van boven naar beneden. De interacties tussen de objecten worden weergeven in de vorm van pijlen met de naam van de interactie en eventuele parameters. Dit diagram is de eerste opstap naar het realiseren van een Use case, en wordt in een taal geschreven die meer aanleunt bij de ontwikkelaar. Elke ellips uit het Use Case diagram zal leiden tot 1 Sequence diagram. Soms wordt een event meerdere malen verstuurd, en is er sprake van herhaling. In het diagram wordt dit weergeven als een grote nota, met daarin een lus(loop) conditie. Deze bepaalt hoe vaak de lus wordt uitgevoerd. Message to self : Dit is de term die gebruikt wordt als een systeem interne dingen moet doen. Dit wordt weergeven als een pijl vanaf het systeem naar zichzelf. Een bericht naar het systeem toe kan parameters bevatten, een bericht vanaf het systeem naar de gebruiker kan nooit parameters bevatten! Domain model Een domeinmodel (domain model) bevat concepten die verzameld worden op basis van een analyse van de requirements. Naast de concepten zijn er ook associaties tussen de concepten, multipliciteit en attributen. De notatie van een domeinmodel is identiek aan een klassediagram, met uitzondering van enkele punten: Methodes en pijlpunten ontbreken. Alle associaties in een domeinmodel zijn bidirectioneel. De concepten in het domeinmodel worden getekend als rechthoeken met 2 vakken. In het eerste vak staat de naam, in de 2 e staan de belangrijkste attributen. Class diagram Een klassendiagram (class diagram) is het uiteindelijke doel van de ontwikkelcyclus binnen 1 iteratie. Dit model kan worden omgebouwd naar code in een willekeurige object georiënteerde taal. Een klassendiagram is afgeleid uit een domeinmodel. De klassen in het model worden getekend als rechthoeken met 3 vakken. In het eerste vak komt de naam, in het 2 e vak komen de attributen en in het 3 e vak komen de methodes. Meestal wordt er een kopie gemaakt van het domeinmodel, waar vervolgens de methodes aan toegevoegd worden. Activity Diagram Een activity diagram speelt een interessante rol tijdens de analyse. Het diagram is geschikt om een if-then-else beslissing of workflow in te weergeven. Dit diagram wordt gebruikt om de 7

gedetailleerde Use case tekst aanschouwelijk te maken. Dit diagram bestaat uit een aantal Swim lanes. Deze lanes staan voor de verschillende actors. Dit zijn zowel personen als het systeem zelf. Het diagram start altijd met een zwart bolletje. Vanuit daar wordt de eerste activiteit gestart. Activiteiten worden weergeven als rechthoeken met afgeronde hoeken. Tussen de activiteiten staan pijlen waarmee de richting van het bericht wordt aangegeven. Voor plekken waar een beslissing (ja/nee) gemaakt wordt, wordt een ruit gebruikt. Test-first approach: met het diagram kan de applicatie getest worden voordat er een regel code geschreven is. State diagram Dit is een optioneel diagram en wordt ook wel State Machine genoemd. Dit diagram geeft de status van elk aspect binnen de ontwikkelcyclus weer, zoals de status van een bepaalde Use case. Meestal worden in dit diagram objecten gebruikt, omdat deze dynamisch zijn, en kunnen op basis van hun status bepaald gedrag vertonen. Een State diagram is alleen nuttig als er meerdere statussen zijn. Agile methods Analysis Patterns Een pattern is een combinatie van een veel voorkomend probleem met een bijbehorende standaardoplossing. Patterns worden niet gemaakt, eerder ontdekt. Het voordeel van een geformaliseerd pattern is het vergemakkelijken van de communicatie tussen de leden van het project team. GRASP: General Responsibility Assignment Software Patterns. Deze patterns zijn geschikt om vragen met betrekking tot de responsibility van de objecten te beantwoorden. Hieronder staan een aantal best practices: 1) Low Coupling: hier wordt getracht het aantal associaties tussen de concepten/klassen te beperken 2) High Cohesion: Hier dienen de verantwoordelijkheden binnen een klasse gerelateerd te zijn. 3) Expert: Hier wordt gekeken naar welk concept/klasse de informatie bezit om een taak uit te voeren 4) Creator: Hier wordt gekeken wie er verantwoordelijk is voor het aanmaken van een object. 5) Controller: Hier wordt gekeken naar welk concept/klasse de interface van het systeem voortsteld 6) Don t talk to Strangers: Hier mogen de objecten alleen met de directe omgeving praten 7) My creator is my savior: Hier is de object creator geschikt om het nieuwe object weg te schrijven. GOF patterns: Gang of Four. Deze patterns zijn technischer dan GRASP patterns. Deze worden later in de designfase ingezet door de designers, die het klassendiagram op stellen. GOF kent 23 patterns. 2 Statisch modelleren Statische modellen zijn erg geschikt voor het weergeven van de structuur van een systeem. Bepalen van Analysis Classes 8

Use Case View en Analysis View Elk teamlid heeft een ander zicht (view) op een systeem. Binnen Unified Process zijn er 6 views gedefinieerd. De dikgedrukte views zijn het belangrijkste binnen deze studie. 1) Use case view 2) Analysis view 3) Design view 4) Implementation view 5) Deployment view 6) Test view Deze views komen niet exact overeen met de views die men in een case tool zal terugvinden. Case tools zijn namelijk niet gebonden aan een enkele methodologie. Domain Modeling Noun Phrase Identification Common Concept Category List Domain Model Bouwen van een Domain Model Opstellen van een initieel Domeinmodel Glossary Analysis (conceptual) classes Bepalen van Responsibilities Operation Contract Uml diagrammen Uml class diagram Operations 9

Associations Attributes UML object diagram 10

3 Statisch Modelleren Detailleringen Associaties en Attributes Derived Attributes Multipliciteit Role Compositie Aggregatie Association Class Qualified Association Operations Toepassen van Inheritance Polymorphisme Multiple Inheritance Inheritance andanalysis Patterns Uitbreiding Use Case Notatie Include Extend Inheritance 4 Dynamisch modelleren Objecten en Klassen Interactie tussen domeinobjecten Objecten en methodes Use Case Realization Interactiediagrammen UML Interactiediagram UML Sequence Diagram UML Communicatiediagram 11

CRC Card UML Interaction Overview Diagram Toestanden en gedrag van objecten UML State Machine Diagram UML Timing Diagram Constraints Object Constraint Language 5 Modelmanagement Analysis Packages Architectuur UML Package diagram Opdelingscriteria Case Tools Waarom Case Tools? Code generation Reverse Engineering Round- trip Engineering Teamwork Quality Assurance Model review & peer review Model walkthrough Usage scenario testing Prototype walkthrough 12