Göm menyn

TDDD80 Projekt: Mobila och sociala applikationer

Projekt-examination


Muntlig slutredovisning

Mot slutet av kursen ska systemet redovisas muntligt inför andra studenter i klassen, kursens lärare, samt eventuella externa åhörare. Redovisningen är stationsbaserad och delas upp i två pass. Vid varje pass bemannar hälften av studenterna var sin "redovisningsstation", den andra hälften cirkulerar och tittar på de system som redovisas. Vid sin redovisningsstation ska studenten vara förberedd på att:
  • Berätta om systemets syfte och målgrupp. Vilket problem löser systemet och på vilket sätt?
  • Demonstrera hur systemet fungerar genom att visa typiska användningsfall, med fokus på de poänggivande krav som man anser sig ha uppfyllt.
  • Demonstrera koden för labbassistent samt redovisa coverage för enhetstestning.

Betygsnivåer

Betygsättning sker enligt ett antal grundkrav, samt ett poängbaserat system.
Grundkrav
  • Allmänt: Systemet ska ha en specifik målgrupp och lösa ett äkta problem på ett professionellt sätt.
  • Kodkvalitet: Koden ska vara välstrukturerad, välkommenterad och allmänt lättläst. Vid inlämning ska en .readme fil medfölja, med tydliga anvisningar för hur systemet ska byggas. Alla nödvändiga libraries etc ska inkluderas i inlämningen.
  • Socialt: Minst 3p sociala funktioner (se poängsystemet nedan). Systemets sociala funktioner ska implementeras från grunden. (För övriga funktioner såsom inloggning etc kan väl valda API:er användas.)
  • Testning: Coverage för enhetstestning ska vara minst 40%. Du väljer själv om du gör det för server-koden (python) eller för klient-koden (java/android), du behöver inte göra det för bägge kodbaserna. Som verktyg till enhetstesting använder du antigen PyUnit (python) eller JUnit (java), eller något likvärdigt. Som mätverktyg för coverage använvder du något som passar bra med din utvecklingsmiljö (det är ok att använda den som finns inbyggd i pyCharm för python). (Generellt är det lättare att testa och mäta coverage på python koden.) Redovisas genom att demonstrera för labbassistenten.
  • Användbarhet: Systemet (i slutgiltigt skick) ska användbarhetstestas med 5 användare som är representativa för målgruppen. De användbarhetsmått som ska användas är uppgiftsframgång, användbarhetsproblem, samt SUS. Deltagarna ska utföra minst 4 icke-triviala uppgifter. Testets utförande och resultat ska redovisas i en välskriven rapport om max 4 A4-sidor som lämnas in till din labbassistent i PDF-format via e-post. All information som behövs presenteras på föreläsningen om utvärderingsmetoder.
Poängsystem
Betyg 3: minst 4p. Betyg 4: minst 6p. Betyg 5: minst 8p.
  • Arbetsplanering
    1. Server-labbar inlämnade i tid. (1p)
    2. Android-labbar inlämnade i tid. (1p)
  • Sociala funktioner
    1. Gilla informationsobjekt (inklusive undo). (1p)
    2. Kommentera informationsobjekt. (1p)
    3. Följa andra användares aktivitet. (1p)
    4. Hantera vänner (etablering och terminering av en vänskapsrelation, samt visning av vänners status). (1p)
    5. Övriga sociala funktioner (ska godkännas av labbassistent/kursledare). (1p)
  • Användning av sensorer (på ett för systemets syfte och målgrupp naturligt sätt)
    1. Kamera. (1p)
    2. GPS. (1p)
    3. Övrig sensor (ska godkännas av labbassistent/kursledare). (1p)
  • Tekniska lösningar
    1. Navigering i appen mha navgraphs fullt ut, även i list-detail (1 p)
    2. Hantering av rotation, genom att bl.a. använda två navgraphs för list-detail skärmar (1 p)
    3. Användning safeargs för att skicka argument mellan fragment, samt förklaring i kodkommentarer av fördelen med safeargs jämtemot att skicka argument mha Bundle och set/getargs. (1 p)
    4. Låter ViewModel hantera fragmentets state, så att argument inte behöver tas emot ("packas upp") explicit i fragmentet (1 p)
    5. Användning av ViewModel och LiveData för att hålla UI:t synkat mot lokala data eller från backend. (1 p)
      Användbara länkar:
      1. Android developer pages > Guides > ViewModel
      2. Room with a View (i Codelab)
      3. Kodgenomgång av data binding (i Codelab)
    6. Använder shared VIewModel för list-details del i appen (1 p)
    7. Använder både MutableLiveData och LiveData för att abstrahera och skydda data i ViewModel från otillbörlig ändring (1 p)
    8. Google Sign-in (1 p)
    9. Geofencing (1 p)
  • Användbarhet
    1. Rapporten om användbarhetstestet ska utökas med en tabell som innehåller en uppdelning av de identifierade användbarhetsproblemen enligt allvarlighetsgrad. Tabellen ska ha fyra kolumner. En kolumn för allvarlighetsgraden (låg, medel, hög), en kolumn för beskrivningen av problemet, en kolumn som beskriver problemets påverkan på användbarupplevelsen, en kolumn som beskriver antalet användare som upplevt problemet. (1p)
    2. Rapporten om användbarhetstestet ska utökas med 1 A4-sidas beskrivning och motivering av åtgärdsförslag för de allvarligaste användbarhetsproblemen som identifierats. OBS: kräver nivå 1 (dvs. att föregående punkt är genomförd). (1p)

Sidansvarig: Rita Kovordanyi
Senast uppdaterad: 2023-01-30