Documente Academic
Documente Profesional
Documente Cultură
Investeşte în oameni !
Proiect cofinanţat din FONDUL SOCIAL EUROPEAN
prin Programul Operaţional Sectorial Dezvoltarea Resurselor Umane 2007 – 2013
Axa prioritară 1: „EDUCAŢIA ŞI FORMAREA PROFESIONALĂ ÎN SPRIJINUL CREŞTERII ECONOMICE ŞI DEZVOLTĂRII SOCIETĂŢII
BAZATE PE CUNOAŞTERE”
Domeniul major de intervenţie 1.2 „Calitate în învăţământul superior”
Cerere de propuneri de proiecte: nr. 86 „Universitate pentru viitor”
Titlul proiectului: Reţea naţională de centre pentru dezvoltarea programelor de studii cu rute flexibile şi a unor instrumente didactice la specializarea de
licenţă şi masterat, din domeniul Ingineria Sistemelor
Numărul de identificare al contractului: POSDRU/86/1.2/S/63806
Gabriela Varvara
Ingineria Programarii I
C
Curs 2 - Modelarea
M d l proceselor
l software
ft
Partener P4
MINISTERUL EDUCAŢIEI, UNIVERSITATEA UNIVERSITATEA TEHNICĂ UNIVERSITATEA TEHNICĂ UNIVERSITATEA SC ASTI AUTOMATION SRL
CERCETĂRII, TINERETULUI ”POLITEHNICA” DIN ”GHEORGHE ASACHI” ”POLITEHNICA”
ŞI SPORTULUI DIN CLUJ-NAPOCA DIN DIN
BUCUREŞTI IAŞI TIMIŞOARA
Obiective curs 2:
Obiectivul 1: scurta introducere in modelarea proceselor software.
Obiectivul 2: prezentarea a trei modelele generice utilizate pe scara larga: cascada,
evolutionar, bazat pe componente.
Obiectiv 3: prezentarea rolului iteratiilor in cadrul unui proces de dezvoltare
Obiectivul 4: prezentarea activitatilor specifice din ingineria cerintelor, dezvoltare,
testare si evolutie software
Obiectivul 4: detaliere si particularizare model iterativ complet – Rational Unified
Process
Obiectivul 5: utilitare suport pentru activitatile implicate in procesele de dezvoltare
software.
Subiecte tratate: modele ale proceselor software, iteratie in cadrul unui proces,
activitati, RUP, utilitare suport pentru ingineria programarii
2
Procesul software
– Set structurat de activitati impus de dezvoltarea unui sistem software
4
5
6
Varianta de model in cascada cu revenire
8
Versiune initiala
Specificare
Versiuni
Descriere sumara Dezvoltare intermediare
10
Capitolul 1: Procese software – cursul 2
11
12
Livrarea incrementala
¾Implica dezvoltare si livrare in incremente, unde fiecare increment rezolva o parte din
functionalitatea globala ceruta
¾Cerintele utilizatorului sunt clasificate, incrementele de inceput rezolvand cerintele de
prioritate
i it t maxima i
¾Odata inceputa dezvoltarea unui increment, cerintele vor fi inghetate pana la terminarea
incrementului; acest lucru nu impiedica evolutia cerintelor care va fi luata in considerare
in iteratiile urmatoare
13
¾La fiecare increment se livreaza produs cu valoare pentru client, fiind asigurata
functionalitatea inca din fazele incipiente
¾Incrementele timpurii actioneaza ca prototipuri, ajutand la extragerea cerintelor pentru
urmatoarele incremente
¾Risc scazut de esec al intregului proiect
¾Cele mai prioritare servicii ale sistemului vor beneficia de cea mai intensa testare
14
Dezvoltarea in spirala
¾Procesul este reprezentat mai curand ca o spirala si nu ca o
secventa de activitati, cu posibilitatea de revenire inapoi
15
16
17
18
Capitolul 1: Procese software – cursul 2
Specificarea software
Validare software
Evolutie software
19
1.Specificarea software
¾ Este procesul de stabilire a serviciilor cerute sistemului software precum si a
g
constrangerilor de dezvoltare si operare
p ale acestuia
¾ Procesul de inginerie a cerintelor
o Studii de fezabilitate
o Extragerea si analiza cerintelor
o Specificarea cerintelor
o Validarea cerintelor
20
Studiu de Extragere
fezabilitate si analiza
cerinte
Specificare cerinte
Modele sistem
Cerinte utilizator
si sistem
Document
de cerinte
21
– Reprezinta
R i t procesull de
d convertire
ti a sistemului
i t l i
– Proiectare software – proiectarea structurii software ce determina realizarea
specificatiilor
– Implementare – traducerea structurii in cod executabil
22
2.1 Activitatile procesului de proiectare
– Proiectarea arhitecturala
– Specificarea abstracta (software)
– Proiectarea interfetei cu utilizatorul
– Proiectarea componentelor
– Proiectarea structurii datelor
– Proiectarea algoritmilor
23
Specificare
cerinte
Activitati proiectare
Specificatie
Arhitectura Specificatie Specificatie Specificatie Specificatie
structura date
sistem software interfata componenta algoritmi
Rezultate proiectare
24
Metode structurate folosite in proiectarea software
25
26
3.Validare software
¾ Verificarea si validarea (V&V) are drept scop de a demonstra in ce masura
sistemul dezvoltat se conformeaza propriilor specificatii si raspunde cerintelor
formulate de client
¾ Implica
I li procese de
d verificare
ifi sii revizuire
i i (review)
( i )
¾ Testarea software implica executia sistemului pe cazuri de testare derivate din
specificarea datelor reale ce vor fi procesate de catre sistem
Proiectare
Localizare eroare reparare Reparare
p Retestare
eroare eroare sistem
27
Fazele testarii
¾Testarea componentelor sau a unitatilor functionale:
Componentele individuale sunt testate independent
Componentele pot fi functii
functii, obiecte sau grupari coerente ale acestor entitati
¾Testarea sistemului – testarea proprietatilor emergente are o importanta particulara
¾Testarea de acceptare – verificarea daca, pe datele client, sistemul satisface nevoile
acestuia
conform figurii (Ian Sommerville, 2004):
Requir ements System S ystem Detailed
specification specification design design
28
4. Evolutia software
¾ Produsele software sunt, inerent, flexibile si sunt supuse modificarilor
¾ Pe masura ce cerintele se modifica ca urmare a modificarii circumstantelor de business
business,
produsul software trebuie adus la zi
¾ Demarcatia intre dezvoltare si evolutie (mentenanta) devine din ce in ce mai irelevanta in
contextul unui numar din ce in ce mai redus al sistemelor complet noi
Evaluare Propunere
Definire cerinte Modificare
sisteme modificari
sistem sistem
existente sistem
Sisteme
Sistem nou
existente
29
content
30
Procesul de dezvoltare unificat Rational (RUP)
¾Model modern de proces, derivat din lucrul cu UML (Unified Modelling Language) si procese asociate
31
32
Procesul de dezvoltare unificat Rational (RUP) – definire discipline
33
34
Clasificarea functionala a utilitarelor
Tip utilitar Exemple
Planificare utilitare PERT, de estimare, de desfasurare
Editare editoare de text, de diagrame, procesoare de text
Managm. schimbarilor utilitare trasabilitate cerinte, sisteme de modificare a
controlului
Managm. Configurarii sisteme de management a versiunilor, de construire
sistem
Creare prototip limbaje de nivel foarte inalt, generatoare interfete
utilizator
Suport pentru metode editoare de proiect, dictionare date, generatoare cod
Procesare limbaj compilatoare, interpretoare
Analiza program generatoare de referinte incrucisate, analizoare
statice/dinamice
Testare generatoare date testare, comparatoare fisiere
Depanare sisteme de depanare interactive
Documentare programe pozitionare pagini, editoare imagine
Reinginerie sisteme referentiere incrucisata, sisteme
restructurare program
35
36
Integrare utilitare CASE
37
38
Concluzii
1. Procesele software sunt activitati de producere si evolutie a sistemelor software
2. Modelele proceselor software sunt reprezentari abstracte ale acestora
3. Activitatile de dezvoltare: specificarea, proiectarea si implementarea, validarea si evolutia
4 M
4. Modelele
d l l proceselor
l generice
i descriu
d i organizarea
i proceselor
l software
ft (ex.
( model
d l cascada,
d
dezvoltare evolutionara, inginerie software bazata pe componente)
5. Modelele iterative descriu procesele software ca un ciclu de activitati
6. Ingineria cerintelor este procesul de dezvoltare a specificatiilor software
7. Procesele de proiectare si implementare transforma specificatiile in program executabil
8. Validarea implica verificarea adecvantei sistemului la specificatii si la nevoile clientului
9. Evolutia se ocupa de modificarea sistemului dupa ce acesta este lansat pe piata
10.RUP
10 RUP este un model de proces generic ce permite separarea disciplinelor de evolutia in timp
de la o faza la alta
11.Tehnologiile CASE ofera suport in dezvoltarile software prin utilitare, workbenches si medii
de dezvoltare
39