Obiective curs
Cursul isi propune sa ofere o imagine de asamblu asupra procesului de dezvoltare a programelor, abordand sistematic toate aspectele implicate in industria software-ului: modelarea ciclurilor de viata, metodologiile de dezvoltare, managementul proiectelor, asigurarea calitatii, intretinerea si gestiunea configuratiei, elaborarea documentatiei. Se vor pune in evidenta importanta unor etape precum analiza, proiectarea si testarea, care completeaza implementarea programelor – unica etapa care a fost cunoscuta prin intermediul unor cursuri anterioare de programare. Se trateaza de asemenea una dintre componentele esentiale pentru dezvoltarea unor programe de calitate: modelarea orientata pe obiecte cu ajutorul unui limbaj standardizat, UML (Unified Modeling Language). Disciplina va evidentia modul in care UML faciliteaza interoperabilitatea intre produsele software, precum si o elaborare mai rapida si mai flexibila a programelor.
Obiective laborator
Aplicatiile au scopul de a facilita intelegerea conceptelor prezentate la curs si sunt de doua tipuri: a) utilizarea modelelor si a limbajului UML in analiza, proiectarea, documentarea si managementul proiectelor de software; b) implementarea modelelor intr-un limbaj orientat pe obiecte, precum si urmarirea unui ciclu de viata complet, ajungand pana la testarea programelor.
Conținut curs
- Etape ale dezvoltarii programelor: analiza, proiectare, implementare, testare;
- Modele de dezvoltare;
- Principii ale analizei si proiectarii orientate pe obiecte;
- Tipuri de arhitecturi;
- Sabloane de proiectare si implementarea lor intr-un limbaj de programare orientat pe obiecte;
- Validare, verificare, testare;
- Reutilizare si dezvoltarea rapida a aplicatiilor;
- Diagrama cazurilor de utilizare;
- Diagrame de clase;
- Relatii intre clase si implementarea lor: asociatia, agregarea, generalizarea, dependenta;
- Aspecte dinamice (diagrame de stare, diagrame secventiale si de colaborare);
- Pachete, module, subsisteme, componente, noduri;
- Limbajul pentru restrictii OCL;
- Implementarea modelelor UML in Java.
Conținut laborator
- Identificare cerinte pt. aplicatie complexa;
- Elaborare teste ale unitatilor;
- Implementare sabloane de proiectare;
- Utilizarea unui instrument software pentru gestiunea versiunilor unui program;
- Documentarea aplicatiei;
- Realizarea unui program urmarind toate etapele ciclului de viata;
- Probleme de modificare / elaborare a unor diagrame de clase UML;
- Aplicatii de modelare a starilor in UML;
- Legatura intre diagrama cazurilor de utilizare, diagramele secventiale si cele de colaborare pe exemple concrete;
- Modelarea aspectelor statice ale unui program de dimensiuni mari, cu diagramele de componente si repartizarea pe noduri;
- Implementarea relatiilor de asociatie intre clase, cu multiplicitati;
- Implementare relatii de agregare intre clase, cu marcarea deosebirii fata de asociatii;
- Implementarea unor masini de stare conforme unor diagrame de stare UML;
- Editare diagrame UML si generare cod.