Learn UML - alicon-nl/alicon-nl.github.io GitHub Wiki

UML Introductie

img/index.10.jpg

  1. Het ontstaan van UML
  2. Een taal, geen methode
  3. De diagrammen en hun samenhang
  4. Verschillende stadia van de diagrammen
  5. De diagrammen gebruiken bij de traditionele projectfasering
  6. Conceptualisatie, Analyse, Ontwerp, Implementatie DSDM Concept, Functionele specificatie, Ontwerp & bouw, Implementatie

Modelleerwijze

Door modellering kan men samenhang binnen systemen concretiseren. Mensen denken visueel. Een goed plaatje zegt meer dan duizend woorden. Hierbij kan een standaard taal als UML een bijdrage leveren. De kracht van de UML is dat je van elk vraagstuk alle benodigde associaties en (vooral) abstracties kunt maken. De samenhang tussen de modelleerwijzen en modellen kan men bewaken door het hanteren van de IEEE-1471-norm voor architectuur-beschrijving. Deze norm kan praktisch toegepast worden met softwaretools, met name repository-based tools voor teamwork, het traceren van relaties en hergebruik.
Daarmee kan een scala aan oplossingen worden uitgewerkt die kunnen worden toegepast om nieuwe vraagstukken aan te pakken. Hierdoor kan men terugdringen van het applicatie-portfolio terugdringen en informatievoorziening integreren

img/index.43.jpg

UML en RUP

img/index.44.jpg

In 1996, introduceerden Ivar Jacobson, Grady Booch en James Rumbaugh, de Unified Modelling Language (UML), later gevolgd door het Unified Process (UP). Inmiddels zijn de UP-methode en de UML-techniek uitgegroeid tot wereldstandaarden voor OO-software engineering (OOSE). Rational Software Corporation heeft softwaretools uitgebracht voor het toepassen van de UML en het UP.
De Rational Software Development Suite bevat onder andere

  • Rational Rose (UML-modellering)
  • Rational Requisite Pro (requirement management)
  • Rational Unified Process.

Hiermee beschikt men over de methode, de technieken en de tools om OOBE en OOSE toe te passen op de besturing, inrichting en ondersteuning van IT-organisaties.

UML Samenhang

Werkwijze

  1. Identificeer alle mogelijke kandidaat klasse
  2. Selecteer de klasse uit de lijst van kandidaten
  3. Maak een model dictionary
  4. Identificeer associaties
  5. Identificeer attributen
  6. Identificeer operaties
  7. Generaliseer mbv overerving
  8. Maak OCL contraints
  9. Groepeer klasse eventueel in packages
  10. Itereer over de gedane stappen

UML Activity Diagram

Concepten

  1. Activiteit
  2. Flow of control
  3. Beslispunt en samenkomst
  4. Splitsing en synchronisatie
  5. Swimlane

Toepassingen

  1. Voor workflow
  2. Als algoritme

Een activiteitsdiagram met swimminglanes

activi32.jpg

Een activiteitsdiagram voor de operatie doeBestelling

activi33.jpg

Werkwijze

  1. Selecteer operaties en/of use-cases
  2. Vindt de activiteiten en de bijbehorende flow of control
  3. Bepaal per activiteit welk object verantwoordelijk is
  4. Splits activiteiten indien nodig

Notatie van het activiteitsdiagram

activi40.jpg

UML Application and implementation stadium

  1. Voorwaarden voor start van applicatie stadium
  2. Uitbreiding van bestaande diagrammen
  3. Koppeling van de diagrammen
  4. Concepten
  5. Klassenspecificatie
  6. Werkwijze

UML Component and deployment diagram

  1. Concepten
  2. Component
  3. Node
  4. Componentdiagram
  5. Deploymentdiagram

Overzicht van het component- en diploymentdiagram

compon41.jpg

UML Geavanceerde concepten

Onderwerpen

  1. Afgeleide attributen
  2. Zichtbaarheid attributen en operaties
  3. Klasse attributen en operaties
  4. Afgeleide associaties
  5. Richting van een associatie
  6. Associatie klasse
  7. Aggregatie en compositie
  8. Abstracte klasse en operaties
  9. Meervoudige en herhaalde overerving
  10. Stereotype
  11. Interface
  12. Enumeratie
  13. Package
  14. Dependency-relaties
  15. Geparametriseerde klasse of template
  16. Constraints

Klasse diagram met geavanceerde objecten

geavan26.jpg

Learn-UML-Klasse-en-object-diagrammen

  1. Object of instantie
  2. Klasse
  3. Attribute
  4. Operatie
  5. Associatie
  6. Rol
  7. Multipliciteit
  8. Generalisatie en overerving
  9. Commentaar

Verschil klasse en object diagrammen

klasse25.jpg

Geavanceerde concepten

  1. Afgeleide attributen
  2. Zichtbaarheid attributen en operaties
  3. Klasse attributen en operaties
  4. Afgeleide associaties
  5. Richting van een associatie
  6. Associatie klasse
  7. Aggregatie en compositie
  8. Abstracte klasse en operaties
  9. Meervoudige en herhaalde overerving
  10. Stereotype
  11. Interface
  12. Enumeratie
  13. Package
  14. Dependency-relaties
  15. Geparametriseerde klasse of template
  16. Constraints

Klasse diagram met geavanceerde objecten

geavan26.jpg

Werkwijze

  1. Identificeer alle mogelijke kandidaat klasse
  2. Selecteer de klasse uit de lijst van kandidaten
  3. Maak een model dictionary
  4. Identificeer associaties
  5. Identificeer attributen
  6. Identificeer operaties
  7. Generaliseer mbv overerving
  8. Maak OCL contraints
  9. Groepeer klasse eventueel in packages
  10. Itereer over de gedane stappen

CASE Klassediagram

klasse27.jpg

Vijfde voorbeeld klasse diagram

klasse42.jpg

Notatie in het klasse diagram

klasse34.jpg

klasse35.jpg

Learn-UML-Klassediagram-met-geavanceerde-concepten

Klasse9.jpg

Learn-UML-OO

  1. Objectgeorienteerde programmeertalen
  2. Klasse en overerving
  3. Garbage collection
  4. Polymorfisme & dynamische binding

Sequence-collaboration-diagram

  • Interactie
  • Instantie en levenslijn
  • Boodschap
  • Tijdconstraints
  • Asynchrone boodschap
  • Conditionele boodschap
  • Iteratie van boodschappen
  • Activering van een object
  • Actieve objecten
  • Recursie of zelfaanroep
  • Creatie en verwijdering
  • Resultaat van een operatie aanroep
  • Stereotype voor link oorsprong

Voorbeeld sequence diagram

Voorbeeld sequence diagram

Voorbeeld sequence diagram inloggen

Voorbeeld sequence diagram inloggen

Notatie in het sequence diagram

Notatie in het sequence diagram

Notatie van het collaboratie diagram

Notatie in het collaboratie diagram

Learn-UML-State-diagram

Use Case

use_ca12.jpg

1. Huisgenoot geeft aan een boodschappenlijst te willen versturen
1. Het systeem controleert of alle het schema voor de getoonde week
  hebben ingevuld. Zo niet dan treed er een uitzondering op. Het
  systeem genereert een boodschappenlijst voor de getoonde week en
  toont deze.
1. Huisgenoot kan aan deze lijst items toevoegen en hoeveelheden
  wijzigen. De huisgenoot kan nu kiezen:

    <li>ofwel de lijst wordt verwijderd (dit is een uitzondering)

  1. ofwel de lijst wordt bewaard,
  1. ofwel de lijst wordt bewaard en verstuurd


1.

Notatie in het use-case diagram

use_ca36.jpg