Objektorienteret programmering!
|
|
- Marianne Holm
- 8 år siden
- Visninger:
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 1 Plan Generelt om programmeludvikling Objekter og klasser (begreber) Objektorienteret programmeludvikling Programmering i Java 2 Aforisme Ordene er håndtag
Læs mere1. 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 mereUgeseddel 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 mereDatalogi 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 mereDesign 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 mereDM502. 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 mereHassansalem.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 mereObjects 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 mereKlasser 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 mereTree 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 mere4 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 mereSkriftlig 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 mereTest 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 mereUML 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 mereimport 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 mereObjektorienteret 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 mereObjektorienteret 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 mereDatalogi 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 mereclass 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 mereLektion 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 mereJacob 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 mereHvad 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 mereAAU, 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 mereObjektorientering. 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 mereDANMARKS 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 mereDesign 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 mereKursus 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 mereOversigt. 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 mere29 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 mereHvordan 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 mereUdvidelse 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 mereVideregå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 mereSoftware 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 mereHvem 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 mereGreenfoot 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 merePolymorfi. 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 mereUniversity 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 meredintprog 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 mereLø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 mereVideregå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 mereVideregå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 mereSkriftlig 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 mereMiniprojekt2011. 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 mereSide 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 mereclass 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 mereReal-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 mereMETODER 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 mereEksempel: 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 mereSoftware 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 mereBits 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 mereObjektorienteret 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 mereVideregå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 mereUniversity 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 mereAbstrakte 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 mereSingleton 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 mereNoter 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 mereSkriftlig 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 mereGenerel 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 mereProgrammering. 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 mereHvad 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 mereKlasser 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 mere22 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 mereUML-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 mereSWC 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 mereStudieordning 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 mereSWC 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 mere13 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 mereForelæ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 mereAssignment #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 mere2 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 mereJava 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 mere2. 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 mereForelæ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 mereIntroduktion 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 mereb) 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 mereKursus 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 mereProgrammering 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 mereOverblik. 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 mereSOFTWARE 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 mereAalborg 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 mereLø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 mereForelæ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 mereGrundlæ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 mereProgrammering 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 mereGrundlæ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 mereForelæ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 mereAlgoritmedesign 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 mereDatabasesystemer, 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 mereKlasser 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 mereForelæ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 mereIndledning. 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 mereService 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 mereSoftware 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 mereThreads 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 mereA 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 mere26 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 mereUmbrello 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 mereForelæ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 mereSyntaks 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.
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