Sunteți pe pagina 1din 70

Inginerie software curs 4

Modelarea sistemelor

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Modelarea sistemului

Modelarea sistemului este procesul de dezvoltare de


modele abstracte ale sistemului.
Modelele unui sistem exprim cerinele sistemului
ntr-un mod mai tehnic.
Specificaiile sistemului sunt documentate
utiliznd un set de modele pentru sistem.
Punte important ntre procesul de analiz i cel de
proiectare.

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Modelarea sistemului

Modelarea sistemului ajut analistul n nelegerea sistemului.


Modelele sunt utilizate n comunicarea cu clienii.

Diferite modele prezint sistemul din perspective


diferite:

Perspectiv extern: ilustreaz contextul sistemului;

Perspectiva interaciunilorilustreaz interaciunile dintre


sistem i contextul su sau dintre componentele unui
sistem.

Perspectiv comportamental: ilustreaz comportamentul


sistemului;

Perspectiv structural: ilustreaz arhitectura sistemului


sau arhitectura datelor.

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Modelarea sistemului

Modele ale unui sistem existent - utilizare


Clarificarea funciilor sistemului
Baz de discutare a avantajelor i slbiciunilor acestuia
Conduc la cerine pentru un sistem nou
Modele ale unui sistem nou - utilizare
Explicarea cerinelor propuse altor pri interesate de sistem
Discutarea variantelor de proiect propuse
Documentarea sistemului n vederea implementrii.
ntr-un proces de inginerie condus de model (MDE) utilizare
Generarea unei implementri complete sau pariale din
modelele sistemului.

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Tipuri de modele
Un model al sistemului este o abstractizare a
sistemului.
Abstractizarea simplific n mod deliberat sistemul i elimin
detaliile.

Tipurile de modele se bazeaz pe diferite abordri


ale abstractizrii:

Ex.
Modelul fluxului datelor (Data-flow) se concentreaz pe fluxul
datelor i pe transformrile funcionale suferite de acestea,
fr a intra n detalii referitoare la structura datelor.
Modelul entitate-relaie-atribut (Entity-relationship-attribute)
documenteaz structurile datelor sistemului i nu
funcionalitatea acestuia.
Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Tipuri de modele - exemple


Modelul fluxului datelor (Dataflow) se concentreaz pe
fluxul datelor i pe
transformrile funcionale
suferite de acestea, fr a
intra n detalii referitoare la
structura datelor.
Modelul entitate-relaie-atribut
(Entity-relationshipattribute) documenteaz
structurile datelor
sistemului i nu
funcionalitatea acestuia.

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Modelare UML
UML notaie grafic larg utilizat pentru modelare sisteme

Diagrame activitate : activitile implicate ntr-un proces


sau n procesarea datelor.
Diagrame cazuri de utilizare : interaciunile dintre un
sistem i contextul su.
Diagrame secvene : interaciunile dintre actori i sistem i
dintre componentele sistemului.
Diagrame clase : clasele de obiecte din sistem i relaiile
dintre acestea.
Diagrame stri i tranziii : comportamentul sistemului
declanat de evenimente interne i externe.
Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Utilizarea modelelor grafice

Mijloc de facilitare a discuiilor despre un sistem


existent sau propus

Mijloc de documentare a unui sistem existent

Modele incomplete i incorecte sunt acceptate deoarece


rolul este de a oferi suport discuiilor.

Modelele trebuie s fie o reprezentare corect a


sistemului dar nu trebuie s fie complete.

Descriere detaliat a sistemului ce poate fi utilizat


pentru generarea implementrii acestuia

Modelele trebuie s fie corecte i complete.

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Subiecte tratate

Modelarea contextului

Modelarea interaciunilor

Modelarea structurii

Modelarea comportamentului

Modelarea datelor

Prototipare UI

Model-driven engineering

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Modelarea contextului

Modelele contextului sunt utilizate pentru a ilustra


contextul operaional al unui sistem modeleaz
ceea ce se afl dincolo de limitele/marginile1
(boundaries) sistemului.

Modelele arhitecturale descriu sistemul i relaiile


sale cu alte sisteme.

1Decizia

referitoare la plasarea marginilor sistemului poate fi afectat de consideraii


sociale i organizaionale

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Limitele sistemului

Limitele sistemului sunt stabilite pentru a defini ce se


afl n sistem i ce n afara acestuia.

Separ sistemul n curs de dezvoltare de alte sisteme


care sunt utilizate sau depind acesta.

Poziionarea limitelor sistemului are un efect profund


asupra cerinelor acestuia.
Definirea limitelor sistemului este o decizie politic

Pot s existe presiuni de a decide limite ale sistemului


care cresc / scad influena sau ncrcarea diferitelor pri
ale unei organizaii.

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Exemplu: Contextul unui sistem stat plat

Sistem
nregistrare
pontaje

Sistem banca

Sistem stat
plat

Imprimanta

Model arhitectural de nivel nalt exprimat sub form de diagram bloc.


Relaiile nu sunt definite => necesitatea suplimentrii cu alte modele.
Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Perspectiva proces

Modelele de context ilustreaz doar sistemele din


context, nu i felul n care sistemul n curs de
dezvoltare este utilizat n acel context.
Modelele de procesDUDWFXPHVWHLQWHJUDW
sistemul dezvoltat n cadrul unui proces business
mai larg.

Notaii:

Diagrama de activitate UML


BPMN (Business Process Model and Notation)

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Exemplu: Sistemul stat plat n contextul su operaional

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Subiecte tratate

Modelarea contextului

Modelarea interaciunilor

Modelarea structurii

Modelarea comportamentului

Modelarea datelor

Prototipare UI

Model-driven engineering

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Modelarea interaciunilor
interaciunilor cu utilizatorul : ajut la identificarea
cerinelor acestuia.

Modelarea

Modelarea

Modelarea

interaciunilor sistem-sistem : evideniaz problemele de


comunicare ce pot s apar.
interaciunilor componentelor : ajut la a nelege dac o
structur propus pentru sistem este de natur s ofere calitile
solicitate sistemului (ex. performan, fiabilitate, etc.).

Diagrame UML folosite:

Diagrame de cazuri de utilizare modeleaz interaciunile dintre


sistem i actorii externi
Diagrame de secvene - modeleaz interaciunile dintre
componentele sistemului (pot include i ageni externi).

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Modelare cazuri de utilizare

Cazuri de utilizare - suport pentru descoperirea


cerinelor.
Fiecare caz de utilizare reprezint o sarcin discret
ce implic interaciune extern cu un sistem.

Actorii pot fi persoane sau alte sisteme.

Reprezentare:

Diagrama UC vedere de ansamblu a cazurilor de


utilizare

Detalii textuale pentru fiecare caz de utilizare

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Diagrame de secvene

Modeleaz interaciunile dintre actori i obiectele din


cadrul unui sistem.
Secvena de interaciuni ce are loc n timpul unui
caz de utilizare sau instan (scenariu) de caz de
utilizare.
Obiectele i actorii implicai sunt plasai n partea
superioar a diagramei, avnd cte o linie vertical
punctat.
Interaciunile dintre obiecte sunt indicate cu sgei
etichetate.

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Exemplu:
Diagram de
secvene la nivel
de sistem :
Retragere bani de
la un ATM

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Exemplu:
Diagram de
secvene pentru
cazul de utilizare
Eliberare articole
electronice

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Subiecte tratate

Modelarea contextului

Modelarea interaciunilor

Modelarea structurii

Modelarea comportamentului

Modelarea datelor

Prototipare UI

Model-driven engineering

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Modelarea structurii

Modelele structurii software-lui : organizarea unui sistem n


termeni de elemente ce compun sistemul i relaiile
acestora.
Perspective ale modelelor structurii:

static ilustreaz structura sistemului la proiectare

dinamic ilustreaz organizarea sistemului n timpul execuiei.

Modelele structurii sistemului sunt create la analiza i


proiectarea arhitecturii sistemului.

Diagrame UML folosite:

Diagrama de clase perspectiva static

Diagrama de componente perspectiva dinamic


Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Diagrama de clase
n abordrile OO ale dezvoltrii de software:

Un sistem software este structurat sub form de colecie


de obiecte care interacioneaz.
Clas de obiecte = abstractizare a unui set de obiecte
care au n comun atribute i servicii (operaii) oferite de
fiecare obiect din clas.
Diagramele de clase descriu sistemul n termeni de clase
de obiecte i relaiile dintre acestea.

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Notaia UML
Nume clas

Atribut

Operaie

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Tip de relaie ntre clase: Asociere


Relaie general cu semnificaia c obiecte instaniate
din clasele asociate sunt legate (linked).

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Tip de relaie ntre clase: Generalizare

Generalizarea tehnic de gestionare a complexitii prin


abstractizarea caracteristicilor comune mai multor clase.
n limbajele orientate obiect (ex. Java) generalizarea este
implementat folosind mecanismul intern limbajului de
motenire a claselor.
ntr-o generalizare, atributele i operaiile asociate cu
superclasa sunt asociate i cu toate subclasele acesteia.
O subclas motenete toate atributele i operaiile
superclaselor sale.
Subclasele pot adauga atribute i operaii specifice.

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Exemplu:

Ierarhia clasei
ArticolBibliotec

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Exemplu:

Ierarhia clasei
UtilizatorBibliotec

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Motenire multipl

n loc de a moteni atribute i servicii de la o singur


clas printe, un sistem ce suport motenire multipl
permite claselor de obiecte s moteneasc din mai
multe superclase.

Obs.

Aceasta poate conduce la conflicte semantice n cazul n care


atribute i/sau servicii cu acelai nume din diferite superclase au
semantici diferite.
Motenirea multipl complic reorganizarea ierarhiei de clase.

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Exemplu: motenire multipl

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Agregarea obiectelor

Un model de agregare arat cum clasele care sunt


colecii sunt compuse din alte clase.
Modelele de agregare sunt similare cu relaia part-of
din modelele semantice ale datelor.

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Exemplu:

Modelul de
agregare pentru
PachetStudiu

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Subiecte tratate

Modelarea contextului

Modelarea interaciunilor

Modelarea structurii

Modelarea comportamentului

Modelarea datelor

Prototipare UI

Model-driven engineering

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Modelarea comportamentului
Modeleaz comportamentul unui sistem n execuie.
Tipuri de modelare a comportamentului :

Modelare dirijat de date : modelele ilustreaz


secvena de aciuni implicate n procesarea datelor de
intrare i generarea datelor de ieire asociate;

Modelare dirijat de evenimente : modelele ilustreaz


modul n care sistemul rspunde la evenimente.

Obs. Aceste modele ilustreaz perspective diferite, ambele fiind necesare descrierii
comportamentului sistemului.

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Modelare dirijat de date


Modelare dirijat de evenimente

Modelare dirijat de date


Ilustreaz modul n care sunt procesate datele pe msur
ce parcurg sistemul.
Tipuri de diagrame:

Diagrama fluxului de date (DFD)

Diagrama de activitate UML

Utilitate

Urmrirea i documentarea asocierii datelor cu un proces este util n


dezvoltarea nelegerii sistemului n ansamblu.
Diagramele fluxurilor de date pot fi utilizate i n ilustrarea schimbului de
date ntre sistem i alte sisteme din contextul su.

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Modelare dirijat de date


Modelare dirijat de evenimente

Exemplu: DFD pentru procesare comand


Formular
Formular
Formular
comanda
comada
comanda
completat
Detalii
semnat
semnat
Completare
Validare
Inregistrare
comanda
formular
comanda
comanda
+ formular comanda
comanda
Formular
comanda
Detalii
semnat
comada
Fisier
comenzi

Trimite la Comanda
furnizor verificata si
semnata +
notificare
Ajustare comanda
buget
disponibil Cantitate
comanda +
detalii cont
Fisier
buget

Notaie:

Dreptunghi rotunjit procesare funcional


Dreptunghi depozit de date
Sgeat etichetat fluxul de date.

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Modelare dirijat de date


Modelare dirijat de evenimente

Exemplu : Diagrama de activitate pentru procesare comad

Procesare funcional
Adapted after Ian Sommerville 2010

Depozit date

Flux date (obiecte)

Software Engineering, 9th edition. Chapter 5

Modelare dirijat de date


Modelare dirijat de evenimente

ModelareGLULMDWGHHYHQLPHQWH
Se modeleaz comportamentul sistemului ca rspuns la
evenimentele externe i interne.
Modelele ilustreaz rspunsurile sistemului la stimuli (de aceea
sunt utilizate n special pentru modelarea sistemelor de timp
real).

Elementele de modelare:

stri ale sistemului - plasate n noduri

evenimente - arce ntre aceste noduri.

La apariia unui eveniment sistemul trece dintr-o stare


n alta efectueaz o tranziie de stare.
Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Modelare dirijat de date


Modelare dirijat de evenimente

Diagrama de stri i tranziii (SMD)


Descrie un comportament sau o trstur comportamental.

Elemente de modelare:

Stri

Tranziii ntre stri

Declanatoare (triggers) pentru tranziii

Activiti realizate n cursul execuiei tranziiilor

Activiti realizate pe durata fiecrei stri

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Modelare dirijat de date


Modelare dirijat de evenimente

Diagrama de stri i tranziii (SMD)


Stare descrie condiia unui obiect n termeni de:
Atribute ale obiectului
Comportamentul n care este angajat.
Stare obiect = rezultatul cumulativ al comportamentului obiectului,
definit de valorile proprietilor sale (atribute i relaii).
n cadrul unei stri, un obiect poate:
- executa o activitate
- atepta un eveniment
- ndeplini o condiie.

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Modelare dirijat de date


Modelare dirijat de evenimente

Diagrama de stri i tranziii (SMD)


Formal: o stare modeleaz o perioad de timp n care
se menine adevrat o condiie de invarian.
Exemple de condiii de invarian:
- Set de valori ale atributelor,
- Condiia de a lucra la o activitate,
- Condiia de a atepta un eveniment.

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

ELEMENTE
ESENIALE:
-

stare
tranziie
eveniment

Modelare dirijat de date


Modelare dirijat de evenimente

Diagrama de stri i tranziii (SMD)

(pseudo)stare iniial
EVENIMENT [condiie] / efect

activitate entry

activitate do

STARE

activitate exit

TRANZIIE

Adapted after Ian Sommerville 2010

(pseudo)stare final

Software Engineering, 9th edition. Chapter 5

Modelare dirijat de date


Modelare dirijat de evenimente

Exemplu:

Model al unui cuptor cu microunde

stare

actiune

tranzitie

eveniment

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Modelare dirijat de date


Modelare dirijat de evenimente

Exemplu:

Descrierea strilor cuptorului cu microunde

Stare

Descriere

Waiting

Cuptorul ateapt o intrare. Display-ul afieaz ora curent.

Half power

Cuptorul e setat la 300 watts. Display-ul afieaz Half power.

Full power

Cuptorul e setat la 600 watts. Display-ul afieaz Full power.

Set time

Timpul de coacere este setat cu valoarea introdus de utilizator. Display-ul


afieaz timpul de coacere selectat i este actualizat pe msura setrii timpului.

Disabled

Operarea cuptorului este dezactivat pentru siguran. Lumina interioar este


aprins. Display-ul afieaz Not ready.

Enabled

Operarea cuptorului este activat. Lumina interioar este stins. Display-ul


afieaz Ready to cook.

Operation

Cuptorul este n funciune. Lumina interioar este aprins. Display-ul afieaz


numrtoarea invers a dispozitivului de temporizare. La terminarea coacerii se
declaneaz un semnal sonor timp de 5 sec. Lumina interioar se aprinde.
Display-ul afieaz Cooking complete n timp ce se aude semnalul sonor.

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Modelare dirijat de date


Modelare dirijat de evenimente

Exemplu: Descrierea stimulilor cuptorului cu microunde

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Modelare dirijat de date


Modelare dirijat de evenimente

Structurarea modelelor de stri


Necesar n modelele sistemelor mari, cu un numr mare de
stri posibile.
Super-stare

Noiune ce ncapsuleaz un numr de stri separate.

Reprezentat ca o singur stare ntr-un model de nivel mai nalt.

Este expandat (detaliat) ntr-o diagram separat.

Ex. Super-starea Operation din diagrama anterioar.

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Modelare dirijat de date


Modelare dirijat de evenimente

Exemplu: super-starea Operation

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Subiecte tratate

Modelarea contextului

Modelarea interaciunilor

Modelarea structurii

Modelarea comportamentului

Modelarea datelor

Prototipare UI

Model-driven engineering

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Modele semantice ale datelor


Utilizate pentru a descrie structura logic a datelor
procesate de sistem.
Notaii :

model entitate-relaie-atribut (ERA) - reprezint


entitile din sistem, relaiile ntre entiti i
atributele entitilor.
clase de obiecte UML simplificate CU atribute,
FR operaii) i asocieri ntre acestea.

Complementate cu detalii reprezentate n dicionarul


datelor.
Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Exemplu: model semantic pentru sistemul LYBSYS reprezentat


cu diagram ERA

atribut

entitate

relaie

Extras din modelul semantic pentru sistemul LYBSYS.


Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

entitate

relaie

atribut

Exemplu:
Model semantic pentru sistemul LYBSYS
reprezentat cu diagram de clase UML
Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Dicionare de date

Dicionarele de date sunt liste cu toate numele utilizate n


modelele sistemului. Includ descrieri ale entitilor, relaiilor,
atributelor i ale serviciilor.
Suplimentaz diagramele cu descrieri mai detaliate
memorate ntr-un repozitoriu (dicionarul datelor).
Avantaje

Ofer suport pentru gestionarea numelor i evitarea


duplicatelor;

Pstreaz cunotine organizaionale care leag


analiza, proiectarea i implementarea;

Multe instrumente CASE ofer suport pentru dicionare de


date.

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Exemplu: Intrri n dicionarul de date

Nume
Articol
Autori
Cumparator

Descriere
Detalii despre articolul publicat ce ar putea fi
solicitat de persoanele ce utilizeaz LIBSYS.
Numele autorilor articolului, care ar putea
beneficia de o parte din tax.
Persoana sau organizaia care solicit o copie a
articolului.

O relaie 1:1 ntre Articol i AgentieCopyright


creia trebuie s i se plteasc taxa de
copyright.
Adresa cumprtorului. Aceasta este utilizat
Adresa
(cumprtorului) alturi de orice informaie de taxare necesar.
Taxa platita la

Adapted after Ian Sommerville 2010

Tip

Dat

Entitate

03.03.2012

Atribut

03.03.2012

Entitate

03.03.2012

Relaie

02.03.2012

Atribut

04.03.2012

Software Engineering, 9th edition. Chapter 5

Subiecte tratate

Modelarea contextului

Modelarea interaciunilor

Modelarea structurii

Modelarea comportamentului

Modelarea datelor

Prototipare UI

Model-driven engineering

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Prototipare UI
Esenial n analiza cerinelor
Scop : s permit utilizatorilor ctigarea unei experiene directe
cu interfaa.

Fr aceast experien a utilizatoruluiGLUHFWHVWHLPSRVLELO


de judecat utilizabilitatea unei interfee.
Prototiparea poate fi un proces cu dou etape:

Prima etap: realizarea unor prototipuri pe hrtie;


A doua etap: prototipul iniial este rafinat i se
realizeaz automat, folosind instrumente software, un
prototip din ce n ce mai sofisticat.

List de instrumente : http://c2.com/cgi/wiki?GuiPrototypingTools


Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Prototipare UI

Axat pe principalele cazuri de utilizare i pe interfeele lor.

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Aspectele analizate:

Aspect vizual i afiare

Interaciune cu

Prototipare UI

utilizatorul i
fluxul ecranelor

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Subiecte tratate

Modelarea contextului

Modelarea interaciunilor

Modelarea structurii

Modelarea comportamentului

Modelarea datelor

Prototipare UI

Model-driven engineering

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

MDE

Model-driven engineering (MDE) abordare a dezvoltrii de


software n care modelele (mai curnd dect programele)
sunt ieirile principale ale procesului de dezvoltare.

Programele generate automat din modele.

Susintorii MDE argumenteaz c aceasta crete nivelul de


abstractizare n ingineria software astfel nct inginerii nu mai
trebuie s fie preocupai de detaliile limbajelor de programare
sau de specificul fiecrei platforme de execuie.

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

MDE - Discuie

Pro

Permite considerarea sistemelor pe nivele superioare de


abstractizare

Generarea automat a codului permite adaptarea mai


ieftin a sistemelor la platforme de execuie noi.

Contra

Unele abstractizri din model nu au corespondent direct


n implementare.

Economiile din generarea codului pot fi depite de


costurile de dezvoltare ale translatoarelor pentru
platforme noi.

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

MDA
Model-driven architecture (MDA) a fost precursorul mai
generalului MDE.

MDA este o abordare focalizat pe model a proiectrii i


implementrii software-lui care folosete un subset al
modelelor UML pentru a descrie un sistem.
Sunt create modele la diferite nivele de abstractizare.
Dintr-un model de nivel nalt, independent de platform
este posibil, n principiu, s se genereze fr intervenie
manual un program funcional.

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Tipuri de modele

Computation independent model (CIM)

Platform independent model (PIM)

Modeleaz abstractizrile importante de domeniu utilizate


ntr-un sistem. CIM-urile sunt numite uneori modele de
domeniu.
Modeleaz modul de funcionare a unui sistem fr a face
referire la implementarea sa.
Sunt descrise de obicei folosind modele UML care ilustreaz
structura static a sistemului i modul n care acesta
rspunde la evenimentele externe i interne.

Platform specific models (PSM)

Transformri ale modelului independent de platform (PIM),


cu cte un PSM pentru fiecare platform de execuie.

Obs. n principiu, pot fi mai multe nivele ale PSM, fiecare nivel adugnd unele detalii
specifice platformei.
Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Transformrile MDA

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Mai multe PSM pentru acelai PIM

PSM
PIM

PSM

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

UML executabil

Noiunea fundamental din spatele MDE este aceea c sunt


posibile transformri complet automate ale modelelor n cod.
Acestea sunt posibile folosind un subset al UML 2, numit
Executable UML sau xUML.
Standarde OMG asociate :

fUML (Foundational UML)

Alf (Action Language for UML)

List de instrumente software :

http://modeling-languages.com/list-of-executable-uml-tools
Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Caracteristici ale UML executabil

Tipuri cheie de modele:

Modele de domeniu - identific entitile principale ale


domeniului pentru care este realizat sistemul. Se
utilizeaz o diagram de clase UML care include doar
clasele, atributele i asocierile.

Modele de clase definesc clasele, mpreun cu


atributele i operaiile acestora.

Modele de stri i tranziii cu fiecare clas este


asociat o diagram de stri i tranziii care este utilizat
pentru a descrie ciclul de via al clasei.

Comportamentul dinamic al sistemului poate fi specificat declarativ


folosind limbajul OCL (object constraint language), sau poate fi
exprimat utiliznd limbajul Alf.
Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Rezumat

Un model este o abstractizare a unui sistem care ignor


detaliile acestuia. Se pot dezvolta modele complementare ale
unui sistem pentru a ilustra contextul, interaciunile, structura i
comportamentul sistemului.

Modelele contextului ilustreaz modul n care sistemul modelat


este poziionat ntr-un context format din sisteme i procese.
Diagramele cazurilor de utilizare i diagramele de secvene se
folosesc pentru a descrie interaciuni. Cazurile de utilizare
descriu interaciuni ntre un sistem i actorii externi; diagramele
de secvene adaug informaii suplimentare prin ilustrarea
interaciunilor dintre obiectele sistemului.
Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Rezumat

Modelele structurii ilustreaz organizarea i arhitectura unui


sistem. Diagramele de clase sunt folosite pentru a defini
structura static a claselor unui sistem i asocierile acestora.
Diagramele de componente sunt utilizate pentru a descrie
structura sistemului n timpul execuiei.

Modelele datelor ilustreaz structura logic a datelor procesate


de sistem. Se pot folosi diagrame entitate-relaie-atribut sau
diagrame de clase simplificate, complementate cu dicionare
de date.

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Rezumat

Modelele de comportament sunt utilizate pentru a descrie


comportamentul dinamic al unui sistem aflat n execuie.
Acest comportament poate fi modelat din perspectiva datelor
procesate de sistem, sau prin prisma evenimentelor care
stimuleaz rspunsuri din partea sistemului.

Diagramele de activitate se pot folosi pentru a modela


procesarea datelor, fiecare activitate reprezentnd un pas al
procesului.

Diagramele de stri i tranziii sunt utilizate pentru a modela


comportamentul unui sistem ca rspuns la evenimente
interne i externe.

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5

Rezumat

Prototiparea UI este esenial n analiza cerinelor. Aceasta


poate fi un proces n dou etape.

Model-driven engineering este o abordare a dezvoltrii de


software n care un sistem este reprezentat ca set de modele
ce pot fi transformate automat n cod executabil.

Adapted after Ian Sommerville 2010

Software Engineering, 9th edition. Chapter 5