Unified Modeling Language (UML) 2.x
“business analysis”

Unified Modeling Language (UML) 2.x
“business analysis”


© Franck Barbier
Copyright

Modélisation, grands principes

« Modélisation orientée objet », une démarche d'ingénierie…

Langages et/ou méthodes de modélisation


La préhistoire : Structured Analysis and Design Technique (SADT), Yourdon's structured method, Information Engineering (IE), Axial, Merise, GRAI…

Années 80 : apparition et prise de leadership des « langages orientés objet » (C++…) imposant les « méthodes orientées objet » : Object Modeling Technique (OMT), Object-Oriented Analysis and Design (OOAD), Objectory (a.k.a. Object Oriented Software Engineering - OOSE) et beaucoup d'autres (ROOM, OOSA, OOA/OOD, Syntropy, Specification and Description Language - SDL…)

Le passé récent : Unified Method 0.8 (Booch + Rumbaugh), UML 0.9 and 1.0 (+ Jacobson), UML 1.1 (OMG, 1997), UML 2.0 (2003) -Structure, Behavior, Object Constraint Language (OCL) 2.0, XML Model Interchange (XMI)-, UML 2.1.1 (Feb. 2007) et finalement UML 2.5.1 (Dec. 2017 -PDF-)

Le présent : BPMN, SysML (ingénierie « système »), ArchiMate (“Enterprise Modeling”) et toujours UML

Le futur : modélisation avec agilité

UML langage de modélisation - fondements

UML langage de modélisation - usages

*Interprétation unique et non « à géométrie variable »

**Cela accroit la qualité de la documentation mais n'apporte aucune valeur ajoutée en termes de capture du besoin.

Model Driven Software Development - principe

Diagram types

Diagram type ranking* (UML 1.1)

  1. Class Diagram
  2. Use Case Diagram (4th rank for safety-critical software)
  3. Sequence Diagram
  4. Statechart Diagram (2nd rank for safety-critical software)

*Nebraska-Lincoln university report

UML Structure

Class

Class versus Object

Stereotype*

*Rules:

Class versus Object cont'd

Attribute

Attribute property

Class attribute

Operation (as instance operation)

Multiplicity (i.e., cardinality)

Association (cardinality, role and constraint*)

*{unique} and {unordered} are default constraints on association ends; {nonunique} and {ordered} are counterparts when default constraints do not apply.

Association (cardinality and role)

Association (constraint*)

*OCL:

context Criminal case inv:
    witness->intersection(accused person)->isEmpty()

Exercice « Le président d'une association loi 1901 peut (aussi) être secrétaire mais non trésorier »

Solution

Qualifier*

*OCL:

context Promotion campaign inv:
    promotion offer[code on the Web]->size() <= 1

Association (navigation)

Exercice
« Insérer la notion de « droite »
y = a * x + b »
ici

Straight line

context Segment inv:
    1st end.x = 2nd end.x implies 1st end.y <> 2nd end.y
context Segment inv: A1
    straight line = Straight line.allInstances()->select(sl | sl.a = (2nd end.y – 1st end.y) / (2nd end.x – 1st end.x) and sl.b = 2nd end.y - sl.a * 2nd end.x)
context Segment crossing inv: A2
    segment = Segment.allInstances()->select(s | location.y = s.straight line.a * location.x + s.straight line.b)
context Point inv: A3
    straight line = Straight line.allInstances()->select(sl | y = sl.a * x + sl.b)
context Segment crossing inv:
    segment.straight line.point->includes(location)

Association class

Association class cont'd*

*Rules:

N-ary association*

*Rules:

From n-ary association to binary association*

*Rules:

context Borrowing inv:
    let b : Borrowing in 
    self.book copy = b.book copy implies self = b

Association versus attribute*

*Rules:

context Borrowing inv:
    let b : Borrowing in 
    self.book copy = b.book copy implies self = b

Derived association

context Family inv:
    self.good pool = self.individual.good

Package Diagram

Exercice difficile Cartes activité ici

Exercice Gestion de Production Assistée par Ordinateur (GPAO) Articles & Nomenclature de fabrication ici

Exercice facile Amazon Prime Video, Netflix, OCS… Modéliser Series, Series type: TV Crime Drama, US TV Show, New Release, etc., My List, Arrêt dans la saison, etc.

Aggregation (white diamond)

Composition (black diamond)

Inheritance

Inheritance constraints*

*Rules:

Power type

{redefines} constraint

Exercice
« Ne pas mélanger les choux et les carottes »
ici
(et prévoir un lavage !)

UML Requirements engineering

Use Case Diagram, use case relationship types

Use Case Diagram, use case modeling variations

Use Case Diagram, use case extension points and owned behaviors

Exercice
« Restaurant » : Boire, Commander, Commander avec modif. plat(s), Diner, Se restaurer, Déjeuner, Dresser la table, Débarrasser la table, Payer, etc.

« Restaurant », Class Diagram

Download as Modelio project

« Restaurant », Use Case Diagram

UML Behavior

UML Activity

UML Activity Diagram versus UML State Machine Diagram

UML Activity Diagram, activity versus action

UML Activity Diagram, activity edge (i.e., BPMN link event)

UML Activity Diagram, activity as business process

UML Activity Diagram, condition (and possible execution failure)

Exercise
Belongings drop-off and pick-up at the Museum Of Modern Art (MOMA) of New York City here

UML State Machine

UML State Machine Diagram, state & event

UML State Machine Diagram, entry, do & exit

UML State Machine Diagram, internal transition

UML State Machine Diagram, nesting, input & output state

UML State Machine Diagram, “Internet of Things” (IoT)

UML State Machine Diagram, guard, orthogonality & in operator

UML State Machine Diagram, execution*

*Possible execution paths:

See also here for execution

UML State Machine Diagram, event sending (UML 2.x)

UML State Machine Diagram, fork & join

UML Interaction

UML Sequence Diagram, interaction overview

UML Collaboration Diagram versus UML Communication Diagram, interaction overview

UML Sequence Diagram, extended notation

Behavior segment markers: alt, opt, par, seq, break, critical, neg & strict

UML Sequence Diagram, Alcatel Submarine Networks

UML Sequence Diagram, part behavior

UML Sequence Diagram, composite behavior

© Franck Barbier