Objektorienteret programmering. Introduktion

Størrelse: px
Starte visningen fra side:

Download "Objektorienteret programmering. Introduktion"

Transkript

1 Objektorienteret programmering Introduktion 1

2 Plan Generelt om programmeludvikling Objekter og klasser (begreber) Objektorienteret programmeludvikling Programmering i Java 2

3 Aforisme Ordene er håndtag på tingene. Hvis vi ikke passer på, holder de os virkeligheden fra livet. Piet Hein 3

4 Programmeludvikling Megen udvikling baseres på trial-and-error. Problemerne træder tydeligst frem ved udvikling af store systemer. Der er behov for kodificering af viden om, hvad man skal gøre, og hvad man ikke skal gøre (designviden). 4

5 Ønskværdige egenskaber ved programmel Brugbart Rettidigt Korrekt Robust Brugervenligt Effektivt Let at vedligeholde Genbrugeligt Normalt kan alle egenskaber ikke opfyldes samtidigt. 5

6 Objektorienteret programmering Fokus på Vedligeholdelse Genbrug Vedligeholdelse forenkles ved Enkelhed Fleksibilitet Læsbarhed 6

7 To muligheder for fokusering (1) Algoritmer Fokusering på control flow (procedure-orienteret tilgang) (2) Datastrukturer Fokusering på data flow Objektorienteret programmering er en balance imellem disse to yderpunkter. 7

8 Om sprogs betydning The limits of my language mean the limits of my world. Ludwig Wittgenstein 8

9 Objektorienterede sprog Simula 1967 Smalltalk 1970 Objective C 1982 C (Bjarne Stoustrup, Danmark) Eiffel 1985 Object Pascal 1986 Beta 1990 Java 1995 C# 2000 (Anders Hejlsberg, Danmark) og mange flere 9

10 Citat Alan J. Perlis You think you know when you learn, are more sure when you can write, even more when you can teach, but certain when you can program. -Alan J. Perlis 10

11 Programmeludvikling Programsystem Verden Abstraktion Fortolkning Model Algoritmer Abstrahere: at se bort fra noget Målet for programmeludvikling er konstruktion af programsystemer, der hjælper mennesker med problemløsning i den virkelige verden. 11

12 Grundlæggende begreber i objektorienteret programmering Objekt: Fortolkning i den virkelige verden: Et objekt kan repræsentere alt, hvad der tydeligt kan identificeres. Repræsentation i model: Et objekt har en identitet, en tilstand og en adfærd. 12

13 Tilstand og adfærd Tilstanden for et objekt defineres ved felter med tilhørende værdier. Adfærden for et objekt defineres ved metoder, der kan aflæse eller ændre objektets tilstand. 13

14 Klasser Klasse: Fortolkning i den virkelige verden: Et klasse repræsenterer en mængde af objekter med fælles karakteristika. Objekterne kaldes for instanser af klassen. Repræsentation i model: En klasse beskriver den struktur af tilstande og adfærd, der er fælles for alle klassens instanser. 14

15 Eksempel på en klasse class Point { // Klassenavn int x, y; // Felter void move(int dx, int dy) { // Metode x += dx; y += dy; } } En klasse er en skabelon til brug for skabelse af objekter. 15

16 Syntaks for felter og metoder Felt: [Visibility] Type Identifier [= InitialValue] Metode: [Visibility] Type Identifier([ParameterList]) Visibility ::= public private protected 16

17 Grafisk notation UML (Unified Modelling Language) Klasse: Klassenavn felt 1... felt n metode 1.. metode m De to nederste dele kan udelades. 17

18 class Point Eksempel private int x private int y Point public void move(int dx, int dy) -x:int -y:int Point Forkortede former Point Point x y move() +move(dx:int, dy:int) UML-syntaks 18

19 UML-notation for objekter Objektnavn : Klassenavn felt 1 = værdi 1.. felt n = værdi n Bemærk understregningen Den nederste del kan udelades. Objektnavnet eller klassenavnet kan udelades. 19

20 Eksempel Et Point-objekt p1 : Point x = 79 y = 13 Point p1 = new Point(); p1.x = 79; p1.y = 13; Et metode kan kalde et objekts metoder. Eksempel på kald: p1.move(3, 4) 20

21 3 nyttige principper ved programmeludvikling 1. Modularisering 2. Abstraktion 3. Indkapsling 21

22 1. Modularisering Modularitet er nøglen til god programmering. Opdel programmet i små moduler, som interagerer med hinanden igennem snævre, veldefinerede grænseflader. Fordele: En programdel kan forstås, uden at hele programmet forstås. En fejl i en programdel kan rettes, uden at resten af koden bliver inddraget. 22

23 Modularisering Princip: Et komplekst system dekomponeres til en mængde af samhørende, men løst koblede komponenter, kaldet moduler Modulerne er typisk organiseret i et hierarki (d.v.s. et modul kan indeholde andre moduler). Ved objektorienteret programmeludvikling udgøres modulerne af klasser og pakker (samhørende klasser). 23

24 2. Abstraktion At abstrahere: at se bort fra noget. Abstraktion hjælper til med at bestemme en hensigtsmæssig samling af komponenter. Vi kan betragte forskellige ting som ens, selv om de er forskellige. 24

25 Abstraktion Princip: Modulets adfærd karakteriseres ved hjælp af en kortfattet og præcis beskrivelse Beskrivelsen kaldes modulets kontraktlige grænseflade. 25

26 Kontrakter Et modul yder tjenester til (servicerer) sine brugere (klienter). Et modul skal overholde sine kontraktlige forpligtigelser. En kontrakt beskriver hvad, men ikke hvordan. Klienter behøver kun at kende kontrakten for at bruge modulet. 26

27 Udformning af kontrakter for klasser En kontrakt specificerer for hver af klassens offentlige metoder metodens prebetingelse og metodens postbetingelse. Prebetingelsen fastlægger forudsætningerne for at kalde metoden. Postbetingelsen fastlægger virkningen af et kald. En betingelse, som gælder såvel før som efter kald af enhver af klassens offentlige metoder, kaldes for en klasseinvariant. 27

28 Eksempel på specifikation /** 0 <= size() <= capacity */ public class Stack { /** Place an object at the top of the stack size() = size()@pre + 1 */ public void push(object obj) {... } /** Remove and return the top object of the stack size() = size()@pre - 1 */ public Object pop() {... } } 28

29 Nytten af kontrakter Design: Et godt værktøj til programspecifikation Implementering: Angiver retningslinjer for programmering Dokumentation: Udgør en væsentlig del af dokumentationen Afprøvning: Angiver retningslinjer for ekstern afprøvning 29

30 3. Indkapsling Princip: Implementationen af et modul bør adskilles fra dets kontraktlige grænseflade og være skjult for modulets klienter Jo mindre klienten ved om implementationen, desto løsere bliver koblingen imellem modulets og dets klienter. Implementationen kan skiftes ud, uden at klienterne bliver berørt (så længe grænsefladen ikke ændres). 30

31 Grænseflader En grænseflade uden implementation kaldes en abstrakt datatype (i Java-terminologi: et interface). Grafisk notation: ServiceInterface aservice() Bemærk at grænsefladenavnet er skrevet i kursiv, og at linjen på pilen er stiplet ServiceImplementation aservice() 31

32 Eksempel interface Movable { void move(int dx, int dy); } class Point implements Movable { int x, y; void move(int dx, dy) { x += dx; y += dy; } } 32

33 Indkapsling En klasse indeholder en række egenskaber. Nogle egenskaber er skjulte (indkapslede). De øvrige udgør klassens grænseflade. Point Skjult information int x; int y; move Grænsefladen 33

34 Polymorfi En kontraktlig grænseflade kan overholdes af mange mulige implementeringer. Muligheden for dynamisk at udskifte moduler, uden at klienterne berøres, kaldes for polymorfi (fra græsk: mange former). 34

35 Eksempel på polymorfi class Line implements Movable { Point p1, p2; void move(int dx, dy) { p1.move(dx, dy); p2.move(dx, dy); } } Movable m;... m.move(3, 4); m er polymorf Virker, hvad enten m aktuelt er et Pointobjekt eller et Line-objekt. 35

36 Relationer imellem klasser Nedarvning Associering Aggregering Komposition 36

37 Nedarvning En klasse C2 siges at nedarve fra en anden klasse C1, hvis enhver instans af C2 også er en instans af C1. C1 C2 C2 siges at være underklasse af C1. C1 siges at være overklasse for C2. 37

38 Notation for nedarvning C1 class C2 extends C1 {... } C2 C2 er en udvidelse af C1: alt hvad der gælder for C1, gælder også for C2. 38

39 Eksempel Shape class Shape {} class Circle extends Shape { Point center; double radius; } Circle Polygon class Polygon extends Shape { Point[] points; } Nedarvning repræsenterer en er-relation (engelsk: is-a relation). 39

40 Tolkning af nedarvning En underklasse udgør en specialisering af sin overklasse. En overklasse er en generalisering af sine underklasser. En underklasse udgør en udvidelse af sin overklasse. En overklasses felter og metoder deles af dens underklasser (metoderne genbruges af underklasserne). 40

41 Multipel nedarvning En klasse kan i princippet nedarve direkte fra mange overklasser. Dette kaldes for multipel nedarvning. Java understøtter ikke nedarvning i sin fulde generalitet. I Java kan en klasse højst nedarve direkte fra én anden klasse. En begrænset form for multipel nedarvning er dog mulig, idet en klasse gerne må implementere mere end ét interface. 41

42 Relation imellem grænseflade og implementering grænseflade grænseflade1 grænseflade2 implementation1 implementation2 implementation Multiple implementeringer Multiple grænseflader 42

43 Abstraktionsniveauer Princip: Abstraktioner kan organiseres i niveauer (lag) Jo højere niveau, desto mere generel er abstraktionen Jo lavere niveau, desto mere specifik er abstraktionen 43

44 Associering En associering repræsenterer en relation imellem to klasser. Angives i UML med en kant: class A class B 44

45 Associeringer kan navngives, og deres retning kan angives. advisee Student * enroll * * 1 advisor Course * teach 1 Teacher En kants ender kan forsynes med heltalsintervaller: l...u l, l+1,..., u i i * 0, 1, 2,... 45

46 Aggregering Aggregering er en speciel form for associering og betegner en har-relation (engelsk: has-a relation). Grafisk notation: Aggregat Component Der kan knyttes intervalangivelser på en kants endepunkter. Eksempel: Polygon * * Point 46

47 Komposition Komposition er en stærkere form for aggregering, der benyttes, når der er tale om eksklusivt ejerskab. Grafisk notation: Aggregat Component Der kan knyttes intervalangivelser på en kants endepunkter. Eksempel: Car 1 4 Wheel 47

48 UML-diagram for en E-boghandel 1 * 2 EBookstore Customer Address 1 1 * Item 1 * Order 1 * OrderItem * Book MusicCD Software 48

49 Java-klasser for online-boghandelen class Item { String title; String publisher; int yearpublished; int ISBN; double price; } class Book extends Item { String author; int edition; int volume; } class Software extends Item { int version; } class MusicCD extends Item { String artist; int volume; } fortsættes 49

50 class OrderItem { Item item; int quantity; } class Order { Customer customer; Collection<OrderItem> orderitems; double salestax; double shippingfee; double total; int methodofpayment; } fortsættes 50

51 class Customer { String name; int ID; String password; Address shippingadrees; Address billingadress; } class Address { String street; String city; String state; String country; String postalcode; } class EBookstore { Collection<Customer> customers; Collection<OrderItem> orders; Collection<Item> items; } 51

52 Vandfaldsmodellen: Traditionel systemudvikling Kravanalyse Design faseopdelt Implementering og afprøvning Brugertest Vedligeholdelse 52

53 Objektorienteret systemudvikling (Booch) Udviklingsprocessen er iterativ. Den består af successive iterationer, der som mål har, at identificere klasserne identificere klassernes semantik (deres felter og metoder) identificere klassernes indbyrdes relationer definere grænseflader implementere klasserne Systemet vokser i relativt små afgrænsede skridt. 53

54 Mikroprocessen Identificer klasser Definer grænseflader og implementer Identificer klassernes semantik Identificer klassernes relationer Spiralmodel 54

55 Makroproces Førnævnte tilgang kaldes for mikroproces. For at styre mikroprocessen benyttes følgende faser: Begrebsliggørelse (foranalyse) Forståelse af projektet, fastsættelse af rammer Analyse Udvikling af en model af systemets ønskede opførsel Design Skabelse af en arkitektur (objekter/klasser og deres relationer) Implementering Kodning i et objektorienteret programmeringssprog Vedligeholdelse Fejlretning og videreudvikling 55

56 Makroprocessen Foranalyse Analyse Vedligeholdelse Design Implementering Videreudviklet i Rational Unified Process 1. Påbegyndelse 2. Udarbejdelse 3. Konstruktion 4. Overdragelse 56

57 Retningslinjer for udviklingsprocessen (1) Begrebsliggørelse Nedskriv de basale krav til programmellets funktionalitet. (2) Modellering af krav Foretag scenarie-analyse: Opskriv mulige brugerhandlinger og angiv systemets ønskede reaktioner. Start med scenarier, der omfatter handlinger, der ikke er fejlbehæftede. (3) Identifikation af klasser Foretag navne-udsagnsord-analyse: Understreg alle navneord og udsagnsord i kravspecifikationen. Navneordene er kandidater for klasser. Udsagnsordene er kandidater for metoder. 57

58 (4)Identifikation af klassernes semantik Identificer klassernes felter og metoder. Find fællestræk for klasserne og lav overklasser, der indeholde disse fællestræk. (5) Identifikation af klassernes indbyrdes relationer Klassediagram Brugstilfældediagram Tilstandsdiagram Sekvensdiagram 58

59 Extreme programming (XP) Udviklingen foretages i iterationer Resultatet af hver iteration er et kørende program, der enten er en udvidelse eller en omstrukturering af programmet fra forrige iteration Skriv tests først Fremtvinger en klar definition af grænsefladen Fanger fejl tidligt i forløbet Programmér i par Den ene koder, mens den anden tænker Det er OK med diagrammering. Men brug ikke for megen tid på det, og vær villig til at kassere diagrammerne. 59

60 Om udviklingsmetoder Der er ingen kogebogsmetoder, der kan erstatte intelligens, erfaring og god smag ved design og programmering. 60

61 Nogle designråd 1. Gør hverken designet for specifikt eller for generelt 2. Undgå unaturlige klasser 3. Respekter de naturlige abstraktionsniveauer 4. En klasse bør ikke have for mange forpligtelser (1-3) 5. En klasse bør ikke have urelaterede forpligtelser 61

62 Javas egenskaber Objektorienteret Distribueret Sikkert Platformsuafhængigt 62

63 Udførelse af Java-programmer Et kompromis imellem oversættelse og fortolkning Kildekode.java Oversætter platformsuafhængigt Bytekode.class Bytekodefortolker CPU 1 Bytekodeoversætter Maskinkode Java-chip Java-maskine platformsafhængigt JVM CPU 2 JVM JIT/HOTSPOT 63

64 Bytekode Opcode (1 byte) operand 1 operand 2... James Gosling JVM s instruktionscyklus: do { hent opcode-byten for den aktuelle instruktion; hent operanderne; udfør instruktionen; } while (!done); 64

65 Applikationer og appletter Applikation: et normalt program med adgang til alle systemressourcer. Applet: et program indlejret i en Web-side med begrænset adgang til systemressourcer. 65

66 Sikkerhed Lagerbeskyttelse Kodeverifikation Ressourcebeskyttelse En applet kan normalt ikke læse og skrive filer på værtsmaskinen kommunikere med andre maskiner end den, hvorfra appletten er hentet starte andre programmer 66

67 En simpel applikation public class Hello { public static void main(string[] args) { System.out.println("Hello from Venus"); } } 67

68 68

69 En simpel applet import java.awt.*; import java.applet.applet; public class HelloFromVenus extends Applet { public void paint(graphics g) { Dimension d = getsize(); g.setcolor(color.black); g.fillrect(0, 0, d.width, d.height); g.setfont(new Font("Helvetica", Font.BOLD, 24)); g.setcolor(new Color(255, 215, 0)); // gold color g.drawstring("hello From Venus!", 40, 25); g.drawimage(getimage(getcodebase(), "Venus.gif"), 20, 60, this); } } 69

70 (0,0) Det grafiske koordinatsystem x y height width 70

71 Konkret eksempel (0,0) (40,25) Hello From Venus! (20,60) (300,0) (0,350) (300,350) 71

72 HTML-kode <html> <head> <title> HelloFromVenus applet </title> </head> <body bgcolor=black text=white> <center> <applet code="hellofromvenus.class" width=300 height=350> </applet> </center> <hr> <a href="hellofromvenus.java">the source.</a> </body> </html> 72

73 Brug af Java-arkiv Hvis et program består af flere filer - klassefiler, såvel som billede- og lydfiler - kan disse med fordel komprimeres og samles i et Java-arkiv. jar cf Hello.jar HelloFromVenus.class Venus.gif Specificering af anvendelse i HTML: <applet code="hellofromvenus.class" archive="hello.jar" width=300 height=350> </applet> 73

74 Ugeseddel august - 7. september Læs kapitel 4 i lærebogen (side ) Løs opgaverne 3.1 og

Objektorienteret programmering!

Objektorienteret programmering! Objektorienteret programmering! Introduktion! Plan!! Generelt om programmeludvikling!! Objekter og klasser (begreber)!! Objektorienteret programmeludvikling!! Programmering i Java! 1! 2! Aforisme! Programmeludvikling!

Læs mere

1. Flyreservationssystem. OOP e uge 37 - første kursusgang. OO-paradigmet jf. XP s. 10f

1. Flyreservationssystem. OOP e uge 37 - første kursusgang. OO-paradigmet jf. XP s. 10f OOP e2002 - uge 37 - første kursusgang OO-paradigmet jf. XP s. 10f 1. Flyreservations-system, jf. opgave 1 (dvs. Xiaoping 1.1) modellering og design vhja. grafisk designværktøj klassestruktur, brug af

Læs mere

Ugeseddel 4 1. marts - 8. marts

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

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

Design by Contract Bertrand Meyer Design and Programming by Contract. Oversigt. Prædikater Design by Contract Bertrand Meyer 1986 Design and Programming by Contract Michael R. Hansen & Anne Haxthausen mrh@imm.dtu.dk Informatics and Mathematical Modelling Technical University of Denmark Design

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

Hassansalem.dk/delpin User: admin Pass: admin BACKEND

Hassansalem.dk/delpin User: admin Pass: admin BACKEND Hassansalem.dk/delpin User: admin Pass: admin BACKEND 1/10 Indledning Dette projekt er den afsluttende del af web udvikling studiet på Erhvervs Lillebælt 1. semester. Projektet er udarbejdet med Del-pin

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

4 Basal Objekt-orienteret Programmering I.

4 Basal Objekt-orienteret Programmering I. 4 Basal Objekt-orienteret Programmering I. Klasser i forhold til abstrakte datatyper og record-typer. Variable og operationer. Klasse-interfaces. Klasser og typer. Klasse-instantiering og initialisering.

Læs mere

UML til kravspecificering

UML til kravspecificering UML til kravspecificering UML mini-kompendium - til brug i forbindelse med modellering af kravspecifikationer. Copyright 2006 Teknologisk Institut, IT-Udvikling Aktivitetsdiagram 2/9 Aktion Aktionsnavn

Læs mere

Klasser og nedarvning

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

Tree klassen fra sidste forelæsning

Tree klassen fra sidste forelæsning Programmering 1999 Forelæsning 12, fredag 8. oktober 1999 Oversigt Abstrakte klasser. Grænseflader. Programmering 1999 KVL Side 12-1 Tree klassen fra sidste forelæsning class Tree { int age; // in years

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

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

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

Objektorienteret Programmering

Objektorienteret Programmering Objektorienteret Programmering Struktureret Systemudvikling Jan Bendtsen Automation and Control Indhold Lidt om programmeringssprog Klasser i Java Klasser i C++ Oversættelse og kørsel af kode Et eksempel:

Læs mere

Objektorienteret design med arv og polymorfi:

Objektorienteret design med arv og polymorfi: Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Objektorienteret design med arv og polymorfi: Substitutionsprincippet Composite Design Pattern Finn Nordbjerg Side 1 Objektorienteret

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

DANMARKS TEKNISKE UNIVERSITET

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

Hvad er et distribueret objekt? Plan 12.3. Objekter, objektreferencer, metoder, parameteroverførsel. Objekter: notation

Hvad er et distribueret objekt? Plan 12.3. Objekter, objektreferencer, metoder, parameteroverførsel. Objekter: notation Plan 12.3. Oversigt over grundlæggende begreber Java: eksempel på applikation, programmering og oversættelse Uddybning af grundlæggende begreber Java RMI implementation Forklaring af øvelsen Hvad er et

Læs mere

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

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

Objektorientering. Programkvalitet

Objektorientering. Programkvalitet 1 PROSA-Bladet nr. 4 1993 Objektorientering = Programkvalitet? Af Finn Nordbjerg, adjunkt ved Datamatikeruddannelsen, Aalborg Handelskole 1. Indledning Objektorientering er blevet et edb-fagets mest udbredte

Læs mere

import java.applet.applet; import java.awt.*; public class MinApplet extends Applet { // diverse metoder her - til grafik er det nok med "paint":

import java.applet.applet; import java.awt.*; public class MinApplet extends Applet { // diverse metoder her - til grafik er det nok med paint: Noget at tegne på: Appletter. En applet (et småprogram ) er et java-program der er beregnet til at køre i et vindue på en web-side. Programmering 1999 Forelæsning 10, fredag 1. oktober 1999 Oversigt Appletter

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

class subklasse-navn extends superklasse-navn { } NorwaySpruce har superklassen Spruce, som igen har superklassen Tree.

class subklasse-navn extends superklasse-navn { } NorwaySpruce har superklassen Spruce, som igen har superklassen Tree. Programmering 1999 Forelæsning 11, tirsdag 5. oktober 1999 Oversigt Klasse-hierarkier: superklasser og subklasser Nedarvning Polymorfi Programmering 1999 KVL Side 11-1 Hierarkier En klasse repræsenterer

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

Jacob Nordfalk. Ingeniørhøjskolen i København. Nykøbing F itvisioncenter 24. februar 2004

Jacob Nordfalk. Ingeniørhøjskolen i København. Nykøbing F itvisioncenter 24. februar 2004 Genbrugelige komponenter og designmønstre i Java Jacob Nordfalk Ingeniørhøjskolen i København Nykøbing F itvisioncenter 24. februar 2004 Program Om Jacob Nordfalk introduktion (ikke-teknisk del) Komponentbaseret

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

Udvidelse og specialisering. Klassehierarkier. Nedarvningsterminologi. Interfaces. Statiske og dynamiske typer. Polymorfi. Abstrakte klasser.

Udvidelse og specialisering. Klassehierarkier. Nedarvningsterminologi. Interfaces. Statiske og dynamiske typer. Polymorfi. Abstrakte klasser. 10 Nedarvning I. Udvidelse og specialisering. Klassehierarkier. Nedarvningsterminologi. Interfaces. Statiske og dynamiske typer. Polymorfi. Dynamisk binding og virtuelle operationer. Decentraliseret/centraliseret

Læs mere

Lektion 3. Grundlæggende programmering i VR

Lektion 3. Grundlæggende programmering i VR Lektion 3 Grundlæggende programmering i VR Plan for i dag UML Usecase diagrammer Aktivitets diagrammer Klasse diagrammer Udforskning af forskelligt VR og andre måder at udvide virkeligheden på Cardboard

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

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

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

Objektorienteret Analyse & Design

Objektorienteret Analyse & Design Objektorienteret Analyse & Design Lars Mathiassen, Andreas Munk-Madsen, Peter Axel Nielsen og Jan Stage ISBN: 87-7751-153-0 Udgave: 3. udgave Udgivelsesår: 2001 Antal sider: 452 Pris: Kr. 410,00 På de

Læs mere

Hvordan organiseres et programs grafik-elementer? OOP e uge kursusgang. Advarsel! Component-objekter

Hvordan organiseres et programs grafik-elementer? OOP e uge kursusgang. Advarsel! Component-objekter OOP e2002 - uge 42 6. kursusgang Hvordan organiseres et programs grafik-elementer? 1. Teori: class Component og subklasser: Composite pattern layout-managere hændelsesstyret programmering 2. XP-program:

Læs mere

Polymorfi. Arv (inheritance) Abstrakte klasser, substitutionsprincippet, overriding, statisk og dynamisk type. Coercion

Polymorfi. Arv (inheritance) Abstrakte klasser, substitutionsprincippet, overriding, statisk og dynamisk type. Coercion Polymorfi Arv (inheritance) Abstrakte klasser, substitutionsprincippet, overriding, statisk og dynamisk type Coercion Tvangskonvertering (forfremmelse og begrænsning) Oversigt Abstrakt klasse abstrakt

Læs mere

Greenfoot En kort introduktion til Programmering og Objekt-Orientering

Greenfoot En kort introduktion til Programmering og Objekt-Orientering Greenfoot En kort introduktion til Programmering og Objekt-Orientering Greenfoot er et computer-program, som kan benyttes til at skrive andre computer-programmer, i et programmeringssprog kaldet Java.

Læs mere

University of Southern Denmark Syddansk Universitet. DM503 Forelæsning 11

University of Southern Denmark Syddansk Universitet. DM503 Forelæsning 11 DM503 Forelæsning 11 Generics Pakker Exceptions Indhold Generics Nedarvning og Generics Generics Nedarvning og Generics Husk Box fra sidst Generics public class Box {! private T object;! public void

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

Side 1. Databaser og SQL. Dagens gang. Databasebegreber. Introduktion til SQL Kap 1-5

Side 1. Databaser og SQL. Dagens gang. Databasebegreber. Introduktion til SQL Kap 1-5 Databaser og SQL Introduktion til SQL Kap 1-5 1 Dagens gang Databaser Database begreber Mapning af klasser til relationel model Normalisering Opgaver til næste gang 2 Databasebegreber A database is a:

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

Oversigt. Modellering.6. Begrebsmodellering. Begrebsapparat til OO. Fænomener og begreber. Objektorienteret modellering

Oversigt. Modellering.6. Begrebsmodellering. Begrebsapparat til OO. Fænomener og begreber. Objektorienteret modellering Oversigt Modellering Begrebsmodellering, UML og Java Begrebsapparat til objektorientering Begrebsopfattelser og -modellering Strukturer: specialisering, aggregering, associering Anvendes til organisering

Læs mere

Software Dokumentation

Software Dokumentation Software Dokumentation Jan Boddum Larsen Teknologi B og A på HTX Dokumentation af software i Teknologi I samfundet sker der en bevægelse mod mere digitale løsninger i teknologi. Det betyder at software

Læs mere

Miniprojekt2011. Formålet er at lære og indlære god objektorienteret programudvikling og programmering med Java, samt undervejs at opfylde studiekrav.

Miniprojekt2011. Formålet er at lære og indlære god objektorienteret programudvikling og programmering med Java, samt undervejs at opfylde studiekrav. Miniprojekt2011 Projektbeskrivelse Der skal fremstilles en lille java application på PC, hvor brugeren kan foretage interaktioner med en simpel database på disken via et grafisk brugerinterface. Formålet

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

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

Klasser og Objekter i Python. Uge 46 Learning Python: kap 15-16, 19-22.

Klasser og Objekter i Python. Uge 46 Learning Python: kap 15-16, 19-22. Klasser og Objekter i Python Uge 46 Learning Python: kap 15-16, 19-22. Klasser og objekter En klasse beskriver en klump af samhørende funktioner og variable En klasse er en beskrivelse. En kage form Klassens

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

dintprog Manual Revision: 1241 August 24, 2010 I Introduktion 3 1 Notation 3 II Begreber 4 2 Grundbegreber om programmering 4

dintprog Manual Revision: 1241 August 24, 2010 I Introduktion 3 1 Notation 3 II Begreber 4 2 Grundbegreber om programmering 4 dintprog Manual Revision: 1241 August 24, 2010 Indhold I Introduktion 3 1 Notation 3 II Begreber 4 2 Grundbegreber om programmering 4 3 Grundbegreber om modellering 4 III Sprogkonstruktioner 5 4 Klasser

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

METODER ARV KLASSER. Grundlæggende programmering Lektion 5

METODER ARV KLASSER. Grundlæggende programmering Lektion 5 METODER KLASSER ARV Grundlæggende programmering Lektion 5 1 METODER Sekvenser af kode om samme emne 2 REPETITION Række af statements der udfører en handling Mindst én metode der hedder main Forskellen

Læs mere

Java Klasse nedarvninger

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

Videregående programmering i Java

Videregående programmering i Java Videregående programmering i Java Dag 3 Skabende designmønstre Skabende designmønstre: Fabrikeringsmetode/Fabrik, Singleton, Abstrakt fabrik (Toolkit), Prototype, Objektpulje Eksempel: Forskellige slags

Læs mere

Studieordning del 4-2014

Studieordning del 4-2014 Studieordning del 4-2014 Fagbeskrivelser Datamatiker AP Graduate in Computer Science Version 1.1 Revideret august 2014 Side 0 af 8 Indhold del 4 Fagbeskrivelser 1. Faget Programmering (PRO)...2 2. Faget

Læs mere

UML-Light (Note: UML-Light T133, ver. 2004) Finn Overgaard Hansen, IHA

UML-Light (Note: UML-Light T133, ver. 2004) Finn Overgaard Hansen, IHA UML-Light (Note: UML-Light T33, ver. 2004) Finn Overgaard Hansen, IHA Programmering PRG + Semesterprojekter PRJ+PRJ2 Version: 20--2004 Indhold Første del: Introduktion til UML-Light og UML Klasser og objekter

Læs mere

Generel projektbeskrivelse

Generel projektbeskrivelse 02121 Ingeniørarbejde Softwareteknologi Januar 2010 1 Introduktion Generel projektbeskrivelse Formålet med programmeringsprojektet er at give deltagerne erfaring med at designe og konstruere et simpelt

Læs mere

Noter til dm529. Jonas Nyrup. 11. november 2011

Noter til dm529. Jonas Nyrup. 11. november 2011 Noter til dm529 Jonas Nyrup 11. november 2011 Indhold 1 Kravdisciplinen: Kravmodellen og Indfangning af Krav 2 1.1 (ikke)-funktionelle krav...................... 2 1.2 Kravattributter...........................

Læs mere

Struktureret system udvikling Minimodul 1: Introduktion, UML og use cases

Struktureret system udvikling Minimodul 1: Introduktion, UML og use cases Struktureret system udvikling Minimodul 1: Introduktion, UML og use cases Rasmus L. Olsen, 27 februar 2008 Introduktion Kursets hjemmeside http://www.kom.aau.dk/~rlo/ Kursus holder Rasmus L. Olsen Færdiguddannet

Læs mere

Løsningsforslag til Camp Let. Case Beskrivelse: Camp Let

Løsningsforslag til Camp Let. Case Beskrivelse: Camp Let Løsningsforslag til Camp Let Case Beskrivelse: Camp Let Firmaet Camp Let har til formål at udleje forskellige typer transportable ferieboliger. Det drejer sig i øjeblikket om campingbusser, campingvogne,

Læs mere

Software 1 with Java. Recitation No. 7 (Servlets, Inheritance)

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

Bits DM534. Rolf Fagerberg, 2012

Bits DM534. Rolf Fagerberg, 2012 Bits DM534 Rolf Fagerberg, 2012 Resume af sidst Overblik over kursus Introduktion. Tre pointer: Datalogi er menneskeskabt og dynamisk. Tidslinie over fremskridt mht. ideer og hardware. Algoritme er et

Læs mere

Videregående programmering i Java

Videregående programmering i Java Videregående programmering i Java Dag 9 Andre designmønstre Andre designmønstre: Uforanderlig, Fluevægt, Lagdelt Initialisering, Komposit/Rekursiv Komposition, Kommando/Ændring Fremlæggelse af programmering/status

Læs mere

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

b) 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.

b) 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 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

Introduktion til OO* og UML

Introduktion til OO* og UML Introduktion til OO* og UML Struktureret Systemudvikling Jan Bendtsen Automation and Control Indhold Hvad er OO*? UML Essensen af objekt-orienteret analyse og design: klassebegrebet Relationer mellem objekter

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

Kursus 02199: Programmering. Lidt om forelæseren. Velkommen til. Praktisk information: kursusaktiviteter. Praktisk information: forelæsninger

Kursus 02199: Programmering. Lidt om forelæseren. Velkommen til. Praktisk information: kursusaktiviteter. Praktisk information: forelæsninger Velkommen til Kursus 02199: Programmering ved Anne Haxthausen IMM, DTU 4. september, 2001 1. Praktisk information 2. Introduktion til faget (a) kursusmål og motivation (b) hvad er en datamaskine, et program,

Læs mere

Forelæsning Uge 2 Torsdag

Forelæsning Uge 2 Torsdag Forelæsning Uge 2 Torsdag Niveauer af programbeskrivelser Statiske / dynamiske beskrivelser Klassevariabler og klassemetoder Variabler og metoder der et tilknyttet klassen (i stedet for at være tilknyttet

Læs mere

2. Metode. 2.1 Interessentanalyse Interessenterne i projektet er vist i nedenstående figur: Aftalekalenderprojektet. Indledning

2. Metode. 2.1 Interessentanalyse Interessenterne i projektet er vist i nedenstående figur: Aftalekalenderprojektet. Indledning 2. Metode Indledning Projektet er udført med flg. faser: Foranalyse (uden iterationer) Analyse (udarbejdelse af kravspecifikation afsnit 9.1, herunder use case beskrivelser afsnit 9.2) Design af skærmbilleder

Læs mere

Struktureret system udvikling Minimodul 2: UML og use cases

Struktureret system udvikling Minimodul 2: UML og use cases Struktureret system udvikling Minimodul 2: UML og use cases Rasmus L. Olsen, 4 februar 2011 1 Evalueringen af Struktureret SystemUdvikling Udgangspunktet for evalueringen af kurset baserer sig på de opgaver

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

Undervisningsbeskrivelse

Undervisningsbeskrivelse Undervisningsbeskrivelse Stamoplysninger til brug ved prøver til gymnasiale uddannelser Termin August 2009 - juni 2010 Institution HTX Sukkertoppen/Københavns Tekniske Skole Uddannelse Fag og niveau Lærer(e)

Læs mere

class Time { int hours, min; } } Time t1; // Erklær variabel af type Time class Time1 { public static void main(string[] args) { Time t1; t1.

class Time { int hours, min; } } Time t1; // Erklær variabel af type Time class Time1 { public static void main(string[] args) { Time t1; t1. Programmering 1999 Forelæsning 4, fredag 10. september 1999 Klasser og objekter Felter, konstruktorer, this Eksempler på klasser: Time, Appointment Eksempler på metoder i Time og Appointment Klassefelter:

Læs mere

Forelæsning Uge 1 Torsdag

Forelæsning Uge 1 Torsdag Forelæsning Uge 1 Torsdag Objekters tilstand og opførsel Java og BlueJ Skabelse af objekter (via new-operatoren) Iteration (gentagelser) og parametrisering Java's for løkke Parametre i metoder Forskellige

Læs mere

Forelæsning Uge 2 Torsdag

Forelæsning Uge 2 Torsdag Forelæsning Uge 2 Torsdag Niveauer af programbeskrivelser Statiske / dynamiske beskrivelser Klassevariabler og klassemetoder Variabler og metoder der et tilknyttet klassen (i stedet for at være tilknyttet

Læs mere

Hvad er Objekter - Programmering

Hvad er Objekter - Programmering Denne guide er oprindeligt udgivet på Eksperten.dk Hvad er Objekter - Programmering En rigtig god gennemgang af hvad objekter er! Hvordan de oprettes og anvendes! Det er helt klart til nybegyndere, som

Læs mere

Service Orienteret Arkitektur. - en teknisk betragtning. Ordrupvej Gentofte. tel fax

Service Orienteret Arkitektur. - en teknisk betragtning. Ordrupvej Gentofte. tel fax Ordrupvej 101 2820 Gentofte tel. +45 44 50 21 50 fax. +45 39 64 56 37 www.lector.dk Service Orienteret Arkitektur - en teknisk betragtning d. 28. august 2006 Copyright 2006. Lector ApS. All rights reserved

Læs mere

SOFTWARE DOKUMENTATION

SOFTWARE DOKUMENTATION SOFTWARE DOKUMENTATION TEKNOLOGI B OG A PÅ HTX Indhold Dokumentation af software i Teknologi på HTX... 2 Overblik... 2 Kravspecifikation... 2 Blokdiagram... 3 Use Case Diagram... 3 Pseudokode... 4 Dokumentation

Læs mere

Forelæsning Uge 2 Torsdag

Forelæsning Uge 2 Torsdag Forelæsning Uge 2 Torsdag Niveauer af programbeskrivelser Statiske / dynamiske beskrivelser Klassevariabler og klassemetoder Variabler og metoder der et tilknyttet klassen (i stedet for at være tilknyttet

Læs mere

SWC Elementer i klassedefinition

SWC Elementer i klassedefinition SWC Elementer i klassedefinition Indhold Eksempel... 2 Karakteristika for en klasse... 3 Karakteristika for et instance field... 4 Karakteristika for en constructor... 5 Karakteristika for en property...

Læs mere

Forelæsning Uge 2 Mandag

Forelæsning Uge 2 Mandag Forelæsning Uge 2 Mandag Objekters tilstand og opførsel BlueJ og Greenfoot Java Skabelse af objekter (via new-operatoren) Iteration (gentagelser) og parametrisering Forskellige slags variabler Afleveringsopgave:

Læs mere

Databasesystemer, forår 2006 IT Universitetet i København. Forelæsning 3: E-R modellering. 16. februar 2006. Forelæser: Rasmus Pagh

Databasesystemer, forår 2006 IT Universitetet i København. Forelæsning 3: E-R modellering. 16. februar 2006. Forelæser: Rasmus Pagh Databasesystemer, forår 2006 IT Universitetet i København Forelæsning 3: E-R modellering 16. februar 2006 Forelæser: Rasmus Pagh Forelæsningen i dag Datamodellering hvad, hvorfor og hvordan? Business rules

Læs mere

Singleton pattern i Java

Singleton pattern i Java Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i Java Denne artikel beskriver Singleton pattern og implementation i Java. Den forudsætter kendskab til Java men ikke til Singleton.

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

SWC eksamens-spørgsmål. Oversigt

SWC eksamens-spørgsmål. Oversigt SWC eksamens-spørgsmål Oversigt #1 Typer og variable #2 Aritmetik og logik #3 Klasser (definition, objekter) #4 Klasser (metoder) #5 Klasser (nedarvning, polymorfi) #6 Conditional statements #7 Repetition

Læs mere

Grundlæggende OOA - OOD

Grundlæggende OOA - OOD Grundlæggende OOA - OOD Dette kursus henvender sig til personer, der har lille eller ingen erfaring med softwareudvikling. Med udgangspunkt i UML opbygges et solidt kendskab til softwareudviklingens kunst

Læs mere

Algoritmedesign med internetanvendelser ved Keld Helsgaun

Algoritmedesign med internetanvendelser ved Keld Helsgaun Algoritmedesign med internetanvendelser ved Keld Helsgaun 1 Analyse af algoritmer Input Algoritme Output En algoritme er en trinvis metode til løsning af et problem i endelig tid 2 Algoritmebegrebet D.

Læs mere

Kursusgang 11. Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing

Kursusgang 11. Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing Kursusgang 11 Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing Design af brugerflader 11.1 Samme sted Forskellige steder Sidste kursusgang Samtidigt

Læs mere

Skriftlig eksamen i Datalogi

Skriftlig eksamen i Datalogi Roskilde Universitetscenter Skriftlig eksamen i Datalogi Modul 1 Vinter 1998/99 Opgavesættet består af 5 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 16% Opgave 2 12% Opgave 3 10% Opgave

Læs mere

Curriculum Vitae. Uddannelse: 2001 Civilingeniør fra Danmaks tekniske universitet, fagprofil: styring og regulering.

Curriculum Vitae. Uddannelse: 2001 Civilingeniør fra Danmaks tekniske universitet, fagprofil: styring og regulering. Curriculum Vitae Navn Gitte Brunn Fugmann Adresse Mosegård Park 9 3500 Værløse. Telefonnr +45 3927 7371 E-mail gbr@fugmann.net Fødselsdato 24. april 1974 Fødselssted Rigshospitalet, København Ægteskabelige

Læs mere

Årsagen til fejl. Erkendelse af fejl. Håndtering af fejl.

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

Programmering 1999 KVL Side 5-4. Klassen Time: metoder. Metoder i objektet giver mulighed for at ændre tilstanden, eller kigge på tilstanden.

Programmering 1999 KVL Side 5-4. Klassen Time: metoder. Metoder i objektet giver mulighed for at ændre tilstanden, eller kigge på tilstanden. Programmering 1999 Forelæsning 5, tirsdag 14. september 1999 Oversigt Mere om klasser og objekter Klassefelter: static Konstante felter: final Indkapsling og synlighed: private og public Overlæsning af

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

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2019 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 10. april, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

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

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 6 DM502 Forelæsning 6 Klasser og objekter Introduktion Math-klassen Indhold Klasser vs. objekter Først et tænkt eksempel: Vi vil lave en bil i Java 1. spørgsmål: Hvad karakteriserer en bil? Model År Farve...

Læs mere

Forelæsning Uge 5 Mandag

Forelæsning Uge 5 Mandag Forelæsning Uge 5 Mandag Algoritmeskabeloner findone, findall, findnoof, findsumof (sidste mandag) findbest Brug af klassen Collections og interfacet Comparable BlueJ s Debugger Nyttig til at inspicere

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

Databasesystemer, forår 2005 IT Universitetet i København. Forelæsning 3: E-R modellering. 17. februar 2005. Forelæser: Rasmus Pagh

Databasesystemer, forår 2005 IT Universitetet i København. Forelæsning 3: E-R modellering. 17. februar 2005. Forelæser: Rasmus Pagh Databasesystemer, forår 2005 IT Universitetet i København Forelæsning 3: E-R modellering 17. februar 2005 Forelæser: Rasmus Pagh Forelæsningen i dag Datamodellering hvad, hvornår, hvorfor og hvordan? Business

Læs mere