"Het Watertorenproject"

Werkcollege Elektrotechniek

Alle info aangeduid met  is niet noodzakelijk en enkel voor de super-geďnteresseerden

Java-experten
      Cristina Boca:     cboca@etro.vub.ac.be    KE.2.23   tel: (02/629) 3951
      Jan Lemeire:      jan.lemeire@vub.ac.be    4K226     tel: (02/629) 2997

Documentatie

Programma's



Evaluatiecriteria van je code

Dit zijn de evaluatiecriteria:

  1. Correctheid

  2. Begrijpbaarheid: gebruik logische namen, indenteer correct (!!) en kuis je code op (!!).

  3. Flexibiliteit: aanpasbaarheid & uitbreidbaarheid

  4. Herbruikbaarheid: delen van je code kunnen gebruikt worden om andere problemen op te lossen.

Om dit te bereiken heb je ten eerste de principes van gestructureerd programmeren (zie Modula-2 project)

  1. Duidelijke naamgeving (dan is niet veel documentatie nodig). Tip: gebruik Refactor => Rename in Eclipse om namen in 1x aan te passen over het gehele project.

  2. Documenteer niet-triviale code. Er is wel gevraagd een handleiding te schrijven. Die moet sowieso de structuur van je programma uitleggen, voor bepaalde details kan je naar de code verwijzen. Er moet zeker een schema met de codestructuur gedocumenteerd worden!!

  3. Geen redundantie, geen dubbele code.

Ten tweede heb je de mogelijkheden die Object-geöriënteerd programmeren biedt:

  1. Encapsulatie: een object vormt een logisch geheel die een bepaald aspect van je probleem oplost. Je steekt niet alles in 1 object, maar verdeelt de verschillende verantwoordelijkheden over verschillende objecten (zo bekom je duidelijke en herbruikbare code). Je zorgt ervoor dat niet alle objecten met elkaar praten, want dan krijg je spagetticode.

  2. Overerving (inheritance): gemeenschappelijke onderdelen worden in hoofdklasses gestoken, specificiteiten in subklasses. Zo bekom je herbruikbaarheid en flexibiliteit.

  3. Polymorfisme & abstractie: een abstracte klasse of een interface definieren een abstract concept. Dit concept kan dan gebruikt worden in delen van je programma, die onafhankelijk van de concrete invulling van het concept worden! Dit zorgt voor de uitbreidbaarheid van je programma. Een interface definieert wat een bepaald deel van je programma moet kennen van een ander.

Tracht flexibiliteit en herbruikbaarheid te bereiken voor de volgende aspecten (vanaf aspect 6 gaat het om uitdagingen en om het behalen van onderscheidingen of zelfs felicitaties van de java-jury):

  1. Scheiden toren - regelaar: Hoe je de torenelementen aanspreekt staat los van het regelsysteem. Die kunnen gemakkelijk en op 1 plaats aangepast worden. Die kunnen herbruikt worden in andere programma's. Ook het aanspreken van de seriele poort gebeurt in een aparte klasse (SerialPortCommunications).

  2. Scheiden regelaar - GUI: Je regelprogramma bevat dus enkel de intelligentie van het regelen. Ze staat los van de details om torenelementen aan te spreken en ook los van de GUI. Je regelprogramma staat best los van de GUI, zodat ze zonder de GUI kan werken. De GUI moet natuurlijk wel het regelprogramma kennen.

  3. Regelaar voor echte en simulatie: Je kan je regelprogramma gebruiken voor de echte toren of de simulatie of beide samen.

  4. GUI voor echte en simulatie: De GUI van de simulatie kan ook gebruikt worden voor het tekenen van de toestand van de echte toren.

  5. Meerdere regelaars: Je maakt het mogelijk dat meerdere regelprogramma's gemaakt kunnen worden waartussen je kan kiezen.

  6. Herbruik regelaars: Je regelprogramma kan gebruikt worden voor een ander regelprobleem, bvb als termostaat van de verwarming.

  7. Toevoegen devices: Nieuwe hydrodevices kunnen gemakkelijk toegevoegd worden. In de mate van het mogelijke. Dit is niet altijd 100% te bereiken. Je regelprogramma bvb is afhankelijk van de devices, of niet soms? Flexibiliteit is niet altijd mogelijk.



Oefeningen   (Documentatie standaard Java packages)

   Voorbeeld 'Vrienden': wat is object-geöriënteerd programmeren?

    1. Download de klasse Persoon en de klasse OefeningVrienden  op je pc.

    2. Start Eclipse , hij zal je vragen waar je je workspace wilt hebben. Maak een folder bij jou files (bvb 'java'). Vink 'Remember my decision' aan. Eclipse bied je dan een welkom-pagina met een introductie aan, je kan die skippen met (rechtsboven).

    3. Maak een nieuw java projekt in Eclipse en geef het een naam. Eclipse maakt een folder met die naam aan. Download de files onder de map src in de map gemaakt door Eclipse.

    4. Selecteer het projekt en druk F5 om te refreshen, jou files verschijnen nu onder Default Package. Open hem.

    5. Run de file OefeningVrienden  door ergens in de file te staan, rechtermuisknop te drukken en kies Run As ... Java Application.

      • Als hij naar de klasse met de main vraagt, kies OefeningVrienden.

      • Na de eerste keer, kan je het laatst gebruikt programma opnieuw runnen met de run button .

    Uitbreiding vrienden-voorbeeld: Leugenaars en Ontkenners

  Aanspreken watertoren via de seriele poort



    Simulatie van de watertoren



    Test-oefening: hoe goed is uw basiskennis van java? Voorspel de output van het programma.
                    Tip: analyseer eerst hoe de klasses met elkaar relateren.


    Meer over java:


- Back to the top -