Design by Contract Bertrand Meyer Design and Programming by Contract. Oversigt. Prædikater
|
|
- Magnus Kjeldsen
- 6 år siden
- Visninger:
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 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 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 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 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 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 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 mereKontraktbaseret 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 mereDet er muligt at chekce følgende opg. i CodeJudge: og
Det er muligt at chekce følgende opg. i CodeJudge:.1.7 og.1.14 Exercise 1: Skriv en forløkke, som producerer følgende output: 1 4 9 16 5 36 Bonusopgave: Modificer dit program, så det ikke benytter multiplikation.
Læs mereProject Step 7. Behavioral modeling of a dual ported register set. 1/8/ L11 Project Step 5 Copyright Joanne DeGroat, ECE, OSU 1
Project Step 7 Behavioral modeling of a dual ported register set. Copyright 2006 - Joanne DeGroat, ECE, OSU 1 The register set Register set specifications 16 dual ported registers each with 16- bit words
Læs mereIntroduktion 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 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 mereIntroduktion 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 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 mereIntroduktion 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 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 mereIntroduktion 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 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 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 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 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 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 mereAarhus Universitet, Science and Technology, Computer Science. Exam. Wednesday 27 June 2018, 9:00-11:00
Page 1/12 Aarhus Universitet, Science and Technology, Computer Science Exam Wednesday 27 June 2018, 9:00-11:00 Allowed aid: None The exam questions are answered on the problem statement that is handed
Læs mereIBM Network Station Manager. esuite 1.5 / NSM Integration. IBM Network Computer Division. tdc - 02/08/99 lotusnsm.prz Page 1
IBM Network Station Manager esuite 1.5 / NSM Integration IBM Network Computer Division tdc - 02/08/99 lotusnsm.prz Page 1 New esuite Settings in NSM The Lotus esuite Workplace administration option is
Læs mereØ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 mereECE 551: Digital System * Design & Synthesis Lecture Set 5
ECE 551: Digital System * Design & Synthesis Lecture Set 5 5.1: Verilog Behavioral Model for Finite State Machines (FSMs) 5.2: Verilog Simulation I/O and 2001 Standard (In Separate File) 3/4/2003 1 ECE
Læs mereLinear Programming ١ C H A P T E R 2
Linear Programming ١ C H A P T E R 2 Problem Formulation Problem formulation or modeling is the process of translating a verbal statement of a problem into a mathematical statement. The Guidelines of formulation
Læs merePrivat-, statslig- eller regional institution m.v. Andet Added Bekaempelsesudfoerende: string No Label: Bekæmpelsesudførende
Changes for Rottedatabasen Web Service The coming version of Rottedatabasen Web Service will have several changes some of them breaking for the exposed methods. These changes and the business logic behind
Læs mereBemærk, der er tale om ældre versioner af softwaren, men fremgangsmåden er uændret.
Check dine svar på: https://dtu.codejudge.net/02101-e18/ Exercise 1: Installer Eclipse og Java. Dette kan f.eks. gøres ved at følge instuktionerne i dokumentet eclipse intro.pdf som ligger under Fildeling
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 mereBlack Jack --- Review. Spring 2012
Black Jack --- Review Spring 2012 Simulation Simulation can solve real-world problems by modeling realworld processes to provide otherwise unobtainable information. Computer simulation is used to predict
Læs mereÅrsagen til fejl. Erkendelse af fejl. Håndtering af fejl.
9 Fejlhåndtering Årsagen til fejl Erkelse af fejl Håndtering af fejl Fejlerkelse og -håndtering i objekt-orienterede sprog Fejlerkelse og -håndtering i Eiffel Udbredelse af fejl i Eiffel Nuanceret fejlhåndtering
Læs mere3C03 Concurrency: Model-based Design
3C03 Concurrency: Model-based Design Wolfgang Emmerich 1 Outline Role of Modelling in System Development Refining Models into Designs FSP Actions and Operations FSP Processes and Threads FSP Processes
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 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 mereUniversity of Copenhagen Faculty of Science Written Exam - 3. April Algebra 3
University of Copenhagen Faculty of Science Written Exam - 3. April 2009 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 mereUNISONIC TECHNOLOGIES CO.,
UNISONIC TECHNOLOGIES CO., 3 TERMINAL 1A NEGATIVE VOLTAGE REGULATOR DESCRIPTION 1 TO-263 The UTC series of three-terminal negative regulators are available in TO-263 package and with several fixed output
Læs mereMandara. PebbleCreek. Tradition Series. 1,884 sq. ft robson.com. Exterior Design A. Exterior Design B.
Mandara 1,884 sq. ft. Tradition Series Exterior Design A Exterior Design B Exterior Design C Exterior Design D 623.935.6700 robson.com Tradition OPTIONS Series Exterior Design A w/opt. Golf Cart Garage
Læs mereSOFTWARE 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 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 mereLø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 mereUniversity of Copenhagen Faculty of Science Written Exam April Algebra 3
University of Copenhagen Faculty of Science Written Exam - 16. April 2010 Algebra This exam contains 5 exercises which are to be solved in hours. The exercises are posed in an English and in a Danish version.
Læs mereLøsning af møntproblemet
Løsning af møntproblemet Keld Helsgaun RUC, oktober 1999 Antag at tilstandene i problemet (stillingerne) er repræsenteret ved objekter af klassen State. Vi kan da finde en kortest mulig løsning af problemet
Læs mereODIN-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 mereMandara. PebbleCreek. Tradition Series. 1,884 sq. ft robson.com. Exterior Design A. Exterior Design B.
Mandara 1,884 sq. ft. Tradition Series Exterior Design A Exterior Design B Exterior Design C Exterior Design D 623.935.6700 robson.com Tradition Series Exterior Design A w/opt. Golf Cart Garage Exterior
Læs mereStakke, køer og lidt om hægtede lister - kapitel 16 og 17
Datastrukturer & Algoritmer, Datalogi C Forelæsning 2/11-2004 Henning Christiansen Stakke, køer og lidt om hægtede lister - kapitel 16 og 17 Fundamentale datastrukturer man får brug for igen og igen Et
Læs mere22 Hobe. Noter. PS1 -- Hobe. Binære hobe. Minimum-hob og maximum-hob. Den abstrakte datatype minimum-hob. Opbygning af hobe. Operationen siv-ned.
22 Hobe. Binære hobe. Minimum-hob og maximum-hob. Den abstrakte datatype minimum-hob. Opbygning af hobe. Operationen siv-ned. Indsættelse i hobe. Sletning af minimalt element i hobe. Repræsentation. 327
Læs mereRekursion 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 mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 20. marts, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereDM507 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 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 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 mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 29. februar, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereObjects 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 mereAssignment #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 mereForelæ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 mereextreme Programming Kunders og udvikleres menneskerettigheder
extreme Programming Software Engineering 13 1 Kunders og udvikleres menneskerettigheder Kunder: At sætte mål og få projektet til at følge dem At kende varighed og pris At bestemme softwarefunktionalitet
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 13. marts, 2018 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
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 mereSortering af information er en fundamental og central opgave.
Sortering Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 Mange opgaver er hurtigere i sorteret information (tænk på ordbøger, telefonbøger,
Læs mereCookie-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 mere3 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 mereSortering. Eksempel: De n tal i sorteret orden
Sortering 1 / 32 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 2 / 32 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden
Læs mereStakke, køer og lidt om hægtede lister
Datastrukturer & Algoritmer, Datalogi C Forelæsning 4/11-2003 Henning Christiansen Stakke, køer og lidt om hægtede lister - kapitel 16 og 17 Hvorfor? Fundamentale datastrukturer man får brug for igen og
Læs mereF# - hvorfor, hvordan og til hvad? Rune Ibsen Jyske Bank
F# - hvorfor, hvordan og til hvad? Rune Ibsen Jyske Bank 03-10-2018 Rune Ibsen Softwareudvikling Seniorkonsulent Mentoring 10 konsulenter F# Programmeringssprog som oversættes til.net Functional-first,
Læs mereSortering. Eksempel: De n tal i sorteret orden
Sortering 1 / 34 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 2 / 34 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden
Læs mereRename 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 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 mereCHAPTER 8: USING OBJECTS
Ruby: Philosophy & Implementation CHAPTER 8: USING OBJECTS Introduction to Computer Science Using Ruby Ruby is the latest in the family of Object Oriented Programming Languages As such, its designer studied
Læs mereOnline kursus: Programming with ANSI C
Online kursus 365 dage DKK 1.999 Nr. 90198 P ekskl. moms Denne kursuspakke giver dig et bredt kendskab til sproget C, hvis standarder er specificeret af American National Standards Institute (ANSI). Kurserne
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 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 mereUser Manual for LTC IGNOU
User Manual for LTC IGNOU 1 LTC (Leave Travel Concession) Navigation: Portal Launch HCM Application Self Service LTC Self Service 1. LTC Advance/Intimation Navigation: Launch HCM Application Self Service
Læs merePARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU
PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU OUTLINE INEFFICIENCY OF ATTILA WAYS TO PARALLELIZE LOW COMPATIBILITY IN THE COMPILATION A SOLUTION
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 mereMSE PRESENTATION 2. Presented by Srunokshi.Kaniyur.Prema. Neelakantan Major Professor Dr. Torben Amtoft
CAPABILITY CONTROL LIST MSE PRESENTATION 2 Presented by Srunokshi.Kaniyur.Prema. Neelakantan Major Professor Dr. Torben Amtoft PRESENTATION OUTLINE Action items from phase 1 presentation tti Architecture
Læs mereResource types R 1 1, R 2 2,..., R m CPU cycles, memory space, files, I/O devices Each resource type R i has W i instances.
System Model Resource types R 1 1, R 2 2,..., R m CPU cycles, memory space, files, I/O devices Each resource type R i has W i instances. Each process utilizes a resource as follows: request use e.g., request
Læs merePatentering 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 mereSpeciale. 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 mereInvarianter. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af) dens udførelse. Udgør ofte kernen af ideen bag algoritmen.
Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af) dens udførelse. Udgør ofte kernen af ideen bag algoritmen. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af)
Læs mereFejlbeskeder i SMDB. Business Rules Fejlbesked Kommentar. Validate Business Rules. Request- ValidateRequestRegist ration (Rules :1)
Fejlbeskeder i SMDB Validate Business Rules Request- ValidateRequestRegist ration (Rules :1) Business Rules Fejlbesked Kommentar the municipality must have no more than one Kontaktforløb at a time Fejl
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 mereLektion 6. Grundlæggende programmering i VR
Lektion 6 Grundlæggende programmering i VR Plan for i dag Simpelt FPS Triggerzones og animationer C# og objekt orienteret programmering Interfaces Generics Google Cardboard Video om VRs fremtid App til
Læs mereBilag. Bilag 1 Traktaten om oprettelse af Det Europæiske Fællesskab - Artikel 81 1
Bilag Bilag 1 Traktaten om oprettelse af Det Europæiske Fællesskab - Artikel 81 1 1. Alle aftaler mellem virksomheder, alle vedtagelser inden for sammenslutninger af virksomheder og alle former for samordnet
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 mereSide 1 af 9. SEPA Direct Debit Betalingsaftaler Vejledning
Side 1 af 9 SEPA Direct Debit Betalingsaftaler Vejledning 23.11.2015 1. Indledning Denne guide kan anvendes af kreditorer, som ønsker at gøre brug af SEPA Direct Debit til opkrævninger i euro. Guiden kan
Læs mereSkriftlig Eksamen Beregnelighed (DM517)
Skriftlig Eksamen Beregnelighed (DM517) Institut for Matematik & Datalogi Syddansk Universitet Mandag den 31 Oktober 2011, kl. 9 13 Alle sædvanlige hjælpemidler (lærebøger, notater etc.) samt brug af lommeregner
Læs meredsoftark E2007 Gruppe 14: Anders, Troels & Søren 15. november 2007 Rapport til a. 1 'TDD rytmen'
dsoftark E2007 Gruppe 14: Anders, Troels & Søren 15. november 2007 'TDD rytmen' Rapport til a. 1 Vi bruger gennem vores arbejde, rytmen fra Test Driven Development-paradigmet. Quickly add a test Run tests
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 mereA multimodel data assimilation framework for hydrology
A multimodel data assimilation framework for hydrology Antoine Thiboult, François Anctil Université Laval June 27 th 2017 What is Data Assimilation? Use observations to improve simulation 2 of 8 What is
Læs mereINGENIØ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 mereSkriftlig 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 mereTræer. Datastrukturer & Algoritmer, Datalogi C Forelæsning 9/
Datastrukturer & Algoritmer, Datalogi C Forelæsning 9/11-2004 Træer En meget vigtig datastruktur Repræsentation af sprog (i meget generel betydning), syntakstræer: Java (i en compiler), SQL (i et databasesystem),
Læs mereSortering af information er en fundamental og central opgave.
Sortering 1 / 36 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 6, 9 Mange opgaver er hurtigere i sorteret information (tænk på ordbøger, telefonbøger,
Læs mereSøgetræer: Generel repræsentation af (sorterede) mængder og funktioner Databasesystemer...
Datastrukturer & Algoritmer, Datalogi C Forelæsning 11/11-2003 Træer En meget vigtig datastruktur Repræsentation af sprog (i meget generel betydning), syntakstræer: Java (i en compiler), SQL (i et databasesystem),
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 mereDigitaliseringsstyrelsen
NemLog-in 29-05-2018 INTERNAL USE Indholdsfortegnelse 1 NEMLOG-IN-LØSNINGER GØRES SIKRERE... 3 1.1 TJENESTEUDBYDERE SKAL FORBEREDE DERES LØSNINGER... 3 1.2 HVIS LØSNINGEN IKKE FORBEREDES... 3 2 VEJLEDNING
Læs mereRevision af studieordninger
Revision af studieordninger CS(it) Nye matematik kurser Reviderede studieordninger for Datalogi og Software til 2019 Revision af studieordninger v/ulrik Nyman 1 CS(IT) Formål: Reduktion i antallet af uddannelser:
Læs mere29 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 mere26 Programbeviser I. Noter. PS1 -- Programbeviser I. Bevis kontra 'check af assertions' i Eiffel. Betingelser og bevisregler.
26 Programbeviser I. Bevis kontra 'check af assertions' i Eiffel. Betingelser og bevisregler. Hvad er programverifikation? Bevisregel for 'tom kommando'. Bevisregel for assignment. Bevisregler for selektive
Læs mere