Lab

Calitate si Evolutie Software

Notele de la Laborator

30.03.2011 - Notele Finale de la Laborator pot fi vizualizate aici

Temele de proiect

15.03.2011 - Temele de proiect sunt prezentate mai jos. Proiectele pot fi realizate in echipa de cate doi sau individual. Ele vor fi sustinute sub forma unei prezentari in saptamanile 6-7 ale semestrului. Sistemele ce vor fi analizate trebuie sa contina intre 5.000 - 8.000 de metode. Cei care nu au prezentat plugin-ul Eclipse, il vor prezenta obligatoriu in saptamana 6, impreuna cu proiectul!

  • P1 Creati un raport despre duplicarile de cod existente intr-un sistem, si propuneti solutii de refactorizare la cel putin trei duplicari gasite. Folositi pentru aceasta tool-ul Dude (parte din iPlasma).
  • P2 Creati un raport despre problemele de proiectare existente intr-un sistem, si propuneti solutii de refactorizare la cel putin trei probleme distincte. Folositi pentru asta tool-ul inFusion.
  • P3 Creati un raport despre problemele de proiectare existente intr-un sistem, si propuneti solutii de refactorizare la cel putin trei probleme distincte. Folositi pentru asta plugin-ul inCode.
  • P4 Prezentati cum au evoluat anumite clase de tip GodClass in cel putin trei versiuni ale unui sistem (\eg ArgoUML, JHotDraw).
  • P5 Prezentati cum au evoluat anumite clase de tip Refused Parent Bequest in cel putin trei versiuni ale unui sistem (\eg ArgoUML, JHotDraw).
  • P6 Prezentati cum au evoluat anumite clase de tip Tradition Breaker in cel putin trei versiuni ale unui sistem (\eg ArgoUML, JHotDraw).
  • P7 Prezentati daca sunt sau nu probleme legate de tratarea exceptiilor intr-un sistem ales de voi.

Saptamana 1

  • inCode. inFusion - pot fi descarcate de aici iar un sistem de test (jhotdraw) poate fi descarcat de aici
  • Some tips every programmer should know

Saptamana 2

Saptamana 3

  • Evaluarea calitatii sistemului open-source ArgoUML folosind inFusion.
  1. Cuantifica similar informatii despre ierarhiile de clasa Overview Pyramid si System Complexity View?
  2. Gasiti pachetele intre care exista dependente ciclice.
  3. Studiati cauzele ce au dus la detectia de God Classes.
  4. Analizati metodele lungi si scurte. Considerati necesare comentariile in cod?

Saptamana 4

  1. Ce abordare folositi pentru a intelege exceptiile dintr-o aplicatie?
  2. Cat de des acordati atentie functionalitatii ce implica tratarea exceptiilor atunci cand scrieti, testati, intelegeti si refactorizati codul-sursa?
  3. Cand incepeti sa va ganditi la situatiile exceptionale care pot sa apara? S-a schimbat in timp aceasta strategie? Daca da, ce a schimbat-o?
  4. Dati un exemplu de situatie in care tratarea exceptiilor in codul sursa a fost foarte importanta.
  5. Dati un exemplu de situatie in care tratarea exceptiilor in codul sursa a putut fi ignorata.
  6. Ce ziceti de rolul Exception Engineer - un programator ce raspunde pentru comportamentul exceptional al sistemelor?
  • How Effective Is Modularization? (Chapter 21 from Making Software)
  • What Does 10x Mean? Measuring Variations in Programmer Productivity Chapter 30 from Making Software)

Saptamana 5

Announcements

21.02.2011 - Pentru o buna organizare a laboratorului, toti studentii sunt rugati sa se inscrie utilizand acest formular. Lista celor inscrisi si repartizarea lor se poate consulta aici Pentru a viualiza inscrierea facuta trebuie sa asteptati cam 5 minute. Repartizarea se va face in ordinea inscrierilor!