OO ontwerpen

2009 januari examen

De vragen zijn redelijk uitgebreid op het examen, met wat code bij of UMLschema's daarom slechts de onderwerpen waarover de vragen gingen:

  1. Decorator pattern
  2. Template pattern
  3. Singleton pattern
  4. Naamloze implementatie van interface
  5. Oefeningen op patterns
  6. Collecties + oefeningen

2011 januari examen

  1. Bespreek observer java built in en vergelijk met eigen inplementatie. Geef voor en nadelen. (/10)
  2. Een opgave waar je je eigen UML moet maken, patterns meegeven en uitleggen waarom. (/20)
  3. Collections. De 4 main dingen Queue, list, set, map (/10)
  4. Decorator typisch uml en per klasse uitleg geven (/10)
  5. Pseudo code verwerken met solid (/10)
  6. Java code i.v.m. singleton synchronized (/10)

2012 januari examen

Vraag 1:

Gegeven: Situatieschets van een bedrijf waarvoor je een encryptiesoftware moet bedenken, die op drie verschillende manieren kan encrypteren/decrypteren.

Vraag 2:

Gegeven: De klasse FitnessAbonnement van een plaatselijke fitness. Ze voorzien 3 extra's: groepslessen, DVDverhuur en frisdrank tijdens de fitness. Er is dan ook een methode voorzien om de prijs (met eventuele extra's) van het abonnement te berekenen.


Vraag 3:

Gegeven: een klassendiagram met een verduidelijkende tekst over de werking ervan.

2013 januari examen

Er waren drie grote vragen en enkele kleinere vragen bij.

2015 januari examen

Drie grote vragen.

Vraag 1:

Vraag 2:

Een gebruiker vraagt een programma waarbij hij een even aantal getallen wilt ingeven en pas stopt bij een willekeurig getal. Deze lijst kan dan eventueel gemanipuleerd worden (sorteren, schudden, ...). Deze eventuele gemanipuleerde lijst kan dan wiskundige bewerkingen ondergaan bij het uitprinten (per paar van 2 optellen of aftrekken of vermenigvuldigen, ...). Een inleescode voor de lijst getallen is gegeven.

De vraag luidt: schrijf door middel van een template een implementatie van dit programma. Programma 1 moet dan gewoon inlezen en elk paar van 2 optellen. Programma 2 moet ze ook nog eens sorteren en langs achter beginnen om elk paar af te trekken. (voorbeeld output programma 2: rij getallen = 2 4 5 6 8 1 0 3 5 4, sorteren = 0 1 2 3 4 4 5 5 6 8, output = 2 0 0 1 1)

Vraag 3:

Gegeven is een uitleg over een schaakprogramma met een beknopt klassendiagram. Men wilt het schaakprogramma uitbreiden, hiervoor wordt een tekst voorzien. Geef voor elk patroon in de tekst een UML en de motivatie.

2016 januari examen

Drie grote vragen.

Vraag 1: (/5)

Observer, factory, state

Vraag 2: (/3)

Ook basisimplementatie van voorgaande gegeven.

Vraag 3: (/3)

2017 januari examen

Vraag 1:

Gegeven een uitleg en een uitgebreid UML van een winkelapplicatie

Vraag 2:

Gegeven een uitleg, state chart diagram, een test en output van een poort in een metrostation. Geef de code voor de toegangspoort en de states om de gegeven output van de test te krijgen. (Dit is ongeveer de opgave, maar herinner mij niet meer 100%) Statechart:

OOO_2017_-_State_toegangspoort.jpg

Test:
  ToegangsPoort poort = new Toegangspoort();
  poort.scan(new ToegangsBewijs(7));
  poort.doorlopen();
  //Geldig toegangsbewijs scannen en doorlopen
  poort.scan(new ToegangsBewijs(0));
  poort.doorlopen();
  //Geen beurten meer
  poort.doorlopen();
  //doorlopen zonder te scannen
  ToegansBewijs bewijs = new ToegangsBewijs(4);
  poort.scan(bewijs);
  poort.scan(bewijs);
  poort.doorlopen;
  //2 keer achter elkaar scannen
  poort.afsluiten();
  poort.scan();
 Output:
  "Geldig bewijs - Loop door"
  "Reiziger loopt door"
  "Geen beurten meer"
  "ALARM!"
  "ALARM!"
  "Geldig bewijs - Loop door"
  "Terugbetaling gebeurt"
  "Reiziger loopt door" (Denk dat dit een fout is, heb ook zo op het examen gezegd anders kun je gewoon 2 keer scannen en gratis doorlopen)
  "Einde van de dag - aantal Reizigers: 4" (Is hoevaak er gescand is, maar eigenlijke aantal reizigers is 2, ook een fout denk ik...?)
  "Metrostation is dicht"

Vraag 3:

Gegeven een sort methode:

public Person [] sort(Person[] persons, String sortalgoritme, Comparator<Persons> comparator) {
     Person[] sortedpersons = persons;
     if (sortalgoritme.equals("Quick") {
        //sort using quicksort algoritme
     }
     if (sortalgoritme.equals("Random") {
        //sort using randomsort algoritme
     }
     return sortedPersons; 
}

2018 januari examen

Vraag 1:

Gegeven code van een klasse om een bestand in te lezen per letter (character), code van een klassen om tekst (String) letter per letter uit te lezen, code van de launcher, een UML-diagram van het decorator-patroon. Men wilt bovenop het inlezen een bestand/tekst, deze kunnen manipuleren, zo bijvoorbeeld de tekst omzetten naar camelcase, spaties tussen iedere letter plaatsen, alle spaties verwijderen...

Vraag 2:

Gegeven een UML-diagram voor het spel Tic-Tac-Toe, dat het MVC model volgt.

Vraag 3:

Gegeven een stuk code, ruwweg de volgende:

public class Compression {
    public void compress(List<File> files, File targetFile, String algorithm) {
        if (algortithm.equals("zip") {
            // Do ZIP compression
        } else if (algorithm.equals("rar") {
            // Do RAR compression
        } else {
            throw new IllegalArgumentException("Algorithm not found");
        }
    }
}

2020 januari examen

Examen bestond uit 4 vragen en je had 2h30 tijd.

Vraag 1: (/2)

public Player {
    playCD()
    showMovie()
    playRadio(int frequentie)
}
public DVDPlayer implements Player {
    public playCD() { //implementation }
    public showMovie() { //implementation }
    public playRadio(int freq) { throw error }
}

Vraag 2: (/3)

Vraag 3: (/5)

Vraag 4: (/5)

public Abonnement {
   constructor
   getters en setters van frisdranken handdoeken en groepsSport
   public getPrijs() {
       int prijs = 30;
       if (groepsSport)
           prijs+=10;
       if (frisdranken)
           prijs+=5;
       if (handdoeken)
           prijs += 15;
   }
}

2020 juni examen

theorie:

letterlijk theorie vragen van dat word document

-wat zijn de 3 wrapper klasses en waar verschillen zij in

-vergeten

praktijk:

1 grote oefeningen waar je 3-4 patronen in UML moest tekenen

maak gebruik van !MVC model, strategy,observer,factory,..?

verhaaltje over state en hier UML van maken en paar klassen uitschrijven(punten pakker)

verhaalte over decorator toepassen, uml tekenen en paar klassen uitschrijven (het ging over ijsjes, sommige willen ijsje met saus, nootjes en andere ijsje met snoep, nootjes,snoep (punten pakker)

groetjes aan de familie,  kirito-kun

algemeen

Vanaf 2019-2020

Dit vak wordt gegeven door Patrick Fox, die zijn vak erg goed beheerst. Er zijn twee sessies in de week: eenmaal een praktische zitting om aan de projecten te werken en eentje waarbij wat concepten uit het handboek verder besproken worden omdat die nodig zijn voor het succesvol uitwerken van het project.

Tegen het einde van het semester wordt er verwacht dat je in groep een programmeeropdracht uitvoert. Het project begint na de herfstvakantie en je krijgt enkel user stories en er wordt bij elke user story aangegeven waar/hoe je patronen moet toepassen. Hiervoor moet je ook een vrij uitgebreid verslag maken (met mooie UML). Dit project moet tegen de Kerstvakantie af zijn en staat op 25% van de punten. Tijdens het examen is er ook een theoriegedeelte dat ook meetelt voor 25%. Het praktijkgedeelte van het examen staat dus nog op 50%, volledig schriftelijk en gaat over het toepassen van de patronen (zie vragen laatste paar jaren).


Tot 2018-2019

Dit vak wordt o.a. gegeven door Patrick Fox, die zijn vak erg goed beheerst. Er zijn twee sessies in de week: eenmaal een praktische zitting om aan de projecten te werken en eentje waarbij wat concepten uit het handboek verder besproken worden omdat die nodig zijn voor het succesvol uitwerken van de projecten.

Doorheen het semester krijg je twee programmeeropdrachten die je in groep moet uit te voeren. Eén voor de herfstvakantie waarbij er steeds gezegd wordt waar/hoe je het patroon van die week moest toepassen. Dit project wordt op het einde nagekeken door Fox, maar staat niet op punten. Het tweede project begint na de herfstvakantie en je krijgt enkel use stories en je moet zelf zien waar/hoe je patronen wilt toepassen. Hiervoor moet je ook een vrij uitgebreid verslag maken (met mooie UML). Dit project moet tegen de Kerstvakantie af zijn en staat op 25% van de punten. Halverwege het semester is er ook een theorietest die ook meetelt voor 25%. Het examen in Januari staat dus nog op 50%, volledig schriftelijk, 3u de tijd en gaat over het toepassen van de patronen (zie vragen laatste paar jaren).

2022 januari examen

Theorie:

letterlijk theorie vragen van dat word document

1 Gaten kazen tekst waar je de 2 principles en 2 patterns moest in invullen aan de hand van de rest van de zin
2 Een UML state diagram met wat uitleg tekst die je dan moest omzetten naar een UML class diagram, hierin zat een abstracte classe
2.1 De abstracte classe hun java code schrijven

Praktijk:

1 UML classe diagram maken van een groot probleem omschrijving
2 Wanneer er op een knop in de probleem omschrijving wordt gedrukt, wat zal er dan gebeuren, schrijf lijn per lijn de weg op dat het afleged (dus naar welk bestand het gaat) 
3 De Launchclasse van de probleem omschrijving opschrijven
4 Java code van een controller opschrijven


-Succes xoxo