Leertaak 2: Project Vossen & Konijnen



Vergelijkbare documenten
IMP Uitwerking week 13

Algoritmisch Denken: Dodo s Bit Parity

Practicumhandleiding. (versie 2010)

Inhoud Inhoud. Over dit boek 7. 1 Eclipse IDE (Integrated Development Environment) 9. 2 Functionele specificatie 13

Software Test Documentation

Omschrijf bij ieder onderdeel van de methode de betekenis ervan. Java kent twee groepen van klassen die een GUI kunnen maken: awt en swing.

Wereldgodsdiensten. Project Levensbeschouwing 2 e klas St. Nicolaaslyceum. Naam:

MEDMEC01 Q1 JAAR 1. THEMA: het creatieve proces MODULEWIJZER Mediaencreativiteit.pbwiki.com VAKGROEP MEDIA EN CREATIVITEIT

Opdracht 4: Overzichtelijker en generieker

Inhoud. Blz. 3. Blz. 4. Blz. 5. Blz. 7. Blz. 8. Blz. 9. Blz. 10. Opdracht 1 - Brainstormen. Opdracht 2 - Je eigen controller. informatie - makey makey

Vraag 1. Vraag 1a TERUGKOPPELING PROEFTENTAMEN. Software architecture

PHP-OPDRACHT SITE BOUWEN

Titelpagina ONDERZOEKSVERSLAG. Namen: Klas/groep: Cursusjaar: Begeleider: Beoordelaar:

a. Wat wordt verstaan onder V&V? b. Uit welke kernactiviteiten bestaat V&V? c. Noem enkele voor- en nadelen van inspecties. d. Idem voor testen.

Informatica. Objectgeörienteerd leren programmeren. Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele

Extra oefening Probeer de voorbeeldprogramma s uit de LeJOS tutorial en de samples die bij de LeJOS software geïnstalleerd zijn.

Oefeningenexamen Informatica: juni 2015

Acht stappen voor JSF

Project 2: LOTTO simulatie Programmeren I

Programmeren met databanken volgens het lagenmodel in C#

Tentamen Object Georiënteerd Programmeren TI januari 2013, Afdeling SCT, Faculteit EWI, TU Delft

icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous

Design patterns Startbijeenkomst

Opdracht 7a. Applicatiebouw 2014/2015

Een deel van het onderzoek doe je met z n tweeën, het andere deel doe je zelfstandig. Dit onderzoek telt als repetitie A en B.

Programmeren met databanken volgens het lagenmodel in C#

Deel ; Conclusie. Handleiding scripties

Project Objectgericht Programmeren : Deel 3

MEDMEC01 Q1 JAAR 1. THEMA: het creatieve proces MODULEWIJZER Mediaencreativiteit.pbwiki.com VAKGROEP MEDIA EN CREATIVITEIT

PRAKTICUMOPGAVE 1. De eerste prakticumopgave is het maken van een applet om een "Mandelbrotfiguur" te tekenen, zoals hieronder omschreven.

Tentamen Object Georiënteerd Programmeren TI oktober 2014, Afdeling SCT, Faculteit EWI, TU Delft

SECTORPROJECT 4 VMBO - T

Animation. Info-animation Explanimation MARKETING & COMMUNICATIE - DIGITALE VORMGEVING JANUARI 2013

Specialisatie RTES - Project FunnyScreens. Installatie en gebruik van JUnit

Verslag. Projectteam: 107 Datum: 16 oktober 2008 Project leden: Lennard Fonteijn Harish Marhe Nicoletta Saba Turgay Saruhan Robin Tummers

Vergelijking Oracle certificering voor Java en het CPP Gecertificeerd Javaprogrammeur van de Open Universiteit

EDK Walkthrough: Hardwareontwerp met GPIO en UART Deel 1

MINDSTORM LEGO ROBOTS

Cursus Software Architecture (T32311 en T32811)

Indoor Navigation System

Werkomgeving. Android Studio. Android - werkomgeving 1/6

Opdrachtformulering (pagina 3 van 7)

Visual Basic.NET. Visual Basic.NET. M. den Besten 0.3 VB. NET

UML. From weblog Dennis Snippert

Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, uur

Les 4. Webform Inleiding. Voorbereiding

MINDSTORM LEGO ROBOTS

Individueel procesverslag

Zelftest Programmeren in Java

Lesbrief voor leerlingen: hoe ontwerp je een omslag voor een boek

Modeleren. Modelleren. Together UML. Waarvan maken we een model? overzicht les 14 t/m 18. ControlCenter 6.2

Leren programmeren in C# Deel 4 - Objectoriëntatie

Project. 3D-Fraggel. Plan van aanpak. Door: IH1T08 1/1

Werken met het portfolio in itslearning bij het vak CKV

Handleiding JCreator. Inhoud. Een Workspace en een eerste project maken

Software Test Plan. Yannick Verschueren

Statistiek voor Natuurkunde Opgavenserie 1: Kansrekening

Nederlands in Uitvoering

Informatica 2 Studiehandleiding

Zelftest OOAD/UML. Document: N0767Test.fm 30/08/2010. ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium

Sectorwerkstuk

SECTORWERKSTUK

Jaarproject programmeren bij LORE

Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.

Programmeren volgens het lagenmodel in C# met Visual Studio 2013 HA Informaticabeheer Bert Cauwenberg en Lieven Pauwels Werkgroep Handel 2015

Hoe? Taal 1. Waar? Tijd? Extra? SPEL DENK

Project Verwenmorgen voor ouderen organiseren Groepen van 5 leerlingen Totaal: 560 minuten

Sectorwerkstuk

HA DLEIDI G LEEFTIJDSSCA

Selenium IDE Webdriver. Introductie

ONDERZOEK VOOR JE PROFIELWERKSTUK HOE DOE JE DAT?

Kleine cursus PHP5. Auteur: Raymond Moesker

Techniekkaart: Het houden van een interview

Inhoudstafel. UML (Unified Modeling Language)

Verder zijn er de nodige websites waarbij voorbeelden van objectgeoriënteerd PHP (of Objec Oriented PHP, OO PHP) te vinden zijn.

Herinrichting Schoolplein mavo 3

Financieringsverstrekkersportaal. Aansluitdocument

Inhoud. VBA Excel 2010

De voordelen van Drupal

Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 7 november 2014, uur

4 Gedrag. 4.2 Aapt een aap echt na? 4.4 Hoe leven dieren samen in een groep? 4.1 Opdrachten Opdrachten

Studiewijzer. Bachelor Informatica. Inleiding Programmeren Studiejaar en semester: jaar 1, semester 1 (blok 1)

Content tips & tricks

Spreken - Presenteren HV 1. CC Naamsvermelding-GelijkDelen 3.0 Nederland licentie.

Praktijkinstructie Tekstverwerking 1 (CSE12.1/CREBO:53139)

S C I E N C E C E N T E R

project: Behoefteonderzoek

Transcriptie:

Leertaak 2: Project Vossen & Konijnen Tijdens deze leertaak ga je in een projectgroep van minimaal drie, maximaal vier personen werken aan het ontwikkelen van een wat grotere applicatie. De basis is het project Vossen en Konijnen dat je al hebt leren kennen bij het practicum (hfst 10). Tijdens dit project komen alle onderwerpen van dit thema bij elkaar (Java programmeren, ontwerpen met UML, versiebeheer en tooling, het maken van een GUI, etc). N.B. Voor alle opdrachten geldt dat je individueel moet kunnen uitleggen hoe iets werkt. De verschillende tools (Eclipse, SVN, JUnit, debugger) moet je beheersen. Het kunnen werken met deze tools kan deel uitmaken van een individuele beoordeling aan het eind van het project. (zie volgende bladzijde) Leertaak Project Vossen en Konijnen Thema 1.2 De geprogrammeerde applicatie 1

Week 7 Eclipse Als je nog niet gewerkt hebt met Eclipse, download en installeer het dan. Op Blackboard staat informatie over de overgang van BlueJ naar Eclipse (BB->Ondersteunende informatie- >Tutoraat). Oefen wat met Eclipse en importeer het project foxes-and-rabbits-v2. SVN repository Als je nog niet gewerkt hebt met SVN, maak dan een repository aan en installeer TortoiseSVN en de plugin Subclipse. Zie de aanwijzingen aan het begin van leertaak 1 en de aanwijzingen op Blackboard->Ondersteunende informatie->tutoraat. Zet de begincode van jullie project in jullie gezamenlijke repository. Zet vanaf nu alle wijzigingen aan de code in SVN. Main methode Voor het toepassen van een programma buiten BlueJ wordt gebruikt gemaakt van de methode main. Bestudeer bijlage E Java uitvoeren zonder BlueJ die beschrijft hoe je een mainmethode maakt en hoe je een *.jar file maakt. Implementeer die main-methode in je projectcode. Eenvoudige GUI Ontwikkel een eenvoudige GUI (zie voorbeeld) met knoppen voor 1 stap en 100 stappen, zodat je de vossen en konijnen simulatie kunt uitproberen. Steek hier niet teveel tijd in, de volgende weken ga je de GUI aanpassen en uitbreiden. Kijk ook eens naar de vijf Eclipse projecten die in mvcextended.zip zitten, te vinden op Blackboard. Je ziet daar hoe je de applicatielogica en de GUI netjes uit elkaar wordt gehouden. Volgende week ga je echt naar de MVC structuur kijken die in de vijf projecten wordt gebruikt Figuur 1: Eenvoudige GUI Leertaak Project Vossen en Konijnen Thema 1.2 De geprogrammeerde applicatie 2

Junit testen Maak in Eclipse een aantal unittests aan. Maak in je test bijvoorbeeld een (klein) veld aan met een (beperkt) aantal konijnen en test dat die zich op de juiste manier voortplanten. Of maak een veld aan met een aantal vossen en konijnen en test dat de konijnen op de juiste manier worden opgegeten. Zie het BlueJ boek voor uitleg over JUnit en http://www.vogella.de/articles/junit/article.html voor meer details. (EasyMock hoef je niet te bekijken.) Debuggen Gebruik de debugger in Eclipse om een paar keer door een run van vossen en konijnen heen te lopen. Experimenteer met breakpoints, step into, step over en het opvragen van variabelen. Probleemanalyse beschrijven in rapport Maak een opzet van je eindrapport en beschrijf daarin de volgende hoofdstukken. 1 Probleemstelling. Hierin dienen jullie het probleem te beschrijven dat jullie met het maken van dit programma proberen op te lossen. Probeer de probleemstelling generiek (algemeen) en realistisch te formuleren. Dus niet alleen voor vossen en konijnen, maar bijvoorbeeld ook de visstand op de Noordzee of de dierenpopulatie van een eiland in de stille Zuidzee. 2 Analyse van de huidige situatie. Maak een analyse van de basisversie van jullie programma (foxes-and-rabbits-v2). Wat zijn de problemen, wat zijn de verbetermogelijkheden en aan welke functionaliteit heeft de opdrachtgever behoefte? Vragen die je jezelf kunt stellen zijn bijvoorbeeld: - In hoeverre geven de verschillende runs van het programma verschillende dan wel vergelijkbare uitkomsten? - Zijn er trends waarneembaar? - Zijn er overeenkomsten met het van de economie afkomstige principe van de varkenscyclus (googelen!). - Hoe onderhoudbaar/uitbreidbaar is de simulatie? Wat zijn de beperkingen? Werk dit eerste hoofdstuk van jullie verslag netjes uit en stuur dit 24 uur voor de volgende afspraak met je tutor naar hem toe. Leertaak Project Vossen en Konijnen Thema 1.2 De geprogrammeerde applicatie 3

Week 8 Ontwerp Maak een UML klassediagram van je programma. Teken een UML sequencediagram van de werking van het programma wanneer de simulatie 1 stap draait. Neem deze figuren in je rapport op in Hoofdstuk 3 Uitbreiding 1. Verbeteringen aan het programma Voeg de volgende verbeteringen en uitbreidingen toe aan je programma (opdrachten 10.38-10.51 uit BlueJ): - Implementeer de abstracte superklasse Animal. Onderzoek welke methodes abstract kunnen worden en maak die abstract. - Implementeer de interface Actor. - Voeg nog een diersoort toe (wolven, beren, etc.). Bepaal van die nieuwe diersoorten of ze prooi- of jachtdieren zijn. Als deze diersoort zowel vossen als konijnen opeet dan is de vos dus een prooi én een roofdier geworden. Hoe voorkom je het uitsterven van diersoorten? - Voeg een jager toe. Hoe voorkom je dat de jagers elkaar afschieten? - Maak gebruik van testklassen of nog beter J-Unit testen om de zelfgemaakte code te testen. Maak ook een UML klassediagram van je programma ná deze aanpassingen. MVC, refactoring en packagestructuur Bestudeer de structuur van de volgende drie Eclipse projecten die je in mvcextended.zip kunt vinden: MVCDynamicModelThread MVCDynamicModelThreadGeneralized: hetzelfde voorbeeld, alleen waarbij MVC achtige aspecten zoveel mogelijk in abstracte superklassen zitten Life: Een simulatieprogramma dat in de verte lijkt op Vossen en Konijnen, maar waar ook gebruik is gemaakt van bijna dezelfde MVC achtige abstracte superklassen. Overigens bevat dit project twee controllers (met opzet zo gekozen) om ook de flexibiliteit van MVC aan te tonen. In alledrie projecten wordt gewerkt met Threading om er voor te zorgen dat je applicatie nog reageert op knoppen tijdens een simulatie. Threading is tweedejaarsstof en hoef je nog niet te helemaal te snappen. Je kunt er wel je voordeel mee doen in je V&K uitwerking. Vergelijk de uitwerking van MVCDynamicModelThread met MVCDynamicModelThreadGeneralized en vergelijk de uitwerking van MVCDynamicModelThreadGeneralized met Life. Wat zijn de overeenkomsten en verschillen? Vermeld dit in je rapport in Hoofdstuk 4 Het gebruik van MVC in V&K. Beschrijf nu hoe V&K de MVC structuur van Life kan krijgen in datzelfde hoofdstuk. Kies een packagestructuur zoals die wordt gebruikt in Life. Maak een ontwerp (klassediagram + sequencediagram MVC) hoe je programma er dan uit komt te zien. Laat dit ontwerp goedkeuren door je tutor en voer dan de wijzigingen door. Leertaak Project Vossen en Konijnen Thema 1.2 De geprogrammeerde applicatie 4

Maak opgaven 10.55-10.57, maar in plaats van dat je SimulatorView als interface implementeert ga je AbstractView zoals gebruikt in Life extenden met een concrete View subklasse. N.B. Het belangrijkste doel van MVC is om de verschillende onderdelen van de applicatie los te koppelen van elkaar. Een goede check om te kijken of je MVC implementatie correct is, is om te kijken of je een nieuwe view of controller kunt toevoegen zónder dat je het model moet aanpassen. Extra views Breid het project met drie extra views, die in grafische vorm informatie over de simulatie weergeven. Bijvoorbeeld: een histogram, een cirkeldiagram en een historische weergave van de populatie (laatste 100 stappen). Geef elk dier zijn eigen kleur. Verslaglegging De verbeteringen en uitbreidingen die jullie deze week gemaakt hebben dienen uitgewerkt te worden in het verslag. Jullie dienen je verbeteringen en uitbreidingen toe te lichten aan de hand van het presenteren van (gedeeltes van) klassendiagrammen en stukken programmacode. Druk de (relevante) stukken programmacode verkleind af ( bijvoorbeeld lettertype 8). Onderzoek in hoeverre de ontwerpdocumentatie nog overeenstemt met de uiteindelijke implementatie. Pas eventueel de ontwerpdocumentatie aan en beargumenteer waarom je van het ontwerp bent afgeweken. Programmacode illustreer je bijvoorbeeld zo Stuur je bijgewerkte rapport 24 uur voor de volgende afspraak met je mentor naar hem toe. Week 9 Verplichte uitbreidingen - Breid de GUI uit. Maak het mogelijk om de parameters van de diverse diersoorten in te stellen (levensduur, aantal nakomelingen, voortplantingsleeftijd, etc). Zorg ervoor dat deze parameters een default (standaard) startwaarde hebben. Overleg welke grafische componenten je gaat gebruiken. (tekstvelden, knoppen, schuifregelaars, pulldown menu s, etc.) - Betrek de voedselvoorraad van de prooidieren in de simulatie. Bij veel konijnen is er weinig gras en dus minder nakomelingen. Bij weinig konijnen is er veel gras en dus meer nakomelingen. - Probeer op een zinvolle manier plaatjes en/of geluiden toe te voegen. - Bedenk zelf (minimaal 1) zinvolle en originele aanvullingen. Bonus uitbreidingen - Voeg een besmettelijke ziekte toe. Konijnen hebben een (boolean) ziektegen. Als het gen aan is, dan is het konijn vatbaar voor de konijnenziekte. Gemiddeld 90% (instelbaar) van de konijnen is vatbaar voor die ziekte. Als een konijn ziek is, dan is hij gedurende 5 (instelbaar) iteraties besmettelijk (voor zijn buren) daarna sterft het konijn. Hoe breng je de infectie op gang? Wat doet de ziekte met de andere dieren in het ecosysteem? - Demonstreer compilatie en opstarten van jullie programma via de commandline (dus zonder een IDE). Leertaak Project Vossen en Konijnen Thema 1.2 De geprogrammeerde applicatie 5

- Indien jullie als groep nog leuke suggesties hebben om het programma aan te vullen bespreek die dan met je mentor, de implementatie van die suggesties kan ook bonus opleveren. Beschrijf je aanpassingen in het rapport. Schrijf ook een hoofdstuk met conclusies, aanbevelingen en reflectie. Het verslag is uiterlijk de dag voor de eindpresentatie in week 9 om 15:00 uur in het bezit van de docent. Je sluit het project af met een presentatie en een korte demonstratie. Leertaak Project Vossen en Konijnen Thema 1.2 De geprogrammeerde applicatie 6

Inleveren en beoordeling Verslag Het verslag dient minimaal onderstaande te bevatten. - Naam project, naam van de groepsleden, inhoudsopgave en bladzijde nummering. - Een beschrijving van de fouten en problemen die nog in je applicatie aanwezig zijn. - Een beschrijving van je testproces (black-box, white-box en/of regressietesten) - UML: Uitgebreid klassendiagram (incl. methoden, instantievariabelen, scope, stereotypes en static) en de belangrijkste sequencediagrammen. - Javadoc toevoegen aan je code en de HTML pagina s via javadoc tool gegenereren. - Wat zijn de belangrijkste (zelfbedachte) toegevoegde features. - Geef een beschrijving op implementatieniveau (wat zijn de belangrijkste kenmerken van je implementatie, beschrijf dat bv aan de hand van begrippen als afhankelijkheid, cohesie en inkapseling en ontwerpen op basis van verantwoordelijkheden) - Jullie zullen vast wel een keer gerefactord hebben. Geef daar een toelichting op. - Een opsomming van de individuele bijdragen van elk teamlid. - Het verslag dient te voldoen aan de verslagtechnische eisen zoals die in de colleges bedrijfscommunicatie aan de orde zijn gekomen. Code Vraag aan je docent hoe hij de code en javadoc wil ontvangen (mail/cd/papier). De code zal worden beoordeeld op - correctheid - geschikt gebruik van taalconstructies - stijl (commentaar, inspringen, betekenisvolle naamgeving van variabelen) - moeilijkheidsgraad en hoeveelheid functionaliteit - originaliteit en creativiteit - correct gebruik MVC - gebruik van een logische package indeling Eindpresentatie Voor de eindpresentatie dienen jullie een afspraak te maken met je mentor. Jullie dienen dan de applicatie te presenteren/demonstreren aan de docent in een presentatie die zo'n 20-30 minuten zal duren. Jullie schrijven het verslag samen, maar ieder individu moet aanspreekbaar zijn op de inhoud. Beoordeling - Met het verslag kunnen maximaal 3 punten verkregen worden op het inhoudelijke aspect. Daarnaast vind er een aparte beoordeling plaats voor het onderdeel bedrijfscommunicatie. - Met de implementatie van de basisfunctionaliteit kunnen eveneens maximaal 3 punten verkregen worden. - Door de extra functionaliteiten te implementeren kunnen maximaal 3 punten verkregen worden. - De leden van de projectgroep voeren een peerreview uit waarbij een individuele bonus/malus wordt bepaald. - De docent kan een individuele bonus/malus toekennen op basis van zijn waarnemingen of een afsluitend individueel gesprek. - Het uiteindelijke resultaat dient minstens een 5.5 te zijn om te kunnen meewegen in het eindcijfer. Leertaak Project Vossen en Konijnen Thema 1.2 De geprogrammeerde applicatie 7

Herkansing Indien het resultaat minstens een 4.5 is maar minder dan een 5.5, mag de groep uiterlijk in de eerste week van het opvolgende kwartaal een verbeteringsslag uitvoeren. Leertaak Project Vossen en Konijnen Thema 1.2 De geprogrammeerde applicatie 8