Sunteți pe pagina 1din 24

Fundamente de Inginerie Software

Cap. 2
Ciclul de Via a Unui Sistem Software.
Modele Specifice Fazelor Ciclului de Viat.

Conf.Dr.Ing. Dan Pescaru


Textbooks: Maciaszek Practical Software Engineering, 2005, Cap. 1
Surs: http://www.comp.mq.edu.au/books/pse/

2009
1
Fazele ciclului de via
Fazele ciclului de via a unui sistem software
(Maciaszek05):

Analiza cerinelor
Proiectarea sistemului
Implementarea
Integrarea i instalarea la beneficiar
Operarea i ntreinerea

FIS conf.dr.ing. Dan Pescaru


2
Analiza cerinelor
Determinarea cerinelor una din provocrile cele
mai dificile
Specificarea cerinelor Unified Modeling Language
(UML)
Computer Assisted Software Engineering (CASE)
Documentaia de specificare a cerinelor:
Serviciile oferite de sistem (ce trebuie s fac sistemul)
Constrngerile sistemului
Asigurarea calitii software-ului
Parcurgeri i inspecii
FIS conf.dr.ing. Dan Pescaru
3
Proiectarea Sistemului (1)
Proiectarea sistemului const n (Sommerville04):
O descriere a structurii sistemului de implementat
Datele care sunt prelucrate n sistem
Interfeele ntre componentele sistemului
Algoritmii utilizai (doar n anumite situaii)
n practic distincia ntre analiz i proiectare nu
este foarte clar
Modelele de via sunt iterative i incrementale
Acelai limbaj de modelare (UML) este utilizat i la analiz

FIS conf.dr.ing. Dan Pescaru


4
Proiectarea Sistemului (2)
Proiectarea detaliat (adaug detalii modelului
rezultat din analiza cerinelor)

Proiectarea arhitectural

Gestiunea relaionrii parilor aflate n diverse stadii


de dezvoltare cerine, proiect sau segmente de cod
(Traceability Management)

FIS conf.dr.ing. Dan Pescaru


5
Implementarea
Implementarea este n mare parte programare, dar
Proiectul este sub-specificat (n zona algoritmilor)
Extra-proiectare nainte de codificare
Un programator este un inginer de componente
Programarea este o inginerie n circuit
Integrated Development Environments (IDEs)
Generare de cod (forward engineered) din model (proiect) +reverse
Testare i depanare
Revizuirea codului (prin treceri i inspecii)
Testare bazat pe execuie (observarea comportamentului)
Testarea conforma cu specificaiile (black-box testing)
Testarea conforma cu codul (white-box testing) se urmresc ci
de execuie
FIS conf.dr.ing. Dan Pescaru
6
Integrarea i Instalarea
In pasul de integrare se asambleaz aplicaia din setul de
componente implementate i testate n prealabil
Dificil de distins fa de:
Implementare (integrare continu la agile development)
Testare (integration testing)
Condus de proiectarea arhitectural a sistemului
Instalarea reprezint nmnarea sistemului funcional
beneficiarilor pentru utilizarea n producie
Softul este instalat n diverse versiuni
Fiecare versiune este precedat de testarea de sistem (dezvoltator
alpha-testing) i testarea de acceptare (beneficiar beta-testing)
Training pentru beneficiar
Documentaie de utilizare

FIS conf.dr.ing. Dan Pescaru


7
Testarea
Stub o pies de cod care simuleaz comportamentul unei
componente neimplementate nc
Se utilizeaz n testarea top-down
Problem: dependenele circulare. Big-bang testing nu este o
soluie
Driver o pies de cod care conduce integrarea a.. versiunea
increment (build) poate primi datele i contextul care ar fi
furnizate de componentele neimplementate nc
Se utilizeaz n testarea bottom-up
Teste de suport (test harness) teste care utilizeaz stubs
i drivers (utile doar n timpul integrrii)

FIS conf.dr.ing. Dan Pescaru


8
Operarea i ntreinerea
Operarea semnific acea faz a ciclului de via n
care un produs software este utilizat n munca de zi-
cu-zi nlocuind sistemul precedent
Startul Operrii coincide cu nceperea procesului de
Mentenan
Corectiv (de cas)
Adaptiv
Perfectiv
Sisteme motenite (Legacy Systems)

FIS conf.dr.ing. Dan Pescaru


9
Variaiile ciclului de via
Ciclul de via poate diferi funcie de:
Experiena, abilitile i cunotinele membrilor echipei de
dezvoltare
Gradul de cunoatere i experiena n afacerea vizat de
sistem
Tipul domeniului aplicaiei
Schimbrile din mediul afacerii
Schimbrile din interiorul afacerii
Dimensiunea proiectului

FIS conf.dr.ing. Dan Pescaru


10
Modelul n cascad cu reacie
Modelul n cascad cu reacie (Waterfall lifecycle with
feedback) (Maciaszek05)

FIS conf.dr.ing. Dan Pescaru


11
Modelul n cascad cu suprapuneri

Modelul n cascad cu reacie, suprapuneri i


prototipuri (Waterfall with feedback, overlaps, and prototypes)

FIS conf.dr.ing. Dan Pescaru


12
Modelele n cascad

Ambele modele au aproximativ aceleai caracteristici


Avantaje:
Simplu i uor de utilizat
Uor de gestionat datorit rigiditii
Fazele i procesele sunt terminate pe rnd (uor de urmrit)
Bun pentru proiectele mici unde cerinele sunt bine nelese
nc de la nceput
Dezavantaje
Modificarea cerinelor este foarte greu de gestionat
Nu sprijin dezvoltarea orientat pe obiecte
Nu se produce prototipuri executabile dect foarte trziu

FIS conf.dr.ing. Dan Pescaru


13
Modelul n V
Cerine Planificare Integrare
sistem integrare sistem sistem

Cerine Planificare testare Testare


software sistem De acceptare

Proiectare la Planificare testare Integrare i


nivel nalt de integrare testare

Proiectare la Planificare testare Testare


nivel sczut uniti uniti

Implementare

FIS conf.dr.ing. Dan Pescaru


14
Modelul n V

Modelul n V presupune un ciclul de via secvenial


Planificrile se fac o dat cu parcurgerea primei
ramuri
Avantaje:
Simplu i uor de utilizat, mai ales pentru proiecte mici
Fiecare faz are lucruri specifice, controlabile, de livrat
Mia bun dect modelul n cascad deoarece planul de
testele este fcut nc de la nceput
Dezavantaje
Rigid, greu de introdus modificri dac apar
Nu produce prototipuri timpurii

FIS conf.dr.ing. Dan Pescaru


15
Ciclul de via iterativ

Iteraia n inginerie sofware este o repetiie a unui


proces cu scopul de aduga funcionaliti unui
produs software
Ciclul de via bazat pe iteraii presupune creteri
succesive (increments) versiuni mbuntite sau
extinse ale produsului la sfritul fiecrei iteraii
Ciclul de via iterativ presupune versiuni succesive
mbuntite (builds) sub form de cod executabil
livrabil la ncheierea fiecrei iteraii
Dezavantaj: faze rigide i care nu se suprapun
FIS conf.dr.ing. Dan Pescaru
16
Ciclul de via iterativ. Modele

Ciclul de via iterativ presupune iteraii scurte ntre


variante succesive (zile sau sptmni, nu luni)

Modele:
Spiral (Boehm, 1988)
IBM Rational Unified Process (RUP) (IBM, 2003)
Model Driven Architecture (MDA) (OMG, 2003)
Agile lifecycle with short cycles (Agile Alliance, 2001)

FIS conf.dr.ing. Dan Pescaru


17
Ciclul de via iterativ. Schem
Ciclul de via iterativ cu variante succesive

FIS conf.dr.ing. Dan Pescaru


18
Modelul Spiral

FIS conf.dr.ing. Dan Pescaru


19
Modelul RUP

FIS conf.dr.ing. Dan Pescaru


20
Modelul MDA

FIS conf.dr.ing. Dan Pescaru


21
Modelul Agile

FIS conf.dr.ing. Dan Pescaru


22
Practici Extreme Programming (XP)
Reacie fin Practici comune echipei
Programare n perechi Codare standard
Planificarea jocului Drepturi comune asupra
Dezvoltare condus de codului
teste
Proiectare simpl
Echip complet
Denumiri explicite
Proces Continu
Integrare continu
Refactorizare
(mbuntirea proiectului)
Variante n pai mici
Cadru adecvat pentru
programator
*XP Develoment. Courtesy of wikipedia
Atmosfer relaxat
FIS conf.dr.ing. Dan Pescaru
23
Concluzii
Stadiile procesului de dezvoltare a software-ului sunt cunoscute
ca faze ale ciclului de via software
Fazele ciclului de via sunt: analiza cerinelor, proiectarea
sistemului, implementarea, integrarea i instalarea, operarea i
mentenana
Modelele ciclului de via pot fi mprite n:
Modele cascad cu reacie
Modele iterative cu variante succesive
Modelele n cascad nu sunt adecvate proceselor moderne de
dezvoltare
Cele mai reprezentative patru modele iterative sunt: Spiral,
Rational Unified Process (RUP), Model Driven Architecture
(MDA) i Agile.

FIS conf.dr.ing. Dan Pescaru


24