Design by Contract Bertrand Meyer Design and Programming by Contract. Oversigt. Prædikater

Størrelse: px
Starte visningen fra side:

Download "Design by Contract Bertrand Meyer Design and Programming by Contract. Oversigt. Prædikater"

Transkript

1 Design by Contract Bertrand Meyer 1986 Design and Programming by Contract Michael R. Hansen & Anne Haxthausen Informatics and Mathematical Modelling Technical University of Denmark Design by Contract er en teknik til at specificere software bruger prædikater (assertions) til dette : Hoare style pre-betingelser og post-betingelser for metoder/operationer klasse-invarianter Oversigt Software Engineering 1 c Michael R. Hansen and Anne Haxthausen, Spring 2008 p. 1 Prædikater Software Engineering 1 c Anne Haxthausen, Spring 2008 p. 3 Brug af assertions ved design og programmering. Design by contract Java Modelling Language (JML) Et prædikat (assertion) er en formel, hvis sandhedsværdi afhænger af tilstanden. Eks.: Prædikatet "x delelig med 3", hvor x N, er sand for de tilstande hvor x = 0,x = 3,x = 6, Software Engineering 1 c Anne Haxthausen, Spring 2008 p Software Engineering 1 c Michael R. Hansen, Spring 2008 p. 4

2 Design by Contract: pre- og postbetingelser Design by Contract: Klasse-invarianter For en operation/metode beskrives kontrakten ved to prædikater: en pre-betingelse, der angiver forudsætningen for at benytte operationen, og en post-betingelse, der karakteriserer resultatet. Eksempel: Square root, med input x R og output y R. Pre-betingelse: x 0. Post-betingelse: y y = x. Bemærk: Post-betingelsen beskriver hvad ikke hvordan. En klasse-invariant er et prædikat på tilstanden for instanser af klassen. Denne invariant skal være opfyldt før og efter enhver operation på instanser af klassen. Eksempler: En mængde kan repræsenteres som en liste uden gentagelser. Operationer, som indsæt og union, skal implementeres så denne invariant overholdes. Elementer i resultatliste skal være sorteret mht. tiderne med hurtigste tid først. Operationer på resultatlister skal respektere denne invariant Software Engineering 1 c Michael R. Hansen, Spring 2008 p. 5 Design by Contract: pre- og postbetingelser Software Engineering 1 c Michael R. Hansen, Spring 2008 p. 7 Progr. by contract defensiv programmering Pre-betingelser og post-betingelser for operationer bør dokumenteres, f.eks. som kommentarer i koden (for Java: JML annotations). En pre-betingelse er den del af kontrakten som "klient-programmer" skal overholde. En post-betingelse er den del af kontrakten som "leverandør-programmet" garanterer, hvis klienten holder sin del. Den egenskabsbaserede prædikat-form støtter et højt abstraktionsniveau (beskriver hvad ikke hvordan). En leverandør skal implementere en operation så post-betingelsen er opfyldt, når pre-betingelsen er opfyldt. Leverandøren kan ignorere brud på pre-betingelsen, men kan også ved defensiv programmering tage højde for brud. I Java kan dette med fordel gøres ved brug af assert-sætningen. Eks.: operation der giver 1 te element i ikke-tomt array A: public static int first(int[] A){ assert(a.length > 0); return A[0]; // pre-betingelse Brug assertions under udviklingsfasen. Assertions kan evt. undertrykkes af effektivitetsgrunde i det færdige produkt Software Engineering 1 c Michael R. Hansen, Spring 2008 p Software Engineering 1 c Michael R. Hansen, Spring 2008 p. 8

3 Progr. by contract beskyt klasseinvariant En leverandør skal tilbyde operationer der bevarer invarianten. En klient må ikke kunne bryde invarianten. Eksempel: Stak med konkret repræsentation Array A[1..N] og et (synligt) index top, til første toppen af stakken Operationer: push(x) : x tilføres stakken pop : topelementet returneres og fjernes fra (ikke tom) stakken empty : den tomme stak tom? : test på om stakken er tom Klasseinvariant: top er antal elementer i stakken. Problem: Datastrukturen bryder sammen ved misbrug af top. Løsning: Indkapsling, f.eks. ved brug af abstrakte datatyper Konkrete og abstrakte datatyper Software Engineering 1 c Michael R. Hansen, Spring 2008 p. 9 En datatype er en mængde af værdier og en samling operationer på disse. F.eks. den konkrete stak. En abstrakt datatype er en mængde af værdier og en samling operationer på disse. Værdiernes repræsentation er ikke synlig for klienter. (I Java: gør felter private. ) Ofte beskrives en abstrakt datatype ved en signatur (interface) og operationernes egenskaber. Eksempel: Stak med elementer af type A: empty: () -> Stak push: A * Stak -> Stak pop : Stak -> A isempty: Stak -> Boolean og et eksempel på sådan en egenskab kunne være: pop(push(x,s)) = x Software Engineering 1 c Michael R. Hansen, Spring 2008 p. 10 Abstrakte datatyper og programdesign Datastrukturer skal indkapsles i klasserne så invarianter ikke brydes. Vælg datatyper hensigtsmæssigt, så brugen af ekstra invarianter begrænses så meget som muligt. Letter arbejder for både klient og leverandør. Vælg type så højt oppe i typehierarkiet som muligt. Dette letter arbejdet ved ændring i valg af konkrete datatyper. Abstrakte datatyper understøtter opdeling af systemet i afgrænsede velforståede komponenter, og et et redskab til at opnå et modulært programdesign. Java Modeling Language (JML) JML is a specification language for Java programs Software Engineering 1 c Michael R. Hansen, Spring 2008 p. 11 follows the design by contract paradigm using Hoare style pre- and postconditions and invariants the specifications are added as Java annotation comments to the final Java program which hence can be compiled with any Java compiler JML verification tools: jmlc: an assertion checking compiler which converts JML annotations into runtime assertions Software Engineering 1 c Anne Haxthausen, Spring 2008 p. 12

4 Java development using JML In the design: make assertions as JML annotations: pre conditions and post conditions for methods state invariants for classes Implement the classes. Compile them with jmlc. Run test cases. If an assertion is broaken, it results in a runtime error. Checks can be turned off for production use of the software. Example of pre and post conditions in JML public class Person { private int weight; invariant weight >= 0; requires kgs >= 0; assignable weight; ensures weight == \old(weight) + kgs; public void addkgs(int kgs){ weight = weight + kgs; Example of invariant in JML Software Engineering 1 c Anne Haxthausen, Spring 2008 p. 13 ensures \result == weight; public getweight(){ return weight; Software Engineering 1 c Anne Haxthausen, Spring 2008 p. 15 Example of use of quantifiers in JML public class Person { private int weight; invariant weight >= 0;... requires a!= && (\forall int i; 0 < i && i < a[i-1] <= int binarysearch(int[] a, int x) { Software Engineering 1 c Anne Haxthausen, Spring 2008 p Software Engineering 1 c Anne Haxthausen, Spring 2008 p. 16

5 JML Syntax (I) JML specifications are added to Java code as annotations in comments: <JML specification> <JML specifications>: requires <JML assertion> ensures <JML assertion> invariant <JML assertion>... % pre condition % post condition JML Syntax (III) New modifiers in JML: spec_public: to indicate that it field may be referred to in JML assertions pure: to indicate that method does not change the state assignable x: to indicate that a method is allowed to assign to the field x. JML Syntax (II) Software Engineering 1 c Anne Haxthausen, Spring 2008 p Software Engineering 1 c Anne Haxthausen, Spring 2008 p. 19 <JML assertion> = <Java expression>, but: must not have side effects (not using = neither directly nor indirectly, only call pure methods) can use extensions to Java: Syntax \result a ==> b a <== b a <==> b \old(e) (\forall T x; P; Q) (\exists T x; P; Q) meaning result of method call a implies b a implied by b a if and only if b value of E in pre-state x : T P = Q x : T P Q Software Engineering 1 c Anne Haxthausen, Spring 2008 p. 18

Design by Contract. Design and Programming by Contract. Oversigt. Prædikater

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 mere

Tabelbegrebet. Klassediagrammer (III) Oversigt. Anvendelse af Tabeller. Tabeller og qualified associations

Tabelbegrebet. 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 mere

Abstrakte datatyper C#-version

Abstrakte 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 mere

Hvem er vi? Kursus Introduktion. Kursuslærerne. Agenda for i dag

Hvem 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 mere

Tabeller (I) Tabeller

Tabeller (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 mere

Kontraktbaseret Design. Anker Mørk Thomsen

Kontraktbaseret Design. Anker Mørk Thomsen Kontraktbaseret Design Anker Mørk Thomsen 5. marts 2014 -2 Kontraktbaseret Design Anker Mørk Thomsen 1. udgave ISBN: 9788740491500 Forord Bogen er blevet til gennem undervisning i faget Kontraktbaseret

Læs mere

Introduktion til datastrukturer. Introduktion til datastrukturer. Introduktion til datastrukturer. Datastrukturer

Introduktion til datastrukturer. Introduktion til datastrukturer. Introduktion til datastrukturer. Datastrukturer Introduktion til datastrukturer Introduktion til datastrukturer Philip Bille Datastrukturer Datastruktur. Metode til at organise data så det kan søges i/tilgås/manipuleres effektivt. Mål. Hurtig Kompakt

Læs mere

Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version

Algoritmeskabeloner: 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 mere

Introduktion til datastrukturer. Introduktion til datastrukturer. Introduktion til datastrukturer. Datastrukturer

Introduktion til datastrukturer. Introduktion til datastrukturer. Introduktion til datastrukturer. Datastrukturer Introduktion til datastrukturer Introduktion til datastrukturer Philip Bille Datastrukturer Datastruktur. Metode til at organise data så det kan søges i/tilgås/manipuleres effektivt. Mål. Hurtig Kompakt

Læs mere

Introduktion til datastrukturer. Philip Bille

Introduktion til datastrukturer. Philip Bille Introduktion til datastrukturer Philip Bille Plan Datastrukturer Stakke og køer Hægtede lister Dynamiske tabeller Datastrukturer Datastrukturer Datastruktur: Metode til at organise data så det kan søges

Læs mere

Introduktion til datastrukturer

Introduktion til datastrukturer Introduktion til datastrukturer Datastrukturer Stakke og køer Hægtede lister Dynamiske tabeller Philip Bille Introduktion til datastrukturer Datastrukturer Stakke og køer Hægtede lister Dynamiske tabeller

Læs mere

AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007

AAU, 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 mere

Datalogi OB, Efterår 2002 OH er, forelæsning 10/ Klasser og nedarvning

Datalogi 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 mere

A Profile for Safety Critical Java

A 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 mere

Øvelse 9. Klasser, objekter og sql-tabeller insert code here

Øvelse 9. Klasser, objekter og sql-tabeller insert code here Øvelse 9. Klasser, objekter og sql-tabeller Denne opgave handler om hvordan man opbevarer data fra databasekald på en struktureret måde. Den skal samtidig give jer erfaringer med objekter, der kommer til

Læs mere

Hvordan vælger jeg dokumentprofilen?

Hvordan 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

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2012 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 15. marts, 2012 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

SOFTWARE PROCESSES. Dorte, Ida, Janne, Nikolaj, Alexander og Erla

SOFTWARE PROCESSES. Dorte, Ida, Janne, Nikolaj, Alexander og Erla SOFTWARE PROCESSES Dorte, Ida, Janne, Nikolaj, Alexander og Erla Hvad er en software proces? Et struktureret sæt af AKTIVITETER, hvis mål er udvikling af software. En software proces model er en abstrakt

Læs mere

Løsning af skyline-problemet

Løsning af skyline-problemet Løsning af skyline-problemet Keld Helsgaun RUC, oktober 1999 Efter at have overvejet problemet en stund er min første indskydelse, at jeg kan opnå en løsning ved at tilføje en bygning til den aktuelle

Læs mere

Rekursion og dynamisk programmering

Rekursion og dynamisk programmering Rekursion og dynamisk programmering Datastrukturer & Algoritmer, Dat C Forelæsning 12/10-2004 Henning Christiansen Rekursion: at en procedure kalder sig selv eller et antal metoder kalder hinanden gensidigt.

Læs mere

DATALOGI 0GB. Skriftlig eksamen tirsdag den 6. januar 2004

DATALOGI 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 mere

ODIN-webservice ændringer release 2010 v2.0

ODIN-webservice ændringer release 2010 v2.0 DOKUMENTATION OG VEJLEDNING ODIN-webservice ændringer release 2010 v2.0 Indholdsfortegnelse 1. Nye webservice metoder... 2 1.1 Anvendelse af køretøjer og personel fra fremmede beredskaber ifm. indberetning

Læs mere

3 Algebraisk Specifikation af Abstrakte Datatyper.

3 Algebraisk Specifikation af Abstrakte Datatyper. 3 Algebraisk Specifikation af Abstrakte Datatyper. Specifikation kontra program. Bestanddele af en algebraisk specifikation. Klassificering af funktioner i en ADT. Systematisk definition af ligninger.

Læs mere

Cookie-reglerne set fra myndighedsside Dansk Forum for IT-ret 5. november 2012

Cookie-reglerne set fra myndighedsside Dansk Forum for IT-ret 5. november 2012 Cookie-reglerne set fra myndighedsside Dansk Forum for IT-ret 5. november 2012 Af Kontorchef Brian Wessel Program Status på gennemførelsen af reglerne i DK Udfordringerne og svar herpå Erhvervsstyrelsens

Læs mere

Real-time programming safety in Java and Ada

Real-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 mere

Assignment #5 Toolbox Contract

Assignment #5 Toolbox Contract Assignment #5 Toolbox Contract Created by: René Kragh Trine Randløv E mail address cph rk70@cphbusiness.dk 23 11 2014 1 Introduktion Dette dokument indeholder en vertikal kontrakt for et system som skal

Læs mere

Objects First with Java A Practical Introduction Using BlueJ

Objects First with Java A Practical Introduction Using BlueJ Objects First with Java A Practical Introduction Using BlueJ En introduktion til objektorienteret programmering for begyndere ud fra et software engineering aspekt Om at programmere i Java, ikke om værktøjet

Læs mere

Forelæsning Uge 2 Torsdag

Forelæsning Uge 2 Torsdag Forelæsning Uge 2 Torsdag Java syntax og style guide Sætninger Simple sætninger (assignment, interne og eksterne metodekald) Sammensatte sætninger (blok, selektion, gentagelse) Udtryk og operatorer Brug

Læs mere

BOSK F2012, 1. del: Prædikatslogik

BOSK F2012, 1. del: Prædikatslogik ε > 0. δ > 0. x. x a < δ f (x) L < ε February 8, 2012 Prædikater Vi skal lære om prædikatslogik lad os starte med prædikater. Et prædikat er et orakel der svarer ja eller nej. Eller mere præcist: Prædikater

Læs mere

Software Construction 1 semester (SWC) Spørgsmål 1

Software 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 mere

Terese B. Thomsen 1.semester Formidling, projektarbejde og webdesign ITU DMD d. 02/11-2012

Terese 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 mere

Databaseadgang fra Java

Databaseadgang 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 mere

INGENIØRHØJSKOLEN I ÅRHUS Elektro- og IKT-afdelingen. I3PRG3 + I3DTM3 + I3ISY1-3. semester

INGENIØRHØJSKOLEN I ÅRHUS Elektro- og IKT-afdelingen. I3PRG3 + I3DTM3 + I3ISY1-3. semester INGENIØRHØJSKOLEN I ÅRHUS Elektro- og IKT-afdelingen Side 1 af 7 Eksamenstermin: DECEMBER 2003 / JANUAR 2004 Varighed: 4 timer - fra kl. 9.00 til kl. 13.00 Ingeniørhøjskolen udleverer: 3 omslag samt papir

Læs mere

29 Opsamling af Objekt-orienteret Programmering.

29 Opsamling af Objekt-orienteret Programmering. 29 Opsamling af Objekt-orienteret Programmering. Bottom-up kontra top-down design. "The shopping list approach". Hvordan finder man på objekterne. Klasser og dataabstraktion. Klasse interface og interface-teknikker.

Læs mere

Patentering af software

Patentering af software Patentering af software Hvad og hvordan? js@inspicos.com European Patent Attorney Overblik Hvad skal al balladen til for? Hvad står der i loven? Hvad gør man så for at beskytte sin software? Hvad kan man

Læs mere

Skriftlig eksamen i Datalogi

Skriftlig 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 mere

Test af It-komponent

Test 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 mere

Speciale. Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende Java Optimized Processor (JOP)

Speciale. Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende Java Optimized Processor (JOP) Speciale Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende Java Optimized Processor (JOP) Speciale efterår 2005 Teknisk Informationsteknologi Jan Lauritzen & Mads

Læs mere

Bilag 2 og 3 og værktøjer

Bilag 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 mere

Rename og redefine. Abstrakte klasser. Dynamisk binding.

Rename og redefine. Abstrakte klasser. Dynamisk binding. 11 Nedarvning II. Enkeltnedarvning i Eiffel. Rename og redefine. Initialisering af superklasse-dele af et objekt. Interfaces til klienter og subklasser. Typesammenlignelighed og polymorfi. Abstrakte klasser.

Læs mere

Eksempel: et ordresystem note 5 Lagdeling s. 1

Eksempel: 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 mere

RentCalC V2.0. 2012 Soft-Solutions

RentCalC V2.0. 2012 Soft-Solutions Udlejnings software Vores udvikling er ikke stoppet!! by Soft-Solutions RentCalC, som er danmarks ubetinget bedste udlejnings software, kan hjælpe dig med på en hurtigt og simple måde, at holde styr på

Læs mere

BRP 6.9.2006 Kursusintroduktion og Java-oversigt

BRP 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 mere

Civilingeniøreksamen 49104 12. januar 2001. Skriftelig prøve den 12. januar 2001 Kursusnummer 49104

Civilingeniø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 mere

PHP 3 UGERS FORLØB PHP, MYSQL & SQL

PHP 3 UGERS FORLØB PHP, MYSQL & SQL PHP 3 UGERS FORLØB PHP, MYSQL & SQL Uge 1 & 2 Det basale: Det primære mål efter uge 1 og 2, er at få forståelse for hvordan AMP miljøet fungerer i praksis, og hvordan man bruger PHP kodesproget til at

Læs mere

Udfordringer med indeklima ved energirenovering

Udfordringer med indeklima ved energirenovering Udfordringer med indeklima ved energirenovering Geo Clausen International Centre for Indoor Environment and Energy Department of Civil Engineering Technical University of Denmark Questionnaire survey Henrik

Læs mere

8 Specifikation med Logiske Udtryk.

8 Specifikation med Logiske Udtryk. 8 Specifikation med Logiske Udtryk. Specifikation kontra program. Specifikation af funktioner. Specifikation af funktions-orienterede ADT-er. Integreret specifikation og program i Eiffel. Korrekthed af

Læs mere

Kursus navn: Indledende programmering Kursus nr. 02101

Kursus navn: Indledende programmering Kursus nr. 02101 Danmarks Tekniske Universitet Side 1 af 8 sider Skriftlig prøve, den 15. december 2007 Kursus navn: Indledende programmering Kursus nr. 02101 Tilladte hjælpemidler: Alle skriftlige hjælpemidler Vægtning

Læs mere

Klasser og objekter. (Afsnit i manualen)

Klasser 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 mere

Datalogi OB, Efterår 2002 OH er, forelæsning 3/9-2002 - forstå datastrukturer og algoritmer (teoretisk forståelse og intuition)

Datalogi OB, Efterår 2002 OH er, forelæsning 3/9-2002 - forstå datastrukturer og algoritmer (teoretisk forståelse og intuition) Datalogi OB, Efterår 2002 OH er, forelæsning 3/9-2002 Datastrukturer og algoritmer Henning Christiansen henning@ruc.dk http://www.ruc.dk/~henning Formål: at kunne - forstå datastrukturer og algoritmer

Læs mere

1.1 Formål Webservicen gør det muligt for eksterne parter, at fremsøge informationer om elevers fravær.

1.1 Formål Webservicen gør det muligt for eksterne parter, at fremsøge informationer om elevers fravær. EfterUddannelse.dk FraværService - systemdokumentation BRUGERDOKUMENTATION: WEB-SERVICE Af: Logica Indhold 1. Indledning... 1 1.1 Formål... 1 1.2 Webservice version... 1 1.3 Historik... 1 2. Absence Webservice...

Læs mere

University of Copenhagen Faculty of Science Written Exam - 8. April 2008. Algebra 3

University of Copenhagen Faculty of Science Written Exam - 8. April 2008. Algebra 3 University of Copenhagen Faculty of Science Written Exam - 8. April 2008 Algebra 3 This exam contains 5 exercises which are to be solved in 3 hours. The exercises are posed in an English and in a Danish

Læs mere

Skriftlig Eksamen Kombinatorik, Sandsynlighed og Randomiserede Algoritmer (DM528)

Skriftlig Eksamen Kombinatorik, Sandsynlighed og Randomiserede Algoritmer (DM528) Skriftlig Eksamen Kombinatorik, Sandsynlighed og Randomiserede Algoritmer (DM58) Institut for Matematik og Datalogi Syddansk Universitet, Odense Torsdag den 1. januar 01 kl. 9 13 Alle sædvanlige hjælpemidler

Læs mere

Hashing og hashtabeller

Hashing og hashtabeller Datastrukturer & Algoritmer, Datalogi C Forelæsning 16/11-2004 Hashing og hashtabeller Teknik til at repræsentere mængder Konstant tid for finde og indsætte men ingen sortering af elementerne Specielt

Læs mere

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 4

University 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 mere

Boost Concept Check Library

Boost Concept Check Library Boost Concept Check Library Kasper Egdø and Konstantin Barkaia Department of Computer Science University of Copenhagen Boost Concept Check Library p.1/19 Eksempel #include #include int

Læs mere

Forelæsning Uge 6 Mandag

Forelæ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 mere

Small Autonomous Devices in civil Engineering. Uses and requirements. By Peter H. Møller Rambøll

Small Autonomous Devices in civil Engineering. Uses and requirements. By Peter H. Møller Rambøll Small Autonomous Devices in civil Engineering Uses and requirements By Peter H. Møller Rambøll BACKGROUND My Background 20+ years within evaluation of condition and renovation of concrete structures Last

Læs mere

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n 2 n (log n) 2. 3 n /n 2 n + (log n) 4

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n 2 n (log n) 2. 3 n /n 2 n + (log n) 4 Eksamen. kvarter 00 Side 1 af sider Opgave 1 ( %) Ja Nej n log n er O(n / )? n 1/ er O(log n)? n + n er O(n )? n( n + log n) er O(n / )? n er Ω(n )? Opgave ( %) Opskriv følgende funktioner efter stigende

Læs mere

Design til digitale kommunikationsplatforme-f2013

Design til digitale kommunikationsplatforme-f2013 E-travellbook Design til digitale kommunikationsplatforme-f2013 ITU 22.05.2013 Dreamers Lana Grunwald - svetlana.grunwald@gmail.com Iya Murash-Millo - iyam@itu.dk Hiwa Mansurbeg - hiwm@itu.dk Jørgen K.

Læs mere

Eksempel: Skat i år 2000

Eksempel: Skat i år 2000 Kursus 02199: Programmering afsnit 2.1-2.7 Anne Haxthausen IMM, DTU 1. Værdier og typer (bl.a. char, boolean, int, double) (afsnit 2.4) 2. Variable og konstanter (afsnit 2.3) 3. Sætninger (bl.a. assignments)

Læs mere

16 Træer. Noter. Definition af et træ. Definitioner i tilknytning til træer. Repræsentation af træer. Binære træer. Den abstrakte datatype.

16 Træer. Noter. Definition af et træ. Definitioner i tilknytning til træer. Repræsentation af træer. Binære træer. Den abstrakte datatype. 16 Træer. Definition af et træ. Definitioner i tilknytning til træer. Repræsentation af træer. Binære træer. Den abstrakte datatype. Gennemløb af binære træer. Træer i Eiffel. 229 Definition af et træ.

Læs mere

Modern Concurrency Abstractions for C#

Modern 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 mere

Linguistic support for unit testing

Linguistic support for unit testing Linguistic support for unit testing Af K. E. Gray & M. Felleisen Mads Bach-Sørensen mbs@cs.aau.dk 1. november 2007 1 Indhold Forfatterne TestJava Traditionel Unit-testing Sproglige Konstruktioner i TestJava

Læs mere

SEPA Direct Debit. Mandat Vejledning 2013.03.15. Nets Lautrupbjerg 10 DK-2750 Ballerup

SEPA Direct Debit. Mandat Vejledning 2013.03.15. Nets Lautrupbjerg 10 DK-2750 Ballerup SEPA Direct Debit Mandat Vejledning 2013.03.15 Nets Lautrupbjerg 10 DK-2750 Ballerup Indholdsfortegnelse 1. Indledning... 3 1.1 Tilknyttet dokumentation... 3 1.2 Kontakt til Nets... 3 2. Krav til SEPA

Læs mere

Videregående Programmering for Diplom-E Noter

Videregående Programmering for Diplom-E Noter Videregående Programmering for Diplom-E Noter 1. Uddelegering Ét af de væsentlige principper i objektorienteret programmering er, at enhver klasse selv skal kunne "klare ærterne". Enhver klasse skal altså

Læs mere

Hashing og hashtabeller

Hashing og hashtabeller Datastrukturer & Algoritmer, Datalogi C Forelæsning 12/11-2002 Hashing og hashtabeller Teknik til at repræsentere mængder Konstant tid for finde og indsætte men ingen sortering af elementerne Specielt

Læs mere

RMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation).

RMI 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 mere

Sortering. De n tal i sorteret orden. Eksempel: Kommentarer:

Sortering. De n tal i sorteret orden. Eksempel: Kommentarer: Sortering Sortering Input: Output: n tal De n tal i sorteret orden Eksempel: Kommentarer: 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 Sorteret orden kan være stigende eller faldende. Vi vil i dette kursus

Læs mere

FIST-GPS3 I N S T A L L A T I O N S I N S T R U K S

FIST-GPS3 I N S T A L L A T I O N S I N S T R U K S FIST-GPS3 I N S T A L L A T I O N S I N S T R U K S GPSTF-patchbakker monteret med prætermineret kabel UDARBEJDET I SAMARBEJDE MED TDC Indhold 1 General information 2 Kit indhold 3 Montering af skuffer

Læs mere

Skriftlig eksamen i Datalogi

Skriftlig 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 mere

Lærevejledning. - en introduktion til maskinarkitektur. faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen

Lærevejledning. - en introduktion til maskinarkitektur. faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen Lærevejledning - en introduktion til maskinarkitektur faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen Roskilde Universitetscenter Naturvidenskabelig Basisuddannelse

Læs mere

OCD DTU. Screening of aluminium in the offshore industry. Screening. DOC. NO. dokument 1 March 2007

OCD DTU. Screening of aluminium in the offshore industry. Screening. DOC. NO. dokument 1 March 2007 CVR: 27171877 VestJysk Bank: 7606 1064127 OCD DTU Screening of aluminium in the offshore industry Screening DOC. NO. dokument 1 March 2007 info@offshorecenter.dk Tel: +45 36973670 www.offshorecenter.dk../2

Læs mere

13 Objekt-orienteret Design.

13 Objekt-orienteret Design. 13 Objekt-orienteret Design. Analyse i forhold til design. Programbeskrivelse og designbeskrivelse. Sømløs udvikling. Design i forhold til OO Eiffel programmering. Kategorisering af klasser i et design.

Læs mere

A Comparative Analysis of Three Different Priority Deques af: Søren Skov & Jesper Holm Olsen

A Comparative Analysis of Three Different Priority Deques af: Søren Skov & Jesper Holm Olsen A Comparative Analysis of Three Different Priority Deques af: Søren Skov & Jesper Holm Olsen Agenda: Hvad er en Priority Deque? Hvad kan det bruges til? De tre datastrukturer: MinMax-heap The Deap (påpeget

Læs mere

Dagens program. Domæner. change log- screen shots hver gang I har arbejdet med themet. Arkitekturen bag en wp blog. Hvad er widgets.

Dagens program. Domæner. change log- screen shots hver gang I har arbejdet med themet. Arkitekturen bag en wp blog. Hvad er widgets. Dagens program Har alle fået? Har nogen betalt for meget? Hav jeres koder klar Domæner change log- screen shots hver gang I har arbejdet med themet. Arkitekturen bag en wp blog Hvad er widgets Hvad er

Læs mere

SAS-programmering med sikkerhedsnet: FUTS (Framework for Unit Testing SAS programs)

SAS-programmering med sikkerhedsnet: FUTS (Framework for Unit Testing SAS programs) SAS-programmering med sikkerhedsnet: FUTS (Framework for Unit Testing SAS programs) Forkerte analyseresultater fra virksomhedens egen SAS-programmør kan have store omkostninger for virksomheden. Derfor

Læs mere

Google App Engine. Google App Engine som platform. Claus Myglegaard Vagner og Jacob von Eyben

Google 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

BRP Tal. Om computer-repræsentation og -manipulation. Logaritmer

BRP 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 mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2015 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 3. marts, 2015 Dette projekt udleveres i to dele. Hver del har sin deadline, således

Læs mere

SmartDock for Xperia ion Brugervejledning

SmartDock for Xperia ion Brugervejledning SmartDock for Xperia ion Brugervejledning Indholdsfortegnelse Indledning...3 Oversigt over SmartDock...3 Opladning med SmartDock...3 Kom godt i gang...5 LiveWare -administration...5 Opgradering af LiveWare

Læs mere

En guidet tur gennem Clilstore

En guidet tur gennem Clilstore En guidet tur gennem Clilstore Elementære skridt Dette er en trin for trin demonstration af hvordan man kan lave en online webside (Unit) med video samt tekst hvor alle ordene er kædet til en lang række

Læs mere

SDHplus Solar District Heating in Europe

SDHplus Solar District Heating in Europe 1 SDHplus Solar District Heating in Europe WP2 SDH enabling buildings with high energy performance Task 2.1 Survey and horizontal review of the existing models D2.2 Information sheet on building legislation

Læs mere

Overblik. Class Loader. Java. Class Libraries. Bytecode. Verifier Java. Source (.java) Just in Time Compiler. Java

Overblik. 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 mere

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2 DM502 Forelæsning 2 Repetition Kompilere og køre Java program javac HelloWorld.java java HeloWorld.java Debugge Java program javac -g HelloWorld.java jswat Det basale Java program public class HelloWorld

Læs mere

Videregående programmering i Java

Videregå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 mere

WT-1011RC Programmer User Guide

WT-1011RC Programmer User Guide WT-1011RC Programmer User Guide Firmware Version 1.9 Note: 1. Information in this manual is subject to change without notice and does not represent a commitment of manufacturer. 2. Manufacturer shall not

Læs mere

Virkefeltsregler i Java

Virkefeltsregler 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 mere

2 Abstrakte datatyper.

2 Abstrakte datatyper. 2 Abstrakte datatyper. Motivere eksempel: top-down udvikling af program 'mini-bank' Strukturering af et program: efter data eller funktion? Definition af en abstrakt datatype og tilknyttede begreber. Fænomener,

Læs mere

PHP Snippets. De små korte. Skrevet af Daniel Pedersen

PHP Snippets. De små korte. Skrevet af Daniel Pedersen PHP Snippets De små korte Skrevet af Daniel Pedersen Indhold PHP Snippets De små korte er en samling af små og praktiske kode eksempler med kort forklaring, som med formål at kunne benyttes til opsalgsværk

Læs mere

DM502. Peter Schneider-Kamp (petersk@imada.sdu.dk) http://imada.sdu.dk/~petersk/dm502/

DM502. Peter Schneider-Kamp (petersk@imada.sdu.dk) http://imada.sdu.dk/~petersk/dm502/ DM502 Peter Schneider-Kamp (petersk@imada.sdu.dk) http://imada.sdu.dk/~petersk/dm502/ 1 DM502 Bog, ugesedler og noter De første øvelser Let for nogen, svært for andre Kom til øvelserne! Lav opgaverne!

Læs mere

Aktivering af Survey funktionalitet

Aktivering af Survey funktionalitet Surveys i REDCap REDCap gør det muligt at eksponere ét eller flere instrumenter som et survey (spørgeskema) som derefter kan udfyldes direkte af patienten eller forsøgspersonen over internettet. Dette

Læs mere

Da beskrivelserne i danzig Profile Specification ikke er fuldt færdige, foreslås:

Da beskrivelserne i danzig Profile Specification ikke er fuldt færdige, foreslås: NOTAT 6. juni 2007 J.nr.: 331-3 LEA Bilag A danzig-møde 15.6.2007 Opdatering af DAN-1 og danzig Profile Specification Forslag til opdatering af Z39.50 specifikationerne efter udgivelse af Praksisregler

Læs mere

Udfordringer for cyber security globalt

Udfordringer for cyber security globalt Forsvarsudvalget 2013-14 FOU Alm.del Bilag 105 Offentligt Udfordringer for cyber security globalt Binbing Xiao, Landechef, Huawei Technologies Danmark Knud Kokborg, Cyber Security Officer, Huawei Technologies

Læs mere

Subject to terms and conditions. WEEK Type Price EUR WEEK Type Price EUR WEEK Type Price EUR WEEK Type Price EUR

Subject to terms and conditions. WEEK Type Price EUR WEEK Type Price EUR WEEK Type Price EUR WEEK Type Price EUR ITSO SERVICE OFFICE Weeks for Sale 31/05/2015 m: +34 636 277 307 w: clublasanta-timeshare.com e: roger@clublasanta.com See colour key sheet news: rogercls.blogspot.com Subject to terms and conditions THURSDAY

Læs mere

KALK- OG TEGLVÆRKSFORENINGEN. CPR Sustainable Construction

KALK- OG TEGLVÆRKSFORENINGEN. CPR Sustainable Construction CPR Sustainable Construction 1 Tommy Bisgaard - Direktør i Kalk- og Teglværksforeningen - Formand for DS 417 (CEN TC350 & 351) - Formand for miljøkomiteen i TBE & CU (keramiske industrier i Europa) - Medlem

Læs mere

Kursus i OOP og Java. Kursus i Objektorienteret programmering i Java

Kursus 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 mere

Programmeringscamp. Implementer funktionerne én for én og test hele tiden.

Programmeringscamp. Implementer funktionerne én for én og test hele tiden. Programmeringscamp De to opgaver træner begge i at lave moduler som tilbyder services der kan bruges af andre, samt i at implementere services efter en abstrakt forskrift. Opgave 1 beder jer om at implementere

Læs mere

Opgaver. Oktober 2009

Opgaver. Oktober 2009 Opgaver Oktober 2009 Dette er en samling af supplerende opgaver til kurset Programmering 2. I nogle opgaver henvises til filer med Java programmer/klasser. Dette eksempelmateriale kan nås via WWW: http://www.cs.au.dk/dprog2/eksempler/

Læs mere

Hvad Hvorfor Hvordan

Hvad Hvorfor Hvordan Hvad Hvorfor Hvordan Hent OpenKapow Installer programmet OpenKapow er et enkelt program til at bygge robotter for at skrabe data på nettet. Programmet er gratis at hente og bruge. Det findes i en linux-

Læs mere