64
UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 1 Inginerie Software pentru Comunicatii (ISC / RST) 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV Specializarea RST Titular curs: Eduard-Cristian Popovici Suport curs: http://discipline.elcom.pub.ro/isc/ Moodle: http://electronica.curs.ncit.pub.ro/

Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

Embed Size (px)

Citation preview

Page 1: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 1

Inginerie Software pentru Comunicatii

(ISC / RST)

2010 - 2011

UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST

Titular curs: Eduard-Cristian Popovici

Suport curs: http://discipline.elcom.pub.ro/isc/

Moodle: http://electronica.curs.ncit.pub.ro/

Page 2: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 2

Structura cursului

UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST

Page 3: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 3

Continut curs

Structura cursului

1. Introducere in ingineria software

1.1. Necesitatea unei abordari sistematice a dezvoltarii software

1.2. Abordari si metodologii larg utilizate in ingineria software

2. Introducere in limbajul UML

2.1. Definirea, rolul si istoricul limbajului de modelare unificat (UML)

2.2. Tipuri de diagrame UML. Organizarea ierarhica a diagramelor

3. Diagrame UML statice

3.1. Diagrame UML de clase

3.2. Diagrame UML de obiecte

3.3. Diagrame UML de pachete

3.4. Diagrame UML de componente

3.5. Diagrame UML de structuri compozite

3.6. Diagrame UML de deployment (amplasare)

Page 4: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 4

Continut curs

Structura cursului

4. Diagrame UML dinamice

4.1. Diagramele UML de caz de utilizare

4.2. Diagrame UML de comunicatie si de robustete

4.3. Diagrame UML de secventa si de sumar al interactiunilor

4.4. Diagrame UML de masini de stari

4.5. Diagrame UML de activitati

4.6. Diagrame UML de timp

5. Introducere in procesul de dezvoltare Rational unificat (RUP)

5.1. Organizarea iterativa a proiectelor

5.2. Fazele si activitatile procesului RUP

6. Introducere in managementul si organizarea proceselor de dezvoltare

7. Elemente de reutilizabilitate a software-ului. Pattern-uri de proiectare

Page 5: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 5

Continut laborator

Structura disciplinei

1. Dezvoltarea aplicatiilor Java si ingineria inversa UML in NetBeans IDE

2. Crearea diagramelor UML de clase si cazuri de utilizare in NetBeans IDE

3. Crearea diagramelor UML de comunicatie si secventa (MSC) in NetBeans

IDE

4. Crearea diagramelor UML de activitati in NetBeans IDE

5. Crearea diagramelor UML de masini de stari (FSM) in NetBeans IDE.

Predarea temelor de casa. Colocviu de laborator

Page 6: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 6

Mod de evaluare

Organizarea disciplinei

1. Verificare finala – partea de Inginerie Software (30 puncte)

2. Verificare partiala – partea de Baze de Date (30 puncte)

3. Laborator (15 puncte) – se noteaza prezenta + activitate laborator + teme

documentare

4. Proiect (25 puncte)

– se noteaza predare proiect (dosar + format electronic pe CD/mail)

– si sustinere proiect

5. Prezenta curs (5 + 5 puncte bonus)

Page 7: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 7

Organizarea disciplinei

Laborator ISC – Sala B123

Page 8: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 8

1. Introducere in ingineria software

1.1. Necesitatea unei abordari sistematice a dezvoltarii software

1.2. Abordari si metodologii larg utilizate in ingineria software

Structura cursului

Page 9: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 9

1. Introducere in ingineria software

Sisteme software (programe de calcul)

Page 10: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 10

1. Introducere in ingineria software

Sistemele software (programele de calcul)

Pentru a oferi servicii software utilizatorilor concureaza

sistemul hardware (masina de calcul) si

sistemele software (programele de calcul) de pe masina de calcul

Sistemul software (programul de calcul) este

o secventa de instrucţiuni (pasi)

care conduc acţiunea unei maşini programabile (de calcul)

din perspectiva programatorului:

o solutie la o problema pe care o are de rezolvat

din perspectiva utilizatorului:

un serviciu oferit

Page 11: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 11

1. Introducere in ingineria software

Sistemul software

pentru programator: o solutie la problema pe care o are de rezolvat

y2 = 1 - x

Problema la nivel conceptual

Analiza

(abstractizare)

daca patratul unui numar este egal cu diferenta dintre 1 si un al doilea numar, sa se afle cum depinde primul numar de al doilea

Problema reala

Domeniul (contextul): matematica

Analist

Utilizator (client)

Cerinte

Enunt

Page 12: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 12

1. Introducere in ingineria software

Sistemul software

pentru programator: o solutie la problema pe care o are de rezolvat

y2 = 1 - x

Solutia la nivel conceptual

Problema la nivel conceptual

Analist

Analiza

Proiectare

(design)

x<1 => y = (1-x)

x>1 => impossible

Proiectant

abstractii

Page 13: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 13

1. Introducere in ingineria software

Sistemul software

pentru programator: o solutie la problema pe care o are de rezolvat

if (x > 1) {

cout << "impossible" << endl;

} else {

y = sqrt(1-x);

cout << "y is " << y << endl;

}

y2 = 1 - x

Solutia la nivel conceptual

Problema la nivel conceptual

Solutia translatata in limbaj de programare

Programator

transformarea

conceptelor in pasi

Analiza

Proiectare

Programare (codare si depanare)

Inside the box

x<1 => y = (1-x)

x>1 => impossible

Program

Page 14: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 14

1. Introducere in ingineria software

Sistemul software

pentru utilizator: un serviciu oferit

if (x > 1) {

cout << "impossible" << endl;

} else {

y = sqrt(1-x);

cout << "y is " << y << endl;

}

Utilizator

Program in limbaj de programare

Serviciu oferit prin interfata

ca urmare a executiei

2B 34 6F FE

24 4C 66 8A

B3 E2 78 9A

CD B1 85 32

99 04 71 00

00 00 00 00

> equation.exe 0

y is 1

> equation.exe 2

impossible

>

cod executabil

compilare (translatie)

proces (program

in executie)

Black Box

(abstractizari)

care are intrari

(linie comanda)

si ofera iesiri

(rezultatele

afisarii)

Outside the box

(lumea reala)

Page 15: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 15

1. Introducere in ingineria software

Sistemul software

Black Box

(incapsulare, abstractizare)

White / Glass Box

“se vad” doar intrarile, iesirile, si

efectele colaterale

(serviciile furnizate, interfetele

oferite si necesare) “se vad” si componentele, si

interactiunile dintre ele

(detaliile de implementare)

dezvoltare (analiza,

proiectare, implementare)

utilizare

(cerinte)

Page 16: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 16

1. Introducere in ingineria software

Inginerie software

Page 17: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 17

1. Introducere in ingineria software

Un sistem software este construit

- într-o structură organizatorică denumita

- proiect software

Un proiect software este de succes daca furnizează

- produsul planificat (sistemul software)

- în timpul şi

- bugetul planificat şi

- indeplinind cerinţele planificate

- funcţionale şi

- de calitate

Ingineria sistemelor software

Page 18: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 18

1. Introducere in ingineria software

Ingineria sistemelor software

Ingineria software reprezinta

- aplicarea unei abordări ingineresti, adica

- sistematice,

- organizate,

- disciplinate si

- cuantificabile

- in desfasurarea proiectelor software (dezvoltare, utilizare, întreţinere)

- pentru finalizarea lor cu succes

Dincolo de dezvoltarea clasica a sistemelor software, ingineria software actuala

presupune

- aplicarea unei abordări industriale a productiei software

Page 19: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 19

1. Introducere in ingineria software

Ingineria sistemelor software

Natura industriala a ingineriei software contemporane

- conduce la o alta definitie a ei

Ingineria software inseamna

- dezvoltarea unor sisteme software in general mari

- pentru a fi utilizate in medii / linii de productie

- dezvoltare realizata pe perioade in general mari

- fiind implicate in general de echipe de oameni

- si care probabil vor necesita multe schimbari

Page 20: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 20

1. Introducere in ingineria software

Ingineria sistemelor software

Aceasta abordare se bazeaza pe

metode, unelte (instrumente) si tehnici

create cu scopul cresterii sanselor de succes ale proiectelor software

In acest context ingineria software include, printre altele:

metodele de programare moderne (OOP, CBD, BPM, SOA)

procedurile de testare, verificare şi validare a sistemelor software

managementul versiunilor sistemelor software (CVS, Subversion)

managementul configurării sistemelor software

metodologiile de organizare si management al proiectelor software

(planificare, conducere, îndrumare, control)

Page 21: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 21

1. Introducere in ingineria software

Ingineria sistemelor software

• procesele de dezvoltare (analiza si proiectare) software (OOAD, OMT, XP, AP,

CATALYST, ICONIX, UP, etc.)

• instrumentele software de analiză, proiectare, modelare, testare, validare,

generare teste,

generare cod, etc.

(CASE tools)

• notatii si limbaje vizuale

(DFD, MSC, FSM, BPMN,

UML)

Page 22: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 22

1. Introducere in ingineria software

Ingineria sistemelor software

In practica se folosesc combinatii de procese, notatii si instrumente CASE

Page 23: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 23

1. Introducere in ingineria software

Procese de dezvoltare a sistemelor software complexe

Page 24: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 24

1. Introducere in ingineria software

Dezvoltarea software in tunel

Dezvoltarea unei aplicatii poate fi separata in mai multe parti:

- inlantuite secvential de-a lungul unei dezvoltari in cascada

- distribuite in diversele iteratii ale unei dezvoltari iterative

Dezvoltarea software in tunel este o

- modalitate vizuala de reprezentare a absentei metodologiei / procesului

“intr-o zi, poate…”

Procesul de

dezvoltare

este invizibil

(inexistent)

inceputul e cunoscut

lipsa unui proces

Page 25: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 25

1. Introducere in ingineria software

Dezvoltarea software in cascada (waterfall)

Dezvoltarea software in tunel nu e potrivita decat pentru

- proiecte mici, cu un numar foarte limitat de participanti

Dezvoltarea software in cascada (waterfall)

Puncte de vizibilitate ale

procesului de dezvoltare

in cascada Analiza

Proiectare

Codare

Testare

separarea

responsabilitatilor

fazelor dezvoltarii

Page 26: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 26

1. Introducere in ingineria software

Dezvoltarea software in cascada (waterfall)

Aplicatie

Teste functionale

Teste de integrare

Analiza

Proiectare

Codare Teste unitare

Validat

prin

Dezvoltarea software in V insista pe faptul ca in dezvoltarea in cascada

- testele sunt efectuate sincron cu dezvoltarea sistemului software

Page 27: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 27

1. Introducere in ingineria software

Dezvoltarea software in cascada (waterfall)

Proiectul creat in cascada produce pe parcurs documente

Proba efectiva a functionarii bune sau proaste a sistemului

- este obtinuta tarziu, abia in faza de integrare

Pentru a reusi, calea in cascada ar presupune:

- cunoasterea perfecta a ansamblului de cerinte

- intelegerea completa de catre analist a problemei “dintr-un foc”

- simplitatea determinarii unei solutii de catre proiectant

Ceea ce nu este cazul pentru sistemele software complexe, solutia fiind

- reintoarcerea la faze anterioare pentru a opera corectii in amonte in functie de

descoperirile facute in aval

Page 28: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 28

1. Introducere in ingineria software

Dezvoltarea software in cascada (waterfall)

Analiza

Proiectare

Codare

Integrare

Partea necunoscuta care

caracterizeaza sistemele

complexe se traduce in

reintoarceri ale

informatiei intre faze

pentru a incorpora

corectiile

Reintoarcerea la faze anterioare

- in functie de descoperirile facute in aval

- pentru a opera corectii in amonte

aval

amonte

Page 29: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 29

1. Introducere in ingineria software

Dezvoltarea iterativa

Page 30: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 30

1. Introducere in ingineria software

Dezvoltarea software iterativa

In dezvoltarea software iterativa:

- fiecare iteratie reproduce dezvoltarea in cascada, la o scara mai mica

(este o mini-cascada)

Analiza

Proiectare

Codare

Integrare

N ori

reintoarceri planificate,

dupa crearea unui nou

prototip evolutiv

Page 31: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 31

1. Introducere in ingineria software

Dezvoltarea software iterativa

Iteratiile pot fi grupate in 4 faze (conform procesului unificat – UP)

iteratie de inceput (inception, exploratorie)

iteratii de elaborare (a arhitecturii)

iteratii de constructie (a versiunii beta)

iteratii de tranzitie (catre produsul final)

Page 32: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 32

1. Introducere in ingineria software

Dezvoltarea software iterativa

Fazele traditionale (cerinte, analiza, proiectare, implementare, testare, etc.)

- sunt acoperite gradual, iteratie dupa iteratie

fluxuri

de

activitati

4 faze

iteratie

Page 33: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 33

1. Introducere in ingineria software

Procesul iterativ in cadrul de referinta al rezolvarii problemelor

Sistemele software sunt solutii ale unor probleme de rezolvat intr-un context dat

contextul = domeniul problemei si constrangerile

problema = cerintele utilizatorului si ale aplicatiei

rezolvarea = procesul de dezvoltare (analiza, proiectare, codare)

subsolutii = subsistemele, elementele modelelor, prototipurile

solutia = produsul final (sistemul software)

daca patratul unui numar este

egal cu diferenta dintre 1 si un

al doilea numar, sa se afle cum

depinde primul numar de al doilea

Matematica

y2 = 1 - x

if (x > 1) {

cout << "impossible" << endl; }

else {

> equation.exe 0

y is 1

x<1 => y = (1-x)

x>1 => impossible

x<1 => y = (1-x) x>1 => impossible

Page 34: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 34

1. Introducere in ingineria software

Dezvoltarea software iterativa

Context

(Domeniu)

Inceput proiect

Final proiect

Lumea reala Abstractizari (concepte, cod)

Problema

Solutie

Procesul iterativ in cadrul de referinta al rezolvarii problemelor

Page 35: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 35

1. Introducere in ingineria software

Dezvoltarea software iterativa

Etapa analizei domeniului (contextului) si a cerintelor

Cerinte Model de Analiza

Inceput proiect

Final proiect

Lumea reala Abstractizari (concepte, cod)

Problema

Solutie

Analiza

Context

(Domeniu)

Page 36: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 36

1. Introducere in ingineria software

Dezvoltarea software iterativa

Etapa proiectarii arhitecturale (de nivel inalt) si de detaliu

Cerinte Model de Analiza

Model de Proiectare

Arhitectura

Inceput proiect

Final proiect Pattern-uri de proiectare

Lumea reala Abstractizari (concepte, cod)

Problema

Solutie

Analiza

Proiectare Context

(Domeniu)

Page 37: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 37

1. Introducere in ingineria software

Dezvoltarea software iterativa

Etapa implementarii (codarii si depanarii)

Cerinte Model de Analiza

Model de Proiectare Prototip / Produs

Arhitectura

Inceput proiect

Final proiect Pattern-uri de proiectare

Lumea reala Abstractizari (concepte, cod)

Problema

Solutie

Analiza

Proiectare

Implementare

Context

(Domeniu)

Page 38: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 38

1. Introducere in ingineria software

Dezvoltarea software iterativa

Etapa testarii, validarii si evaluarii

Cerinte Model de Analiza

Model de Proiectare Prototip / Produs

Arhitectura

Inceput proiect

Final proiect Pattern-uri de proiectare

Lumea reala Abstractizari (concepte, cod)

Problema

Solutie

Analiza

Proiectare

Implementare

Testare, evaluare Context

(Domeniu)

Page 39: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 39

1. Introducere in ingineria software

Dezvoltarea top-down

Page 40: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 40

1. Introducere in ingineria software

Dezvoltarea software prin divizare si reunire (top-down)

divizare

clasificare si

reunire

reunire

Page 41: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 41

1. Introducere in ingineria software

Dezvoltarea software prin divizare si reunire (top-down)

Constructia unui sistem software este o secventa de iteratii de tip divizare-reunire,

fiind necesare:

descompunerea (analiza)

pentru a intelege problema si a putea formula o conceptie a solutiei

(re)compunerea (sinteza)

pentru a construi solutia (a realiza efectiv/concretiza conceptia)

Cum corespund fazele de mai jos cu exemplul ecuatiei matematice?

Descompunere

(funcţională / OO)

Analiză

(funcţională / OO) Construcţie a

componentelor

Produs

Compunere

(integrare)

Specificatii

Page 42: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 42

1. Introducere in ingineria software

Dezvoltarea software prin divizare si reunire (top-down)

Procesul de descompunere traditional este dirijat de criteriul functional:

considera programul ca fiind un proces imens

care trebuie descompus recursiv in subprobleme (subprocese)

si odata subproblemele rezolvate (sub forma de functii si proceduri)

trebuie combinate solutiile implementate pentru a construi solutia intregii

probleme

Funcţie principală

Sub-funcţie A Sub-funcţie B

Sub-funcţie A1 Sub-funcţie A2 Sub-funcţie B1 Sub-funcţie B2

sqrt()

main()

Page 43: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 43

1. Introducere in ingineria software

Dezvoltarea software prin divizare si reunire (top-down)

Descompunerea functionala

se bazeaza pe:

programare structurata si

modularizare functionala

Dezavantaje

- datele globale nu sunt protejate si pot deveni usor eronate / incoerente

- modificarea unei structuri de date se propaga in functiile care o folosesc

- evolutiile functionale pot implica modificari structurale puternice

=> functiile cerute trebuie sa fie bine identificate si stabile in timp

Page 44: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 44

1. Introducere in ingineria software

Dezvoltarea software prin divizare si reunire (top-down)

In lumea reala

sarcinile sunt realizate in colaborare (intre obiecte = agenti autonomi)

Abordarile actuale bazate pe obiecte (OO), componente(CBD), servicii (SOA)

imita modelele colaborative, sociale

Obiect utilizator

Mesaj

Legătură dinamică

Interacţiune a obiectelor

Comunicaţie între obiecte

Colaborare între obiecte

Decuplare intre obiecte

Declanşare

(executie)

Referinţă

Obiect tinta

Comportament global

al sistemului

(multimea de scenarii =

secvenţe de mesaje =

colaborări între obiecte) Operaţie

Page 45: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 45

1. Introducere in ingineria software

Dezvoltarea software prin divizare si reunire (top-down)

Abordarea orientata spre obiecte (OO) a programarii

propune descompunere bazată pe integrarea a ceea ce este (structural) şi ceea ce

face (comportamental) sistemul

initial a aparut ca o abstractizare (reducere la esential) a entitatilor lumii reale,

are ca scop modelarea caracteristicilor statice si dinamice (atribute si operatii)

ale domeniul problemei

Modelarea OO

formalizeaza perceptia noastra asupra lumii si

pune in corespondenta spatiul problemelor si spatiul solutiilor

Page 46: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 46

1. Introducere in ingineria software

Dezvoltarea software prin divizare si reunire (top-down)

Sistemul software OO (orientat spre obiecte)

reprezinta un model al unei parti din lumea reala

Elementele care compun modelul

sunt construite prin analogie cu entitati care apar in lumea reala

(obiecte reale, concepte)

sunt numite obiecte software

trebuie reprezentate in limbajul de programare

Ca si in cazul obiectelor si conceptelor din lumea reala

obiectele software pot fi categorisite (clasificate)

O constructie software (structura complexa) numita clasa

descrie intr-o forma abstracta toate obiectele software de un tip de date

particular

Page 47: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 47

1. Introducere in ingineria software

Dezvoltarea software prin divizare si reunire (top-down)

Obiectele si conceptele sunt clasificate (atat in lumea reala cat si in software) pe

baza caracteristicilor esentiale pe care le au :

atributele lor si

operatii care pot fi efectuate asupra lor

Clasele reprezinta obiecte software care au caracteristici similare

Atributele sunt reprezentate ca elemente de date

variabile interne care caracterizeaza obiectele

Ansamblul valorilor atributelor unui obiect la un moment dat reprezinta

starea obiectului

Starea unui obiect poate varia in timp, ca urmare a comportamentului

Comportamentul este

rezultatul executiei operatiilor care pot fi efectuate asupra obiectului

Page 48: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 48

1. Introducere in ingineria software

Dezvoltarea software prin divizare si reunire (top-down)

Functiile in abordarea OO

se reprezinta prin forme de colaborare (comunicare, interactiune) intre obiectele

ce compun sistemul

Cuplajul intre obiecte

este dinamic,

obtinut prin apelurile de operatii (trimiterea de mesaje).

Exemplu:

Buton

Cabină Uşă

Bec

Aprindere

Deschidere

Deplasare

Actionare

Lift

Page 49: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 49

1. Introducere in ingineria software

Dezvoltarea software prin divizare si reunire (top-down)

Analiza OO

gasirea si descrierea conceptelor din domeniul problemei

in cazul unei biblioteci pot fi gasite obiecte ale domeniului: cartile, biblioteca

Proiectarea OO reprezinta software obiectele si colaborarile pentru a indeplini sarcinile

obiectele tip Book au atribut comun title si operatie comuna getChapter

Implementarea OO obiectele software sunt transformate in codurile sursa ale solutiei

categoria obiectelor software de tip Book poate deveni o clasa Java

Diagrama

UML de

clase

Cod sursa

Java

Page 50: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 50

1. Introducere in ingineria software

Dezvoltarea software prin divizare si reunire (top-down)

Abordarea orientata spre obiecte (OO) a programarii

Incapsulare (grupare si

protectie) a datelor si

functiilor (OO)

Cuplaj slab

(dinamic)

Separarea in obiecte pe baza

de responsabilitati (date si

functiile asociate)

Colaborare

intre obiecte

Page 51: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 51

Dezvoltarea

software iterativa

prin divizare si

reunire

(top-down)

Prototip 1

Prototip 2

Prototip 3

Produs

final

Grupuri de

cerinte

prioritizate

Page 52: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 52

1. Introducere in ingineria software

Procesul agil (AP/XP)

Page 53: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 53

1. Introducere in ingineria software

Dezvoltarea software prin divizare si reunire (top-down)

Procesul de dezvoltare agil (AP/XP) – Agile/eXtreme Programming

Dezvoltarea sistemelor software:

in cascada vs iterativa vs agila (AP/XP)

Page 54: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 54

1. Introducere in ingineria software

Dezvoltarea software prin divizare si reunire (top-down)

Procesul de dezvoltare agil

Iteratii scurte si

multe

Page 55: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 55

1. Introducere in ingineria software

Procesul ICONIX

Page 56: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 56

1. Introducere in ingineria software

Dezvoltarea software prin divizare si reunire (top-down)

Flux de activitati

modelare dinamica

Flux de activitati

modelare statica

Procesul de dezvoltare ICONIX – fluxurile de activitati

Page 57: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 57

1. Introducere in ingineria software

Dezvoltarea software prin divizare si reunire (top-down)

Procesul de dezvoltare ICONIX – conceptul cel mai important

Analiza robustetii (proiectarea preliminara) ajuta la umplerea golului dintre

- analiza cerintelor (modelarea UC) si

- analiza si proiectarea sistemului software

prin legarea UC de obiecte

Page 58: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 58

1. Introducere in ingineria software

Dezvoltarea software prin divizare si reunire (top-down)

Procesul de dezvoltare ICONIX – analiza robustetii

Page 59: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 59

1. Introducere in ingineria software

Procesul unificat (UP)

Page 60: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 60

1. Introducere in ingineria software

Dezvoltarea software prin divizare si reunire (top-down)

Procesul de dezvoltare unificat (UP) – (Rational) Unified Process

- este organizat in 4 faze – fiecare continand una / mai multe iteratii

Page 61: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 61

1. Introducere in ingineria software

Dezvoltarea software prin divizare si reunire (top-down)

Procesul de dezvoltare unificat (UP)

- in fiecare iteratie fluxurile de activitati (modelare business, cerinte, analiza,

proiectare, implementare, testare, etc.) au o pondere diferita

fluxuri

de

activitati

4 faze

iteratie

Page 62: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 62 Curs UML 62

Dezvoltarea

sistemelor

software top-

down

Artefacte

ale UP

Page 63: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 63

1. Introducere in ingineria software

Dezvoltarea

top-down a

sistemelor

software

Modelele UP

(Unified Process)

bazate pe UML

si dependentele

intre ele

Modelul UC

Modelele de

analiza si

proiectare

Alte modele

bazate pe

nucleul UML

Modele Business

(optionale, folosesc

extensii UML)

Model de date

(extensii UML)

Page 64: Inginerie Software pentru Comunicatii ISC / RSTdiscipline.elcom.pub.ro/isc/Curs_ISC_2011_1_v01.pdf · 2010 - 2011 UPB - Facultatea ETTI - Curs ISC - an IV – Specializarea RST Titular

UPB - ETTI - Curs ISC - an IV - Specializarea RST 07.03.2011 11:32 64

1. Introducere in ingineria software

Ingineria sistemelor software

In practica se folosesc combinatii de procese, notatii si instrumente CASE