Curs_ISC_2011_1_v01

64
UPB - ETTI - Curs ISC - an IV - Specializ area 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/  

description

Curs ISC. Prof. Eduard Popovici

Transcript of Curs_ISC_2011_1_v01

  • 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/

  • 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

  • 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)

  • 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

  • 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

  • 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)

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

    Organizarea disciplinei

    Laborator ISC Sala B123

  • 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

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

    1. Introducere in ingineria software

    Sisteme software (programe de calcul)

  • 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 instruciuni (pasi)

    care conduc aciunea unei maini programabile (de calcul)

    din perspectiva programatorului:

    o solutie la o problema pe care o are de rezolvat

    din perspectiva utilizatorului:

    un serviciu oferit

  • 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

  • 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 y = (1-x)

    x>1 => impossible

    Proiectant

    abstractii

  • 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

  • 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

  • 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)

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

    1. Introducere in ingineria software

    Inginerie software

  • 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 cerinele planificate

    - funcionale i

    - de calitate

    Ingineria sistemelor software

  • 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 abordri ingineresti, adica

    - sistematice,

    - organizate,

    - disciplinate si

    - cuantificabile

    - in desfasurarea proiectelor software (dezvoltare, utilizare, ntreinere)

    - pentru finalizarea lor cu succes

    Dincolo de dezvoltarea clasica a sistemelor software, ingineria software actuala

    presupune

    - aplicarea unei abordri industriale a productiei software

  • 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

  • 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 configurrii sistemelor software

    metodologiile de organizare si management al proiectelor software

    (planificare, conducere, ndrumare, control)

  • 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)

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

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

    1. Introducere in ingineria software

    Dezvoltarea iterativa

  • 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

  • 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)

  • 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

  • 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 1 => impossible

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

  • 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

  • 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)

  • 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)

  • 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)

  • 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)

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

    1. Introducere in ingineria software

    Dezvoltarea top-down

  • 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

  • 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

    (funcional / OO) Analiz

    (funcional / OO) Construcie a componentelor

    Produs

    Compunere

    (integrare)

    Specificatii

  • 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

    Funcie principal

    Sub-funcie A Sub-funcie B

    Sub-funcie A1 Sub-funcie A2 Sub-funcie B1 Sub-funcie B2

    sqrt()

    main()

  • 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

  • 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

    Legtur dinamic

    Interaciune a obiectelor

    Comunicaie ntre obiecte

    Colaborare ntre obiecte

    Decuplare intre obiecte

    Declanare (executie)

    Referin

    Obiect tinta

    Comportament global

    al sistemului

    (multimea de scenarii =

    secvene de mesaje = colaborri ntre obiecte) Operaie

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

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

    1. Introducere in ingineria software

    Procesul agil (AP/XP)

  • 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)

  • 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

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

    1. Introducere in ingineria software

    Procesul ICONIX

  • 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

  • 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

  • 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

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

    1. Introducere in ingineria software

    Procesul unificat (UP)

  • 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

  • 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

  • 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

  • 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)

  • 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