Sunteți pe pagina 1din 44

M.

Caramihai, 2016

PROGRAMAREA
ORIENTATA
OBIECT
1
CURS 6

SysML vs UML

O parte din suportul de curs a fost realizat cu ajutorul studentului Tudor Nicolau 2
Modul de descriere a
sistemelor
In viitor
Inainte
Specificatii

Interfata

Proiectare sistem

Analiza &
implementare

Testare

4/15/2008 Trecerea de la modelul documentar la modelul sistemic


3
Ce este SysML (1)?

Un limbaj de modelare vizuala raspuns la UML for Systems


Engineering RFP dezvoltat OMG, INCOSE, si AP233. adoptat de
OMG in Iunie 2006

Suporta specificarea, analiza, proiectarea, verificarea si validarea


sistemelor (in sens general): se include hardware, software, date,
personal, proceduri si facilitati

Suporta modelarea si schimbul de date prin intermediul


standardului XMI (XML Metadata Interchange)

4
Ce este SysML (2)?
Este un limbaj de modelare vizuala care ofera:
Semantica = intelegerea conceptelor
Notatii= reprezentarea conceptelor

Nu este o metodologie sau un instrument:


SysML este independent de orice limbaj de programare

UML Software Engineering


SysML System Engineering
5
SysML - Concepte
SysML (Systems Modeling Language) este un limbaj de
modelare al aplicatiilor din ingineria de sistem.
Suporta specificarea, analiza, designul, verificarea si validarea
unei game vaste de sisteme si sisteme de sisteme. Aceste
sisteme pot include hardware, software, informatii, procese si
facilitati.
Ofera posibilitatea de a unifica concepte inrudite software si non-
software, astfel umpland distanta ce se afla intre ele.
Modelarea sistemelor trebuie sa permita integrarea tuturor elementelor
aferente acestora. 6
Reprezentarea unui sistem
de sisteme
Interactiuni
Copyright 2006-2008 by Object Management Group.

Limitari

7
Modelarea nivelelor ierarhice
Copyright 2006-2008 by Object Management Group.

Operational Models

System Models

<TITLE>System Design<TITLE>
<META http-equiv="REFRESH"
<!--CSSDATA:966533483-->
<SCRIPT
src="/virtual/2000/code
<LINK rel="stylesheet" href="/
<SCRIPT language="javascript"

Component Models

8
Modelarea comunicarii intre
sisteme
Dezvoltatori /
Clienti integratori

Director
proiect

Vanzatori

Reglari Testatori
9
Copyright 2006-2008 by Object Management Group.

Legaturile intre SysML si UML

10
SysML - Pozitionare
SysMLTools
Copyright 2006-2008 by Object Management Group.

Systems
Engineering
Electrical Engineering
CAE Analysis

ISO 10303/AP-233
Mechanical NEUTRAL SE Algorithm
CAD DATA EXCHANGE Design
FORMAT

SW Dev Planning
Environment Testing Tools
Tools

11
Taxonomia SysML

12
Copyright 2006-2008 by Object Management Group.
Blocuri (1)

Blocurile sunt elementele structurale de baza (similare cu


clasele din UML
Prezinta un concept unificator de descriere a structurii
unui element / sistem block
Sistem BrakeModulator
Hardware allocatedFrom
Software activityModulate
BrakingForce
Date
Proceduri values
DutyCycle : Percentage
Facilitati
Persoane

13
Blocuri (2)

Pot exista mai multe compartimente ce pot


descrie caracteristicile unui bloc:
Proprietati
Operatii
Constrangeri
Necesitati indeplinite in cadrul blocului
Compartimente definite de useri

14
Tipuri de proprietati (1)
Proprietatea reprezinta o caracteristica structurala a unui bloc:
Proprietati de compozitie
Utilizarea unui bloc in contextul unui alt bloc (bloc
component)
Exemplu - elicea
Proprietati de referinta
O parte a unui bloc ce nu este in componenta blocului inclus
(non-compozitie)
Exemplu agregarea unor componente intrun subsistem
logic
15
Tipuri de proprietati (2)

Proprietate de valoare
O proprietate cuantificabila (i.e. unitati, dimensiuni sau
distributii de probabilitate)
Exemplu
Valoare ne-distribuita: tirePressure:psi=30
Valoare distribuita: uniform {min=28,max=32}
tirePressure:psi

16
Utilizarea blocurilor
Se bazeaza pe diagrama de clase UML
Suporta caracteristici speciale
Diagrama de blocuri descrie relatiile dintre acestea
(compozitie, asociere, specializare)
Diagramele interne de blocuri descriu structura interna a
acestora prin intermediul proprietatilor asociate si a
conexiunilor
Blocurile pot fi caracterizate prin evolutie

Blocurile sunt utilizate pentru specificarea ierarhiilor si interconexiunilor


17
Definire blocuri vs. utilizare
blocuri
Diagrama definire blocuri Diagrama interna (de blocuri)

Definitie Utilizare
Blocul cuprinde o definitie O parte a unui bloc este
utilizata in cadrul unui alt bloc
Prezinta proprietati, etc.
Identic cu rolul
Reutilizare in contexte multiple
18
Diagrama Interna de Blocuri
(DIB)
Bloc inclus

Conector

Flux

Port Componenta

DIB specifica interconexiunea partilor


19
Porturi SysML
Specifica punctele de interactiuni intre blocuri si partile
componente
Integreza structura cu evolutia
portName:TypeName
Tipuri de porturi
Port Standard (UML)
Specifica un set de operatii / semnale necesare sau oferite de bloc
Se specifica la nivelul interfetei UML
Port de flux
Specifica fluxul de intrare / iesire dintrun bloc (sau dintro componenta
a acestuia)

Porturile standard si porturile de flux suporta concepte diferite de interfata


20
Notarea porturilor
interfata oferita
(ofera operatii)
Port
part1: part2:
Standard
Interfata necesara
(apelare operatiuni)

Port de flux

Port part1: part2:


de flux
item de flux
21
Diagrame de evolutie

22
Activitati
Activitatile specifica transformarile intrarilor in
iesiri prin intermediul unei secvente controlate de
actiuni.
Extensii SysML (ref. activitati):
Suport pentru modelarea (continua a) fluxurilor
Alinierea activitatilor la Enhanced Functional Flow
Block Diagram (EFFBD)

23
Diagrama de activitati (DA)
act Example

Activitate Iesire
Action
out1
in1 a2
a1 out1
in1
out1

[x>0] [x<=0]
in2
Intrare
in1 in1

Intrare a3 a4

out1 out1 Iesire

in1
out1
a5
out2

DA specifica o secventa controlata de activitati


24
Reprezentari
Nod initial

Nod final de activitate

Nod final de flux

Nod de rascruce

Nod Join

Nod de decizie

Nod de combinare
25
Descompunerea activitatilor
act [Activity] Prevent Lockup [ Actions ]

p1 : TractLoss
a1 : Detect Loss of a2 : Modulate
of1
Traction Braking Force
p2 : TractLoss

Definire Utilizare

26
Interactiuni
Diagrama de secvente (DS) reprezinta evolutia in timp
a succesiunii de mesaje
Reprezentarea fluxului de control
Descrierea interactiunii dintre parti
DS ofera mecanisme de reprezentarea a diverse tipuri de
scenarii:
secvente
control logic
Etc.
SysML nu include timing, interactiuni sau diagrame de
comunicatii

27
Exemplu (pornire vehicul)
sd StartVehicleBlackBox

vehicle:HybridSUV
driver:Driver ref StartVehicleWhiteBox

turnIgnitionToStart
1: StartVehicle
Descompunere

Interactiuni Black Box


28
Exemplu (pornire vehicul)
sd StartVehicleWhiteBox

ecu:PowerControlUnit epc:ElectricalPowerController

1: StartVehicle

1.1: Enable

1.2:ready

29
Operatori de interactiune (1)

ref name
Referinta la un fragment de DS definita in alt loc
opt [condition]
O componenta va fi executata in functie de o conditie / valoare de
stare
alt
Are 2 sau mai multe componente; doar una va fi executatat in
functie de o conditie / valoare de stare
Un bloc de functii va fi executat (eticheta [else]) daca nu exista
nici o alta conditie care sa fie indeplinita.

30
Operatori de interactiune (2)
par
Contine 2 componente ce se executa concurential:
Concurenta NU impune simultaneitate; pur si simplu ordinea nu
poate fi determinata: (A then B), (B then A), sau (A and B
interleaving)
loop min..max [escape]
Are un numar min de executii, (optional) un numar maxim de
executii si (optional) o conditie de iesire
break [condition]
Conditie de iesire: daca este adevarata, continutul este executat,
pana la instructiune; restul nju mai este executat

31
Operatori de interactiune (3)
critical
In DS exista o regiune critica. Regiunea este considerata a fi
atomica.
neg
Fragmentul din DS este interzisa.
consider (list of messages)
ignore (list of messages)
Luate in considerare: Sunt listate mesajele relevante din secventa
Ignorate: Sunt listate mesajele care ajung dar nu sunt
interesante dpdv al aplicatiei

32
Cazuri de utilizare
Ofera posibilitatea descrierii functionalitatii de baza a
sistemului si interactiunea cu actorii:
Dependente de metodologie
Pot fi insotite de use case descriptions
Functionalitatea uzuala poate fi influentata de extensii de
tip: include sau extend
Fara schimbari fata de UML

33
Exemplu
ucHSUV_UseCasesOperational
[ Use Cases]

HybridSUV

Flat_Tire

extend

Drive_The_Vehi include Accelerate


cle

Driver include

Steer
include

Park include Brake

34
Diagrama de necesitati
Alocari
Cerinte

35
Alocari
Reprezinta acel tip de relatii ce mapeaza un element
(apartinand unui model) cu un altul (dintrun alt model)
Tipuri de alocari:
Evolutiv (i.e., functie component)
Structural (i.e., logic fizic)
Software Hardware
.

36
Cerinte
Stereotipul requirement reprezinta o solicitare de tip
text:
Include id si proprietatile textului
Pot fi adaugate proprietati definite de utilizator (d.e. metode de
verificare)
Pot fi adaugate categorii definite de utilizator (d.e. functional,
interface, performanta)
Ierarhia de cerinte descrie cerintele continute intro
specificatie
Relatiile dintro diagrama de cerinte include: DeriveReqt,
Satisfy, Verify, Refine, Trace, Copy
37
Stereotypes
metaclass
NamedElement

configurationItem
Engine
author=John Doe
stereotype version=1.2"
ConfigurationItem lastChanged=Dec12, 2005
author: String
version: String
lastChanged: Date

Definire Stereotip Aplicare Stereotip

38
Copyright 2006-2008 by Finn Overgaard Hansen and
Peter Gorm Larsen

Exemplu de aplicatie integrata

39
UML vs SySML (1)
DIAGRAMA UML
DIAGRAMA SYSML SCOP
ANALOG
Diagrama de activitate Arata comportamentul sistemului, cum Diagrama de activitate
(Activity diagram) controlul si datele decurg. Folositor la analiza (Activity diagram)
functionala. Compara diagrame de blocare al
fluxului extins functional Extended Functional
Flow Block diagrams (EFFBDs), deja des
folosite printre inginerii de sistem.
Diagrama de definire a Arata structura sistemului in componente cu Diagrama de clasa
blocurilor proprietatile, operatiile si relatiile lor. (Class diagram)
(Block Definition Folositoare pentru analiza si designul
diagram) sistemului.
Diagrama de blocuri Diagrama de structuri
Arata structura interna a componentelor,
interne compuse
incluzand partile si conectorii lor. Folositoare
(Internal Block (Composite Structure
pentru analiza si designul sistemului.
diagram) diagram)
Diagrama pachet Arata organizarea in pachete, vizualizari si Diagrama pachet
(Package diagram) puncte de vedere a unui model. Folositor (Package diagram) 40
pentru managementul modelului.
UML vs SySML (2)
DIAGRAMA SYSML SCOP DIAGRAMA UML
Diagrama Arata constrangerile parametrice dintre N/A
parametrica elementele structurale. Folositoare la
(Parametric diagram) analiza performantei si analiza cantitativa.
Diagrama cerinta Arata necesitatile sistemului si relatiile lor N/A
(Requirement cu alte elemnte. Folositoare la ingineria
diagram) necesitatilor.
Diagrama secventa Arata comportarea sistemului ca si Diagrama secventa
(Sequence diagram) interactiuni intre componentele (Sequence diagram)
sistemului. Folositoare la analiza
sistemului si design
Diagrama de stare al Arata comportamentul sistemului ca o Diagrama de stare al
masinii secventa de stari pe care o componenta masinii
(State Machine sau o actiune o cunoaste ca raspuns unor (State Machine
diagram) actiuni. Folositoare la designul sistemului diagram)
si generarea simularii/codului.
41
UML vs SySML (3)
DIAGRAMA SYSML SCOP DIAGRAMA UML
Diagrama cazurilor Arata cerintele functionarii sistemului ca Diagrama cazurilor
de utilizare tranzactii care sunt semnificative pentru de utilizare
(Use Case diagram) folositorii sistemului. Folositoare la (Use Case diagram)
specificarea cerintelor functionalitatii.
Tabele de alocare* N/A
Arata diferite tipuri de alocari (ex. alocari
(Allocation tables)
necesare, alocari functionale, alocari
structurale). Folositoare pentru
*tabele derivate
facilitarea verificarii si validarii
dinamic, nu sunt chiar
automatizate (V&V) si analize de lipsuri.
diagrame
N/A Diagrama de
componente
(Component
diagram)
N/A Diagrama de
comunicare
(Communication 42
diagram)
UML vs SySML (4)
DIAGRAMA SYSML SCOP DIAGRAMA UML
N/A Diagrama de
desfasurare
(Deployment
diagram)
N/A Diagrama de
privire generala
asupra
interactiunilor
(Interaction
overview diagram)
N/A Diagrama de
obiecte
(Object diagram)
N/A Diagrama de timp
(Timing diagram)
43
Concluzii relatia SysML /
UML
UML este un General Purpose Modeling Language (GPML), in timp ce
SysML este un Domain-Specific Modeling Language (DSML) fiind definit
ca o personalizare a lui UML 2.0

Avantaje:
reutilizarea semanticii si notatiilor din UML 2.0
SysML personalizeaza mai bine semantica din ingineria sistemelor (prin
adaugarea de doua noi diagrame: Requirement Diagrams si Parametric
Diagrams)
SysML este mai mic dpdv al numarului de diagrame (9 vs. 13)

Dezavantaj:
mosteneste multe din problemele din UML (d.e. Complexitatea notatiilor si
semantica) 44