Objektorienteret programmering!

Størrelse: px
Starte visningen fra side:

Download "Objektorienteret programmering!"

Transkript

1 Objektorienteret programmering! Introduktion! Plan!! Generelt om programmeludvikling!! Objekter og klasser (begreber)!! Objektorienteret programmeludvikling!! Programmering i Java! 1! 2! Aforisme! Programmeludvikling! Ordene er håndtag på tingene.! Hvis vi ikke passer på,! holder de os virkeligheden fra livet.! Megen udvikling baseres på trial-and-error.! Problemerne træder tydeligst frem ved udvikling af store systemer.! Piet Hein! Der er behov for kodificering af viden om, hvad man skal gøre, og hvad man ikke skal gøre (designviden).! 3! 4!

2 Ønskværdige egenskaber ved programmel!! Brugbart!! Rettidigt!! Korrekt!! Robust!! Brugervenligt!! Effektivt!! Let at vedligeholde!! Genbrugeligt! Normalt kan alle egenskaber ikke opfyldes samtidigt.! 5! Objektorienteret programmering! Fokus på!! Vedligeholdelse!! Genbrug! Vedligeholdelse forenkles ved!! Enkelhed!! Fleksibilitet!! Læsbarhed! 6! To muligheder for fokusering! Om sprogs betydning (1)!!Algoritmer!!!!!Fokusering på control flow!!!(procedure-orienteret tilgang)! (2)!!Datastrukturer!!!!!Fokusering på data flow! The limits of my language! mean the limits of my world.! Objektorienteret programmering er en balance imellem disse to yderpunkter.!! Ludwig Wittgenstein! 7! 8!

3 Objektorienterede sprog! Simula!!1967!! Smalltalk!!1970! Objective C!!1982! C++!!!1983!(Bjarne Stoustrup, Danmark)! Eiffel!!!1985! Object Pascal!!1986!! Beta!!!1990!! Java!!!1995! C#!!!!2000!(Anders Hejlsberg, Danmark)!!!!!og mange flere! 9! 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! Programmeludvikling! Programsystem! Grundlæggende begreber i objektorienteret programmering! Verden! Abstraktion! Model! Algoritmer! Fortolkning! Abstrahere: at se bort fra noget! 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.! Målet for programmeludvikling er konstruktion af programsystemer, der hjælper mennesker med problemløsning i den virkelige verden.! 11! 12!

4 Tilstand og adfærd! Klasser! 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.! 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.! 13! 14! Eksempel på en klasse! Syntaks for felter og metoder!!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.! Felt:!![Visibility] Type Identifier [= InitialValue]! Metode:!!!!!!![Visibility] Type Identifier([ParameterList])! Visibility ::= public private protected! 15! 16!

5 Klasse:! Grafisk notation" UML (Unified Modelling Language)! Klassenavn! felt 1...! felt n! metode 1..! metode m! De to nederste dele kan udelades.! class Point! private int x private int y! Point! Eksempel! public void move(int dx, int dy)! -x:int -y:int! Point! +move(dx:int, dy:int)! UML-syntaks! Forkortede former! Point! x! y! move()! Point! 17! 18! UML-notation for objekter! Eksempel! Objektnavn : Klassenavn! felt 1 = værdi 1!..! felt n = værdi n! Bemærk understregningen! Et Point-objekt! p1 : Point! x = 79 y = 13! Point p1 = new Point();! p1.x = 79;!! p1.y = 13;!! Den nederste del kan udelades.! Objektnavnet eller klassenavnet kan udelades.! Et metode kan kalde et objekts metoder.! Eksempel på kald:! p1.move(3, 4)! 19! 20!

6 3 nyttige principper ved programmeludvikling! 1. Modularisering! 2. Abstraktion! 3. Indkapsling! 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.! 21! 22! Princip:! Modularisering! 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).! 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.! 23! 24!

7 Abstraktion! Kontrakter! Princip:! Modulets adfærd karakteriseres ved hjælp af en kortfattet og præcis beskrivelse! Beskrivelsen kaldes modulets kontraktlige grænseflade.! 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.! 25! 26! 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.! 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() {... }! 27! 28!

8 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! Princip:! 3. Indkapsling! 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).! 29! 30! Grænseflader! Eksempel! En grænseflade uden implementation kaldes en abstrakt datatype (i Java-terminologi: et interface).! Grafisk notation:! interface Movable {!!!void move(int dx, int dy);! }!!! ServiceInterface! aservice()! ServiceImplementation! aservice()! Bemærk at grænsefladenavnet er skrevet i kursiv, og at linjen på pilen er stiplet! class Point implements Movable {! int x, y;! void move(int dx, dy) {! x += dx;!!! y += dy;!! }!!! }!!! 31! 32!

9 Indkapsling! En klasse indeholder en række egenskaber.! Nogle egenskaber er skjulte (indkapslede). De øvrige udgør klassens grænseflade.! Polymorfi! En kontraktlig grænseflade kan overholdes af mange mulige implementeringer.! Skjult information! Point! int x;! int y;! Grænsefladen! Muligheden for dynamisk at udskifte moduler, uden at klienterne berøres, kaldes for polymorfi (fra græsk: mange former).! move! 33! 34! 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.! Relationer imellem klasser!! Nedarvning!!!! Associering!!!!!!!Aggregering!!!!!!!Komposition! 35! 36!

10 Nedarvning! Notation for nedarvning! En klasse C2 siges at nedarve fra en anden klasse C1, hvis enhver instans af C2 også er en instans af C1.!! C2! C1! C1! C2! class C2 extends C1 {!...! C2 siges at være underklasse af C1.!!! C1 siges at være overklasse for C2.! C2 er en udvidelse af C1: alt hvad der gælder for C1, gælder også for C2.! 37! 38! Shape! Eksempel! class Shape { class Circle extends Shape {! Point center;!! double radius;!!! Tolkning af nedarvning! En underklasse udgør en specialisering af sin overklasse.! En overklasse er en generalisering af sine underklasser.! Circle! Polygon! class Polygon extends Shape {! Point[] points;! Nedarvning repræsenterer en er-relation (engelsk: is-a relation).! En underklasse udgør en udvidelse af sin overklasse.! En overklasses felter og metoder deles af dens underklasser! (metoderne genbruges af underklasserne).!! 39! 40!

11 Multipel nedarvning! Relation imellem grænseflade og implementering! En klasse kan i princippet nedarve direkte fra mange overklasser. Dette kaldes for multipel nedarvning.! grænseflade! grænseflade1! grænseflade2! 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.! implementation1! implementation2! Multiple implementeringer! implementation! Multiple grænseflader! 41! 42! Princip:! Abstraktionsniveauer! Abstraktioner kan organiseres i niveauer (lag)! Jo højere niveau, desto mere generel er abstraktionen Jo lavere niveau, desto mere specifik er abstraktionen! Associering! En associering repræsenterer en relation imellem to klasser.! Angives i UML med en kant:!!!!!!!!!!!!class A!!!class B! 43! 44!

12 Associeringer kan navngives, og deres retning kan angives.! Aggregering! advisee! Student! *! enroll! *! *! 1! advisor! Course! *! teach! 1! Teacher! Aggregering er en speciel form for associering og betegner en har-relation (engelsk: has-a relation).!!! Grafisk notation:! Aggregat! Component! En kants ender kan forsynes med heltalsintervaller:!!l...u!!!l, l+1,..., u!!i!!!i!!!*!!!0, 1, 2,...! Der kan knyttes intervalangivelser på en kants endepunkter.! Eksempel:! Polygon! *! *! Point! 45! 46! Komposition! Komposition er en stærkere form for aggregering, der benyttes, når der er tale om eksklusivt ejerskab.! Grafisk notation:!! Aggregat! Der kan knyttes intervalangivelser på en kants endepunkter.! Eksempel:! Car! 1! 4! Component! Wheel! UML-diagram " for en E-boghandel! 1! *! 2! EBookstore! Customer! Address! 1! *! Item! Book! MusicCD! Software! 1! 1! *! *! Order! OrderItem! *! 1! 47! 48!

13 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 OrderItem {!!Item item;!!int quantity;! }! class Order {!!! Customer customer;! Collection<OrderItem> orderitems;! double salestax;!! double shippingfee;!! double total;! int methodofpayment;! class MusicCD extends Item {!String artist;!!!int volume;!!! fortsættes! 49! fortsættes! 50! 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! Vandfaldsmodellen:! faseopdelt! Traditionel systemudvikling! Kravanalyse! Design! Implementering! og afprøvning! Brugertest! Vedligeholdelse! 52!

14 Objektorienteret systemudvikling (Booch)! Mikroprocessen! Udviklingsprocessen er iterativ.!!! Den består af successive iterationer, der som mål har, at!!!identificere klasserne!! Identificer! klasser!!!identificere klassernes semantik (deres felter og!metoder)!!!identificere klassernes indbyrdes relationer! Definer grænseflader og implementer! Identificer! klassernes semantik!!!definere grænseflader!!!implementere klasserne! Systemet vokser i relativt små afgrænsede skridt.! Identificer! klassernes relationer! Spiralmodel! 53! 54! 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! Foranalyse! Makroprocessen! Analyse!!!Analyse!!!!!!!!Udvikling af en model af systemets ønskede opførsel!!!design!!!!!!!!skabelse af en arkitektur!!!!!!(objekter/klasser og deres relationer)!! Vedligeholdelse! Design!!!Implementering!!!!!!Kodning i et objektorienteret programmeringssprog!! Vedligeholdelse!!!!!!Fejlretning og videreudvikling!!! 55! Implementering! Videreudviklet i Rational Unified Process! 1.! Påbegyndelse! 2.! Udarbejdelse! 3.! Konstruktion! 4.! Overdragelse! 56!

15 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.! (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! (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! Klassediagram! Brugstilfældediagram! Tilstandsdiagram! Sekvensdiagram! 58! Extreme programming (XP)" Om udviklingsmetoder!! 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! Der er ingen kogebogsmetoder, der kan erstatte intelligens, erfaring og god smag ved design og programmering.! 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!

16 Nogle designråd! Javas egenskaber! 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!! Objektorienteret!! Distribueret!! Sikkert!! Platformsuafhængigt! 61! 62! Udførelse af Java-programmer! Et kompromis imellem oversættelse og fortolkning! Kildekode! Oversætter! Bytekode!.java!.class! platformsuafhængigt! Bytekode! Opcode (1 byte)! operand 1! operand 2!...! James Gosling! Bytekodefortolker! CPU 1! JVM! Bytekodeoversætter! Maskinkode! CPU 2! Java-chip! Java-maskine! platformsafhængigt! JVM s instruktionscyklus:! do {!!!!!!!!!hent opcode-byten for den aktuelle instruktion;!hent operanderne;!!!!udfør instruktionen;!! " } while (!done);! JVM! JIT/HOTSPOT! 63! 64!

17 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.!! Lagerbeskyttelse!! Kodeverifikation!! Ressourcebeskyttelse! Sikkerhed! 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! 65! 66! En simpel applikation! public class Hello {!!!!! public static void main(string[] args) {! System.out.println("Hello from Venus");!!!!!!!!! }!! 67! 68!

18 En simpel applet! (0,0)! Det grafiske koordinatsystem! x! 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);! y! width! height! 69! 70! Konkret eksempel! HTML-kode! (0,0)! (0,350)!! Hello!(40,25)! From Venus!" (20,60)! (300,0)! (300,350)! <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>! 71! 72!

19 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! Ugeseddel 1" 31. august - 7. september! Læs kapitel 4 i lærebogen (side )!! Løs opgaverne 3.1 og 3.2! Specificering af anvendelse i HTML:! <applet code="hellofromvenus.class"! archive="hello.jar"! width=300 height=350>! </applet>! 73! 74!

Objektorienteret programmering. Introduktion

Objektorienteret programmering. Introduktion Objektorienteret programmering Introduktion 1 Plan Generelt om programmeludvikling Objekter og klasser (begreber) Objektorienteret programmeludvikling Programmering i Java 2 Aforisme Ordene er håndtag

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Programmering. Udvidet Programmering. Kurserne. Kurset: programmering i sproget Java. Lærerne: Morten Larsen og Peter Sestoft

Programmering. Udvidet Programmering. Kurserne. Kurset: programmering i sproget Java. Lærerne: Morten Larsen og Peter Sestoft Kurserne Kurset: programmering i sproget Java Programmering og Udvidet Programmering Lærerne: Morten Larsen og Peter Sestoft Kursusmål: I skal lære at skrive interessante programmer i Java Forudsætninger:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Aalborg University SYNOPSIS: TITEL: TOOL - et objektorienteret sprog for nybegyndere. EMNE: Værktøjer, sprog og oversættere

Aalborg University SYNOPSIS: TITEL: TOOL - et objektorienteret sprog for nybegyndere. EMNE: Værktøjer, sprog og oversættere Aalborg University Institut for Datalogi, Fredrik Bajers Vej 7E, DK-9220 Aalborg Øst SYNOPSIS: TITEL: TOOL - et objektorienteret sprog for nybegyndere EMNE: Værktøjer, sprog og oversættere PROJEKTPERIODE:

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

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

Grundlæggende Programmering ITU, Efterår 1999. Skriftlig eksamen i Grundlæggende Programmering

Grundlæggende Programmering ITU, Efterår 1999. Skriftlig eksamen i Grundlæggende Programmering Skriftlig eksamen i Grundlæggende Programmering ITU, 20. januar 2000 Alle hjælpemidler tilladt, dog ikke datamat. Eksamen er skriftlig, fire timer, og bedømmes efter 13-skalaen. Opgavesættet består af

Læs mere

Programmering i C. Kursusintroduktion. Lektion september Målgruppe 2 Indhold 3 Form 4 Materiale. Målgruppe Indhold Form Materiale

Programmering i C. Kursusintroduktion. Lektion september Målgruppe 2 Indhold 3 Form 4 Materiale. Målgruppe Indhold Form Materiale Programmering i C Lektion 1 16. september 2008 Målgruppe Indhold Form Materiale Kursusintroduktion 1 Målgruppe 2 Indhold 3 Form 4 Materiale 2 / 21 Målgruppe Indhold Form Materiale Folk der har styr på

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

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

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

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

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

Forelæsning Uge 6 Mandag

Forelæ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 mere

Indledning. Hvorfor det forholder sig sådan har jeg en masse idéer om, men det bliver for meget at komme ind på her. God fornøjelse med læsningen.

Indledning. Hvorfor det forholder sig sådan har jeg en masse idéer om, men det bliver for meget at komme ind på her. God fornøjelse med læsningen. Indledning...2 Variabler...13 Eksempel: 1...13 Eksempel 2:...13 Eksempel 3:...15 Eksempel 4:...16 Metoder...17 Metode (intet ind og intet ud)...17 Metode (tekst ind)...18 Metode (tekst ind og tekst ud)...19

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

Threads i Java. Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java

Threads i Java. Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java Denne guide er oprindeligt udgivet på Eksperten.dk Threads i Java Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java Den forudsætter

Læs mere

A Profile for Safety Critical Java

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

26 Programbeviser I. Noter. PS1 -- Programbeviser I. Bevis kontra 'check af assertions' i Eiffel. Betingelser og bevisregler.

26 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

Umbrello UML Modeller-håndbogen

Umbrello UML Modeller-håndbogen 2 Indhold 1 Indledning 7 2 UML, det basale 8 2.1 Om UML........................................... 8 2.2 UML-elementer....................................... 9 2.2.1 Brugstilfældediagram...............................

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

Syntaks og syntaksgenkendelse, særligt regulære udtryk og tilstandsmaskiner og lidt om anvendelser i bioinformatik

Syntaks og syntaksgenkendelse, særligt regulære udtryk og tilstandsmaskiner og lidt om anvendelser i bioinformatik Datalogi C, RUC Forelæsning 22. november 2004 Henning Christiansen Syntaks og syntaksgenkendelse, særligt regulære udtryk og tilstandsmaskiner og lidt om anvendelser i bioinformatik Dagens program Hvad

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