Definirea specificatiilor (Milestone 1)

În mod obișnuit, implementarea unui proiect începe prin determinarea specificațiilor sale. Acestea rezultă din discuții, și reiterări ale discuțiilor, între echipa de ingineri și client. La final trebuie să rezulte o serie de user stories, prin care se definește exact și complet modul de interacțiune al unui "utilizator" cu "sistemul". Din user stories se poate crea primul tip de diagramă UML de inters, și anume use cases diagram.


Diagramele de use cases se folosesc pentru a analiza cerințele de nivel înalt ale sistemului. Aceste cerințe sunt exprimate prin diferite cazuri de utilizare. Există trei componente principale ale acestui tip de diagramă:

  1. Cerințe funcționale - reprezentate ca și cazuri de utilizare, ex. un verb care descrie o acțiune.

  2. Actori - interacționează cu sistemul; un actor poate fi o ființă umană, o organizație sau o aplicație internă sau externă.

  3. Relațiile dintre actori și cazurile de utilizare - reprezentate cu ajutorul săgeților drepte.

Exemplul de mai jos descrie interacțiunile dintre doi cei actori posibili și un sistem de injecție pe o masină. Șoferul poate porni, opri motorul sau accelera. Tehnicianul poate accesa datele provenite de la sistemul de injecție. Mai apar două tipuri de relații în diagramă: include și extend.


Include este folosit pentru a extrage fragmente de cazuri de utilizare care sunt duplicate în mai multe alte cazuri de utilizare. Cazul inclus nu poate rămâne singur, iar cazul original de utilizare nu este complet fără cel inclus. De exemplu, în folosirea unui bancomat (ATM), fluxul de evenimente care apare la începutul fiecărui caz de utilizare (introducere card - introduce PIN - afișare meniul principal) este un bun exemplu de includere. Extend este utilizată atunci când un caz de utilizare adaugă pași unui alt caz de utilizare direct accesibil de către un actor. De exemplu, în folosirea unui ATM, cazul de evaluare a taxei de retragere ar extinde extinde retragerea numerarului și ar descrie punctul de extensie condițională care este instanțiat atunci când utilizatorul folosește un alt ATM decât cel al băncii proprii. În același timp, cazul de retragere în numerar poate exista pe cont propriu, fără extensie.

Alte tipuri de diagrame UML comportamentale ar fi:

  • diagrama de activități

  • diagrama de interacțiuni

  • diagrama de timp (timing)

  • diagrama de stări (state machine)

  • diagrama de comunicare

  • diagrama de secvențe (sequence)

În ceea ce privește structura codului proiectului, avem o serie de diagrame UML structurale, precum:

  • diagrama de clase

  • diagrama de obiecte (continând instanțe ale claselor definite)

  • diagrama de componente (foarte utilă pentru lucrarea de licență!)

  • diagrama de structura compozită

  • schema de implementare (deployment), de pachete, de profil etc.


Uneltele ce pot fi folosite pentru a crea diagrame UML variza de la simplu și ieftin, la elaborat și contra-cost. Se pot folosi creionul și hârtia, unelte online (trials, demo), unelte gratuite online (precum draw.io), sau aplicații desktop (precum Visio).


În ceea ce privește aplicațiile mobile, dezvoltarea unei experiente utilizator (UX) optimizate, simplificate, fluente, intuitive - efectiv un UX bun - este unul din dezideratele ce trebuie să fie prioritare pe întreg parcursul dezvoltării. Astfel se va decurge din fazele timpurii ale proiectării la mock-up-uri UI pentri fiecare activitate. Ideea de bază este să se deseneze toate activitățile (interfețele grafice / ecranele / paginile) aplicației, cu toate elementele UI din acestea. Fiecare element grafic va fi instanțiat cu o valoare servind drept exemplu. În loc de name și tel. number se vor scrie efectiv niște exemple, precum George și 0723123456. Pentru fiecare element cu care putem interacționa, se va sugera acțiunea rezultată, de ex. se pornește un serviciu, se citește locația, se formeaza un număr de telefon etc. Mai jos puteți vedea un exemplu complet al unei aplicații de citit emailuri constând din 3 activități. Activitatea MainScreen este exemplificată în două instanțe diferite, la fel si activitatea Create/Edit (cu și fără fereastra de alertă).

Image from Selino's blog , Nov 2013.

Există numeroase unelte online pentru a realiza astfel de diagrame de interfețe grafice, precum draw.io, balsamiq, figma, ninjamock, axure, mockplus, sketch, și o lungă listă aici și aici.


O prezentare mai amănunțită a conceptelor discutate aici vă recomand o prezentare complementară acestui laborator. O puteți accesa aici.


Cerințele voastre pentru milestone 1 (săptămâna 7) sunt realizarea diagramei UML de use cases și o diagramă de interfețe grafice. Important este să aveți în acest moment bine fixate toate detaliile funcționale ale aplicației, să puteți defini exact și complet tot ce poate face utilizatorul în aplicația ce urmează să o dezvoltați voi.