Linguistic support for unit testing
|
|
- Gustav Fog
- 7 år siden
- Visninger:
Transkript
1 Linguistic support for unit testing Af K. E. Gray & M. Felleisen Mads Bach-Sørensen 1. november
2 Indhold Forfatterne TestJava Traditionel Unit-testing Sproglige Konstruktioner i TestJava Eksempler Organisering TestJava Versus JUnit Fordele Opsummering Kritik Spørgsmål 2
3 Forfatterne Kathryn E. Gray Ph.D. Computer Science, University of Utah, 2006 Publikationer Design of Class Hierarchies: An Introduction to OO Program Design Fine-Grained Interoperability Through Mirrors and Contracts ProfessorJ: A Gradual Intro to Java through Language Levels Transformation-by-example for XML How to Design Class Hierarchies Compiling Java to PLT Scheme Implementing Extensible Theorem Provers Computervidenskab og pædagogik Matthias Felleisen Trustee Professor in the College of Computer and Information Science at Northeastern University in Boston, Massachusetts In 2006 he was inducted as a Fellow of the Association for Computing Machinery. Gave keynote at the 2004 European Conference on Object- Oriented Programming and the 2001 Symposium on the Principles of Programming Languages. Publikationer Coauthored How to Design Programs (MIT Press, 2001). 3
4 TestJava Motivation Programmører skriver ikke tilstrækkeligt med tests, da dette er for stor en byrde De mener at en del af problemet er den manglende sproglige understøttelse Svært at teste exceptions Compileren forstår ikke tests Idé Tilføje sproglige konstruktioner til Java, der understøtter tests Gøre det nemmere at udtrykke sine intentioner Informere programmøren bedre med informationer genereret automatisk af compileren 4
5 Traditionel Unit-testing testing Eksempel med JUnit void testdevidefarm(){ Farm f = new Farm(500); f.devidefarm(100); assertequals(f.area, void devidefarm(){ Farm f = new Farm(500); f.devidefarm(100); assertequals(f.area, 400); 1. Test-casen markeres med test i navnet 2. markerer testen 5
6 Traditionel Unit-testing testing Normalt er testprojektet en direkte afspejling af det testede projekt 6
7 Sproglige Konstruktioner i TestJava Def =... test Name [extends Name] [tests Name,... ] { Member... Member =... testcase Name() { Statement... Expr =... check Expr expect Expr [within Expr] check Expr expect Expr by Comp check Expr catch Name Expr -> Expr 7
8 Sproglige Konstruktioner i TestJava check e1expect e2 :: evaluate e2 to v2 safe-evaluate e1 to v1 compare v1 to v2 (using deep equality) check e1 expect e2 within e3 :: evaluate e2 to v2, evaluate e3 to v3 safe-evaluate e1 to v1, compare v1 to v2, using v3 for tolerance check e1 expect e2 by == :: evaluate e2 to v2 safe-evaluate e1 to v1 evaluate v1 == v2 check e1 expect e2 by Name :: evaluate e2 to v2 safe-evaluate e1 to v1 safe-evaluate v1.name(v2) check e1catch name :: evaluate e1 in catch Throwable e return e instanceof name return false e1-> e2 :: evaluate e1 to v1 evaluate e2 to v2, return if (v2 instanceof boolean) v2 else true 8
9 Eksempler 1. check myfarm.harvestcrop() expect new Corn() 2. check myfarm.keepup() expect myfarm.neighbors() by eqsize 3. check myfarm.size() expect within check myfarm.sell() catch IllegalActionExn 5. myfarm.water() -> check myfarm.watersupply expect check (myfarm.rent() -> myfarm.sell()) catch IllegalActionExn 9
10 Eksempler test Ownership tests Farm, Bank { Bank mybank =...; Farm myfarm =...; testcase purchase() { return mybank.buy(myfarm,"me") -> check myfarm.owner() expect "me"; 10 test OwnerIdentity extends Ownership { boolean owncheck(bank b, Farm f) { return check b.lookup(f.id) expect f; testcase ownership() { return owncheck(mybank,myfarm) && owncheck(newbank,myfarm);
11 Organisering test implements forbudt Attributter som Abstract forbudt testcase Attributter forbudt throws forbudt check-udtryk håndterer exceptions. Alle andre skal håndteres 11
12 TestJava Versus JUnit 12 boolean comp(crop[] a1, Crop[] a2) { boolean res = a1.length == a2.length; if (res) for(int i; i< a1.length; i++) res &= a1[i].equals(a2[i]); return res; void testgetcrops() { System.out.println("getCrops"); asserttrue(comp(myfarm.getcrops(3), new Crop[]{new Rice(),...)); testcase getcrops() { return (check myfarm.getcrops(3) expect new Crops[]{new Rice(),...) Sammenligning af objekter Equals kan ikke altid bruges Arrays Klasser uden tilgængelig kilde Hjælpemetoder er nødvendige check-metoden er ikke afhængig af equals
13 Fordele Mere koncise kald Samler oplysninger om konteksten uden ekstra arbejde Bedre fejlrapporter Man kan undgå manuelt at skrive sammenligningsmetoder Tests kan ligge i hovedprojektet 13
14 Erfaringer med TestJava Afprøvet på to hold studerende Følger et basis programmeringskursus I alt 55 studerende check... expect... [within...] Begge undervisere rapporterede positive resultater Skrev flere tests, havde lettere ved det, valgte TestJava frem for JUnit 14
15 Kritik Skrevet rimelig letforståeligt Deres sammenligning med JUnit viser kun fordele Forbedrede testvaner eftervises kun ved to forsøg med førsteårsstuderende Vil selvfølgelig gerne sælge ideen Hjælper primært programmørerne med nemmere at formulere tests Har fat i nogle interessante løsningsforslag 15
16 Spørgsm rgsmål 16
Design by Contract. Design and Programming by Contract. Oversigt. Prædikater
Design by Contract Design and Programming by Contract Anne Haxthausen ah@imm.dtu.dk Informatics and Mathematical Modelling Technical University of Denmark Design by Contract er en teknik til at specificere
Læs mereAAU, Programmering i Java Intern skriftlig prøve 18. maj 2007
AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007 Opgavebesvarelsen skal afleveres som enten en printerudskrift eller som et passende dokument sendt via email til fjj@noea.dk. Besvarelsen skal
Læs mereA Profile for Safety Critical Java
A Profile for Safety Critical Java Martin Schoeberl Hans Søndergaard Bent Thomsen Anders P. Ravn Præsenteret af: Henrik Kragh-Hansen November 8, 2007 Forfatterne Martin Schoeberl Udvikler af JOP processoren
Læs mereModern Concurrency Abstractions for C#
Modern Concurrency Abstractions for C# Nick Benton Luca Cardelli Cédric Fournet Presenter: Henrik Kragh-Hansen September 27, 2007 Motivation for concurrency Forbedring af concurrency Baggrundsinformation
Læs mereDesign by Contract Bertrand Meyer Design and Programming by Contract. Oversigt. Prædikater
Design by Contract Bertrand Meyer 1986 Design and Programming by Contract Michael R. Hansen & Anne Haxthausen mrh@imm.dtu.dk Informatics and Mathematical Modelling Technical University of Denmark Design
Læs mereVejledende løsninger
Roskilde Universitetscenter side 1 af 8 sider Vejledende løsninger Opgave 1 Spørgsmål 1.1 a = b - a; b = b - a; a = b + a; Opgaven har flere løsninger. En anden løsning er: a = b + a; b = a - b; a = a
Læs mereDag 10 Flertrådet programmering
Videregående programmering i Java Dag 10 Flertrådet programmering Fremlæggelse af programmering/status for projekter Dokumentation med javadoc Flertrådede designmønstre: Arbejdstråd, Producent Konsument,
Læs mere.NET 4.0 og C# 4.0. Denne artikel beskriver nogle af de nye features i.net 4.0 og C# 4.0. Den forudsætter et vist kendskab til.net og C#.
Denne guide er oprindeligt udgivet på Eksperten.dk.NET 4.0 og C# 4.0 Denne artikel beskriver nogle af de nye features i.net 4.0 og C# 4.0. Den forudsætter et vist kendskab til.net og C#. Skrevet den 14.
Læs mereOpgaven fortsat. Opfølgning på Opgave 2 og Use Cases. Opgaven. Trin 1: Væsentlige begreber. Resultatliste: 100 bryst, herrer
Opfølgning på Opgave 2 og Use Cases originally by Michael R. Hansen modified/extended by Anne E. Haxthausen Informatics and Mathematical Modelling Technical University of Denmark Opgaven fortsat Efter
Læs mereTest med JUnit 3. Denne artikel introducerer JUnit 3. Den forklarer ideen med JUnit. Og den viser hvordan man konkret bruger det.
Denne guide er oprindeligt udgivet på Eksperten.dk Test med JUnit 3 Denne artikel introducerer JUnit 3. Den forklarer ideen med JUnit. Og den viser hvordan man konkret bruger det. Den forudsætter kendskab
Læs mereReal-time programming safety in Java and Ada
Real-time programming safety in Java and Ada Bo Sandén Presenter: Thomas Bøgholm 25. oktober 2007 Forfatteren Artiklen Synkroniserings Begreber Bo Sandén Professor på Colorado Technical University Beskæftiger
Læs mereSkriftlig eksamen i Datalogi
Roskilde Universitetscenter side 1 af 9 sider Skriftlig eksamen i Datalogi Modul 1 Vinter 1999/2000 Opgavesættet består af 6 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 5% Opgave 2
Læs mereForelæsning Uge 4 Mandag
Forelæsning Uge 4 Mandag Algoritmeskabeloner findone, findall, findnoof, findsumof Primitive typer (forfremmelse og begrænsning) Identitet versus lighed (for objekter, herunder strenge) Opfølgning på Skildpadde
Læs mereDANMARKS TEKNISKE UNIVERSITET
DANMARKS TEKNISKE UNIVERSITET Skriftlig prøve, 14. december 2018, 4 timer Side 1 af 18 Kursus navn: 02101 Indledende Programmering Kursus : 02101 Tilladte hjælpemidler: Ikke-digitale skriftlige hjælpemidler
Læs mereb) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne.
Exercise 1: Opgave 9.1 på CodeJudge. a) Lav klasserne Cirkel, Rektangel og Kvadrat, som implementerer vedhæftede interface From.java (se CodeJudge). Lav Rektangel før du laver Kvadrat. Kan du bruge nedarvning
Læs mereRMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation).
Denne guide er oprindeligt udgivet på Eksperten.dk RMI introduktion Denne artikel beskriver Java RMI (Remtote Method Invocation). Den beskriver teorien bag RMI, viser et simpelt kode eksempel og forklarer
Læs mereCivilingeniøreksamen 49104 12. januar 2001. Skriftelig prøve den 12. januar 2001 Kursusnummer 49104
Skriftelig prøve den 12. januar 2001 Kursusnummer 49104 Kursusnavn: Programmering. Tilladte hjælpemidler: Alle skriftlige hjælpemidler Opgavesættet består af fire opgaver, der har følgende vægtning: Opgave
Læs mereForelæsning Uge 4 Mandag
Forelæsning Uge 4 Mandag Algoritmeskabeloner Kan (ved simple tilretningerne) bruges til at implementere metoder, der gennemsøger en arrayliste (eller anden objektsamling) og finder objekter, der opfylder
Læs mereVideregående Programmering Obligatorisk opgave - 3. semester, efterår 2004
Overvågningssystem Beskrivelse Bagagesorteringssystemet består af et antal skranker (check-in) til modtagelse og registrering af bagage, et automatiseret sorteringsanlæg samt et antal terminaler (gates),
Læs mereSkriftlig eksamen i Datalogi
Roskilde Universitetscenter Skriftlig eksamen i Datalogi Modul 1 Sommer 1999 Opgavesættet består af 5 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 15% Opgave 2 15% Opgave 3 8% Opgave
Læs mereBRP Sortering og søgning. Hægtede lister
BRP 18.10.2006 Sortering og søgning. Hægtede lister 1. Opgaver 2. Selection sort (udvælgelsessortering) 3. Kompleksitetsanalyse 4. Merge sort (flettesortering) 5. Binær søgning 6. Hægtede lister 7. Øvelser:
Læs mereDag 10 Flertrådet programmering
Videregående programmering i Java Dag 10 Flertrådet programmering Fremlæggelse af programmering/status for projekter Dokumentation med javadoc Flertrådede designmønstre: Arbejdstråd, Producent Konsument,
Læs mereTree klassen fra sidste forelæsning
Programmering 1999 Forelæsning 12, fredag 8. oktober 1999 Oversigt Abstrakte klasser. Grænseflader. Programmering 1999 KVL Side 12-1 Tree klassen fra sidste forelæsning class Tree { int age; // in years
Læs mereVirkefeltsregler i Java
Virkefeltsregler i Java int i; int k; Sequence s; int j; What s in a name? Brian spillede blændende i søndags! Skolen ligger i Viby Ring til Kirsten og sig at... Et navn fortolkes i en kontekst og konteksten
Læs mereSekvensafstand DM34 - Eksamensopgave. Jacob Aae Mikkelsen
Sekvensafstand DM34 - Eksamensopgave Jacob Aae Mikkelsen 19 10 76 kokken@grydeske.dk 27. maj 2005 Resumé Rapporten her beskriver tre forskellige rekursive metoder til at sammenligne tekst strenge med.
Læs mereForelæsning Uge 5 Mandag
Forelæsning Uge 5 Mandag Algoritmeskabeloner findone, findall, findnoof, findsumof (sidste mandag) findbest Brug af klassen Collections og interfacet Comparable BlueJ s Debugger Nyttig til at inspicere
Læs mereSoftware Construction 1 semester (SWC) Spørgsmål 1
Spørgsmål 1 Objekter #1 Giv en kort præsentation af begrebet objekt, samt hvorledes du erklærer(declare), opretter(create) og bruger objekter Du kan beskrive o Datatyper o Variable / Instans variable /
Læs mereKlasser og objekter. (Afsnit i manualen)
Klasser og objekter (Afsnit 4 + 5 i manualen) Grundbegreber Klasser og objekter beskrivelse oprettelse Attributter og metoder tilstand opførsel Indkapsling afskærmning datarepræsentationsuafhængighed Klasser
Læs mereOpfølgning på Dygtig Skildpadde (Michael) To algoritmeskabeloner
Forelæsning 4.1 Opfølgning på Dygtig Skildpadde (Michael) To algoritmeskabeloner finden findalle Primitive typer (forfremmelse og begrænsning) Identitet versus lighed (for objekter, herunder strenge) Afleveringsopgave
Læs mere9.8 Kildekode. side 88. Pakke Klasse Sidenummer. fortsætter..
9.8 Kildekode Pakke Klasse Sidenummer db Aktivitetstype 91 Behandler 91 ConnectDB 92 DagensKommentar 93 Helligdag 94 IkkePrimaerTid 94 Patient 96 Patientaftale 96 PatientAktivitet 97 Patientgruppe 98 PatientgruppeItem
Læs mereIntroduction to JastAdd
Introduction to JastAdd Hyunik Na PL Lab@KAIST ROSAEC 8 th Workshop 2012.7.25~28 What Is JastAdd? (1/2) A meta-compiler for semantic checkers of language-based tools e.g. compilers, program analyzers,
Læs mereVideregående programmering i Java
Videregående programmering i Java Dag 6 Komponenter (og lidt Swing og MVC) Læsning: VP 4, evt. VP 6 Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html Grafiske komponenter
Læs mereBRP Tal. Om computer-repræsentation og -manipulation. Logaritmer
BRP 13.9.2006 Tal. Om computer-repræsentation og -manipulation. Logaritmer 1. Opgaverne til i dag dækker det meste af stoffet 2. Resten af stoffet logaritmer binære træer 3. Øvelse ny programmeringsopgave
Læs mereSAX Simple API for XML.
SAX Simple API for XML. En API (Application Programming Interface) et bibliotek eller et sæt af funktioner eller metoder. SAX er et sådant bibliotek af abstrakte metoder som f. eks. startdocument() eller
Læs mereUniversity of Southern Denmark Syddansk Universitet. DM502 Forelæsning 4
DM502 Forelæsning 4 Flere kontrolstrukturer for-løkke switch-case Metoder Indhold Arrays og sortering af arrays String-funktioner for-løkke Ofte har man brug for at udføre det samme kode, for en sekvens
Læs mereSingleton pattern i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i Java Denne artikel beskriver Singleton pattern og implementation i Java. Den forudsætter kendskab til Java men ikke til Singleton.
Læs mereAbstrakte datatyper C#-version
Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Abstrakte datatyper C#-version Finn Nordbjerg 1/9 Abstrakte Datatyper Denne note introducerer kort begrebet abstrakt datatype
Læs mereSkriftlig eksamen i Datalogi
Roskilde Universitetscenter side 1 af 11 sider Skriftlig eksamen i Datalogi Modul 1 Sommer 2000 Opgavesættet består af 6 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 10% Opgave 2 10%
Læs mereTest med NUnit. Denne artikel introducerer NUnit. Den forklarer ideen med NUnit. Og den viser hvordan man konkret bruger det.
Denne guide er oprindeligt udgivet på Eksperten.dk Test med NUnit Denne artikel introducerer NUnit. Den forklarer ideen med NUnit. Og den viser hvordan man konkret bruger det. Den forudsætter kendskab
Læs mereVideregående programmering i Java
Videregående programmering i Java Dag 7 Swing og MVC Swing: MVC, Datamodeller, JTable, evt. JTree Evt.: Swing: Præsentations og kontroldel Læsning: VP 6 Dette materiale er under Åben Dokumentlicens, se
Læs mereComposable Memory Transactions
Composable Memory Transactions Tim Harris, Simon Marlow, Simon Peyton Jones, Maurice Herlihy November 1, 2007 Præsenteret af Simon H. Thøgersen Forfatterne Ansat ved Microsoft Research, Cambridge Tim Harris
Læs mereKursus i OOP og Java. Kursus i Objektorienteret programmering i Java
Kursus i OOP og Java Kursus i Objektorienteret programmering i Java Åben Dokumentlicens Dette foredragsmateriale er under Åben Dokumentlicens (ÅDL) Du har derfor lov til frit at kopiere dette værk Bruger
Læs mereTerese B. Thomsen 1.semester Formidling, projektarbejde og webdesign ITU DMD d. 02/11-2012
Server side Programming Wedesign Forelæsning #8 Recap PHP 1. Development Concept Design Coding Testing 2. Social Media Sharing, Images, Videos, Location etc Integrates with your websites 3. Widgets extend
Læs mereDatabaseadgang fra Java
Databaseadgang fra Java Grundlæggende Programmering med Projekt Peter Sestoft Fredag 2007-11-23 Relationsdatabasesystemer Der er mange databaseservere Microsoft Access del af Microsoft Office MySQL god,
Læs mereUniversity of Southern Denmark Syddansk Universitet. DM503 Forelæsning 11
DM503 Forelæsning 11 Generics Pakker Exceptions Indhold Generics Nedarvning og Generics Generics Nedarvning og Generics Husk Box fra sidst Generics public class Box {! private T object;! public void
Læs mereOverblik. Class Loader. Java. Class Libraries. Bytecode. Verifier Java. Source (.java) Just in Time Compiler. Java
OOP1 Java intro. Klasser, objekter, interfaces, nedarvning, Association, Aggregation og Composition mvh. Try and catch exceptions. Package Intro. til jar filer. Overblik Compile-time Environment Run-time
Læs mereForelæsning Uge 4 Mandag
Forelæsning Uge 4 Mandag Algoritmeskabeloner Kan (ved simple tilretningerne) bruges til at implementere metoder, der gennemsøger en arrayliste (eller anden objektsamling) og finder objekter, der opfylder
Læs mereDatalogi OB, Efterår 2002 OH er, forelæsning 10/ Klasser og nedarvning
Datalogi OB, Efterår 2002 OH er, forelæsning 10/9-2002 Klasser og nedarvning Hvad er formålet? Typer, generisk kode, typeparameterisering Kritisk kig på, hvordan man gør i Java. Eftermiddagens opgave:
Læs mereBRP 6.9.2006 Kursusintroduktion og Java-oversigt
BRP 6.9.2006 Kursusintroduktion og Java-oversigt 1. Kursusintroduktion 2. Java-oversigt (A): Opgave P4.4 3. Java-oversigt (B): Ny omvendings -opgave 4. Introduktion til næste kursusgang Kursusintroduktion:
Læs mereForelæsning Uge 6 Mandag
Forelæsning Uge 6 Mandag Tingene i denne forelæsning er ikke eksamenspensum Forelæsningen afrunder kurset, og forklarer nogle af de begreber, som I har mødt under kurset uden at få detaljeret forklaring
Læs mereRekursion C#-version
Note til Programmeringsteknologi Akademiuddannn i Informationsteknologi Rekursion C#-version Finn Nordbjerg 1 Rekursion Rekursionsbegrebet bygger på, at man beskriver noget ved "sig selv". Fx. kan tallet
Læs mereBilag 2 og 3 og værktøjer
Bilag 2 og 3 og værktøjer Lars Erik Storgaard Geodatastyrelsen, laers@gst.dk Program for workshop Geodatastyrelsen Formål hvorfor workshop? Kvalificering af listen over myndigheder Temakammerater Opmærksomhed
Læs mereThreads i Java. Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Threads i Java Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java Den forudsætter
Læs mereTredjepart webservices
Tredjepart webservices 4. juni 2015 USS Dok. Klik her for at angive tekst. 1/12 Indholdsfortegnelse Introduktion... 3 Miljøer... 3 Adgang... 3 API kald... 4 GET: /authorizations... 4 Input 4 Output 4 Output
Læs mereParallelle algoritmer
Parallelle algoritmer 1 Von Neumann s model John von Neumann 1903-57 Von Neumanns model: Instruktioner og data er lagret i samme lager, og én processor henter instruktioner fra lageret og udfører dem én
Læs mereHvordan vælger jeg dokumentprofilen?
Hvordan vælger jeg dokumentprofilen? Valget af OIOUBL profil i en konkret dokumentudveksling vil bl.a. afhænge af, hvilke OIOUBL profiler den anden part i udvekslingen understøtter. Et konkret eksempel
Læs mere(Unit) Testing. Det skal du
(Unit) Testing Det skal du 1 Overblik I dag skal det handle om testing (unit testing) 1. Kort om forskellige former for tests. 2. Unit Testing (Black Box Testing) Opfører kode under test sig som forventet?
Læs merepublic Set(int size) { this.listelement = new LinkedList<Integer>(); }
// Henri AYCARD import java.util.linkedlist; public class Set { private LinkedList listelement; public Set(int size) { this.listelement = new LinkedList(); public boolean contains(int
Læs mereGoogle App Engine. Google App Engine som platform. Claus Myglegaard Vagner og Jacob von Eyben
GoogleAppEngine GoogleAppEnginesomplatform ClausMyglegaardVagnerogJacobvonEyben Abstract CloudcomputingerenteknologidervinderfremidengenerelleITinfrastruktur. SocialemediersåsomLinkedIn,TwitterogFacebookharøgetbehovetfor
Læs mere//Udskriver System.out.println("Hej " + ditfornavn + " " + ditefternavn + "."); System.out.println("Du er " + dinalder + " aar gammel!
Denne guide er oprindeligt udgivet på Eksperten.dk Brugerinput i Java Denne her artikel gennemgår diverse ting ved brug af brugerinput i Java. Den starter med det simple og fortæller derefter skridt for
Læs mereDATALOGI 0GB. Skriftlig eksamen tirsdag den 6. januar 2004
Københavns Universitet bacheloruddannelsen i datalogi side 1 af 6 DATALOGI 0GB Skriftlig eksamen tirsdag den 6. januar 2004 Dette opgavesæt består af 6 nummererede sider. Eksamensdeltagerne bør straks
Læs mereRMI avanceret. Denne artikel beskriver nogle mere avancerede features i RMI. Den gør det muligt at lave mere realistiske applikationer.
Denne guide er oprindeligt udgivet på Eksperten.dk RMI avanceret Denne artikel beskriver nogle mere avancerede features i RMI. Den gør det muligt at lave mere realistiske applikationer. Den forudsætter
Læs mereModel Drevet Design i Praksis
Model Drevet Design i Praksis Dansk IT - På Vej Hjem møde d. 8/9-2009 Jeppe Cramon - TigerTeam ApS Lidt om mig 15 års erfaring som software udvikler Partner i TigerTeam Første erfaring med model drevet
Læs mereimport java.awt.event.*; import java.awt.*; Container <- Panel <- Applet Component <- Button <- Checkbox <- ScrollPane <- Label
Programmering 1999 Forelæsning 13, tirsdag 12. oktober 1999 Oversigt Grafiske brugergrænseflader. Komponenter: Knapper, tekstfelter, checkbokse... Vinduer (containere). Hændelser, hændelsesstyret programmering.
Læs mereAnvendelse af metoder - Programmering
Denne guide er oprindeligt udgivet på Eksperten.dk Anvendelse af metoder - Programmering En forhåbentlig rigtig god forklaring på hvad metoder er og hvordan de anvendes. Lidt om private og public, retur
Læs mereExceptions i Delphi. Try except
Exceptions i Delphi Exceptions er en teknik til at fange fejl under programafviklingen. Ikke programmeringsfejl, men fejl der opstår i forskellige situationer, f.eks. en fil der mangler en fil der er skrivebeskyttet,
Læs mereSekvenser af længde mellem 1 og 4 ord repræsenteres ved en klasse Segment, som uden grundlæggende ser således ud:
Besvarelse af opgave til formuleret til øvelserne 10. september 2002 Datastrukturer og algoritmer Henning Christiansen 22/9-2002 Følgende er ikke en eksakt besvarelse af opgaven, idet den benytter hashtabeller
Læs mereTech College Aalborg. HomePort. Projekt Smart Zenior Home Guide til udvikling af nye adaptere til HomePort
Tech College Aalborg HomePort Projekt Smart Zenior Home Guide til udvikling af nye adaptere til HomePort Indhold HomePort Adapter Step-for-Step... 2 Linux... 2 Installér IDE... 2 HomePort på GitHub...
Læs mereSoftware Construction 1. semester (SWC) januar 2014 Spørgsmål 1
Spørgsmål 1 Grundlæggende objektorienterede begreber o Klasse (class) o Objekt (object) o Metode (method), herunder return type og parametre o Instansvariable (instance variables) & egenskaber (properties),
Læs mereAlgoritmeskabeloner: Sweep- og søgealgoritmer C#-version
Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version Finn Nordbjerg 1/9 Indledning I det følgende introduceres et par abstrakte
Læs mereJava Klasse nedarvninger
Denne guide er oprindeligt udgivet på Eksperten.dk Java Klasse nedarvninger Et let lille overblik i hvordan klasse nedarvning virker i java Skrevet den 07. dec 2011 af mochners I kategorien Programmering
Læs mereIntroduktion til ActionScript, fortsat
Introduktion til ActionScript, fortsat Kaspar Rosengreen Nielsen kaspar@interactivespaces.net i n t e r a c t i v e s p a c e s. n e t Kaspar Nielsen, kaspar@interactivespaces.net 1 Dagens program Opsamling
Læs mereStart på Arduino og programmering
Programmering for begyndere Brug af Arduino Start på Arduino og programmering EDR Hillerød Knud Krogsgaard Jensen / OZ1QK 1 Start på Arduino og programmering Sidste gang (Introduktion) Programmeringssproget
Læs mereEn textbox har et Validating event, med dette kan vi samme med en errroprovider checke input:
Inputvalidering i Windows Forms Applikationer Rolf Therkildsen (6. nov 2008) Krav til inputvalidering Brugeren må aldrig blive forhindret i at flytte til en anden kontrol. Brugeren skal informeres om fejl
Læs mereSingleton pattern i C#
Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i C# Denne artikel beskriver Singleton pattern og implementation i C#. Den forudsætter kendskab til C# men ikke til Singleton. Der er
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2019 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 27. februar, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereTabelbegrebet. Klassediagrammer (III) Oversigt. Anvendelse af Tabeller. Tabeller og qualified associations
Tabelbegrebet Klassediagrammer (III) Tabeller og qualified associations originally by Michael R. Hansen modified/extended by Anne E. Haxthausen Informatics and Mathematical Modelling Technical University
Læs mereFind største element, sæt det på sidste plads. Grundidé i hobsortering. er er
Programming 1999 KVL Side 19-2 Tidsforbruget, dvs asymptotisk proportionalt med Sorting af element: Tidsforbrug de mindste element, sortet øvrige element 0 Løkkeinvariant for udvalgssorting osv Find tredjemindste
Læs mereDatabase for udviklere. Jan Lund Madsen PBS10107
Database for udviklere Jan Lund Madsen PBS10107 Indhold LINQ... 3 LINQ to SQL og Arkitektur... 3 O/R designere... 5 LINQ Den store introduktion med.net 3.5 er uden tvivl LINQ(udtales link): Language-INtegrated
Læs mereForelæsning Uge 2 Mandag
Forelæsning Uge 2 Mandag Sætninger Simple sætninger (assignment, interne og eksterne metodekald) Sammensatte sætninger (blok, selektion, gentagelse) Udtryk og operatorer Java syntax og style guide Afleveringsopgave:
Læs mereLær Python - Dag 4, modul 2 Objektorienteret programmering
Lær Python - Dag 4, modul 2 Objektorienteret programmering Simon J. Larsen 28. oktober 2017 Institut for Matematik og Datalogi Metoder Metoder Indtil videre har vi kun brugt objekter til at gemme værdier.
Læs mereMere om tilfældige tal
Denne guide er oprindeligt udgivet på Eksperten.dk Mere om tilfældige tal Denne artikel bygger oven på den forrige artikel om tilfældige tal. Den forudsætter at man har læst den forrige artikel og har
Læs mereSigmaT.
Java + Groovy Disposition Om SigmaT Eksempel på indlejring af Groovy Overvågning af PEM Ønske om dynamisk loaded Java uden at fifle med classloaderen Groovy til hjælp Opsamling hvad jeg ikke har fortalt
Læs mereIndledning. Hvorfor det forholder sig sådan har jeg en masse idéer om, men det bliver for meget at komme ind på her. God fornøjelse med læsningen.
Indledning...2 Variabler...13 Eksempel: 1...13 Eksempel 2:...13 Eksempel 3:...15 Eksempel 4:...16 Metoder...17 Metode (intet ind og intet ud)...17 Metode (tekst ind)...18 Metode (tekst ind og tekst ud)...19
Læs mereKlasser og nedarvning
Datalogi C, Efterår 2004 OH er, forelæsning 21/9-2004 Klasser og nedarvning Hvad er formålet? Typer, generisk kode, typeparameterisering Kritisk kig på, hvordan man gør i Java. Opgaven til senere: Generalisere
Læs mereStudiepraktik. Thomas Bøgholm Mikkel Hansen Jacob Elefsen
Studiepraktik Thomas Bøgholm boegholm@cs.aau.dk Mikkel Hansen mhan@cs.aau.dk Jacob Elefsen jelefs12@student.aau.dk 1 Studiepraktik -- program Program onsdag 10.00 10.15 Registrering af fremmøde og gennemgang
Læs mereEksempel: et ordresystem note 5 Lagdeling s. 1
Eksempel: et ordresystem note 5 Lagdeling s. 1 Eksempel: et ordre-system NiceHair er et firma, som sælger udstyr, inventar og frisørartikler til frisørsaloner over hele landet. Det er ejet af et ægtepar
Læs mereForelæsning Uge 4 Torsdag
Forelæsning Uge 4 Torsdag Algoritmeskabeloner findone, findall, findnoof, findsumof (i mandags) findbest Levetid for variabler og parametre Virkefeltsregler Hvor kan man bruge de forskellige variabler?
Læs mereForelæsning Uge 4 Torsdag
Forelæsning Uge 4 Torsdag Algoritmeskabeloner findone, findall, findnoof, findsumof (sidste mandag) findbest Levetid for variabler og parametre Virkefeltsregler Hvor kan man bruge de forskellige variabler?
Læs mereProjekt arbejde til kurset Advanced Models and Programs, SASP-AMP 2008 Poul Brønnum, IT Universitetet i København, Maj 2008. Indholdsfortegnelse
Udvidelse af MicroC compileren til at kunne håndtere struct- og union typer samt switch-, break- og continue statement. Yderligere er ovenstående konstruktioner anvendt til at indføre malloc og free kald
Læs mereUniversity of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3
DM502 Forelæsning 3 Indlæsning fra tastatur Udskrift til skærm Repetition Beregning af middelværdi Gentagelse med stop-betingelse (while) Heltalsdivision Division med nul Type-casting ( (double) ) Betinget
Læs mereTest af It-komponent
Test af It-komponent I programmeringssproget Java Programmet Login service Elev: Mads Funch Klasse 2.4 Mat, It, Programmering Skole: Roskilde Tekniske Gymnasium HTX Underviser: Karl Dato: 31-08-2016 Side
Læs mereForelæsning Uge 5 Mandag
Forelæsning Uge 5 Mandag Sortering ved hjælp af klassen Collections Ved hjælp af interfacet Comparable Ved hjælp af interfacet Comparator findbest som sorteringsproblem Køreprøven i uge 7 Form Forberedelse
Læs mereDen forudsætter kendskab til C++ og lidt kendskab til SQL og MySQL C API.
Denne guide er oprindeligt udgivet på Eksperten.dk Brug af MySQL i C++ Denne artikel bygger ovenpå artiklen "MySQL C API" og forklarer hvordan man kan programmere mere objekt orienteret. Den forudsætter
Læs mereHvem er vi? Kursus Introduktion. Kursuslærerne. Agenda for i dag
Hvem er vi? Kursus Introduktion Anne Haxthausen ah@imm.dtu.dk Informatics and Mathematical Modelling Technical University of Denmark 100 studerende med forskellig baggrund: software teknologi It og Kom
Læs mereEt SML-program til at finde rødder i en kontinuert funktion
Et SML-program til at finde rødder i en kontinuert funktion Hans Hüttel Ole Høgh Jensen 11 januar 2002 Indhold 1 Om denne tekst 1 2 Hvad er bisektion? 1 3 Specifikation af vores program 2 4 SML-versionen
Læs mereTabeller (I) Tabeller
Tabeller (I) Klassediagrammer (III) Tabeller og qualified associations Michael R. Hansen mrh@imm.dtu.dk Informatics and Mathematical Modelling Technical University of Denmark En tabel fra en mængde A til
Læs mereUgeseddel 4 1. marts - 8. marts
Ugeseddel 4 1. marts - 8. marts Læs følgende sider i kapitel 6 i lærebogen: s. 233 258 og s. 291 317 (afsnit 6.3 overspringes). Begynd at overveje, hvad afleveringsopgaven skal omhandle. Læs vejledningen,
Læs mereSoftware 1 with Java. Recitation No. 7 (Servlets, Inheritance)
Software 1 with Java Recitation No. 7 (Servlets, Inheritance) Servlets Java modules that run on a Web server to answer client requests For example: Processing data submitted by a browser Providing dynamic
Læs mereKlienten. import java.util.*;
Klienten import java.util.*; * Aktiviteter er et model element, som indeholder blandt andet psimetiks beskrivleser. * @author rling public class Aktivitet extends Beholder implements HarEOgA, HarTilknytning,
Læs mere