Typiske spørgsmål vi kunne tale om til eksamen
Første semester
Emnerne fra 1. semester indgår implicit i pensum. Dvs, at det forventes at du har kendskab til dem og kan anvende dem. I praksis har I jo brugt de fleste Java konstruktioner og teknologier I Carport-projektet, så derfor vil spørgsmål til stoffet som regel tage udgangspunkt I jeres projekt. Men her er en oversigt:
Grundlæggende kendskab til Javaprogrammering:
- Simple datatyper
- Arrays
- Metoder
- Løkker
- Logiske operatorer og kontrolstrukturer
- Objekter, referencer, indkapsling, nedarvning, polymorfi, interfaces
- Collection framework (List, Map, Set)
- Exceptions (try-catch)
- Debugging
- Junit tests
- Scanner
- Skrivning og læsning fra filer
Andet semester
HTTP, servere og netværk
- Hvad er IP numre og porte
- Hvad er DNS?
- Hvad er en protokol og hvilke har vi anvendt på 2. semester?
- Hvad er klient/server princippet?
- Hvordan fungerer en webserver og hvordan henter man en html-side?
- Hvad er http protokollen og GET/POST?
Linux - SSH på droplet
- Hvad er en virtuel maskine / Droplet? Og hvordan satte vi vores VM op? Hint: tjek denne oversigt
- Hvad er ssh? Vis hvordan du logger på din droplet.
- Kan du huske hvad vi gjorde af sikkerhedsforanstaltninger for at sikre os imod diverse angreb?
Postgres på droplet (virtuel maskine)
- Kan du vise hvordan man ser sine databaser på Dropletten?
- Hvordan genstarter man Postgres på Dropletten?
- Hvordan fungerer det med brugeradgang?
- Hvordan overfører man en database fra sin udviklingsmaskine til dropletten?
Database
- Hvad er formålet med normalisering?
- Forklar fordele og ulemper ved normalisering?
- Gør rede for hvad primær- og fremmednøgler er
- Vis et eksempel i Postgres med mindst to tabeller, som er forbundet via en fremmednøgle
- Forklar hvad et join mellem to tabeller er, og hvad formålet med joins er:
- Vis et eksempel i Postgres på en select-sætning, hvor data fra mindst to tabeller joines
- Vis de grundlæggende CRUD operationer i SQL og hvordan de anvendes fra Java
GIT
- Beskriv overordnet hvilken rolle GIT spiller i jeres udviklingsarbejde?
- Beskriv jeres arbejdsgang
- Opstod der nogle problemer undervejs? Beskriv gerne.
- Hvad er en branch – og hvordan bruger man dem?
- Hvordan fungerer Pull Requests - og hvad er formålet med dem?
Webprogrammering Frontend
- Hvordan har I sikret at brugerne får en god oplevelse? Hint: UX/UI design
- Hvad er gestalt love?
- Hvad er responsivt webdesign?
- Kan du forklare jeres navigationsdiagram?
Webprogrammering backend (Javalin)
Beskriv hvordan I har anvendt følgende i Javalin:
- Routing (get/post)
- Kommunikation mellem Front og backend (hint: tjek denne oversigt
- Session scope
- Request scope
- Form parametre
- URL parametre
- ConnectionPool / Datamappere?
Webprogrammering frontend
Beskriv hvordan I har anvendt:
- Thymeleaf
- HTML
- CSS
Arkitektur og mønstre
Tjek evt denne reference om mvc
- Hvad er formålet med en fler-lags arkitektur og hvordan kan det se ud?
- Forklar MVC og hvordan I har evt. har anvendt MVC i jeres kode.
- Hvad er en singleton?
- Objektorientering: encapsulation, high cohesion, low coupling
SVG
- Hvordan har I brugt det I projektet?
Tests og kvalitetssikring
- Tjek reference om teori
- Hvad er en acceptest?
- Hvad er forskellen på black og white box tests?
- Hvad er en unit-test. Vis eksempel i jeres projekt.
- Forklar hvad der foregår i de tre faser: arrange, act og assert
- Vis et kodeeksempel, hvor du tester en metode i praksis
- Hvad er ækvivalens-klasse-partitionering. Vis nogle eksempler.
- Hvad er integrationstest? Vis eksempel i jeres projekt. I behøver ikke selv at lavet koden.
- Fejlhåndtering, consol, log, håndtering i servlet
Fejlhåndtering (Exceptions)
- Hvordan håndteres exceptions i eksamensprojektet?
- Hvordan laver man sine egne exceptions (custom exceptions)?
- Hvad er try-catch-finally?
- Hvad er forskellen på checked og unchecked exceptions?
- Hvad er forskellen på compiletime og runtime fejl?
- Hvordan logges jeres fejl – og hvorfor er logging praktisk?
Domænemodel
- Hvordan laver man en DM?
- Hvad bruges en DM til i systemudviklingsforløbet?
Kanban og user stories:
- Hvad er Kanban?
- Hvad er en User Story? Hvordan beskrives den og hvad indeholder den?
- Hvordan har I arbejdet med jeres krav i semesterprojektet?
- Hvordan organiserer man et Systemudviklingsforløb i KanBan?
- Hvad er DOD (definition of done) og hvordan bruges det?
Diverse diagrammer
Hvad bruger man dem til og typisk hvornår i udviklingsforløbet? Hvem gavner de forskellige diagrammer?
- Usecase-diagram (UML)
- Aktivitets-diagram og denne video (UML)
- Domæne-diagram (UML)
- Tilstandsdiagram / navigationsdiagram (UML)
- ERD
Forretningsforståelse
Forklar hvad disse metoder går ud på og hvad formålet med dem er: