Inginerie Software


Specializarea Informatica

FISA DISCIPLINEI

Anul universitar 2023 - 2024



  Departament Home


Cod : I647
Titular curs : Conf. dr. M. Cosulschi
Forma de invatamant : Informatica (3 ani)
Ciclul : 1 Anul : 3
Semestrul : 2, Curs : 2h, Laborator : 2h
Nr. credite : 5
Profil : Informatica
Specializare : Informatica
Tip disciplina : optionala
Categoria formativa : de specialitate


Obiective:

  • Studentii vor invata concepte ale inginerie software precum: procese ale inginerie software, faze, activitati, rezultate si produse software de sprijin; produse ale ingineriei software; metode formale si limbaje de specificare; stiluri si notatii pentru a modela arhitecturi software.
  • capabilitatea de a dezvolta, mentine, si imbunatati un sistem software, pentru a selecta cea mai potrivita metodologiei si cea mai buna tehnologie pentru a rezolva o problema specifica; pentru a selecta modelul de reprezentare adecvat pentru un anumit aspect al unui sistem software.
  • capabilitatea de a produce documente software, in conformitate cu standarde de proiect predefinite.


Cunostinte necesare:

  • Studentii trebuie sa aiba cunostinte despre algoritmi si structuri de date, programare procedurala, programare orientata pe obiecte, programarea unei interfete grafice, programare bazata pe evenimente, sisteme de operare, baze de date.

Continutul cursului:

  • Modelele iterative si incrementale ale ciclului de viata al unui produs software; modelul spirala, modelul cascada, Rational Unified Process, Extreme Programming.

  • Etapele dezvoltarii unui produs software, ciclul de viata a unui program: conceptualizarea, analiza, proiectarea, evolutia, intretinerea.

  • Limbajul unificat de modelare UML
    1. Aparitie si evolutie
    2. Diagrama cazurilor de utilizare
    3. Diagrama claselor
    4. Diagrama de stare
    5. Diagrama de secventa
    6. Diagrama de colaborare
    7. Diagrama de activitate
    8. Studii de caz

  • Metode formale de specificare. Object Constraint Language (OCL).

  • Dezvoltarea unui produs software
    1. Definirea cerintelor utilizator
    2. Analiza cerintelor
    3. Analiza domeniului
    4. Proiectare arhitecturala
    5. Proiectare detaliata
    6. Proiectarea interfetei utilizator
    7. Implementarea

  • Standarde de codificare.

  • Sabloane de proiectare
    1. Sabloane structurale: decorator, composite
    2. Sabloane creationale: abstract factory
    3. Sabloane comportamentale: iterator
    4. Sabloane fundamentale: interface

  • Testarea software-ului (testare functionala, testare structurala, testarea de integrare, testarea interfetei, teste de stres). Test driven development.

  • Calitatea Programelor. Metrici.

  • Tehnici agile de dezvoltare a programelor. Scrum.

Forma de evaluare: examen

Bibliografie:
  1. Craig Larman, Applying UML and patterns – an introduction to object-oriented analysis and design and iterative development, Prentice Hall, 2nd edition, 2005.
  2. Ian Sommerville, Software engineering, Adisson-Wesley, 10th edition, 2015.
  3. B. Bruegge, A. H. Dutoit, Object Oriented Software Engineering Using UML Patterns and Java, Pearson, 2010, 3rd edition.
  4. S. R. Schach, Object Oriented And Classical Software Engineering, McGraw Hill, 8th edition, 2011.
  5. E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns. Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995.
  6. Len Bass, Paul Clements, Rick Kazman, Software architecture in practice, Pearson, Addison Wesley, 4th edition, 2021.
  7. Frank Buchmann, Regine Meunier, Peter Sommerlad, Michael Stal, Pattern-oriented software architecture – a system of patterns, John Wiley & Sons, 1996.
  8. Software Engineering Body of Knowledge, IEEE, 2004, (http://www.swebok.org).
  9. M. Bloch, S. Blumberg, J. Laartz, Delivering large-scale IT projects on time, on budget, and on value, 2012.
  10. M. Cosulschi: Note de curs, 2015.

Material didactic:

  1. Inginerie Software - laborator UVT
  2. An introduction to Object Oriented Analysis and Design using UML

Pachete software:

  1. Draw UML Diagrams - Online;
  2. yUML;
  3. StarUML;
  4. ArgoUML v0.34;
  5. Gliffy;
  6. MagicDraw UML;
  7. Eclipse;
  8. NetBeans;
  9. Visual Studio Community;
  10. Dev-C++;
  11. Code::Blocks;

Alte cursuri:

  1. Ingineria Programarii, Informatica, Iasi
  2. Ingineria Programarii, UAIC (old)
  3. Ingineria Sistemelor Soft, Informatica, UBB Cluj
  4. Inginerie software, Informatica, Timisoara
  5. Managementul proiectelor software, PUB CS.
  6. Inginerie software, Informatica, Timisoara.
  7. Software Engineering, Computing and Information Science, Cornell University.
  8. Software Engineering, Computer Science, University of Cambridge.
  9. Ingegneria del Software, Università di Bologna.
  10. Ingineria programarii, TU Iasi.

Ultima actualizare: Martie 2024