Testen van Java code met JML
|
|
- Thijs Molenaar
- 8 jaren geleden
- Aantal bezoeken:
Transcriptie
1 Testen van Java code met JML Engelbert Hubbers Martijn Oostdijk Erik Poll University of Nijmegen Testen met JML p.1/23
2 Overzicht De specificatietaal JML voor Java Wat voorbeelden van JML specificaties Runtime assertion checking en testen met JML Andere JML tools voor statische analyse, programmaverificatie,... Testen met JML p.2/23
3 De specificatietaal JML Testen met JML p.3/23
4 JML (Java Modeling Language) Formele specificatietaal voor Java, waarmee je het gedrag van Java classes kunt beschrijven ontwerp/implementatie-beslissingen kunt documenteren door middel van asserties, voor bijv. precondities postcondities invarianten (zoals Design-By-Contract in Eiffel, maar expressiever) JML begonnen door Gary Leavens, maar uitgegroeid tot breder initiatief. Doel: JML te begrijpen voor iedere Java programmeur. Testen met JML p.4/23
5 JML (Java Modeling Language) Om JML begrijpelijk & bruikbaar te maken: JML gebruikt gewone Java syntax, uitgebreid met een paar keywords JML specs staan gewoon in de Java source file, als speciaal soort commentaar, na of Testen met JML p.5/23
6 JML voorbeeld: invarianten private int balance; final static int MAX_BALANCE; invariant 0 <= balance balance < MAX_BALANCE; Invariant moet gelden ná de constructor-aanroep, en zowel vóór als ná elke methode-aanroep. Testen met JML p.6/23
7 JML voorbeeld: precondities requires amount >= 0; public int debit(int amount) {... } Preconditie is een verplichting voor klanten van deze methode. Testen met JML p.7/23
8 JML voorbeeld: postcondities requires...; ensures balance == public int debit(int amount) {... } Postconditie is garantie aan klanten van deze methode. Een pre-/postconditie paar wordt wel een contract genoemd. Testen met JML p.8/23
9 JML voorbeeld: exceptions requires...; ensures...; signals (DebitException) amount > public int debit(int amount) {... } exceptional postconditie specifeert wanneer een bepaalde exceptie gegooid kan worden. Testen met JML p.9/23
10 private Object[] obs; JML voorbeeld: assert... for (k=0; k<obs.length & obs[k]!=null; k++); (\forall int i; 0 <= i && i < k; obs[i]!= null); assert specificeert eigenschap op een willekeurig punt in code. Zit inmiddels in Java 1.4, maar JML is expressiever (door bijv. \old of \forall). Testen met JML p.10/23
11 Voordelen van JML Betere documentatie van code, door het expliciet maken van aannames en ontwerpbeslissingen (met name als invarianten) in formele ipv. natuurlijke taal Een formele taal is preciezer, en maakt tool support mogelijk, bijvoorbeeld bij testen... Testen met JML p.11/23
12 Testen met JML Testen met JML p.12/23
13 Runtime assertion checking Speciale compiler [Gary Leavens & Yoonsik Cheon, Iowa] vertaalt JML annotaties naar runtime checks: tijdens executie worden alle asserties getest (dwz alle preen postcondities, invarianten, asserts,... ) schendingen van asserties resulteren in een runtime error Testen met JML p.13/23
14 Testen met JML Runtime assertion checking is handig tijdens het testen. De JML specs dienen dan als test oracle. JML specs geven eigenschappen die we kunnen testen. De testcode hiervoor krijgen we gratis. Deze testcode doet veel tests, op veel tijdstippen tijdens de executie, en geeft dus goede feedback. Testen met JML p.14/23
15 Voordelen van JML bij testen (1) Betere feedback bij testen, over de locatie en de reden van fouten. Bijv. na 10 seconden Invariant violated in line ipv. na 100 seconden NullPointerException in line Informatie over oorzaak ipv. symptomen van het probleem. Testen met JML p.15/23
16 Voordelen van JML bij testen (2) Ingewikkelde testcode wordt automatisch gegenereerd. Bijv. voor requires amount >= ensures balance == \old(balance)-amount; signals (DebitException) amount > balance; public int debit(int amount) {... wordt de \old(balance) gelogd, de exception afgevangen en opnieuw gegooid, en eventuele invarianten worden getest. Testen met JML p.16/23
17 jmlunit JML kan gecombineerd worden met JUnit, een populair regressie-testing framework voor Java ( Enige invoer nodig voor testen: voor elke type een lijst met waarden/objecten van dat type Bijv., gegeven Purse[] purses = {new Purse(), new Purse(10)}; int[] ints = {-9, -1, 0, 1, 2, 10, 100, Integer.MAX_VALUE}; wordt de debit methode aangeroepen op alle purses met alle mogelijke int s, en worden alle schendingen van asserties (muv. de eerste preconditie!) gerapporteerd. Testen met JML p.17/23
18 Andere JML tools Testen met JML p.18/23
19 Statische analyse Ambitieuzer dan run-time testen: probeer (mogelijke) schendingen van asserties te detecteren bij compile-time. Voordelen kan éérder in de ontwikkel-cyclus; kan meer zekerheid bieden: analyse is niet afhankelijk van test-sets, maar beschouwt willekeurige inputs. Maar: in hoeverre is dit mogelijk? Testen met JML p.19/23
20 JML tools voor statische analyse static checking met ESC/Java [Compaq, Leino et al] automatische verificatie van eenvoudige JML annotaties Bijv, verificatie dat er nooit een IndexOutOfBounds- of NullPointerException kan optreden. Niet sound, niet volledig, maar vindt snel veel bugs. programmaverificatie met LOOP tool [Nijmegen] interactieve verificatie van willekeurig ingewikkelde JML annotaties mbv. stellingbewijzer Wel sound en volledig, maar vereist veel gebruikerinteractie Feasible voor JavaCard smartcard programma s. Testen met JML p.20/23
21 Andere JML tools Niet voor checken, maar voor lezen/schrijven van JML annotaties: jmldoc [David Cok, Kodak] Integreert javadoc en JML Daikon [Michael Ernst, MIT] Observeert executies en detecteert (waarschijnlijke) invarianten, pre- en postcondities, en produceert JML annotaties hiervoor. Handig voor legacy code, of om test coverage te bepalen. Testen met JML p.21/23
22 (Commerciële) tools voor runtime assertion checking: i-contract Jcontract en Jtest Gebruikte assertietalen minder expressief dan JML. Related Work Tools voor statische analyse: PREfix en PREfast voor C(++) code, gebruikt bij MicroSoft. Focus op memory management, buffer overflows, etc. Testen met JML p.22/23
23 Conclusies JML is een eenvoudig te leren, formele specificatietaal voor Java Bij gebruik van JML ga je in vroeg stadium al nadenken over testbaarheid van code Het gebruik van JML runtime assertion checking bij testen: beter testen voor minder werk Het kan nuttiger zijn te investeren in asserties dan in test-code: dit kan in eerder stadium, asserties zijn beter onderhoudbaar, en ook nuttig voor andere doeleinden (mn. documentatie) Voor meer informatie, en alle tools: Testen met JML p.23/23
Tentamen 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 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 informatieDatastructuren 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 informatieNoties Informatica. In java fungeren objecten als een model voor de elementen waarin een probleem kan worden opgesplitst
s Informatica Hoofdstuk 1 Object Klasse Methode Parameters Type Velden Toestand Compiler Resultaten (returnwaarde) In java fungeren objecten als een model voor de elementen waarin een probleem kan worden
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 informatieTentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI
Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI Vrijdag 22 januari 2010 Toelichting Dit is een open boek tentamen. Communicatie en het gebruik van hulpmiddelen zijn niet toegestaan.
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 informatieInleiding Software Engineering! Unit Testing, Contracten, Debugger! 13 Februari 2014!
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
Nadere informatieSpecialisatie RTES - Project FunnyScreens. Installatie en gebruik van JUnit
Installatie en gebruik van JUnit Auteurs: Niels Hendriks - 89713 Matthijs Langenberg - 89870 Wiebe van Schie - 84313 Siet Toorman - 91623 Job Vermeulen 90589 Semester: 6 DSO: QSO: Dhr. R.J.W.T. Tangelder
Nadere informatieTools en technieken voor kwaliteitsbepaling van productsoftware
Tools en technieken voor kwaliteitsbepaling van productsoftware Laboratory for Quality Software (LaQuSo) 1, info@laquso.com, Technische Universiteit Eindhoven en Radboud Universiteit Nijmegen. 1 Inleiding
Nadere informatiePlan van Aanpak Afstuderen
Plan van Aanpak Afstuderen Michiel Graat 27-09-2005 Inhoudsopgave 1 Inleiding 3 1.1 Terminologie............................. 3 1.2 Opdracht............................... 4 1.3 JavaCard...............................
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 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 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 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 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 informatieVoorlopig onderzoeksplan Bachelorscriptie CleanDoc-
Voorlopig onderzoeksplan Bachelorscriptie 2011 -CleanDoc- Wouter Lockefeer 0545228 Probleemstelling Een goede programmeertaal moet niet alleen efficiënte programma's opleveren, maar ook handig zijn in
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 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 informatieSoftware Test Documentation
FACULTEIT INGENIEURSWETENSCHAPPEN & WE- TENSCHAPPEN DEPARTMENT OF COMPUTER SCIENCE AND APPLIED COMPUTER SCIENCE Software Test Documentation Software Engineering Nicolas Carraggi, Youri Coppens, Christophe
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: Visual Basic
PETERSTUYVESANT COLLEGE INFORMATICA 2009-2010 Programmeren: Visual Basic Algemene Kennis: 01. Programmeren Programmeren is het schrijven van een computerprogramma, een concrete verzameling instructies
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 informatieLessen Java: Reeks 3. David Blinder Jan G. Cornelis
Lessen Java: Reeks 3 David Blinder Jan G. Cornelis Vraag 0: Gebruik van de Debugger Syntax errors: fouten door verkeerd gebruik van Javacommandos code zal niet compileren. Locatie van de fout is bijna
Nadere informatieAutomatische Testen van Java Klassen
Automatische Testen van Java Klassen Wishnu Prasetya (wishnu@cs.uu.nl) Dit artikel bespreekt de problemen van tradioneel handmatig testen en hoe men tegenwoordig Java klassen automatisch kan testen. Niemand
Nadere informatiePlan van aanpak. 1 Inleiding. 2 Onderzoek. 3 Taken. Kwaliteitswaarborging van webapplicaties. Rachid Ben Moussa
Plan van aanpak Rachid Ben Moussa Kwaliteitswaarborging van webapplicaties 1 Inleiding De meeste zwakheden in software worden veroorzaakt door een klein aantal programmeerfouten. Door het identificeren
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 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 informatieJava. Basissyllabus. Egon Pas
Java Basissyllabus Egon Pas 2011 BeanPole bvba Gasmeterlaan 92-9000 Gent BTW BE 472.902.516 Tel: + 32 9 224 42 17 Fax: + 32 9 223 62 88 www.beanpole.be info@beanpole.be 1 Programmeren 1.1 Hoe werkt een
Nadere informatieHelpende hand bij unit testing
Testen PROGRAM EXPLORATION Helpende hand bij unit testing Alexander Nowak Program Exploration (Pex) is een project van Microsoft Research dat als doel heeft om de generatie van unit tests te automatiseren.
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 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 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 informatieStichting NIOC en de NIOC kennisbank
Stichting NIOC Stichting NIOC en de NIOC kennisbank Stichting NIOC (www.nioc.nl) stelt zich conform zijn statuten tot doel: het realiseren van congressen over informatica onderwijs en voorts al hetgeen
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 informatieHoofdstuk 9: Object Constraint language (OCL) Prof. Dr. Olga De Troyer. Constraints
Hoofdstuk 9: Object Constraint language (OCL) Prof. Dr. Olga De Troyer 2005 Prof Dr. O. De Troyer, pag. 1 Constraints UML s notatie is grafisch Goed voor het uitdrukken van structurele eigenschappen van
Nadere informatieProgrammeren in Java 3
26 september 2007 Deze les korte herhaling vorige les Unified Modelling Language notatie van een class afleiding pointers abstracte classes polymorphisme dubieuze(?) constructies interfaces Meer over class
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 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 informatieTentamen Formele Methoden voor Software Engineering ( )
Tentamen Formele Methoden voor Software Engineering (192135201) 19 april 2012, 8:45 12:15 uur. Vermeld je studierichting op het tentamen Geef aan of je de huiswerkopgaven gemaakt hebt, en in welke groep/bij
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 informatieSEN1 Software Engineering 1
SEN1 Software Engineering 1 Pieter van den Hombergh Ferd van Odenhoven Fontys Hogeschool voor Techniek en Bedrijfsmanagement Software Engineering 6 maart 2008 FvO,PvdH/FHTBM SEN1 Software Engineering 1
Nadere informatieEnterprise Connectivity. Marnix van Bo. TU Delft Elek Software Architect 20 jaar ervarin ontwikkeling
Fir rst Base Enterprise Connectivity Marnix van Bo chove First Base: opgericht in 2001 TU Delft Elek ktrotechniek - 1998 Software Architect 20 jaar ervarin g met software ontwikkeling Presentatie Ideeën
Nadere informatieTentamen Imperatief Programmeren
Tentamen Imperatief Programmeren Maandag 22 oktober 2001 Toelichting Dit is een open boek tentamen, d.w.z. het cursusboek mag gebruikt worden. N.B.: Het tentamen is individueel: voor het maken van de opgaven
Nadere informatieUnit testen van EJB's. Koert Zeilstra - iprofs
Unit testen van EJB's Koert Zeilstra - iprofs Inleiding We weten tegenwoordig allemaal dat we ons product moeten testen om de kwaliteit te verhogen en behouden Software-ontwikkelaars zijn over het algemeen
Nadere informatieInformatica. Deel II: les 1. Java versus Python. Jan Lemeire Informatica deel II februari mei 2014. Parallel Systems: Introduction
Informatica Deel II: les 1 Java versus Python Jan Lemeire Informatica deel II februari mei 2014 Parallel Systems: Introduction Arabidopsis (zandraket) Arabidopsis (zandraket) MMIQQA Multimodal Microscopic
Nadere informatieSjabloon testspecificatie. <<Organisatie>>
Sjabloon testspecificatie SYSQA B.V. Almere : Status : Opgesteld door : Organisatie Pagina 2 van 5 Inhoudsopgave Inleiding...3 1 Analyse functiebeschrijving...4
Nadere informatieTeststrategien. Pieter van den Hombergh. 20 februari 2014. Fontys Hogeschool voor Techniek en Logistiek Software Engineering
Teststrategien Pieter van den Hombergh Fontys Hogeschool voor Techniek en Logistiek Software Engineering 20 februari 2014 HOM/FHTeL Teststrategien 20 februari 2014 1/33 1 Acceptatietesten Belangen Inhoud
Nadere informatieModulewijzer Tirdat01
Modulewijzer Tirdat01 W. Oele 25 augustus 2008 1 Inhoudsopgave 1 Inleiding en leerdoelen 3 2 Voorkennis 3 2.1 tirprg01 en tirprg02........................ 3 2.2 tirprg03.............................. 4
Nadere informatieAlgoritme noteren? Algoritmen voor de computer worden vastgelegd met behulp van een programmeertaal.
Programmeertalen Algoritme noteren? Algoritmen voor de computer worden vastgelegd met behulp van een programmeertaal. Taal // machine De geschiedenis van de programmeertalen loopt parallel met de geschiedenis
Nadere informatieDIAGNOSTISCHE TOETS Softwaresystemen UITWERKING
DIAGNOSTISCHE TOETS Softwaresystemen datum: Donderdag van Week 7 UITWERKING Deze diagnostische toets bevat vragen over excepties en concurrency. Beantwoord de vragen zo goed mogelijk in 30 minuten Bespreek
Nadere informatieTesten geeft grip. Michiel Vroon
Testen geeft grip Michiel Vroon ...bugs in software ...en software zit overal Het zorgt voor ongemak... 1. Insert card 2. Insert PIN 3. Enter amount 4. Take out card 5. Take out money Kleinschalig of grootschalig
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 informatieVoortgezet Prog. voor KI
Voortgezet Prog. voor KI Docent: Michael Wilkinson IWI 142 tel. 050-3638140 (secr. 3633939) Frank Brokken RC 352 tel. 050-3633688 Voorkennis: Inleiding Programmeren voor KI (nieuwe stijl) Stof: Practicum
Nadere informatieDe effecten van Contract Driven Development
UNIVERSITEIT VAN AMSTERDAM FACULTEIT DER NATUURWETENSCHAPPEN, WISKUNDE EN INFORMATICA MASTER SOFTWARE ENGINEERING (MSc) De effecten van Contract Driven Development In de praktijk Ing. Bas Slagter, juni
Nadere informatieAlgoritme noteren? Algoritmen voor de computer worden vastgelegd met behulp van een programmeertaal.
Programmeertalen Algoritme noteren? Algoritmen voor de computer worden vastgelegd met behulp van een programmeertaal. Taal // machine De geschiedenis van de programmeertalen loopt parallel met de geschiedenis
Nadere informatieINFITT01 - Internettechnologie WEEK 8
INFITT01 - Internettechnologie WEEK 8 Programma Databases (JDBC, JNDI, ORM, JPA) MVC & Spring/Struts EJB Databases Veel web applicaties moeten informatie over langere tijd op kunnen slaan. Een voor de
Nadere informatieInhoudstafel. UML (Unified Modeling Language)
UML (Unified Modeling Language) Inhoudstafel Inleiding...2 Waarvoor dient UML...2 Wat is UML... 2 Use-cases... 2 Inleiding...2 Voorbeeld...3 Eigenschappen van een goede use-case...3 Wat is een actor...4
Nadere informatieOpdracht 7a. Applicatiebouw 2014/2015
Applicatiebouw 2014/2015 Opdracht 7a Inhoud Applicatiebouw op dag 7 College In het college wordt oa. overerving behandeld, waarmee je uit een bestaande klasse een nieuwe andere klasse kan maken. Ook zijn
Nadere informatie1 Inleiding in Functioneel Programmeren
1 Inleiding in Functioneel Programmeren door Elroy Jumpertz 1.1 Inleiding Aangezien Informatica een populaire minor is voor wiskundestudenten, leek het mij nuttig om een stukje te schrijven over een onderwerp
Nadere informatieTeststrategien. Hebben we wel het juiste gebouwd? Pieter van den Hombergh. 20 februari 2014
Teststrategien Pieter van den Hombergh Fontys Hogeschool voor Techniek en Logistiek Software Engineering 20 februari 2014 HOM/FHTeL Teststrategien 20 februari 2014 1/33 1 points 2 Review plan debugging
Nadere informatieVisual Basic.NET. Visual Basic.NET. M. den Besten 0.3 VB. NET
Visual Basic.NET M. den Besten 0.3 VB. NET Inhoud Voorwoord Deel 1 Visual Basic.NET 1.1 Inleiding...13 1.2 De programmeertaal Visual Basic.NET...14 1.3 Microsoft Visual Basic 2010 Express Edition...15
Nadere informatieSoftware Test Documentation
FACULTEIT INGENIEURSWETENSCHAPPEN & WE- TENSCHAPPEN DEPARTMENT OF COMPUTER SCIENCE AND APPLIED COMPUTER SCIENCE Software Test Documentation Software Engineering Nicolas Carraggi, Youri Coppens, Christophe
Nadere informatieSession Beans.
Session Beans joost.vennekens@kuleuven.be Prequel: annotaties Nieuw Java feature Gestructureerde manier om extra info toe te voegen aan code (ipv. commentaar) @Author( name = "Joost Vennekens", date =
Nadere informatieInhoudsopgave. 1 Inleiding Situering Probleem beschrijving Wat is OCL Motivatie Doelstellingen...
Dankwoord Ik wil alle mensen bedanken die rechtstreeks of onrechtstreeks hebben meegewerkt aan het tot stand brengen van deze thesis. In de eerste plaats gaat mijn dank naar mijn ouders die deze studies
Nadere informatieSpreekvaardigheidstraining met behulp van Automatische Spraak-Herkenning (ASH)
Spreekvaardigheidstraining met behulp van Automatische Spraak-Herkenning (ASH) Helmer Strik Afdeling Taalwetenschap Centre for Language and Speech Technology (CLST) Radboud Universiteit Nijmegen Overview
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 informatieTest rapportage Waarom eigenlijk?
Testrapportage Boodschappers van de koning? Test rapportage Waarom eigenlijk? TestNet voorjaarsevenement 2015 Jurian van de Laar Jurian van de Laar @JurianvdL 30 april 2015 @JurianvdL Jurian van de Laar
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 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 informatiePresentatie Michiel. Informaticastage najaar 2004
Presentatie Michiel michielborkent@gmail.com Informaticastage najaar 2004 Inhoud presentatie: Wie ben ik? Over mijn stage Informatie over Lisp Wie/wat ben ik? Student Technische Informatica, Universiteit
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 informatie2 OBJECTGEORIËNTEERDE BASISBEGRIPPEN.
Objectgeoriënteerde basisbegrippen 15 2 OBJECTGEORIËNTEERDE BASISBEGRIPPEN. Het is de bedoeling in dit hoofdstuk van je kennis te laten maken met de belangrijkste onderwerpen van object oriëntatie. We
Nadere informatieOm de libraries te kunnen gebruiken, moet de programmeur (een deel van) zijn programma in C/C++ schrijven.
1 Inleiding tot.net Software werd en wordt meestal geschreven in C of C++. De broncode van een C/C++ programma wordt dan gecompileerd naar machine code, die eventueel nog gelinkt wordt met machine code
Nadere informatieTENTAMEN Softwaresystemen UITWERKING
TENTAMEN Softwaresystemen vakcode: 201300071 datum: 20 januari 2014 tijd: 8:45-12:15 UITWERKING Algemeen Bij dit tentamen mag gebruik gemaakt worden van: de handleiding, de slides van de colleges en de
Nadere informatieModelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 11 december 2015 Ingebouwde datastructuren Meer boomstructuren Access specifiers Gebruikersinvoer Codestijl Packages SAT-solver Ingebouwde datastructuren Ingebouwde
Nadere informatieOpen Source Software. Bart van Dijk (b.van.dijk@hccnet.nl)
Open Source Software Bart van Dijk (b.van.dijk@hccnet.nl) Open Source Software (OSS) Wat is het Waarom willen we het wel (of niet) OSS voorbeelden Geschiedenis Licenties Ontwikkeling en ondersteuning Wat
Nadere informatieObjectgericht programmeren 1.
Objectgericht programmeren 1 joost.vennekens@kuleuven.be http://www.cs.kuleuven.be/~joost/dn Objectgericht ontwerpen 35% Objectgericht ontwerpen 65% OP1 Informatiesystemen 50% Databanken 50% OP1 Evaluatie
Nadere informatieCCHR: De snelste CHR implementatie
CCHR: De snelste CHR implementatie Promotor: Prof. Dr. Bart Demoen Begeleider: Dr. ir. Tom Schrijvers Pieter Wuille 20 december 2006 1 Algemeen Waarom CCHR Structuur 2 Implementatie Mogelijkheden 3 Ontwerpbeslissingen
Nadere informatieUnit testen met Rhino mocks Twee handen op één buik
Unit testen met Rhino mocks Twee handen op één buik Sinds Kent Beck in 2000 zijn meesterwerk 'Extreme Programming Explained' schreef, weet iedere ontwikkelaar dat gedegen testen van software noodzakelijk
Nadere informatieTestNet Voorjaarsevenement 2010 Jurian van de Laar 12 mei 2010 info@improveqs.nl
Testers helpen ontwikkelaars of andersom? TestNet Voorjaarsevenement 2010 Jurian van de Laar 12 mei 2010 info@improveqs.nl Improve Quality Services B.V. 2 Agenda Hoe veilig is een muur? Past Scrum ook
Nadere informatieEen klant belt op, witheet! Ik kan geen nieuwe orders meer
Erwin van der Valk is technisch architect bij Qurius ETX Code analysis in Visual Studio 2005 K WA L I T E I T S V E R B E T E R E N D E T O O L S VO O R H E T S C H R I J V E N VA N RO B U U S T E E N
Nadere informatieModeleren. Modelleren. Together UML. Waarvan maken we een model? overzicht les 14 t/m 18. ControlCenter 6.2
Modelleren Werkelijkheid Modelleren Modeleren Waarvan maken we een model?!analyse " Maak een model van de te automatiseren werkelijkheid of van het op te lossen probleem! Domeinkennis = structuur! Functionele
Nadere informatieDeel 1 : Gesloten Boek
Naam : EXAMEN SOFTWAREONTWIKKELING 1STE PROEF BURG. IR. COMPUTERWETENSCHAPPEN EERSTE EXAMENPERIODE ACADEMIEJAAR 2004-2005 Deel 1 : Gesloten Boek 1. Testen Geef een overzicht van de verschillende testen
Nadere informatieVereiste kennis. 1 Java-editor. 2 Het compileren van een programma
3 Vereiste kennis Dit boek richt zich op het leren programmeren door het oefenen met programmeercodes. Veel theorie komt in het begin niet aan de orde. Dat is een grote uitdaging want het is niet makkelijk
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 informatieLabo 1 Programmeren II
Labo 1 Programmeren II L. Schoofs K. van Assche Voor de OA Labo Programmeren II programmeren we in C# en met Microsoft Visual Studio 2005 als ontwikkelomgeving (voorlopig beta2). Deze IDE maakt gebruik
Nadere informatieIntroductie en even voorstellen
Introductie en even voorstellen Onlangs is PHP5 uitgekomen. PHP5 is een grote stap voorwaards voor iedereen die met deze populaire programmeertaal werkt. In deze presentatie bekijken we de belangrijkste
Nadere informatieONDERZOEK NAAR DE ZOEKMACHINE VRIENDELIJKHEID VAN COMMERCIËLE,
ONDERZOEK NAAR DE ZOEKMACHINE VRIENDELIJKHEID VAN COMMERCIËLE, CLOSED SOURCE CMSEN Versie: 2.0 Dit onderzoek betreft de zoekmachine vriendelijkheid van commerciële CMS-systemen, m.a.w. systemen waar de
Nadere informatieVorig jaar in 5v cluster, tot en met OO hoofdstukken, geen problemen. Nu in mengcluster, tot OO hoofdstukken, wel problemen bij 4h leerlingen
Eerste programmeertaal Leren programmeren vs. een programmeertaal leren In Nijmegen: Algol68 als basis voor o.a. Modula-2 en C Voor Codi/Boxmeer: Pascal, Java, HTML/PHP Niet helemaal tevreden over Java
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 informatievbg.vbnet.beginner Foutafhandeling binnen Visual Basic.NET
Fouten in software zijn onwenselijk, maar bijna niet te voorkomen. Er zijna namelijk zaken waar uw software geen invloed op uit kan oefenen. Het verbreken van een netwerkverbinding is een voorbeeld hiervan.
Nadere informatieInhoudsopgave. Hoofdstuk 1: Ant...4
Inhoudsopgave Hoofdstuk 1: Ant...4 1.1 Inleiding...4 1.2 Ant installeren...5 1.3 Ant gebruiken...7 1.3.1 Een project maken...7 1.3.2 Mijn eerste Ant-script...10 1.3.2.1 Projects...10 1.3.2.2 Targets...11
Nadere informatieInhoud Inhoud. Over dit boek 7. 1 Eclipse IDE (Integrated Development Environment) 9. 2 Functionele specificatie 13
5 Inhoud Inhoud Over dit boek 7 1 Eclipse IDE (Integrated Development Environment) 9 2 Functionele specificatie 13 3 Implementatie grafische gebruikersinterface 31 4 De klassen en methoden 57 5 Technische
Nadere informatieUnit testen met Rhino Mocks
Testen Unit testen met Rhino Mocks TWEE HANDEN OP ÉÉN BUIK Sinds Kent Beck in 2000 zijn meesterwerk Extreme Programming Explained schreef, weet iedere ontwikkelaar dat gedegen testen van software noodzakelijk
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 informatieOBJECT SPAGHETTI : PATTERNS BIEDEN UITKOMST? Wat is het probleem nou eigenlijk? public class CoffeeDrinker { private CoffeeProducer mycoffeeproducer;
OBJECT SPAGHETTI : PATTERNS BIEDEN UITKOMST? Object georiënteerde (OO) systemen kennen vele voordelen ten opzichte van traditionele procedurele systemen. Zo zouden OO systemen flexibeler en beter onderhoudbaar
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 informatieEmSE presentatie. Starten met de ATtiny2313: Een RGB powerled driver Kees Moerman, 13 juli 2010
EmSE presentatie Starten met de ATtiny2313: Een RGB powerled driver Kees Moerman, 13 juli 2010 Het probleem Ik wil een LED controller maken Voor zelfgemaakte RGB power-led lampjes Om aan mijn thuisnetwerk
Nadere informatie