Designmønstre. Grundbegreber fra objektorienteret design
|
|
|
- Albert Thorsen
- 8 år siden
- Visninger:
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 Sætninger og udtryk Niveauer af programbeskrivelse (statisk versus dynamisk syn) Oversigt Sætninger simple sætninger (assignment, metodekald) sammensatte sætninger (selektion,
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
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
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 /
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
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
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
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
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
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
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
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
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
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
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
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
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:
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
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
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
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
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
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.
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,
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
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
Ø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
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.
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
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
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
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
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
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.
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
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
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
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...........................
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
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
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ø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
DM502. Peter Schneider-Kamp ([email protected]) 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!
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
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
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
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
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
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
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.
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
