Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

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

Lignende præsentationer


Præsentationer af emnet: "FEN 2013-04-11Kontraktbaseret Programmering Seminar 1 1 Kontraktbaseret programmering Baggrund: Testing can only show the presence of bugs, never their."— Præsentationens transcript:

1 FEN 2013-04-11Kontraktbaseret Programmering Seminar 1 1 Kontraktbaseret programmering Baggrund: Testing can only show the presence of bugs, never their absence. - Edsger W. Dijkstra Studieordning: http://www.diplomguiden.dk/uploads/studieordning/Itogteknik/Informationsteknologi_it-vest.pdf http://www.diplomguiden.dk/uploads/studieordning/Itogteknik/Informationsteknologi_it-vest.pdf Underviser:Finn E. Nordbjerg, fen@ucn.dkfen@ucn.dk Hjemmeside:http://public.ucn.dk/fen/KbP/http://public.ucn.dk/fen/KbP/ Faglig koordinator for EVU, Datalogisk Institut: Henrik Bærbak Christensen: hbc@cs.au.dkhbc@cs.au.dk Uddannelseskoordinator: Arne Nis Jensen: ajensen@cs.au.dkajensen@cs.au.dk Metrolinie 14 i Paris London Light rail

2 FEN 2013-04-11Kontraktbaseret 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: 09.00-09.45Introduktion, præsentation mv. 10.00-11.00Specifikationer, notation 11.00-12.00Øvelser 12.00-12.45Frokost 12.45-13.15Opsamling på øvelser. 13.15-14.15Programudsagn – loopinvarianter og checklisten for løkker 14.30-15.00Øvelser 15.00-16.00Opsamling på øvelser, Introduktion til JML.

3 FEN 2013-04-11Kontraktbaseret Programmering Seminar 1 3 Mellem seminarer •Læs og arbejd med opgaver. •Afleveringsopgaver afleveres via mail i.pdf til fen@ucn.dk. fen@ucn.dk •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.

4 FEN 2013-04-11Kontraktbaseret 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”

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

6 FEN 2013-04-11Kontraktbaseret Programmering Seminar 1 6 Historisk overblik •1966-1981... –Teori og metodologi •1972-1977 –Abstrakte datatyper •1970-1990... –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.

7 FEN 2013-04-11Kontraktbaseret 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

8 FEN 2013-04-11Kontraktbaseret Programmering Seminar 1 8

9 FEN 2013-04-11Kontraktbaseret 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

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

11 FEN 2013-04-11Kontraktbaseret 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

12 FEN 2013-04-11Kontraktbaseret Programmering Seminar 1 12

13 FEN 2013-04-11Kontraktbaseret 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

14 FEN 2013-04-11Kontraktbaseret 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)

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

16 FEN 2013-04-11Kontraktbaseret 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


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

Lignende præsentationer


Annoncer fra Google