 Jens Bennedsen 2001Multimedie programmering3B.1 Specifikationer Betingelser, specifikationer og JavaDoc.

Slides:



Advertisements
Lignende præsentationer
Hvordan programmerer man?? STREAM - en model. Programmører arbejder ofte i teams Hver programmør arbejder på sin del af en større helhed.
Advertisements

07 – Kort om OO Introduktion.
KONCEPT Klasser og objekter En klasse beskriver et World ArrayList
Hvordan man skriver koden.
VOOP, 8 april Refleksion i objekt orienterede programmeringssprog Mandag 8/ Kasper Østerbye.
Structs Structs allokeres på stakken Memory-allokering sker ved oprettelse af variabel og ikke ved new Der kan defineres metoder incl. Constructor. Eksempel.
Objektorienteret programmering
FEN IntroJava AAU1 Java grundelementer Variable og datatyper Sætninger og udtryk Metoder.
FEN NOEA/IT Programmeringsteknologi 1 Arv og polymorfi Substitutionsprincippet Abstrakte klasser Design Patterns (Composite)
Forelæsning 3.1 Collections Javas for-each løkke
Lektion 7 Læsestof: Kopier fra Caranno
Fundamentale datastrukturer
FEN KbP/seminar2: design11 Kontraktbaseret programmering Seminar 2 Klassedesign – grundprincipper Eksempler: Stack Dictionary.
Forelæsning 5.1 Brug af klassen Collections og interfacet Comparable samt parametriserede typer Projektuge: Ants and Spiders / Lommeregner dIntProg,
Use Case Modellering. En form for requirements engeneering – dvs. fastlæggelse af systemkrav.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
1 Kursusafslutning. 2 Plan Opgaveseminar Kursusevaluering.
8 RÅD VEDRØRENDE GOD PROGRAMMERING Effective (brown) Java.
FEN IntroJava AAU1 Klasser og objekter Grundbegreber Student-Course.
KF04 GRAY Item 2, 12, 22, 32, 42, 52. Consider a builder when faced with many constructor parameters Item 2.
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
9. Interfaces. 2 Nordjyllands Erhvervakademi Objectives “Good class design starts with good application design — how many classes, do they relate.
Begreber og Redskaber 4. Plan for idag Om metoder, parametre, returværdier Et par ord om objekt-orientering Håndkøring af programmer.
Begreber og Redskaber 3. Plan for idag Om metoder, parametre, returværdier Overblik over klasser,objekter,nedarvning Et par ord om objekt-orientering.
 Jens Bennedsen 2002Objektorienteret systemudvikling Design klasse model ”Klassemodellen på vej til kode”
Systemudvikling – Fra idé til kode.  Jens Bennedsen 2001Multimedie programmering9.2 Begrebsmodellering Problemspecifikke begreber Problem/vision vedrørende.
I o p o DAIMI, AU, November 1999Programkonstruktion I9E.1 Konstruktion og brug af klasser – en stak og en HP-regnemaskine push pop.
 Jens Bennedsen 2002Objektorienteret systemudvikling GRASP mønstre Basale ansvarsplaceringsregler.
Checklister Comparable og Comparator. dIntProg, E08Checklister.2 Checkliste for Comparable Antagelse –vi har en liste med elementer af typen T: List lst;
 Jens Bennedsen 2002Objektorienteret systemudvikling Interaktionsdiagrammer Hvordan beskrives objektinteraktion? Sekvensdiagrammer Collaborationsdiagrammer.
Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
DAIMIIntroducerende objektorienteret programmering4B.1 Typer og tilstand i Java Typer, tilstand, erklæring, variable, primitive datatyper, reference- og.
 Jens Bennedsen 2002Objektorienteret systemudvikling Design -> kode Mapning af et klassediagram til kode.
 Jens Bennedsen 2002Objektorienteret systemudvikling GRASP mønstre Basale ansvarsplaceringsregler.
Klasser og objekter. dIntProg, E08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
DAIMIIntroducerende objektorienteret programmering3B.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
 Henrik B. Christensen, 1999Introducerende objektorienteret programmering8B.1 Interfaces En ren kontrakt.
 Jens Bennedsen, 2003Introducerende objektorienteret programmeringinterfaces.1 Interfaces En ren kontrakt.
DAIMIIntroducerende objektorienteret programmeringkd.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6A.1 Programmering med interfaces – en stak og en HP-regnemaskine push pop.
DAIMIIntroducerende objektorienteret programmering4B.1 Grundlæggende og Reference Typer i Java Typer, tilstand, erklæring, reference- og værdi semantik,
Trinvis forfinelse Systematisk, gradvis udvikling af programmer.
DAIMIProgrammering af Store Systemer1 Concurrency i Java – Samarbejdende tråde.
Interfaces Afkobling af programkomponenter (eksempel: Comparable)
Polymorfi Abstrakte klasser, substitutionsprincippet, statisk og dynamisk type.
Objektorienteret analyse og design Ó Bennedsen 2001 Design - part Programmering og systemudvikling Lektion 7 Design - part 2.
 Jens Bennedsen 2001Multimedie programmering13.1 Lingo Objectorienteret Lingo.
Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
 Jens Bennedsen 2001Multimedie programmering11.1 Lingo Basis.
Programmering med interfaces Separering af specifikation, anvendelse og implementation.
DAIMIIntroducerende objektorienteret programmering4A.1 Kontrakter og Design Kontraktbaseret design, JavaDoc dokumentation.
Grafik Modeller, objekter og opførsel. dIntProg, F08Grafik.2 Nye begreber Repetition (iteration) –gentagelse af opførsel Parametrisering –generalisering.
Klasser og objekter – grundbegreber.  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringKlasser og objekter.2 Klasser og objekter.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Collectionklasser Klassifikation og anvendelse. dIntProg, F08Collectionklasser.2 Samlinger af objekter Objektreferencer –for at holde fast i et objekt.
Interfaces – hvorfor, hvad og hvordan?.  Michael E. Caspersen 2003IOOPInterfaces.2 Oversigt Interfaces, hvorfor –Separering af specifikation (interface)
 Jens Bennedsen 2001Multimedie programmering10B.1 Interfaces En ren kontrakt.
 Jens Bennedsen 2001Multimedie programmering4.1 Definition af begreber Interface, implements, klasse.
 Jens Bennedsen 2001Multimedie programmering1.1 Skildpadder Modeller, objekter og opførsel.
DAIMIIntroducerende objektorienteret programmering4A.1 Kontrakter og Design Kontraktbaseret design, JavaDoc dokumentation,
Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
 Jens Bennedsen 2001Multimedie programmering3A.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
Klasser og objekter. dIntProg, F08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
DAIMIIntroducerende Objektorienteret Programmering8B.1 Interfaces En ren kontrakt.
 Jens Bennedsen 2001Multimedie programmering10C.1 Brugergrænseflader Swing.
 Jens Bennedsen, 2003, revideret af EE Introducerende objektorienteret programmering MVC Et mønster for grænseflader.
DAIMIIntroducerende objektorienteret programmering2A.1 Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
Dokumentation.
Parametrisering En kort introduktion.
Præsentationens transcript:

 Jens Bennedsen 2001Multimedie programmering3B.1 Specifikationer Betingelser, specifikationer og JavaDoc

 Jens Bennedsen 2001Multimedie programmering3B.2 Type og forekomst Objekt er en ting der har en tilstand der kan variere over tid. Variationen kan foregå ved at objektet modtager nogle beskeder (operationer) Objektet indkapsler tilstand og operationer Et objekt er en ting der har: –tilstand –grænseflade –Indkapsling klasseObjektets grænseflade er beskrevet i dets klasse

 Jens Bennedsen 2001Multimedie programmering3B.3 Agent Hvad sker der, når jeg forsøger at sende en buket blomster til Alice i Svendborg?

 Jens Bennedsen 2001Multimedie programmering3B.4 Interaktion Vi opfatter objekterne som agenter, der kan foretage en række handlinger –Beskrevet i objektets grænseflade (klassen) Vi skal beskrive samarbejdet mellem objekterne:

 Jens Bennedsen 2001Multimedie programmering3B.5 Agenter og krav Agenten kan have nogle krav til sine omgivelser –F.eks. vil blomsterhandleren ikke lave en buket til –120 kr. Agenten lover at opfylde nogle ting –F.eks. sender blomsterhandleren en buket til Alice

 Jens Bennedsen 2001Multimedie programmering3B.6 Klasser og krav En klasse’s tilstand kan påvirkes via kald af operationer –Kravene fra klassen bliver til krav til den måde operationerne bliver kaldt på. –Typisk krav til parametrene eller til rækkefølgen af kald Klassen ”gør noget” ved de værdier den returnerer fra operationer –Det klassen lover bliver til udsagn om returværdien fra operationerne

 Jens Bennedsen 2001Multimedie programmering3B.7 Pre- og post conditions De ting der skal være opfyldt for at en operation giver mening kaldes en operations Precondition De ting operationen skal opfylde kaldes dens Postcondition

 Jens Bennedsen 2001Multimedie programmering3B.8 Roller class Session … duration pre: start og end er kaldt før post: Varigheden af udlejningen returneres... end Session Anvender skal opfylde kravene til operationen kan forvente det operationen gør Implementør skal opfylde det operationen gør kan forvente kravene til operationen AnvenderImplementør Pre betingelseSkal opfyldeKan antage Post betingelseKan antageSkal opfylde

 Jens Bennedsen 2001Multimedie programmering3B.9 JavaDoc JavaDoc er et værktøj til at beskrive kontrakten Class GeometricTurtle... Method Summary voidpolygonpolygon(int sides, int length) Draws a polygon with sides, each side has the length of length pre: sides>2, length>0 post: The polygon is drawn /** * Draws a polygon with sides, each side has the length * of length * pre: sides>2, length>0 * post: The polygon is drawn */ public void polygon(int sides, int length) {

 Jens Bennedsen 2001Multimedie programmering3B.10 Data abstraktion Data skjul er en filosofi, hvor anvenderen kun benytter den offentlige grænseflade til at ændre et objekts tilstand Dette betyder at implementøren har mulighed for at ændre HVORDAN han/hun har tænkt sig at implementere opfyldelsen af post betingelsen (men ikke mulighed for at ændre på HVAD operationen gør)

 Jens Bennedsen 2001Multimedie programmering3B.11 Abstrakte datatyper og Java

 Jens Bennedsen 2001Multimedie programmering3B.12 Beskrivelsesniveauer Der er (mindst) fire niveauer af beskrivelse af operationer på klasser: –navn –pre- og post betingelse –interaktion –invariant HVAD HVORDAN