FEN 2013-04-11Kontraktbaseret Programmering Seminar 1 1 Kontraktbaseret programmering Baggrund: Testing can only show the presence of bugs, never their.

Slides:



Advertisements
Lignende præsentationer
SPBG.  Test driven development  Unit test frameworks  MOSS TDD  Mocking  Design patterns.
Advertisements

Program – 10.00: opsamling på cases og innovationsdage - hvor er vi med vores cases? - hvad mangler vi for at komme videre? – 11.00: Innovation.
Velkommen.
Chaufførfaglærerkonference 2013
Overskrift her Navn på oplægsholder Navn på KU- enhed For at ændre ”Enhedens navn” og ”Sted og dato”: Klik i menulinjen, vælg ”Indsæt” > ”Sidehoved / Sidefod”.
Arbejds- og Udviklingsgruppe Udviklingsseminar 1
Learning Ressource Centres En studierejse til Leeds og Sheffield februar 2002.
Velkommen. Agenda •Hvorfor informationsmøde nu? •Hvad er der sket de sidste 3 måneder? •Hvor vil vi gerne hen? •Aktiviteter frem til 31. december •Hvordan.
”FRA SYGEFRAVÆR TIL ARBEJDSEVNE” 27. FEBRUAR 2013 KONFERENCE TORVEHALLERNE I VEJLE Sund By Sekretariatet.
DProg2 E Programmering 2 dProg2 E2010
Pris: Kr. for 2 voksne. • Fly Tur/Retur • Flyskatter • Billeje • Hotelophold • Afbestillingsforsikring • Aktiviteter Ikke inkluderet • Rejseforsikring.
Teknisk Workshop om NemHandel Heinrich Clausen Århus den 4. november 2010.
VELKOMMEN Seminar 1: Kræft og strålebehandling 23. Januar 2013.
2011XXXXX Golfklub FLERE GOLFSPILLERE I DANMARK •”Et overblik” •Udviklingskonference.
Agenda Velkommen v. René Løhde, Microsoft Europas førende SMB SaaS løsning - hvordan gør de? v. Jakob Burkard.
Projektledelse IT-projektledelse (ITP) Projektledelse og Produktion af Digitalt Indhold (DPI) Projektledelse IT-projektledelse (ITP) Projektledelse og.
Velkommen til en spændende dag, hvor det handler om tobaksforebyggelse blandt socialt udsatte. Jeg hedder Helle Stuart, jeg er projektleder i Røgfrihed.
SAB seminar , lørdag kl – 13.15Introduktion og velkommen til SAB seminar v/ John B. Sørensen kl – 13.45Diskussion af AlmenBolig+ konceptet.
1 Analyse af geografiske valgresultater Søren Risbjerg Thomsen Institut for Statskundskab Aarhus Universitet.
Definition of Software Component and Its Elements. Kapitel 1, [heineman-2001] Peter, Ture & Jonathan1 Hovedbegreberne er Software komponent Komponent model.
Introduktion til NemHandel Infrastrukturen
Introduktion til NemHandel Infrastrukturen Heinrich Clausen 4. november 2010.
Master Thesis Track Software Engineering Henrik Bærbak Christensen.
Fælles kompetenceudviklingsdag 22. maj 2012, CABI.
Velkommen til AK IT: Databaser og modellering
Fagets Informations Teknologi Introduktion til Programmering i Java For Industri, Global Forretningsudvikling, samt fri studie aktivitet ved Bent Thomsen.
01 – Java platform for starters. 2 NOEA2009Java-kursus – Java Platform Introduktion til Java Baggrund Hvad er Java? Faciliteter i Java.
Projektledelse IT-projektledelse (ITP) Projektledelse IT-projektledelse (ITP) Lektion september 2004 Peter Olaf Looms.
Velkommen til Kandidat Åbent hus 2013
Bedre udbytte af it i skolen Et seminar til skoleudvikling Marianne Hornskov og Sanya Pedersen Danmarks Evalueringsinstitut.
Introduktion til.NET- platformen og version 2.0 Michell Cronberg Microsoft MVP
Store IT- innovationer (SITIN) TØ2. Dagens program Kontor Feedback på one-minute paper Fremlæggelser Tips til obligatoriske opgaver Strip sequence øvelse.
Ændr 2. linje i overskriften til AU Passata Light 30 SEPTEMBER 2014 DEIC CONFERENCE 2014 PHD STUDENT MATTEO PILATI AARHUS UNIVERSITY DEPARTMENT OF CULTURE.
Csaudk 1 NOV 2010 DATALOGISK INSTITUT DET NATURVIDENSKABELIGE FAKULTET AARHUS UNIVERSITET KANDIDATORIENTERING 1. Nov 2010.
3D og FOT - dagen Program for 3D og FOT-dagen 4. marts 2009 kl. 9:30-16 i Århus Jesper Skovdal Christiansen Sekretariatschef for Geoforum.
Kursus i tilgængelighed. Praktisk Undervisere –Helene Nørgaard Bech –Jacob Nielsen Kursusmappens indhold Alternative formater/elektroniske versioner Dagens.
Velkommen til SkillsCamp Uge 42
Kortforsyningen® Partnerseminar 2007 Kastellet 2. maj 2007 KORTFORSYNINGSSEMINAR Tirsdag den 22. april 2008 Kastellet.
FEN Diskret matematik/Seminar 11 Diplomuddannelsen i Softwarekonstruktion (Master-brobygning) Fagpakke: Formelle modeller for programmering Diskret.
Overskrift 40/42 pkt, Maks 2 linjer Underoverskrift, 14/16 pkt For at vise hjælpelinjer: 1.Højreklik på slidet og vælg “Gitter og hjælpelinjer” 2.Kryds.
FEN KbP/seminar3: frameRules1 Frame rules Indramning - Omgivelser Frame rules specificerer, hvad der ikke ændres.
#UUDK #UU #UUvejled Vesterbrogade 6D. 4, 1780 København V. | uudanmark.dk| | CVR:
Velkommen til Datamatikkeruddannelsen Roskilde Handelsskole Advanced Computer Study.
Hvad er det gode skolelederliv? - Et selvevalueringsforløb.
Reliable Architecture Ved Henrik Bærbak Christensen Reflective Architectures Emne: reflective architecture overview 11 december 2009.
Begreber og Redskaber 5. Plan for idag Overblik over klasser,objekter,nedarvning –Repetition fra Dat A/Indledende programmering –Centrale begreber om.
RT Speciale Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende ”Java Optimized Processor” (JOP) Speciale – efterår.
FEN NOEA/IT Programmeringsteknologi 1 Arv og polymorfi Substitutionsprincippet Abstrakte klasser Design Patterns (Composite)
Velkommen til Udviklingsdag 2 TUP Maj 2013.
Serverkonsolidering Peter Colsted Direktør Enterprise & Partner Group Microsoft Danmark.
Velkommen til Mød Microsoft
Indsæt nyt billede: Format: B 254 x 190,5 mm Efter indsættelse, højreklik på billedet og placér det bagerst. Delete det gamle foto Restrictions on access.
SkillsCamp x 2 9. – 11. feb & 13. – 15. feb
Kursus i tilgængelighed. Praktisk Undervisere –Lars Ballieu Christensen –Helene Nørgaard Bech –Jacob Nielsen –Maria Barrett Sensus Kursusmappens indhold.
Kursus i tilgængelighed. Praktisk Sensus Undervisere –Lars Ballieu Christensen –Jacob Nielsen –Magnus Kjøller Lou Praktiske information –vand, toiletter,
Kursus i tilgængelighed for webmastere, informationsmedarbejdere, redaktører, indkøbere og it-chefer.
Kokkedal Skolens børnehaveklasse
Opsamling Loops Klassedesign Immutable Lister shallowCopy() Projekt 2 FEN KbP/seminar3: Opsamling.
Velkomst og præsentation af dagen Seminar om Gylleseparering og afbrænding af husdyrgødning Vissenbjerg og Årslev, marts 2007.
Strategiseminar 28. og 29. januar 2008, Bogense Velkomst Praktiske forhold Programoversigt for de to dage.
1 QA and user research
FEN KbP/seminar2: design11 Kontraktbaseret programmering Seminar 2 Klassedesign – grundprincipper Eksempler: Stack Dictionary.
Sikker og integreret infrastruktur Peter Colsted Direktør Enterprise & Partner Group Microsoft Danmark.
FEN KbP/seminar2: design21 Kontraktbaseret programmering Seminar 2 Klassedesign: Immutable lister Queue Shallowcopy og alkvantoren.
Stormøde for økonomi på AU
9. Interfaces. 2 Nordjyllands Erhvervakademi Objectives “Good class design starts with good application design — how many classes, do they relate.
I o p o DAIMI, AU, November 1999Programkonstruktion I9E.1 Konstruktion og brug af klasser – en stak og en HP-regnemaskine push pop.
 Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.1 Destilleret UML Oversættelse fra UML til Java.
Software Testing Software testing.
Master Thesis Track Software Engineering
Præsentationens transcript:

FEN Kontraktbaseret Programmering Seminar 1 1 Kontraktbaseret programmering Baggrund: Testing can only show the presence of bugs, never their absence. - Edsger W. Dijkstra Studieordning: Underviser:Finn E. Nordbjerg, Hjemmeside: Faglig koordinator for EVU, Datalogisk Institut: Henrik Bærbak Christensen: Uddannelseskoordinator: Arne Nis Jensen: Metrolinie 14 i Paris London Light rail

FEN Kontraktbaseret Programmering Seminar 1 2 Kontraktbaseret programmering - seminar 1 I dette seminar introduceres: Specifikationer vha. prædikatslogik, algoritmenotationen Q, programudsagn og checklisten for løkker. Dags program: Introduktion, præsentation mv Specifikationer, notation Øvelser Frokost Opsamling på øvelser Programudsagn – loopinvarianter og checklisten for løkker Øvelser Opsamling på øvelser, Introduktion til JML.

FEN Kontraktbaseret Programmering Seminar 1 3 Mellem seminarer •Læs og arbejd med opgaver. •Afleveringsopgaver afleveres via mail i.pdf til •Projekter som java–source (txt) •Fristen er mandag morgen i studieuge n+1 for 1 <= n < 3. Frist for ”projekterne” fremgår af hjemmesiden. hjemmesiden •Spørgsmål via mail til alle på mail-listen. Alle må svare og kommentere. Jeg vil også prøve at svare.

FEN Kontraktbaseret Programmering Seminar 1 4 Kontraktbaseret programmering (fra et seminar afholdt af Michael Caspersen, Aarhus Universitet og og Ole Eriksen, Erhvervsakademi Sydvest) •Historisk overblik –1966 – 2010 •Kontrakter på forskellige niveauer –Modelniveau –Interfaceniveau –Klasseniveau –Subklasseniveau –Metodeniveau •Grundlæggende principper –”Separation of Concerns” –”Programming on Purpose”

FEN Kontraktbaseret Programmering Seminar 1 5 En analogi: Software i dag - byggeri i middelalderen: Byggeri i dag - Software i morgen: (Utopia?) Notre Dame i Paris (ca – 1250)

FEN Kontraktbaseret Programmering Seminar 1 6 Historisk overblik • –Teori og metodologi • –Abstrakte datatyper • –Specifikationssprog •1992- –Design by Contract •1998- –Component-Based Software (J2EE, COM,.NET,...) •Og i dag... –Værktøjer (JML,.NET Code Contracts). –Kontrakter og agile metoder. –Kontrakter og test-drevet udvikling. –Verifikation af indlejrede (realtids-) systemer.

FEN Kontraktbaseret Programmering Seminar 1 7 Teori og metodologi •1966, Peter Naur (1965) –Proof of Algorithms by General Snapshots •1967, Robert W. Floyd –Assigning Meanings to Programs •1969, C.A.R. Hoare –An Axiomatix Basis for Computer Programming •1976, E.W. Dijkstra (1974) –A Discipline of Programming •1978, D. Gries (ed.) –Programming Methodology – a collection of articles by members of IFIP WG2.3 •1981, D. Gries –The Science of Programming •1981- –Mange andre bøger med mere raffinerede tilgange

FEN Kontraktbaseret Programmering Seminar 1 8

FEN Kontraktbaseret Programmering Seminar 1 9 Teori for abstrakte datatyper •1972, C.A.R. Hoare –Proof of Correctness of Data Representation •1972, D. Parnas –Information Hiding •1974, B. Liskov –Programming with Abstract Data Types •1977, J. Guttag –Abstract Data Types and the Development of Data Structures

FEN Kontraktbaseret Programmering Seminar 1 10 Specifikationssprog, ~ •Modelorienterede sprog –VDM, Z •Algebraiske specifikationer –Larch (+ operationel) –OBJ, Clear •Procesmodeller –CSP, CCS •Andre –NUPRL, HOL, RAISE

FEN Kontraktbaseret Programmering Seminar 1 11 ”Design by Contract” •1988, B. Meyer –Object-Oriented Software Construction •1992, B. Meyer –Applying ”Design by Contract” •1992, B. Meyer –Eiffel: The Language •1995, S. Porat & P. Fertig –Class Assertions in C++ •1997, R. Plösch –Design by Contract for Python •1998, R. Kramer –iContract – The Java Design by Contract Tool •1999, M. Karaorman et al. –jContractor: A Reflective Java Library to Support Design by Contract •1999, J. Warmer & A. Kleppe –The Object Constraint Language •1999, Gary T. Leavens e. a. –Java Modelling Language – JML •>2000, forskellige: –HandShake –.NET Code Contract –Spec#.NET Forsknings- projekt – også via Eiffel

FEN Kontraktbaseret Programmering Seminar 1 12

FEN Kontraktbaseret Programmering Seminar 1 13 Komponentbaseret software 1998, C. Szyperski –Component Software – Beyond Object- Oriented Programming •2002, I. Crnkovic & M. Larsson (eds.) –Building Reliable Component-Based Software Systems •2002, A. Sjögren –A Method for Support for Design By Contract on the.NET Platform

FEN Kontraktbaseret Programmering Seminar 1 14 Kontrakter på forskellige niveauer •Modelniveau (UML-niveau) –relationer med begrænsninger •Interfaceniveau –funktionelle specifikationer (pre og post) og typeinvariant •Klasseniveau –klasseinvariant (typeinvariant og repræsentationsinvariant) •Subklasseniveau –extends, implements, ”behavioral subtyping” •Metodeniveau –programudsagn (specielt løkkeinvarianter)

FEN Kontraktbaseret Programmering Seminar 1 15 Udviklingsområder ( …) •Værktøjer: –Theorem provers –Model checkers –Abstract interpretation and reasoning systems •Parallelle og distribuerede systemer (funktionelle sprog).

FEN Kontraktbaseret Programmering Seminar 1 16 Programmeringsmetodologi E.W. Dijkstra •Programming on Purpose –systematik og teknik –ingen kaniner op af hatten •Separation of Concerns –faktorisering –(midlertidig) uafhængighed E.W. Dijkstra