Inleiding Software Engineering! Unit Testing, Contracten, Debugger! 13 Februari 2014!
|
|
- Karolien van Dijk
- 8 jaren geleden
- Aantal bezoeken:
Transcriptie
1 Inleiding Software Engineering Unit Testing, Contracten, Debugger 13 Februari 2014 Beknopte info over Unit Testing en Contracten kan je vinden op het einde van dit document. Eclipse beschikt over een handige debug-perspective. Maak voor dit practicum gebruik van de debug functionaliteit van Eclipse. Google C++ Testing Framework is een framework dat je in staat stelt om je code efficiënt te testen. Er bestaat geen plugin voor Eclipse voor het Google C++ Testing Framework, maar via een omweg je kan je het integreren in Eclipse. We zullen ook gebruik van maken van eenvoudige macroʼs om het werken met contracten aan te leren. Oefening 1: Installeer Het Testing Framework Volg de stappen beschreven in SE1BAC - Laad TicTacToe in Eclipse, om je testing framework op te zetten en een nieuw project aan te maken. Volg volgende tutorial: Oefening 2: Wat zou je testen? Lees eerst de uitleg in Appendix a over Unit Testing. a) Beschouw de volgende functie: int largest(vector<int> list){ /* code */ } Schrijf minstens 5 testen in het Google Test framework voor deze functie. Denk aan Algemene correctheid, Rand gevallen en Fouten. Beschouw volgende (foute) implementatie van bovenstaande functie. Hoeveel van de testen die je hiervoor hebt geschreven falen hierop? In Appendix c kan je een implementatie vinden die beter werkt int largest(vector<int> list){ int max = numeric_limits<int>::max(); for(int i = 0; i < list.size() - 1; i++){ if(list[i] > max){ max = list[i]; } } return max; }
2 b) Beschouw de volgende klasse: Schrijf testen in het Google Test framework voor iedere methode van deze klasse. // // Fighterplane.cpp // // Created by Quinten Soetens on 13/02/14. // Copyright (c) 2014 Quinten Soetens. All rights reserved. // #include <fstream> class Fighterplane{ private: std::string callsign; int x; //positional coordinate int y; //positional coordinate int z; //positional coordinate int ammo; //keeps track of the number of missiles int health; //the remaining hitpoints the plane still has. When this reaches 0 the plane is dead public: //Default constructor will place a new plane with no name at location (0,0,0) Fighterplane() { this->callsign = ""; this->x = 0; this->y = 0; this->z = 0; } //constructor to set a plane on a certain location. //ammo and healt are automaticalle initialized to 10 and 20 respectively Fighterplane(std::string callsign, int x, int y, int z) : ammo(10), health(20){ this->callsign = callsign; this->x = x; this->y = y; this->z = z; } std::string getcallsign(){ return callsign; } //Getter to obtain positional coordinate int getcoords(){ return x; } //Getter to obtain positional coordinate int gety(){ return y; } //Getter to obtain positional coordinate int getz(){ return z;
3 } //Method that allows a plane to move to a new location. void moveto(int x, int y, int z){ this->x += x; this->y += y; this->z += z; } //Method to attack another plane. void attackplane(fighterplane* target){ this->ammo -= 1; target->health -= 5; } //Prints all the information about this fighterplane to a file. void printtofile(std::string filename){ std::ofstream outfile; outfile.open (filename); outfile << "Information about Fighterplane: \n"; outfile << "Callsign: " + callsign + "\n"; outfile << "Position: (" << x << "," << y << "," << z << ")\n"; outfile << "Health: " << health << "\n"; outfile << "Remaining ammo: " << ammo << "\n"; outfile.close(); } }; Oefening 3: Pre- en Post Condities Lees de uitleg in Appendix b over Contracten a) Beschouw de functie uit oefening 2a: Bedenk geschikte pre- en postcondities voor deze functie. b) Beschouw de klasse in Oefening 2b: Bedenk geschikte contracten (pre- en postcondities) voor iedere methode in die klasse. Gebruik de header file: DesignByContract.h om precondities (REQUIRE) en postcondities (ENSURE) te implementeren.
4 Appendix a: Unit Testing Software Testing heeft als doel het evalueren van een bepaalde eigenschap of functionaliteit van een programma of een systeem en te verifiëren dat dit overeenkomt met het verwachtte resultaat. Er zijn verschillende soorten van Software Testing: Unit Testing Verifieert de functionaliteit van een specifiek deeltje code, meestal op een enkele klasse, of een enkele methode. Integration Testing Testen van de samenwerking van enkele modules. System Testing Testen van het volledig geïntegreerde systeem. System Integration Testing Testen van de samenwerking tussen verschillende systemen. Een unit test is code die een heel klein specifiek gedeelte van de functionaliteit van een systeem gaat uittesten. In de meeste gevallen gaat een test één methode uitvoeren in een bepaalde context. Dit wil natuurlijk niet zeggen dat elke methode maar door één test mag getest worden. Neen, je gaat verschillende testen schrijven die eenzelfde methode oproepen in verschillende contexten. Een goede Unit Test is: Herhaalbaar Elke keer dat de test wordt uitgevoerd, moet deze hetzelfde resultaat bekomen. (vermijd randomness, het gebruik van current time, etc ) Onafhankelijk Test één methode per keer. Verschillende testen mogen niet afhankelijk zijn van elkaar. Waardevol Het testen van eenvoudige getter/setter methodes is niet echt waardevol. Grondig Test ALLE pre/post condities, randgevallen, Om grondig te testen, moet je een aantal dingen nakijken: Algemene correctheid Dit zijn meestal de meest eenvoudige testen om te schrijven. Deze testen het algemeen goed gedrag van de use cases. Rand gevallen Orde? Heeft een andere volgorde een effect op het resultaat? Bereik? Hoe reageert het op nul, het minimum, het maximum, positieve waarden, negatieve waarden,.. Bestaat het? Wat als je een nullptr meegeeft als parameter? Wat met lege verzamelingen (lege array, lege list, lege vector, ), wat met lege Strings? Kardinaliteit? Wat is het verwachtte aantal items? Fouten Worden de juiste foutboodschappen gegeven? Wat met I/O issues, zoals ontbrekende bestanden, onleesbare of lege bestanden?
5 Appendix b: Contracten Contracten worden gebruikt om jezelf ervan te verzekeren dat je software juist is opgebouwd. Het is een manier om formeel te documenteren welke functionaliteit een bepaalde functie of methode heeft. Je kan dit programmatisch vast leggen met behulp van asserts (of in ons geval met de macro s ENSURE en REQUIRE, gedefinieerd in DesignByContract.h). We gebruiken REQUIRE voor precondities en ENSURE voor postcondities. REQUIRE legt vast in welke staat het systeem zich moet bevinden alvorens deze functie of methode uit te voeren. ENSURE legt vast hoe de staat van het systeem verandert zal zijn na het uitvoeren van deze functie of methode. Het is de taak van de code die de functie of methode oproept om ervoor te zorgen dat het systeem zich in de juiste staat (zoals beschreven in de preconditie) bevindt. Je moet dus in de functie of methode zelf geen extra controle s meer implementeren en foutboodschappen genereren, wanneer het vanuit de verkeerde toestand wordt opgeroepen. Deze controle s en foutboodschappen moeten dus in de oproepende kant worden geïmplementeerd. Elke kant van een methode/functie oproep haalt voordelen uit een contract, maar moet wel zijn verplichtingen nakomen: Contract Voordelen Verplichtingen Methode of functie met pre- en postcondities (de PROVIDER) Code die de provider oproept (de CLIENT) - Geen nood om de unput waarden na te kijken. - De input voldoet gegarandeerd aan de preconditie. - Geen nood om de output waarden na te kijken. - Het resultaat voldoet gegarandeerd aan de postconditie. Moet er voor zorgen dat de postconditie voldaan is. Moet er voor zorgen dat aan de precondities van de Provider voldaan wordt.
6 Appendix c: Een betere implementatie voor de functie largest #include <exception> #include <vector> using namespace std; class IllegalArgException: public exception{ const char* message; public: IllegalArgException(const char * message){ this->message = message; } virtual const char* what() const throw(){ return message; } }; int largest2(vector<int>* list) { if(list == nullptr) { throw new IllegalArgException("list cannot be nullptr"); }else if(list->empty()){ throw new IllegalArgException("list cannot be empty"); } int max = numeric_limits<int>::min(); for(int i = 0; i < list->size(); i++){ if(list->at(i) > max){ max = list->at(i); } } return max; }
Datastructuren Werkcollege Intro
Bart Hijmans, Universiteit Leiden. Universiteit Leiden The Netherlands Focus 1 19 ˆ Ervaring in gebruik en implementatie van datastructuren ˆ Kennis van mogelijkheden ˆ Programmeren voor andere programmeurs
Nadere informatieIntroductie in C++ Jan van Rijn. September 2013
Introductie in C++ Jan van Rijn September 2013 Inhoud Classes Overerving Const correctness Standard C++ library Templates Classes Voordelen van classes: Modelleren Modulariteit Informatie afschermen Makkelijk(er)
Nadere informatieProgrammeren in C++ Efficiënte zoekfunctie in een boek
Examen Software Ontwikkeling I 2e Bachelor Informatica Faculteit Wetenschappen Academiejaar 2010-2011 21 januari, 2011 **BELANGRIJK** 1. Lees eerst de volledige opgave (inclusief de hints/opmerkingen)!
Nadere informatievoegtoe: eerst methode bevat gebruiken, alleen toevoegen als bevat() false is
PROEF-Tentamen Inleiding programmeren (IN1608WI), X januari 2010, 9.00-11.00, Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Open boek tentamen: bij het tentamen mag alleen gebruik worden gemaakt
Nadere informatieChris de Kok 223548 TDI 3. Vak: Software Architectuur Datum: 21-01-2008 Docent: Fons van Kesteren
Chris de Kok 223548 TDI 3 Vak: Software Architectuur Datum: 21-01-2008 Docent: Fons van Kesteren Inhoud Inleiding... 3 Black box / White box... 3 XP... 3 SimpleTest... 3 Eclipse plugin... 4 GroupTest...
Nadere informatieint getaantalpassagiers{): void setaantalpassagiers(int aantalpassagiers);
bestand voertuig.h biz. 1 van 2 #ifndef VOERTUIG H #define VOERTUIG H #include using std::string; class Voertuig { public: Voertuig(); Voertuig(const string& inschrijvingsnumrner, const string&
Nadere informatieNAAM: Programmeren 1 Examen 21/01/2011
Programmeren 1 21 januari 2011 Prof. T. Schrijvers Instructies Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien). Geef ook je kladbladen af. Bij heel wat vragen moet
Nadere informatieNAAM: Programmeren 1 Examen 29/08/2012
Programmeren 29 augustus 202 Prof. T. Schrijvers Instructies Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien). Geef ook je kladbladen af. Bij heel wat vragen moet je
Nadere informatieCorrespondentie inzake overnemen of reproductie kunt u richten aan:
5 - Mockito Vrijwel alle namen van software- en hardwareproducten die in deze cursus worden genoemd, zijn tegelijkertijd ook handelsmerken en dienen dienovereenkomstig te worden behandeld. Alle rechten
Nadere informatieVakgroep CW KAHO Sint-Lieven
Vakgroep CW KAHO Sint-Lieven Objecten Programmeren voor de Sport: Een inleiding tot JAVA objecten Wetenschapsweek 20 November 2012 Tony Wauters en Tim Vermeulen tony.wauters@kahosl.be en tim.vermeulen@kahosl.be
Nadere informatieNAAM: Programmeren 1 Examen 31/08/2011
Programmeren augustus 0 Prof. T. Schrijvers Instructies Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien). Geef ook je kladbladen af. Bij heel wat vragen moet je zelf
Nadere informatieDatatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.
Algemeen C# Variabele Een variabele is een willekeurige waarde die word opgeslagen. Een variabele heeft altijd een datetype ( De soort waarde die een variabele bevat). Datatypes Een datatype is de sort
Nadere informatieExamen Software Ontwikkeling I 2e Bachelor Informatica Academiejaar Januari, **BELANGRIJK** : Schrijf je naam onderaan dit blad
Examen Software Ontwikkeling I 2e Bachelor Informatica Academiejaar 2006-2007 23 Januari, 2007 **BELANGRIJK** : Schrijf je naam onderaan dit blad Leg volgende 3 begrippen kort en bondig uit : a. Concurrent
Nadere informatieProject Software Engineering XML parser: Parsen van een xml CD catalogus
Project Software Engineering XML parser: Parsen van een xml CD catalogus Brent van Bladel brent.vanbladel@uantwerpen.be February 16, 2017 XML (Extensible Markup Language) is een taal waarmee we op een
Nadere informatieProject network. Gebaseerd op paragrafen , uit het boek. We simuleren een sociaal netwerk
Project network Gebaseerd op paragrafen 10.1-10.7, 11.1-11.6 uit het boek. We simuleren een sociaal netwerk Er zijn twee soorten berichten: tekstberichten en fotoberichten,... voorgesteld door de klassen
Nadere informatieDOMjudge teamhandleiding
judge DOMjudge teamhandleiding Samenvatting /\ DOM DOM judge Hieronder staat de belangrijkste informatie kort samengevat. Dit is bedoeld om snel aan de slag te kunnen. We raden echter ten zeerste aan dat
Nadere informatieTentamen Inleiding Programmeren (IN1608WI), duur van de toets 2 uur Technische Universiteit Delft, Faculteit EWI, Afdeling 2.
Tentamen Inleiding Programmeren (IN1608WI), duur van de toets 2 uur Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Gesloten boek examen: er mag geen gebruik worden gemaakt van het studieboek.
Nadere informatieExamen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar juni, 2010
Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar 2009-2010 16 juni, 2010 **BELANGRIJK** 1. Schrijf je naam onderaan op elk blad. 2.
Nadere informatieTENTAMEN Programmeren 1 VOORBEELDUITWERKING
TENTAMEN Programmeren 1 vakcode: 213500 datum: 28 november 2002 tijd: 13:30 17:00 uur VOORBEELDUITWERKING Algemeen Bij dit tentamen mag gebruik worden gemaakt van het boek van Niño/Hosch, en van de handleiding
Nadere informatieTentamen Formele Methoden voor Software Engineering (213520)
Tentamen Formele Methoden voor Software Engineering (213520) 15 april 2010, 8:45 12:15 uur. BELANGRIJK: geef op je tentamen duidelijk aan: je studierichting of je beide huiswerkopgaven gemaakt hebt, en
Nadere informatieHoe snel loopt iemand de 100 meter? 4. Planning. Schatting door analogie. Vereisten
Hoe snel loopt iemand de 100 meter? Tijdsschatting + Analogie & Decompostie + Empirische schatting - Plan 2.0 & Plan 2.1 Conclusie versie 1.7 en 1.8 - Player. winner() Enkele vuistregels + Hollywood principe
Nadere informatieModelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 6 december 2013 Terugblik Programma en geheugen Opdrachten Variabelen Methoden Objecten Klasse Programma en geheugen Opdrachten Variabelen zijn gegroepeerd in
Nadere informatieTentamen Object Georiënteerd Programmeren TI1200 30 januari 2013, 9.00-12.00 Afdeling SCT, Faculteit EWI, TU Delft
Tentamen Object Georiënteerd Programmeren TI1200 30 januari 2013, 9.00-12.00 Afdeling SCT, Faculteit EWI, TU Delft Bij dit tentamen mag je geen gebruik maken van hulpmiddelen zoals boek of slides. Dit
Nadere informatieProgrammeren (1) Examen NAAM:
Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien) en geef zowel klad als net af. Bij heel wat vragen moet je zelf Java-code schrijven. Hou dit kort en bondig. Je hoeft
Nadere informatieDesign principes.
Design principes joost.vennekens@kuleuven.be Motivatie Software projecten mislukken vaker Vaker dan bouwkunde Vaker dan EM Vaker dan Oorzaak? Omgaan met verandering Vereisten Technologie Externe systemen
Nadere informatieKleine cursus PHP5. Auteur: Raymond Moesker
Kleine cursus PHP5 Auteur: Raymond Moesker Kleine cursus PHP PHP is platform en CPU onafhankelijk, open source, snel, heeft een grote userbase, het is object georiënteerd, het wordt omarmd door grote bedrijven
Nadere informatieHoe snel loopt iemand de 100 meter? 4. Planning
Hoe snel loopt iemand de 100 meter? 1 Tijdsschatting + Analogie & Decompositie + Empirische schatting - Plan 2.0 & Plan 2.1 Conclusie TicTacToe17 en TicTacToe18 - Player. winner() Enkele vuistregels +
Nadere informatieProgrammeren 1 20 januari 2012 Prof. T. Schrijvers
Programmeren 1 20 januari 2012 Prof. T. Schrijvers Instructies Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien). Geef ook je kladbladen af. Bij heel wat vragen moet
Nadere informatieProgrammeertechnieken Week 7
Programmeertechnieken Week 7 Tim Cocx, Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/pt2017/ "Confidence in Code" "Ons programma / onze module is af, maar hoe weten we nu of alles werkt?"
Nadere informatiePagina 1/6. Joris Van Geet! :59 Comment: 1pt voor iteratief 1pt voor incrementeel niets voor een voorbeeldje
Nota: Schrijf je antwoorden kort en bondig in de daartoe voorziene velden. Elke theorie-vraag staat op 2 punten, elke oefening op 8 punten. Het geheel staat op 40 punten. Vraag 1...[.../2] Definieer de
Nadere informatie{ specificatie (contract) en toelichting }
Programmeren Blok B Drie aspecten van routines http://www.win.tue.nl/ wstomv/edu/2ip05/ College 7 Tom Verhoeff Technische Universiteit Eindhoven Faculteit Wiskunde en Informatica Software Engineering &
Nadere informatieWie ben ik? Agile Software Development. Het waterval model. Inhoud
gile Software Development Februari 2008, Philippe Dirkse Wie ben ik? 2002: fgestudeerd TU/e 1999-2005: Mondo izzarro, rystal Interactive, Siemens tea 2005 heden: PTS: Leica Microsystems SES/MiPlaza Inhoud
Nadere informatieAanvullende toets Gameprogrammeren Woensdag 5 januari 2011, uur
Dit tentamen is in elektronische vorm beschikbaar gemaakt door de TBC van A Eskwadraat. A Eskwadraat kan niet aansprakelijk worden gesteld voor de gevolgen van eventuele fouten in dit tentamen. Aanvullende
Nadere informatieCorrespondentie inzake overnemen of reproductie kunt u richten aan:
Vrijwel alle namen van software- en hardwareproducten die in deze cursus worden genoemd, zijn tegelijkertijd ook handelsmerken en dienen dienovereenkomstig te worden behandeld. Alle rechten voorbehouden.
Nadere informatieTeamhandleiding DOMjudge (versie 2.2.0muKP) 31 mei 2008
judge Teamhandleiding DOMjudge (versie..0mukp) 31 mei 008 /\ DOM DOM judge Inhoudsopgave 1 Inleiding Samenvatting.1 Inlezen en wegschrijven............................... Insturen van oplossingen...............................3
Nadere informatieVoorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.
Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, 14.00-15.30, Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Dit tentamen bestaat uit twee delen. Deel 1 (14.00-14.45, gesloten
Nadere informatieTentamen Object Georiënteerd Programmeren TI1206 29 oktober 2014, 9.00-11.00 Afdeling SCT, Faculteit EWI, TU Delft
Tentamen Object Georiënteerd Programmeren TI1206 29 oktober 2014, 9.00-11.00 Afdeling SCT, Faculteit EWI, TU Delft Bij dit tentamen mag je geen gebruik maken van hulpmiddelen zoals boek of slides. Digitale
Nadere informatieC++ programmeermethoden Bachelor Kunstmatige Intelligentie
C++ programmeermethoden Bachelor Kunstmatige Intelligentie 1e Deeltentamen Datum: 28 maart 2016 Tijd: 13.00-14.30 Aantal pagina s: 8 (inclusief voorblad) Aantal vragen: 5 Maximaal aantal te behalen punten:
Nadere informatie4EE11 Project Programmeren voor W. College 2, , Blok D Tom Verhoeff, Software Engineering & Technology, TU/e
4EE11 Project Programmeren voor W College 2, 2008 2009, Blok D Tom Verhoeff, Software Engineering & Technology, TU/e 1 Onderwerpen Terugblik Functies Organisatie (architectuur) van programma s Arrays Structuren
Nadere informatieUniversiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren
Universiteit van Amsterdam FNWI Voorbeeld van tussentoets Inleiding programmeren Opgave 1: Wat is de uitvoer van dit programma? public class Opgave { static int i = 0 ; static int j = 1 ; int i = 1 ; int
Nadere informatieUitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, 13.30 15.30 uur
Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, 13.30 15.30 uur 1. deze opgave telt voor 30% van het totaal. Schrijf een compleet programma, dat door de gebruiker vanaf
Nadere informatieSoftware Test Plan. Yannick Verschueren
Software Test Plan Yannick Verschueren Maart 2015 Document geschiedenis Versie Datum Auteur/co-auteur Beschrijving 1 November 2014 Yannick Verschueren Eerste versie 2 December 2014 Yannick Verschueren
Nadere informatieVoorbeeld: Simulatie van bewegende deeltjes
Voorbeeld: Simulatie van bewegende deeltjes Simulatie - object Ruimte - objecten Deeltje - objecten Button - objecten Simulatie Samenhang van objecten sim geërfd van Form stap zelf gedeclareerd auto r1
Nadere informatieEM6250 Firmware update V030507
EM6250 Firmware update V030507 EM6250 Firmware update 2 NEDERLANDS/ENGLISH Table of contents 1.0 (NL) Introductie... 3 2.0 (NL) Firmware installeren... 3 3.0 (NL) Release notes:... 5 1.0 (UK) Introduction...
Nadere informatieTentamen Objectgeorienteerd Programmeren IN1205 Voorbeeld
Tentamen Objectgeorienteerd Programmeren IN1205 Voorbeeld Afdeling ST Faculteit EWI TU Delft Bij dit tentamen mag u gebruik maken van: Barnes, Object-Oriented Programming with Java en de Notitie Algoritmiek
Nadere informatieTENTAMEN Programmeren 1 VOORBEELDUITWERKING
TENTAMEN Programmeren 1 vakcode: 213500 datum: 10 juli 2004 tijd: 9:00-12:30 uur VOORBEELDUITWERKING Algemeen Bij dit tentamen mag gebruik worden gemaakt van het boek van Niño/Hosch, en van de handleiding
Nadere informatieAcademie voor ICT en Media 2013/2014
Academie voor ICT en Media 2013/2014 Toets Opleiding BI CMD I IDM ISM TI Voltijd Deeltijd Duaal Lokatie Den Haag Zoetermeer Delft 1e afname moment herkansing Verantwoordelijke docent John Visser Module
Nadere informatieIMP Uitwerking week 13
IMP Uitwerking week 13 Opgave 1 Nee. Anders moet bijvoorbeeld een venster applicatie een subklasse zijn van zowel Frame en WindowListener. Als de applicatie ook een button of een menu heeft, dan moet het
Nadere informatieObject Oriented Programming
Object Oriented Programming voor webapplicaties Door Edwin Vlieg Waarom OOP? Basis uitleg over OOP Design Patterns ActiveRecord Model View Controller Extra informatie Vragen OOP Object Oriented Programming
Nadere informatieINFORMATICA 1STE BACHELOR IN DE INGENIEURSWETENSCAPPEN
INFORMATICA 1STE BACHELOR IN DE INGENIEURSWETENSCAPPEN voorbeeldexamen NAAM :... OPMERKINGEN VOORAF Je krijgt 3 uur de tijd om de opdrachten voor dit examen uit te voeren. Verder werken aan je oplossing
Nadere informatie4EE11 Project Programmeren voor W. College 4, , Blok D Tom Verhoeff, Software Engineering & Technology, TU/e
4EE11 Project Programmeren voor W College 4, 2008 2009, Blok D Tom Verhoeff, Software Engineering & Technology, TU/e 1 Onderwerpen Controleren (verificatie) van software - Pair programming - Code review
Nadere informatieHoe snel loopt iemand de 100 meter? 4. Planning. Schatting door analogie. Vereisten
Hoe snel loopt iemand de 100 meter? Tijdsschatting + Analogie & Decompostie + Empirische schatting - Plan 2.0 & Plan 2.1 Conclusie TicTacToe17 en TicTacToe18 - Player. winner() Enkele vuistregels + Hollywood
Nadere informatieHoe snel loopt iemand de 100 meter? 4. Planning
Hoe snel loopt iemand de 100 meter? 1 Tijdsschatting + Analogie & Decompostie + Empirische schatting - Plan 2.0 & Plan 2.1 Conclusie TicTacToe17 en TicTacToe18 - Player. winner() Enkele vuistregels + Hollywood
Nadere informatieALGORITMIEK: answers exercise class 7
Problem 1. See slides 2 4 of lecture 8. Problem 2. See slides 4 6 of lecture 8. ALGORITMIEK: answers exercise class 7 Problem 5. a. Als we twee negatieve (< 0) getallen bij elkaar optellen is het antwoord
Nadere informatieTENTAMEN Programmeren 1
TENTAMEN Programmeren 1 vakcode: 213500 datum: 15 augustus 2002 tijd: 13:30 17:00 uur Algemeen Bij dit tentamen mag gebruik worden gemaakt van het boek van Niño/Hosch, en van de handleiding van Programmeren
Nadere informatieZelftest Programmeren in Java
Zelftest Programmeren in Java Document: n0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST PROGRAMMEREN IN JAVA Deze test
Nadere informatieUitwerking Tweede deeltentamen Imperatief programmeren - versie 1 Vrijdag 21 oktober 2016, uur
Uitwerking Tweede deeltentamen Imperatief programmeren - versie 1 Vrijdag 21 oktober 2016, 13.00-15.00 uur 1. De situatie die ontstaat door class A : B C D; kan beschreven worden door (a) B is een A (b)
Nadere informatieTesten van Java code met JML
Testen van Java code met JML Engelbert Hubbers Martijn Oostdijk Erik Poll University of Nijmegen Testen met JML p.1/23 Overzicht De specificatietaal JML voor Java Wat voorbeelden van JML specificaties
Nadere informatieTentamen Objectgeorienteerd Programmeren TI februari Afdeling ST Faculteit EWI TU Delft
I ' Tentamen Objectgeorienteerd Programmeren TI 1200 1 februari 2012 9.00-12.00 Afdeling ST Faculteit EWI TU Delft Bij dit tentamen mag je geen gebruik maken van hulpmiddelen zoals boek of slides. Dit
Nadere informatieHOGESCHOOL VAN AMSTERDAM Informatica Opleiding. CPP 1 van 10
CPP 1 van 10 ADSdt 1-2009 TENTAMENVOORBLAD Voor aanvang van het tentamen s.v.p. de tentamengegevens goed doorlezen om eventuele misverstanden te voorkomen!! Naam student : Studentnummer : Groep : Studieonderdeel
Nadere informatieDie inputs worden op een gecontroleerde manier aangeboden door (test) stubs. De test driver zorgt voor de uiteindelijke uitvoering ervan.
Nota: Schrijf je antwoorden kort en bondig in de daartoe voorziene velden. De puntenverdeling is 2 punten per theorie-vraag en 8 punten per oefening. Het totaal is 40. Vraag 1. Er bestaan verschillende
Nadere informatie2.1! Ontdek de 7 verschillen!
2.1! Ontdek de 7 verschillen! 2.2! Een oplossing met een foutje! 2.3! Software Engineering! Wat?! Bouw vs. Ontwikkel! Vereisten! 2. (Aanpasbaarheid & Planning)! Betrouwbaarheid: TicTacToe! specificatie!
Nadere informatiepublic boolean equaldates() post: returns true iff there if the list contains at least two BirthDay objects with the same daynumber
Tentamen TI1310 Datastructuren en Algoritmen, 15 april 2011, 9.00-12.00 TU Delft, Faculteit EWI, Basiseenheid Software Engineering Bij het tentamen mag alleen de boeken van Goodrich en Tamassia worden
Nadere informatieDatastructuren: stapels, rijen en binaire bomen
Programmeermethoden Datastructuren: stapels, rijen en binaire bomen week 12: 23 27 november 2015 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Inleiding In de informatica worden Abstracte DataTypen (ADT s)
Nadere informatieSoftware Test Plan. Yannick Verschueren
Software Test Plan Yannick Verschueren November 2014 Document geschiedenis Versie Datum Auteur/co-auteur Beschrijving 1 November 2014 Yannick Verschueren Eerste versie 1 Inhoudstafel 1 Introductie 3 1.1
Nadere informatieTentamen Formele Methoden voor Software Engineering (213520)
Tentamen Formele Methoden voor Software Engineering (213520) 2 juli 2009, 13:30-17:00 uur. BELANGRIJK: geef op je tentamen duidelijk aan: je studierichting of je beide huiswerkopgaven gemaakt hebt, en
Nadere informatieDergelijke functionaliteit kunnen we zelf ook aan eigen code toevoegen.
Indexers in C#.Net In deze tutorial ga ik het hebben over indexers. Bij het gebruik van bijvoorbeeld een ArrayList object, kan je de gegevens uit deze collectie opvragen als ware het een array. // ArrayList
Nadere informatieInhoudsopgave. Hoofdstuk 1.RMI...2
- CORBA Inhoudsopgave Hoofdstuk 1.RMI...2 1.1.Inleiding...2 1.2.De remote...4 1.3.Het remote...5 1.4.De server...6 1.5.De server opstarten...8 1.6.De client applicatie...8 1.7.De stub en skeleton en...10
Nadere informatieElementary Data Structures 3
Elementary Data Structures 3 Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 29 september 2014 ODE/FHTBM Elementary Data Structures 3 29 september 2014 1/14 Meer
Nadere informatieEen typisch programma in C en C++ bestaat uit een aantal onderdelen:
Eerste stappen in C. Een typisch programma in C en C++ bestaat uit een aantal onderdelen: /* Alles wat op meerdere lijnen staat zoals hier is commentaar. */ // Dit is commentaar op 1 lijn. Geldig tot einde
Nadere informatie{ specificatie (contract) en toelichting }
Programmeren Blok A Drie aspecten van routines http://www.win.tue.nl/ wstomv/edu/2ip05/ College 5 Kees Hemerik Tom Verhoeff Technische Universiteit Eindhoven Faculteit Wiskunde en Informatica Software
Nadere informatieEngels op Niveau A2 Workshops Woordkennis 1
A2 Workshops Woordkennis 1 A2 Workshops Woordkennis 1 A2 Woordkennis 1 Bestuderen Hoe leer je 2000 woorden? Als je een nieuwe taal wilt spreken en schrijven, heb je vooral veel nieuwe woorden nodig. Je
Nadere informatieVoorbeeld. public class BankRekening {
OCL Constraints Eigenschappen die op bepaalde momenten altijd voldaan moeten zijn Belangrijk voor bug-vrije programma s Contract tussen implementator & gebruiker Vier soorten Preconditie: conditie die
Nadere informatiepublic Bier ( string N, double P, Brouwerij B) { Naam = N; AlcoholPerc = P; Brouwer = B;
Beschouw bijvoorbeeld de twee onderstaande klassen, waarvan de attributen en eigenschappen geannoteerd zijn met bijkomende XML-annotaties: using System ; using System. Xml ; using System. Xml. S e r i
Nadere informatieInleiding C++ Coding Conventions
Inleiding C++ Coding Conventions Opleiding Bachelor of Science in Informatica, van de Faculteit Wetenschappen, Universiteit Antwerpen. Nota s bij de cursus voor academiejaar 2012-2013. Ruben Van den Bossche,
Nadere informatieVraag 1... Ieder risico in een risico analyse moet geschat worden voor wat betreft zijn impact... en zijn kans/propabiliteit...
Nota: Schrijf je antwoorden kort en bondig in de daartoe voorziene velden. Elke theorie-vraag staat op 2 en elke oefening op 8 punten. Het geheel staat op 40. Vraag 1... Ieder risico in een risico analyse
Nadere informatieTentamen Formele Methoden voor Software Engineering (213520)
Tentamen Formele Methoden voor Software Engineering (213520) 16 april 2009, 9.00-12.30 uur. BELANGRIJK: geef op je tentamen duidelijk aan: je studierichting of je beide huiswerkopgaven gemaakt hebt, en
Nadere informatieHoofdstuk 1: Inleiding. Hoofdstuk 2: Klassen en objecten Datahiding: afschermen van implementatiedetails. Naar de buitenwereld toe enkel interfaces.
Hoofdstuk 1: Inleiding Objectoriëntatie: 1. Objecten & klassen: samenwerking van componenten om bepaald doel te bereiken; herbruikbaarheid. 2. Encapsulation: afschermen gedragingen en kenmerken van de
Nadere informatieOnline c++ leren programmeren:
Online c++ leren programmeren: Inhoud 1)Waar vind ik een c++ compiler?... 2 2)Hoe start ik een programma in c++?... 2 3)Een eerste c++ programma:... 3 Een eerste programma schrijven:... 3 Mijn eerste programma
Nadere informatieAPPLICATIEBOUW 3E COLLEGE: OBJECT GEORIËNTEERD PROGRAMMEREN, METHODEN, PARAMETERS, SCOPE VAN VARIABELEN. Onderdeel van SmartProducts
APPLICATIEBOUW 3E COLLEGE: OBJECT GEORIËNTEERD PROGRAMMEREN, METHODEN, PARAMETERS, SCOPE VAN VARIABELEN Onderdeel van SmartProducts INHOUD COLLEGE 3 Scope van variabelen {3.9} Class ontwerpen en maken,
Nadere informatieNHibernate als ORM oplossing
NHibernate als ORM oplossing Weg met de SQL Queries Wat is ORM? ORM staat in dit geval voor Object Relational Mapping, niet te verwarren met Object Role Modeling. ORM vertaalt een objectmodel naar een
Nadere informatieTurn legacy code into clean code! Jeroen Mengerink David Baak
Turn legacy code into clean code! Jeroen Mengerink David Baak Agenda Introductie Legacy code voorbeeld Unittests maken Wat is refactoren Legacy code refactoren Wat zijn SOLID principes SOLID principes
Nadere informatieWWW.EMINENT-ONLINE.COM
WWW.EMINENT-OINE.COM HNDLEIDING USERS MNUL EM1016 HNDLEIDING EM1016 USB NR SERIEEL CONVERTER INHOUDSOPGVE: PGIN 1.0 Introductie.... 2 1.1 Functies en kenmerken.... 2 1.2 Inhoud van de verpakking.... 2
Nadere informatieDesign principes.
Design principes joost.vennekens@kuleuven.be Doelstelling Code die werkt doet wat klant wil betrouwbaar is gemakkelijk te veranderen is En dit ook blijft doen Software rot Rottende software geeft geurtjes
Nadere informatieKwis (3) class X { public void a() { System.out.println("x"); public static void main(string[] args) { X x = new X();
Kwis (3) class X { public void a() { System.out.println("x"); class Y extends X { public void a() { System.out.println("y"); class Z extends Y { public void a() { System.out.println("z"); public static
Nadere informatieUitwerkingen Tweede deeltentamen Imperatief programmeren Vrijdag 15 oktober 2010, 11.00-13.00 uur
Uitwerkingen Tweede deeltentamen Imperatief programmeren Vrijdag 15 oktober 2010, 11.00-13.00 uur 1. (2 punten per deelvraag) Deze opgave bestaat uit een aantal tekstvragen. Houd het antwoord kort: een
Nadere informatieExamen Programmeren I 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar juni 2011
Examen Programmeren I 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar 2010-2011 juni 2011 **BELANGRIJK** 1. Schrijf je naam onderaan op elk blad. 2.
Nadere informatieOrganiseer uw verschillende SOAP services in één scenario
1 Organiseer uw verschillende SOAP services in één scenario Wouter Luijten wouterluijten@creetion.com 2 Introductie Tijdens de implementatie van een proces heeft u vaak te maken met een veelvoud aan services.
Nadere informatieUitwerkingen derde deeltentamen Gameprogrammeren Vrijdag 6 november 2015, uur
Uitwerkingen derde deeltentamen Gameprogrammeren Vrijdag 6 november 2015, 11.00-13.00 uur 1. Deze opgave bestaat uit een aantal deelvragen. Houd het antwoord kort: één of twee zinnen per onderdeel kan
Nadere informatieCorrespondentie inzake overnemen of reproductie kunt u richten aan:
Vrijwel alle namen van software- en hardwareproducten die in deze cursus worden genoemd, zijn tegelijkertijd ook handelsmerken en dienen dienovereenkomstig te worden behandeld. Alle rechten voorbehouden.
Nadere informatieCorrespondentie inzake overnemen of reproductie kunt u richten aan:
5 - Mockito Vrijwel alle namen van software- en hardwareproducten die in deze cursus worden genoemd, zijn tegelijkertijd ook handelsmerken en dienen dienovereenkomstig te worden behandeld. Alle rechten
Nadere informatieProgrammeren in Java les 3
4 september 2015 Deze les korte herhaling vorige week loops methodes Variabelen Soorten variabelen in Java: integer: een geheel getal, bijv. 1,2,3,4 float: een gebroken getal, bijv. 3.1415 double: een
Nadere informatieProgrammeren 3. 1. Het gesloten boek examen 1.1
Programmeren 3 1. Het gesloten boek examen Het gesloten boek examen bestaat uit meerkeuzevragen of vragen waarin gevraagd wordt een stukje code te schrijven of om het resultaat van een stuk code te voorspellen.
Nadere informatieProgrammeren 1 23 januari 2013 Prof. T. Schrijvers
Programmeren 1 23 januari 2013 Prof. T. Schrijvers Instructies Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien). Geef ook je kladbladen af. Bij heel wat vragen moet
Nadere informatieQuick start guide. Powerbank MI Mah. Follow Fast All rights reserved. Page 1
Quick start guide Powerbank MI 16.000 Mah Follow Fast 2016 - All rights reserved. Page 1 ENGLISH The Mi 16000 Power Bank is a very good backup option for those on the move. It can keep you going for days
Nadere informatieProgrammeermethoden. Recursie. week 11: november kosterswa/pm/
Programmeermethoden Recursie week 11: 21 25 november 2016 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Pointers Derde programmeeropgave 1 Het spel Gomoku programmeren we als volgt: week 1: pointerpracticum,
Nadere informatieModelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 13 december 2013 Terugblik Fibonacci public class Fibonacci { public static void main(string[] args) { // Print het vijfde Fibonaccigetal System.out.println(fib(5));
Nadere informatieNSPYRE LEGO MINDSTORMS UITDAGING (JAVA) INLEIDING. DOEL: SIMULATOR:
NSPYRE LEGO MINDSTORMS UITDAGING (JAVA) INLEIDING. Door mee te doen aan deze uitdaging kan je Nspyre laten zien wat je kan. Schrijf jij de beste oplossing dan is deze lego mindstorms nxt 2.0 set voor jou.
Nadere informatieModelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 18 december 2015 Overerving (inheritance) Constructors Overriding Inheritance demo Exceptions Zelf exceptions veroorzaken Overerving (inheritance) 2-dimensionaal
Nadere informatie