Designmønstre. Grundbegreber fra objektorienteret design

Størrelse: px
Starte visningen fra side:

Download "Designmønstre. Grundbegreber fra objektorienteret design"

Transkript

1 Designmønstre Grundbegreber fra objektorienteret design

2 Emner Modellering begrebsapparat og UML Introduktion til interfaces eksempel, interfacebegrebet, og kontraktbaseret design Design med interfaces hvordan og hvornår? Design med komposition frem for arv inheritance considered harmful Generisk kode programmering mod (parametriserede) interfaces Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.2

3 Modellering Begrebsapparat og UML

4 Conceptual Modelling Conceptual model modelling Specification model abstraction abstraction Problem/vision concerning phenomenons Program, language, OS, machine Problem domain Model Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.4

5 UML Unified Modeling Language Result of collaboration among Grady Booch James Rumbaugh Ivar Jacobson Rational OMG (Object Management Group) De facto standard for software modelling UML Resource Center Introduction to the Unified Modeling Language (Terry Quatrani) Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.5

6 Concept Formation Identification of phenomena Socrates Person Batmobile Hannibal s march across the Alps Neil Young Neil Socrates Hillary Sirius 2000 Herbie Car Hillary Clinton Classification Batmobile Herbie Journey Sirius 2000 Hannibal s march across the Alps Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.6

7 Classification in UML Classes represent concepts, objects represent phenomenons. Example Concept: Person Phenomenons: Bruce, Paul, Michael Class Person String name int age isteenager() isold() age() Objects : Person Bruce 55 : Person Paul 62 : Person Michael 44 Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.7

8 Classification in Java class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; public void birthday() List l = new { ArrayList(); age++; l.add( new Person( Bruce, 55) ); l.add( new Person( Paul, 62) ); public isteenager() l.add( { new Person( Michael, 44) ); return (age >= 13 && age <= 19) Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.8

9 Relations between concepts Aggregation has-a Association X-a Generalization/specialization is-a Organization of knowledge... Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.9

10 Aggregation (has-a) Relation between concepts describing a whole and (some of) the parts of which constitutes the whole (part-whole structure). UML: Composition Car Motor Wheel Body Seat Door Roof Fender Journey Duration Departure Means of transportation Destination Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.10

11 Aggregation in UML (1) ClockDisplay NumberDisplay hours; NumberDisplay minutes; String displaystring; timetick() settime(int h, int m) gettime(): String Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.11

12 Aggregering i UML (2) ClockDisplay String displaystring; timetick() settime(int h, int m) gettime(): String 2 NumberDisplay int limit; int value; getvalue() getdisplayvalue() setvalue() increment() Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.12

13 Aggregation in Java class NumberDisplay { private int limit, value; public NumberDisplay() {... public int getvalue() {... public String getdisplayvalue() {... public void setvalue(int replacementvalue) {... class ClockDisplay { public void increment() {... private NumberDisplay hours; private NumberDisplay minutes; private String displaystring; public ClockDisplay() { hours = new NumberDisplay(24); minutes = new NumberDisplay(60); public void timetick() {... public void settime(int hour, int minutes) {... public String gettime() {... Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.13

14 Association (X-a) Relation that describes a dynamic relation between concepts that can exist independently of each other. MailServer keeps MailItem Person owns Car Person rents Car Person loves Person Person is-friend-with Person Student is-enrolled-at Course Patient have-had Disease Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.14

15 Association in UML MailServer keeps * MailItem Person owns * 0..1 owned can-drive * Car Student takes * * Course Multiplicity (cardinality): 0..1, 1, n, a..b, 0..* (*) Role Orientation (1-way, 2-way) Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.15

16 Association in UML (X-a) X = keeps MailServer howmanymessages(string who): int getnextmailitem(string who): MailItem post(mailitem item) 0..* MailItem from: String to: String message: String getfrom(): String getto(): String getmessage(): String print() Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.16

17 Association in Java class MailServer { class MailItem { Set messages; public MailServer() { messages = new HashSet(); public int howmanymessages (String who) {... public MailItem getnextmailitem (String who) {... public void post(mailitem item) {... private String to; private String from; private String message; public MailItem(... ) {... public String getfrom() {... public String getto () {... public String getmessage() {... public void print() {... Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.17

18 Generalization/specialization (is-a) Combine concepts to a more general concept. Vehicle Car Truck Bus Passenger car Taxi Ambulance Van Sedan Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.18

19 What makes a concept special? Means of transportation Plane Passenger plane Airliner Sports plane Military plane Ship Vehicle Car Bus Truck Lorry Pick-up Truck Passenger car Van Taxi Bicycle Figure Ellipse Circle Triangle Isosceles triangle Equilateral Right-angled Four-sided polygon Trapezoid Parallelogram Rectangle Square Kite Adding properties! Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.19

20 Specialization: extra properties A concept s intension: Collection of properties that characterize the concept A concept s extension: The collection of phenomena covered by the concept A B is-a A Intension(B) Intension(A) B Extension(B) Extension(A) Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.20

21 Specialization in UML General concept LendableItem lend(l: borrower) return() isavalable() Special concepts Book author() publisher() ISBN() Video producer() format() playingtime() Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.21

22 Specialization in Java class LendableItem { void lend(borrower b) { // code for lend void return() { // code for return boolean isavalable() { // code for isavalable... class Book extends LendableItem { String author() {... String puclisher() {... String ISBN() { class Video extends LendableItem { String producer() {... String format() {... int playingtime() { Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.22

23 Concept formation and oo-languages Classification class Aggregation has-a Association X-a Specialization is-a Reference (attribute) aggregate has responsibility for the creation Reference (attribute) dynamic relation extends subtype Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.23

24 Systematics in OOP Modelling from problem description to conceptual model refinement of conceptual model to specification model (method signatures and specifications) Implementation structurally: from specification model to Java code (automatically) body: attributes and methods (creativity and systematics) Problem domain Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.24

25 Conceptual Modelling Designmønstre Conceptual model modelling Specification model abstraction abstraction Problem/vision concerning phenomenons Program, language, OS, machine Problem domain Model Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.25

26 Interfacebegrebet Interfaces, hvorfor Separering af specifikation (interface) og implementation (klasse) Modellering (abstrakt/konkret, generelt/specielt) Afkobling af programkomponenter Interfaces, hvad Mange-til-mange relation mellem specifikation og implementation Typehierarki Interfaces, hvordan Sprogkonstruktion i Java og C# Essentielt begreb i CORBA Java-specifik karakteristik Yet another level of indirection... Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.26

27 Separering af spec. og impl. Specifikation (hvad) Beregn xy Implementation (hvordan) lineær potensopløftning logaritmisk potensopløftning Sorter listen Quicksort Mergesort Bobblesort Rektangel et hjørne og to sidelængder to hjørner Prioritetskø array (sorteret) kædet liste (sorteret) søgetræ (balanceret) bunke (heap) Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.27

28 Modellering Interfaces (specifikation) Containerklasser I Java findes en række collectioninterfaces og klasser Såvel interfaces som -klasser er organiseret i klassifikationshierarkier (specialisering) Interfaces er abstrakte, klasser er konkrete HashSet impl Set ArrayList impl List HashMap impl Map Et interface definerer en abstrakt datatype (ADT) TreeSet impl SortedSet LinkedList impl List TreeMap impl SortedMap Klasser (implementation) En klasser definerer én implementation (datastruktur) Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.28

29 Interface, abstrakt og konkret klasse Procent implementation 0 % 100 % Interface Abstrakt klasse Konkret klasse Java og C# supporterer interfacebegrebet. I C++ må dette simuleres vha. abstrakte klasser og pure virtual functions. Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.29

30 Afkobling af programkomponenter Calculator Stack Simple Scientific ArrayStack LinkedStack Financial CollectionStack Komponenterne kan udskiftes uafhængigt af hinanden dvs. 3 3 = 9 mulige konfigureringer Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.30

31 Mange-til-mange relation ADT interface Specifikation * Fra spec. til impl. Det er oplagt at en specifikation kan implementeres på mange måder Fra Impl. til spec. Der er måske mindre oplagt at en implementation kan opfylde flere forskellige specifikationer CDT (abstrakt) klasse * Implementation En specifikation udtrykker mindstekrav til en implementation ved at beskrive en rolle som en implementation skal udfylde En implementation kan leve op til flere forskellige mindstekrav / udfylde flere forskellige roller Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.31

32 Eksempel, mange-til-en << interface >> Rectangle circumference UML << interface >> Comparable compareto Java interface Rectangle { float circumference(); interface Comparable { int compareto(object o); R p: Point b: int h: int circumference compareto class R implements Rectangle, Comparable { private Point p; private int b, h; public circumference() { return 2*(b+h); public int compareto(object o) { Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.32

33 Typehierarki Subtyper i Java ( ) For klassebaserede typer gælder: Alle typer, T, er subtype af Object: T Object Alle typer, T, er subtype af sig selv: T T T1 T2 T2 T3 T1 T3 T 2 T 1, hviss T 1 og T 2 er defineret på en af følgende tre måder: class T 2 extends T 1 {... class T 2 implements T 1 {... interface T 2 extends T 1 {... extends udtrykker en generaliserings- / specialiseringsrelation implements udtrykker en abstraktions- / konkretiseringsrelation Subtype Relationer Såvel specialisering som konkretisering danner subtype Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.33

34 Kontraktbaseret design Kontraktperspektivet to parter gensidige fordele gensidige forpligtigelser Service Forpligtigelser Fordele Klient Skal opfylde start-betingelse Kan antage slut-betingelse Udbyder Skal opfylde slut-betingelse Kan antage start-betingelse Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.34

35 Design med interfaces Hvordan og hvornår?

36 Hvad er målet med softwaredesign? Fleksibilitet, fleksibilitet og fleksibilitet Skal kunne ændres uden de store omkostninger Nye ting skal kunne tilføjes Skal kunne tunes (performance) Hvordan når vi målet? Lav kobling Høj samhørighed DeMarco & Page-Jones (1988) Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.36

37 Kobling Kobling Afhængighed mellem moduler Lav kobling = minimal viden (om implementation) hos den der benytter et modul Benyt interfaces......til at modellere de forskellige roller en klasse kan spille Rollebaseret systemudvikling Hvordan finder man roller? Hvordan benytter man roller? Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.37

38 Rollebaseret design - motivation Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.38

39 Rollebaseret design - struktur Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.39

40 Benyttelse af roller Vurdér hver association for mulig generalisering: Er associationen hardwired til kun at benytte objekter af den anden klasse, eller er det en associering med ethvert objekt der implementerer et givet interface? Vurdér hvert operationskald for mulig generalisering: Er dette metodekald kun til objekter af den givne klasse eller er det til ethvert objekt der implementerer et givet interface? Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.40

41 Fordele ved interfaces Associering til et interface gør koblingen mindre elliminerer potentiel multipel arv Interface udtrykker is a kind of på en meget begrænset form is a kind that supports this interface Jo større et system er, og jo længere et system skal leve, des vigtigere er interfaces Interfaces definerer plug-in -steder i designet Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.41

42 Design med komposition frem for arv Inheritance considered harmful

43 Faktorisering af funktioner class Computation { void method1(...) { //... computestep1(); computestep2(); computestep3(); //... void method2(...) { //... computestep1(); computestep2(); computestep3(); //... class FactorizedComputation { void computeall(...) { computestep1(); computestep2(); computestep3(); void method1(...) { //... computeall(); //... void method2(...) { //... computeall(); //... Kun brugbar når koden ligger inden for samme klasse! Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.43

44 Faktorisering ved arv class ComputationA { void method1(...) { //... computestep1(); computestep2(); computestep3(); //... class ComputationB { void method2(...) { //... computestep1(); computestep2(); computestep3(); //... class Common { void computeall(...) { computestep1(); computestep2(); computestep3(); class ComputationA extends Common { void method1(...) { //... computeall(); //... class ComputationB extends Common { void method2(...) { //... computeall(); //... Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.44

45 Faktorisering ved delegering class ComputationA { void method1(...) { //... computestep1(); computestep2(); computestep3(); //... class ComputationB { void method2(...) { //... computestep1(); computestep2(); computestep3(); //... class Helper { void computeall(...) { computestep1(); computestep2(); computestep3(); class ComputationA { Helper helper; void method1(...) { //... helper.computeall(); //... class ComputationB { Helper helper; void method2(...) { //... helper.computeall(); //... Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.45

46 Faktorisering, arv vs. delegering Arv Delegering Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.46

47 Arv eller delegering? Faktorisering ved arv er ofte simplest, men man kan opnå det samme med faktorisering ved delegering. Singulær arv kan gøre det nødvendigt at benytte faktorisering ved delegering fremfor faktorisering ved arv eksempel: hvis enten ComputationA eller ComputationB skal være subklasse af en klasse (der ikke er Object), er faktorisering ved arv ikke mulig Faktorisering ved delegering kan altid lade sig gøre. Cryptomathic, F05 Designmønstre Grundbegreber fra objektorienteret design.47

Fundamentale sprogbegreber

Fundamentale sprogbegreber Fundamentale sprogbegreber Sætninger og udtryk Niveauer af programbeskrivelse (statisk versus dynamisk syn) Oversigt Sætninger simple sætninger (assignment, metodekald) sammensatte sætninger (selektion,

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

Kursus navn: Indledende programmering Kursus nr. 02101

Kursus navn: Indledende programmering Kursus nr. 02101 Danmarks Tekniske Universitet Side 1 af 8 sider Skriftlig prøve, den 15. december 2007 Kursus navn: Indledende programmering Kursus nr. 02101 Tilladte hjælpemidler: Alle skriftlige hjælpemidler Vægtning

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

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

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

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 [email protected] Informatics and Mathematical Modelling Technical University of Denmark Design by Contract er en teknik til at specificere

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

2a. Conceptual Modeling Methods

2a. Conceptual Modeling Methods ICT Enhanced Buildings Potentials IKT og Videnrepræsentationer - ICT and Knowledge Representations. 2a. Conceptual Modeling Methods Cand. Scient. Bygningsinformatik. Semester 2, 2010. CONTENT Conceptual

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

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

Tabelbegrebet. Klassediagrammer (III) Oversigt. Anvendelse af Tabeller. Tabeller og qualified associations

Tabelbegrebet. Klassediagrammer (III) Oversigt. Anvendelse af Tabeller. Tabeller og qualified associations Tabelbegrebet Klassediagrammer (III) Tabeller og qualified associations originally by Michael R. Hansen modified/extended by Anne E. Haxthausen Informatics and Mathematical Modelling Technical University

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 [email protected]. Besvarelsen skal

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

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

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

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

Om binære søgetræer i Java

Om binære søgetræer i Java Om binære søgetræer i Java Mads Rosendahl 7. november 2002 Resumé En fix måde at gemme data på er i en træstruktur. Måden er nyttig hvis man får noget data ind og man gerne vil have at det gemt i en sorteret

Læs mere

Linear Programming ١ C H A P T E R 2

Linear Programming ١ C H A P T E R 2 Linear Programming ١ C H A P T E R 2 Problem Formulation Problem formulation or modeling is the process of translating a verbal statement of a problem into a mathematical statement. The Guidelines of formulation

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

Arkitektur principper og design mønstre til realisering af enterprise applikationer baseret på rige domænemodeller (og.net)

Arkitektur principper og design mønstre til realisering af enterprise applikationer baseret på rige domænemodeller (og.net) Arkitektur principper og design mønstre til realisering af enterprise applikationer baseret på rige domænemodeller (og.net) Kim Harding Christensen EOS A/S Margrethepladsen 3 8000 Århus TLF: 8732 8787

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

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

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

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

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2015 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 3. marts, 2015 Dette projekt udleveres i to dele. Hver del har sin deadline, således

Læs mere

Øvelse 9. Klasser, objekter og sql-tabeller insert code here

Øvelse 9. Klasser, objekter og sql-tabeller insert code here Øvelse 9. Klasser, objekter og sql-tabeller Denne opgave handler om hvordan man opbevarer data fra databasekald på en struktureret måde. Den skal samtidig give jer erfaringer med objekter, der kommer til

Læs mere

Objekt-orienteret programmering uden klasser: Self.

Objekt-orienteret programmering uden klasser: Self. Objekt-orienteret programmering uden klasser: Self. Sammenligning klasse-baseret og klasseløs programstrukturering. Basale forhold Singulære objekter Dynamisk nedarvning Variable i forhold til metoder.

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

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

Datatekniker med programmering som speciale

Datatekniker med programmering som speciale Datatekniker med programmering som speciale H2 H1 varer ti uger bestående af ti uddannelsesspecifikke fag. Indhold På H2 er der fokus på at integrere Objektorienteret Programmering i dine programmer. Fagene

Læs mere

Molio specifications, development and challenges. ICIS DA 2019 Portland, Kim Streuli, Molio,

Molio specifications, development and challenges. ICIS DA 2019 Portland, Kim Streuli, Molio, Molio specifications, development and challenges ICIS DA 2019 Portland, Kim Streuli, Molio, 2019-06-04 Introduction The current structure is challenged by different factors. These are for example : Complex

Læs mere

Software Design (SWD) Spørgsmål 1

Software Design (SWD) Spørgsmål 1 Spørgsmål 1 Unified Process Du skal give en beskrivelse af Unified Process. Beskrivelsen skal indeholde forklaring på følgende begreber: Phase Iteration Discipline Activity Milestone Artifact Spørgsmål

Læs mere

Det er muligt at chekce følgende opg. i CodeJudge: og

Det er muligt at chekce følgende opg. i CodeJudge: og Det er muligt at chekce følgende opg. i CodeJudge:.1.7 og.1.14 Exercise 1: Skriv en forløkke, som producerer følgende output: 1 4 9 16 5 36 Bonusopgave: Modificer dit program, så det ikke benytter multiplikation.

Læs mere

Videregående programmering i Java

Videregående programmering i Java Videregående programmering i Java VPJ dag 1 Introduktion og overblik over kurset Datastrukturer: Lister, mængder og iteratorer Opsamling: Grafikprogrammering, komponenter, containere og layout Bruge komponenter

Læs mere

Vina Nguyen HSSP July 13, 2008

Vina Nguyen HSSP July 13, 2008 Vina Nguyen HSSP July 13, 2008 1 What does it mean if sets A, B, C are a partition of set D? 2 How do you calculate P(A B) using the formula for conditional probability? 3 What is the difference between

Læs mere

Videregående programmering i Java

Videregående programmering i Java Videregående programmering i Java Dag 2 Objektorienterede principper Fastlæggelse af emne for projekt Ansvarsområder, kobling og indkapsling Programmere i pakker Specificere funktionalitet i et interface

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

DM507 Algoritmer og datastrukturer

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

Læs mere

Projektledelse i praksis

Projektledelse i praksis Projektledelse i praksis - Hvordan skaber man (grundlaget) for gode beslutninger? Martin Malis Business Consulting, NNIT [email protected] 20. maj, 2010 Agenda Project Governance Portfolio Management Project

Læs mere

COMPUTERSPIL 1. Opgave 1. Opgave 2

COMPUTERSPIL 1. Opgave 1. Opgave 2 COMPUTERSPIL 1 I løbet af de kommende fem uger skal I programmere et computerspil, hvor spillerne rejser rundt mellem byer i forskellige lande og indsamler point. Der er en delaflevering hver uge, hvor

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

DM502. Peter Schneider-Kamp ([email protected]) http://imada.sdu.dk/~petersk/dm502/

DM502. Peter Schneider-Kamp (petersk@imada.sdu.dk) http://imada.sdu.dk/~petersk/dm502/ DM502 Peter Schneider-Kamp ([email protected]) 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

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 29. februar, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 13. marts, 2018 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Database. lv/

Database. lv/ Database 1 Database Design Begreber 1 Database: En fælles samling af logiske relaterede data (informationer) DBMS (database management system) Et SW system der gør det muligt at definer, oprette og vedligeholde

Læs mere

DET KONGELIGE BIBLIOTEK NATIONALBIBLIOTEK OG KØBENHAVNS UNIVERSITETS- BIBLIOTEK. Index

DET KONGELIGE BIBLIOTEK NATIONALBIBLIOTEK OG KØBENHAVNS UNIVERSITETS- BIBLIOTEK. Index DET KONGELIGE Index Download driver... 2 Find the Windows 7 version.... 2 Download the Windows Vista driver.... 4 Extract driver... 5 Windows Vista installation of a printer.... 7 Side 1 af 12 DET KONGELIGE

Læs mere

Implementing SNOMED CT in a Danish region. Making sharable and comparable nursing documentation

Implementing SNOMED CT in a Danish region. Making sharable and comparable nursing documentation Implementing SNOMED CT in a Danish region Making sharable and comparable nursing documentation INTRODUCTION Co-operation pilot project between: The Region of Zealand Their EHR vendor - CSC Scandihealth

Læs mere

Forelæsning Uge 3 Mandag

Forelæsning Uge 3 Mandag Forelæsning Uge 3 Mandag ArrayList Collection med variabelt antal elementer Der er mange andre Collection typer (se Collection interfacet i JavaDoc) MusicOrganizer projektet Eksempel på brug af ArrayList

Læs mere

Rekursion og dynamisk programmering

Rekursion og dynamisk programmering Rekursion og dynamisk programmering Datastrukturer & Algoritmer, Dat C Forelæsning 12/10-2004 Henning Christiansen Rekursion: at en procedure kalder sig selv eller et antal metoder kalder hinanden gensidigt.

Læs mere

COMPUTERSPIL 1. Opgave 1

COMPUTERSPIL 1. Opgave 1 COMPUTERSPIL 1 I løbet af de kommende fem uger skal I programmere et computerspil, hvor spillerne rejser rundt mellem byer i forskellige lande og indsamler point. Der er en delaflevering hver uge, hvor

Læs mere