Objekt-orienterad Programmering och Design (2016)

Laborationer

Under kursen kommer ni att genomföra tre olika laborationer. Två av dessa är av programmeringskaraktär, och redovisas muntligen under laborationspassen. Den tredje är en analys av kod, och ska lämnas in skriftligen. Mer information kommer att anslås under kursens gång.

Laboration 1 - Arv och dynamisk bindning

Laboration 2 - MVC och design patterns

Laboration 3 - Analys av existerande kodbas

Laboration 3 görs i grupp precis som de föregående delarna. Inlämning görs via Fire här: https://xdat09.ce.chalmers.se/2016/lp3/oop/

Steg 1: Identifiera kodbas

Hitta en sammanhängande kodbas att utgå ifrån, hur spelar (nästan) ingen roll. Det kan vara något publikt bibliotek ni hittar på t ex GitHub, något ur Javas standardbibliotek, en kodbas ni skrivit själva tidigare (som är rimligt relevant och håller vettig kvalitet), etc. Det enda kravet är att det inte är kod som tagits från undervisningsmaterial (e.g. i kurs från GU eller Chalmers, annat universitet, Coursera, el dyl). Rimlig storlek är 10-20 classes/interfaces, men det är inget hårt krav. Huvudsaken är att den valda kodbasen låter er utföra resten av uppgifterna. Prata med mig (Niklas) om ni är osäkra på om den kodbas ni tänker er är lämplig.

Steg 2: Beskriv kodbasen med ett UML-diagram

Rita ett UML-diagram som beskriver de klasser/interfaces, samt relationer mellan dessa, som finns i er valda kodbas. Gör en avvägning kring relationer till externa klasser/interfaces (dvs klasser/interfaces som inte är en del av kodbasen); ta me de relationer som känns viktiga för att klargöra kodbasens design, utelämna de som inte gör det.

Steg 3: Analysera kodbasens design

Analysera kodbasen utifrån de principer vi diskuterat i kursen. Peka ut något (minst en sak) som bryter mot någon av principerna - sådant finns garanterat, medvetet eller omedvetet gjort - och förklara hur det bryter mot principen i fråga. Identifiera och förklara (minst) tre olika användningar av design patterns vi tagit upp i kursen.


Uppdaterad: 7 March 2016 av Niklas Broberg