Skip to content
ericpostolache edited this page Jan 8, 2020 · 2 revisions

Documentul de Proiectare a Soluţiei Aplicaţiei Software (Software Design Document)

Version 1.0

8 Ianuarie, 2020

Caricatur App - Aplicație pentru crearea unei caricaturi

Echipa:

  • Postolache Eric, Project Manager, Developer, Tehnical Writer
  • Cremenescu Raul, Developer, Designer
  • Stefanescu Andreea, Developer, Tester
  • Mormocea Daniela, Developer, Tester
  • Labusca Teodora, Developer, Tester
  • Bagrin Radu, Developer

1. Scopul documentului

Acest document are rolul de a descrie detaliat structura și componentele sistemului software, ale aplicației noastre: Caricatur App. Mai mult, documentul faciliteaza intelegerea proiectului, oferind o vedere mai largă de proiectare a acestuia.

2. Obiective

Obiectivul acestui proiect este realizarea unei aplicatii pentru mobil, Android, pentru a facilita obtinerea unei caricaturi dintr-o poza.

Aplicatia are doua moduri de a obtine fotografia de caricaturizat:

  • Prin selectarea acesteia din Galeria
  • Prin crearea unei poze noi folosind camera dispozitivului

Dupa selectarea fotografiei, se pot aplica filtre asupra ei si caricaturi asupra ei. La final, aceasta se poate salva in telefon.

3. Conţinutul documentului

Documentul este format din patru secţiuni esenţiale:

  • Modelul datelor – prezintă principalele structuri de date folosite, precum şi schema bazei de date
  • Modelul arhitectural şi modelul componentelor – prezintă şabloanele arhitecturale folosite, arhitectura sistemului şi descrie componentele arhitecturii
  • Modelul interfeţei cu utilizatorul – prezintă interfaţa cu utilizatorul şi succesiunea ferestrelor acesteia
  • Elemente de testare – prezintă componentele critice şi alternative de proiectare a acestora.

4. Modelul datelor

4.1 Structuri de date globale

Nu folosim structuri de date globale.

4.2 Structuri de date de legătură

Nu folosim structuri de date de legatura.

4.3 Structuri de date temporare

Structurile de date temporare folosite sunt Bitmap-uri pentru a pastra imaginile incarcate ce urmeaza a fi editate.

4.4 Formatul fișierelor utilizate

Aplicația folosește fișiere .Java ce implementează functionalitatile și .xml ce implementează designul aplicației.

5. Modelul arhitectural și modelul componentelor

5.1 Arhitectura sistemului

5.1.1. Sabloane arhitecturale folosite

Proiectul nostru a fost proiectat după modelul de arhitectural Android Model View Presenter.

  • View - interfata pasiva in care se face legatura intre utilizator si logica din spate a aplicatiei. Este reprezentata prin View-uri.

  • Model - Api-ul de la Google pentru detectia faciala.

  • Presenter - utilizatorul care doreste obtinerea unei caricaturi

5.1.2 Diagrama de arhitectura

5.2 Descrierea componentelor

Componenta View contine activități pentru fiecare acțiune/fereastra. Aplicația se axeaza pe interactiunea cu utilizatorul, deoarece toate datele necesare sunt setate de către acesta. Partea de back-end, componenta Model, se ocupa de realizarea caricaturii si salvarea acesteia in galeria telefonului.

5.3 Restricțiile de implementare

Modulele aplicației trebuie sa acopere următoarele restricții de implementare:

  • Componentele View si Model vor fi dezvoltate utilizând limbajul de programare Java.
  • Respectarea în scrierea codului a “Android code style guidelines”.
  • Interfața grafica va fi implementată folosind Android framework.

5.4.1 Diagrama claselor

6. Modelul interfeței cu utilizatorul

6.1 Ferestrele aplicației

6.2.1 Fereastra principala (Main)

Din aplicatia principala se selecteaza daca utilizatorul doreste sa incarce o poza din galerie sau sa faca o poza pe loc

6.2.2 Fereastra de caricaturizare (ImageWorkActivity)

De aici utilizatorul vede aplicatia incarcata si are mai multe posibiltati:

Poate aplica un filtru de editare a pozei si apoi poate apasa pe butonul de caricaturizare care va genera o caricatura aleatoare folosind urmatoarele:

  • doua filtre de ochi se aleg aleator la fiecare ochi
  • 3 culori de buze: rosu, albastru si verde

Rezultatul caricaturii poate fi vazut aici:

Dupa obtinerea caricaturii, utilizatorul are doua optiuni:

  • apasarea butonului de reset pentru resetarea pozei la starea initiala
  • apasarea butonului de salvarea a caricaturii, care readuce utiliazatorul la pagina initiala

7. Elemente de testare 7.1 Elemente critice

Elementul critic al aplicatiei este reprezentat de API-ul de recunoastere faciala care se misca destul de greoi pe dispozitivile mai vechi.

7.2 Alternative

O alternativa la aceasta problema este API-ul dezvoltat de firebase care va fi testat si implementat in viitor daca se observa o imbunatatire a performantei cu acesta.