Introduktion til design patterns.
|
|
- Kirsten Jakobsen
- 6 år siden
- Visninger:
Transkript
1 Introduktion til design patterns. Genbrug. Pattern languges i arkitektur. Standardbeskrivelse af design patterns. Oversigt over design patterns. Observer. Composite. Decorator. Abstract Factory. Patterns i andre sprog og paradigmer. Sproglig eller værktøjsmæssig understøttelse. Kurt Nørmark, Aalborg Universitet 11/27/96 s. 1 Denne lektion er baseret på den ny-klassiske bog Design Patterns - Elements of Reusable Object-Oriented Software af Gamma, Helm, Johnson og Vlissides fra Addison Wesley. I resten af denne lektion vil vi kort og godt referere denne bog som pattern-bogen. Som det fremgår af pattern bogen er fremstillingen og behandlingen af design pattern primært rettet mod traditionelle, objekt-orienterede programmeringssprog, såsom C++. Dog diskuteres Smalltalk også undertiden i bogen. 1
2 Genbrug i objekt-orienteret programudvikling. Niveauer af genbrug i objekt-orienteret programudvikling. Genbrug af klasser. Et af de oprindelige idealer omkring OOP. Genbrug af design Idealet bag design patterns Genbrug af applikationer. Idealet bag frameworks. Kurt Nørmark, Aalborg Universitet 11/27/96 s. 2 Reusability har igennem mange år været et stort og vigtigt emne i faget - ikke mindst i relation til praksis. Årsagen er naturligvis, at der er mange penge at spare, hvis man kan genbruge nogle af (eller dele af) de programmer, som bliver skrevet til forskellige formål. Der er udviklet adskillige teorier, og skrevet en del bøger om emnet. Objekt-orienteret programmering er specielt håbefuldt hvad angår genbrug. Årsagen er, at med objekt-orienteret programmering forfølger vi typisk en bottom-up strategi, hvor et antal generelle moduler udvikles inden de konkrete applikationsbehov tilgodeses. Det har dog vist sig svært at opnå massivt genbrug. Derfor arbejder nogle med genbrug på et mere overordnet niveau, f.eks. design niveau. Design patterns er udtryk for genbrug af abstrakte designs. Frameworks er et andet begreb, som er relevant i denne sammenhæng. Et framework er mere grovkornet end et design pattern. Et framework er, i modsætning til et design pattern, et generelt program, med åbninger der tillader specialisering af programmet til bestemte (relaterede) anvendelser. 2
3 Inspiration fra patterns i arkitektur. Inspirationen til design patterns er hentet fra Christopher Alexander s arbejde med med pattern languages inden for arkitektur. Alexander beskriver 253 patterns for design af byer, bygninger, rum, møbler mv. Patterns på forskellige niveauer. Standard beskrivelse af patterns: Navn Grafisk illustration context (patterns på højere niveau) problemformulering konsekvenser (med reference til patterns på lavere niveauer). Etablerer alt i alt ny omhyggeligt valgt terminologi pattern language udtryksformer Arbejdet bygger på idealistikse holdninger til hvad udgør god arkitektur. Living structures Kurt Nørmark, Aalborg Universitet 11/27/96 s. 3 Alexander s arbejde er beskrevet i bogen Alexander et al, A Pattern Language, Oxford University Press, På WWW har jeg en link til et essay, som bl.a. giver en god fornemmelse for naturen af Alexander s arbejde. 3
4 Design patterns. Beskrivelser af kommunikerende objekter - og klasser som er tilpasset løsning af generelle design problemer i en bestemt kontekst. Design patterns indfanger den objekt-orienterede struktur af et design snarere end den algoritmisk idé i et design. Essentielle elementer af design patterns: Pattern navnet: Udvider fagsproget og gør det muligt på en kvalificeret måde at tale om væsentlige elementer i et design. Problemet: Beskriver repræsentative problemer, hvor et design pattern kan anvendes. Løsningen: Skabelon der giver en abstrakt beskrivelse af en løsning på problemet, i termer af generelle arrangemener af klasser og objekter. Konsekvenser: Bekriver pragmatiske trade-offs omkring anvendelse af et design pattern. Kurt Nørmark, Aalborg Universitet 11/27/96 s. 4 4
5 Beskrivelse af design patterns. Det er et væsentlig karakteristika ved design patterns at disse dokumenteres ud fra en standard disposition. Også på dette område er inspirationen hentet direkte fra Alexander s arbejde inden for arkitektur. Pattern navn og klassifikation. Hensigt. Andre navne for pattern et. Motivation. Anvendelighed. Struktur (klasse- og objektdiagrammer). Deltagere. Samarbejde. Konsekvenser. Implementation Eksempelprogrammer. Kendte anvendelser. Relaterede patterns. Kurt Nørmark, Aalborg Universitet 11/27/96 s. 5 Pattern bogen indeholder et katalog med 23 pattern. Hvert af disse er dokumenteret i forhold til overskrifterne listet ovenfor. Dette bidrager til en form for standard dokumentation for design patterns. Der er en betydelig redundans imellem nogle af afsnittene i dokumentationen af design patterns. Dette betyder dog i praksis, at ideen bag et bestemt pattern træder tydeligere frem for læseren - netop idet læseren får mere en én chance for at forstå det essentielle omkring et mønster. 5
6 Oversigt over design patterns. I pattern bogen inddeles design patterns i tre kategorier: Creational patterns, structural patterns og behavioral patterns. Creational patterns Abstract factory Builder Factory Method Prototype Singleton Structural patterns Adapter Bridge Composite Decorator Facade Flyweight Proxy Behavioral patterns Chain of responsibility Command Interpreter Iterator Mediator Memento Observer State Strategy Template method Visitor Kurt Nørmark, Aalborg Universitet 11/27/96 s. 6 De fedt kursiverede design patterns i listen ovenfor vil blive nærmere behandlet i denne lektion. I næste lektion planlægger vi at se nærmere på bl.a. de kursiverede design patterns. 6
7 Model-view-controller. Model-view-controller er en klassisk objekt-orienteret strukturering af en brugergrænseflade i et Smalltalk program. Input Controller View Model I relation til moderne design patterns er model-view-controller opdelt i et antal mindre omfattende mønstre: Observer: Understøtter multiply views på en model. Composite: Understøtter views med subviews. Strategy Kurt Nørmark, Aalborg Universitet 11/27/96 s. 7 Mange brugergrænseflader i Smalltalk er implementeret ved brug af model-viewcontroller idéen. Man kan sagtens sige, at model-view-controller er et design pattern i sin helhed. Blot har forfatterene af pattern-bogen valgt at slå ned på patterns, der er på et lidt lavere niveau, således at forstå at to (måske tre) patterns fra bogen indgår i model-view-controller. 7
8 Observer (1). En én-mange sammenhæng mellem et objekt og dets observatører. Når objektet skifter tilstand bliver observatørerne adviseret og opdateret automatisk. Løs og minimal kobling mellem subject objektet og dets observatører. Subject Attach(observer) Detach(observer) Notify observers for all o in observers do o.update Observer Update ConcreteSubject GetState SetState return SubjectState subject Concrete Observer Update ObserverState observerstate := subject.getstate SubjectState Kurt Nørmark, Aalborg Universitet 11/27/96 s. 8 Med denne og de følgende slides går vi over til at studere konkrete bud på design patterns. Materialet på slides er taget forholdsvis direkte fra pattern bogen. 8
9 Observer (2). En konkret observatør ændres, hvorved tilstanden i modellen (subject objektet) ændres. Subject objektet sender sig selv Notify beskeden, som meddeler alle observatører, at modellen er opdateret. Hver observatør henter den fornødne tilstand(sændring) i subjekt objekt med henblik på at opdatere sig selv. aconcretesubject aconcretobserver anotherconcreteobserver Notify SetState Update GetState Update GetState Kurt Nørmark, Aalborg Universitet 11/27/96 s. 9 9
10 Composite (1). Sammensætning af objekter i hierarkier af helheder og dele. Manipulation af helheder afstedkommer tilsvarende manipulation af dele. Statisk strukturdiagram af typisk eksempel: Graphic Add(Graphic) Remove(Graphic) GetChild(Graphic) Line Rectangle Text Picture Add(Graphic) Remove(Graphic) GetChild(Graphic) graphics forall g in graphics g. Kurt Nørmark, Aalborg Universitet 11/27/96 s
11 Composite (2). Objektdiagram af typisk eksempel: apicture apicture aline arectangle atext aline arectangle Når et Picture-objekt tegnes bliver alle del-picture objekter tegnet. Klienten af Pictures opnår et homogent syn på sammensatte og atomare pictures. Klienten skal ikke bekymre sig om andet en helheds objektets tegning. Det er et problem at understøtte Add, Delete og GetChild på atomare objekter. Kurt Nørmark, Aalborg Universitet 11/27/96 s
12 Composite (3) Generaliseret strukturdiagram: Client Component Operation Add(Graphic) Remove(Graphic) GetChild(Graphic) Leaf Operation Composite Operation Add(Graphic) Remove(Graphic) GetChild(Graphic) children forall g in graphics g.operation Kurt Nørmark, Aalborg Universitet 11/27/96 s
13 Decorator (1). Tilføjer egenskaber til et objekt på en dynamisk basis i modsætning til statisk udvidelse af en klasse via nedarvning VisualComponent TextView Decorator component component. ScrollDecorator ScrollTo scrollposition BorderDecorator Border borderwidth Decorator::; Border Kurt Nørmark, Aalborg Universitet 11/27/96 s
14 Decorator (2). Klient aborderdecorator ascrolldecorator Fra et klient-synspunkt er alle tre objekter VisualComponents. atextview Når der opereres på aborderdecorator tegnes kanten, hvorefter ascrolldecorator tilsendes samme besked. Når der opereres på ascrolldecorator tegnes scroll bars, hvorefter atextview sendes samme besked. Når der opereres på atextview tegnes det tekstuelle syn på objekter (det egentlige arbejde). Et objekt kan erstattes af en af sine decorators. Decorators kan tilføjes eller fjernes på programmets udførelsestidspunkt. Kurt Nørmark, Aalborg Universitet 11/27/96 s
15 Decorator (3). TextView En statisk løsnig med multipel nedarvning. En dårlig og kompliceret løsning TextViewWithScrollbar TextViewWithBorder TextView:: Scrollbar Scrollbar ScrollTo scrollposition Border borderwidth TextViewWithScrollbarAndBorder Scrollbar ScrollTo scrollposition TextView:: Border TextView:: TextViewWithBorder::Border TextViewWithScrollbar::Scrollbar Kurt Nørmark, Aalborg Universitet 11/27/96 s
16 Abstract Factory (1). Muliggør skabelse af familier af relaterede og afhængige objekter uden angivelse af disses konkrete klasser. VidgetFactory Client CreateScrollbar CreateWindow Window MacWidgetFactory Window95WidgetFactory MacWindow Windows95Window CreateScrollBar CrateWindow CreateScrollBar CrateWindow Scrollbar creates MacScrolbar Windows95Scrollbar creates Kurt Nørmark, Aalborg Universitet 11/27/96 s
17 Abstract Factory (2). Mønstret er velegnet til skabelse af familier af produkter (objekter), eksempelvis widgets på en bestemt platform. Skabelse af objekter varetages af et fabrikationsobjekt, som er bundet til en bestemt produktfamilie. Alle fabrikationsobjekter har samme grænseflade. Det er muligt dynamisk set at udskifte ét fabrikationsobjekt med et andet. En klient kender den abstrakte fabrikationsgrænseflade samt de abstrakte grænseflader af de respektive produkter. Kurt Nørmark, Aalborg Universitet 11/27/96 s
18 Abstract Factory (3). AbstractFactory Client CreateProductA CreateProductB AbstractProductA ConcreteFactory2 ConcreteFactory1 ProductA2 ProductA1 CreateProductA CreateProductB CreateProductA CreateProductB AbstractProductB creates ProductB2 ProductB1 creates Kurt Nørmark, Aalborg Universitet 11/27/96 s
19 Design patterns i forhold til andre sprog og paradigmer. I relation til sprog med dynamisk nedarvning (Self): Decorator kan laves ved blot at justere én parent reference. I relation til sprog, hvor klassen af objekter kan ændres dynamisk: Decorator kan laves ved at ændre på klassen af et objekt. I relation til sprog hvor klasser er objekter (Smalltalk og CLOS): I Abstract Factory kan hele factory hierarkiet erstattes med ét fælles objekt, som understøtter en make funktion: make(familie, produkt) make kan slå klassen op i en tabel og instantierer denne. I relation til sprog, som ikke har statisk typing:... I relation til sprog, som hvor funktioner er af første klasse:... Kurt Nørmark, Aalborg Universitet 11/27/96 s
20 Understøttelse af design-pattern i programmeringssprog og programmeringsomgivelser. Understøttelse i programmeringssprog: Kan design patterns indbygges som sproglige konstruktioner i programmeringssprog? Gæt: Umådelig tungt og omstændeligt. Næppe umagen værd. Understøttelse i programmeringsomgivelser: Er det muligt at bevidstgøre programmeringsværktøjet om tilstedeværelsen af design patterns i et program? Markere klasser, som indgår i et design pattern. Særligt attraktivt i sprog, hvor klasser repræsenteres som objekter. Understøtte at en klasse simultant kan indgå i flere design patterns. Eksempelvis: Browse design patterns i et program. Et godt projekt! Kurt Nørmark, Aalborg Universitet 11/27/96 s
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 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 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 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 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 mereArkitektur for begyndere
Denne guide er oprindeligt udgivet på Eksperten.dk Arkitektur for begyndere Denne artikel beskriver forskellige basale n-tier arkitekturer. Som man bør kende og have valgt inden man går igang med at udvikle
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 mereSingleton pattern i C#
Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i C# Denne artikel beskriver Singleton pattern og implementation i C#. Den forudsætter kendskab til C# men ikke til Singleton. Der er
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 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 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 mereKursusgang 11. Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing
Kursusgang 11 Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing Design af brugerflader 11.1 Samme sted Forskellige steder Sidste kursusgang Samtidigt
Læs mereUndervisningsbeskrivelse
Undervisningsbeskrivelse Stamoplysninger til brug ved prøver til gymnasiale uddannelser Termin Juni 2018 Institution Det Blå Gymnasium, Tønder Uddannelse Fag og niveau Lærer(e) Hold EUX Informations Teknologi
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 mereOpdatering i tabellen
Opdatering i tabellen Sæson 2 - Lektion 10 Sidste uge Sidste uge gennemgik jeg hvordan jeg kunne løse opgaven om at tiden i vores model skulle initieres til 0:00, og hvordan i kan huske at eksperimentere
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 mereMultiparadigme Programmering
Multi Programmering Repetition: De grundliggende r Systematisk karateristik. Paradigmesupplering. Symmetrisk multi programmering Leda eksempler på logikprogrammering kombineret med imperativ og funktionsorienteret
Læs mereDesignmønstre Baggrund og eksempler
Designmønstre Baggrund og eksempler Michael E. Caspersen Datalogisk Institut Aarhus Universitet Emner Introduktion til mønstre Observer en starter Om mønstre Abstraktioner og sprogmekanismer GoF Pattern
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 mereBegreber om Godt Software
Begreber om Godt Software Maintainability (vedligeholdelse): Softwarens evne til at blive ændret (funktionalitet, rettet, forbedrelser, miljø, krav). - Analyserbart: Evnen til at blive fejldiagnosticeret,
Læs mereDatabase for udviklere. Jan Lund Madsen PBS10107
Database for udviklere Jan Lund Madsen PBS10107 Indhold LINQ... 3 LINQ to SQL og Arkitektur... 3 O/R designere... 5 LINQ Den store introduktion med.net 3.5 er uden tvivl LINQ(udtales link): Language-INtegrated
Læs mereCasper Fabricius http://casperfabricius.com. ActiveRecord. O/RM i Ruby on Rails
Casper Fabricius http://casperfabricius.com ActiveRecord O/RM i Ruby on Rails Casper Fabricius Freelance webudvikler - casperfabricius.com 9 års erfaring med webudvikling 6 år med ASP/ASP.NET/C# 3 år med
Læs mereObject-Relational Mapping
Databaser for udviklere () Datamatiker TietgenSkolen Underviser: Allan Helboe 06-06-2010 Problemformulering Denne opgave er et forsøg på at beskrive problemerne der opstår ved anvendelsen af en relationel
Læs mereCCS Formål Produktblad December 2015
CCS Formål Produktblad December 2015 Kolofon 2015-12-14
Læs mere2. Systemarkitektur... 2
Indholdsfortegnelse 2. Systemarkitektur... 2 2.1 Præsentationsserverarkitektur... 3 2.2 Applikationsserverarkitektur... 7 Version 7.0 Side 1 af 7 5. Systemarkitektur Arkitekturen for Nyt BBR bygger på
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 mereIntroduction til.net remoting i C#
Denne guide er oprindeligt udgivet på Eksperten.dk Introduction til.net remoting i C# Denne artikel beskriver teorien bag.net remoting og viser nogle simple kode eksempler i C#. Den forudsætter kendskab
Læs mereProcedurer for styring af softwarearkitektur og koordinering af udvikling
LEVERANCE 2.3 Procedurer for styring af softwarearkitektur og koordinering af udvikling Procedurerne vil omfatte: Planlægning af udfasning af gamle versioner af OpenTele Planlægning af modning af kode
Læs mere3 Algebraisk Specifikation af Abstrakte Datatyper.
3 Algebraisk Specifikation af Abstrakte Datatyper. Specifikation kontra program. Bestanddele af en algebraisk specifikation. Klassificering af funktioner i en ADT. Systematisk definition af ligninger.
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 mereIntroduction til.net remoting i VB.NET
Denne guide er oprindeligt udgivet på Eksperten.dk Introduction til.net remoting i VB.NET Denne artikel beskriver teorien bag.net remoting og viser nogle simple kode eksempler i VB.NET. Den forudsætter
Læs mereAftenskole i programmering sæson Registrering af tid. Sæson 2 - Lektion 5
Registrering af tid Sæson 2 - Lektion 5 Før jul Vi har designet og bygget en model til håndtering af en timeregistrering Vi har kigget på hvordan vi håndterer fejl Vi har kopieret koden over i Bents x-code
Læs mereIT-arkitektur. IT-arkitektur Arkitektur på forskellige niveauer. Efter denne lektion skal du:
IT-arkitektur IT-arkitektur Arkitektur på forskellige niveauer Slide no.: 1 Efter denne lektion skal du: Kunne gøre rede for de centrale elementer der kan indgå i en IT-arkitektur Kunne gøre rede for IT-arkitektur
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 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 mereMartin Geisler. Uge 49, 2001
Min dintprog-browser Martin Geisler Uge 49, 2001 Resumé Dette dokument beskriver tankerne bag min dintprog-browser, en browser skrevet i Java der skal kunne fortolke en mindre delmængde af HTML 4, kaldet
Læs mereKomme-i-gang vejledning til Septimana. For skemalægger og systemadministratorer
Komme-i-gang vejledning til Septimana For skemalægger og systemadministratorer Denne Komme i gang er rettet mod skemalæggere og systemadministration. Hvis du er lærer eller studerende, kan du finde en
Læs mereDM531 - Softwarearkitektur Projekt - TaxaTracer, Statisk Kort. Martin Dissing-Hansen 251088 Alexander Poopeiko 090288 Jens Riise Danielsen 100267
DM531 - Softwarearkitektur Projekt - TaxaTracer, Statisk Kort Martin Dissing-Hansen 251088 Alexander Poopeiko 090288 Jens Riise Danielsen 100267 December 17, 2009 3.1 Valg at brugsmønster til udvidelse
Læs mereCSA 1019 Imperative and OO Programming
CSA 1019 Imperative and OO Programming Design Patterns Mr. Charlie Abela Dept. of of Artificial Intelligence Objectives Getting familiar with Defining design patterns Catalog Perspective Object Oriented
Læs mereBringe taksonomier i spil
Bringe taksonomier i spil Frans la Cour Hvem er jeg? Frans la Cour 3 år hos ensight a/s Systemdesign Projektledelse og implementering Undervisning Med udgangspunkt i Veritys værktøjer Vise nogle af de
Læs mereComponent based software enginering Diku 2005 Kritikopgave
Component based software enginering Diku 2005 Kritikopgave Nicolas Møller Henschel 17. april 2005 1 Indhold 1 Indledning 3 2 Indhold 3 2.1 Introduktionen.......................... 3 2.1.1 Mangler..........................
Læs mereEA3 eller EA Cube rammeværktøjet fremstilles visuelt som en 3-dimensionel terning:
Introduktion til EA3 Mit navn er Marc de Oliveira. Jeg er systemanalytiker og datalog fra Københavns Universitet og denne artikel hører til min artikelserie, Forsimpling (som også er et podcast), hvor
Læs mereForelæsning Uge 15 Mandag
Forelæsning Uge 15 Mandag Design af applikationer Design mønstre Mundtlig eksamen Kursusevaluering Fraktaler og Mandelbrotmængden smukke computergenererede billeder Design af applikationer I dette kursus
Læs mereVersion Dato Beskrivelse 1.0.0 26/11/2012 Initial version 1.2.0 05/03/2013 Tilføjet eksempel med Template Agent, generelt udvidet dokumentet.
MOX og APOS2 Forord Dette dokument er en del af APOS version 2 manualerne. APOS version 2 (APOS2 herefter) er et organisation, klassifikation og personale system baseret på Sag & Dokument standarderne.
Læs mereMetaklasser i Smalltalk.
8 Metaklasser i Smalltalk. Motivation Metodeopslag Simple metaklasser Mere udviklede metaklasser Klasse- og metaklassehierarkiet Instantiering og initialisering Skabelse af klasser og metoder Oversigt
Læs mereSecureAware Opfølgning Manual
SecureAware Opfølgning Manual Manualen beskriver brugen af SecureAware version 3 Dokument opdateret: juni 2009 Om dette dokument Dette dokument er en vejledning i brug af opfølgnings-modulet i SecureAware.
Læs mereOM AT SKRIVE PROGRAM. OM AT SKRIVE PROGRAM - Studio Transformation & Architectural herritage - 6. oktober 2015 - Maj Bjerre Dalsgaard
Programarbejdet er et analytisk udfoldet undersøgelsesarbejde, der har til formål at udvikle et kvalificeret grundlag for projektarbejdet Fra studieordningen Projektforløb Arbejdsproces Arbejdsmetode PROCES
Læs mereKursuskatalog 2018 TwinCAT 2 TwinCAT 3
Kursuskatalog 2018 TwinCAT 2 TwinCAT 3 Kursusoversigt 2018 Modul 30 TC3 Basic Kursus K183001 K183002 K183003 K143004 Dato 20. 21.02.18 01. 02.05.18 21. 22.08.18 06. 07.11.18 Modul 31 TC3 EtherCAT Diagnose
Læs mereUndervisningsbeskrivelse
Undervisningsbeskrivelse Termin Juni 2019 Institution Uddannelse Fag og niveau Lærer Hold Erhvervsgymnasiet Grindsted HHx Informatik C Jan Søndergaard (JS) (til jul), grundforløbshold HHxgf18a John Hansen
Læs mereUndervisningsbeskrivelse
Undervisningsbeskrivelse Stamoplysninger til brug ved prøver til gymnasiale uddannelser Termin August 2009 - juni 2010 Institution HTX Sukkertoppen/Københavns Tekniske Skole Uddannelse Fag og niveau Lærer(e)
Læs mereSpecialeforsvar: Fundamentet for et fleksibelt container bibliotek
Specialeforsvar: Fundamentet for et fleksibelt container bibliotek Foundations of an adaptable container library Bo Simonsen Datalogisk Institut, Københavns Universitet Denne præsentation, afhandlingen,
Læs mereMålet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt.
Merging og hashing Mål Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt. Dette emne er et uddrag af kurset DM507 Algoritmer og datastrukturer (2. semester). Mål
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 mereDOKUMENTBROKER Koncept
DOKUMENTBROKER Koncept Copyright 2012 INDHOLDSFORTEGNELSE 1 Hvad er DokumentBrokeren?...1 1.1 Formål...1 1.2 Fordele...1 1.3 Baggrund...2 2 Komponenter...3 2.1 Dataflet...4 2.2 Platform og teknologi...4
Læs mere12 Metaobjekt protokoller i CLOS.
12 Metaobjekt protokoller i CLOS. Begreber og problemer. Sprog designrum. Niveauer i CLOS. Programobserverende protokoller. Programskabende protokoller. Sprogudvidende protokoller. Eksempler. Kurt Nørmark,
Læs mereDagens program. Domæner. change log- screen shots hver gang I har arbejdet med themet. Arkitekturen bag en wp blog. Hvad er widgets.
Dagens program Har alle fået? Har nogen betalt for meget? Hav jeres koder klar Domæner change log- screen shots hver gang I har arbejdet med themet. Arkitekturen bag en wp blog Hvad er widgets Hvad er
Læs mereIT-Basecamp 2013. Real World Java EE Patterns Adam Bien. Real World Java EE Patterns, Adam Bien Copyright Lund&Bendsen A/S
IT-Basecamp 2013 Real World Java EE Patterns Adam Bien 1 Indhold Lidt om mig Baggrund for valg af emnet Bogens opbygning Fra J2EE til JEE 5/6 Overflødiggjorte patterns Fremhæve et par patterns 2 Kenneth
Læs mereDer er forsøgt skrevet en lille notits hver gang der er lavet noget, dog kan der være nogle ting som ikke er blevet kommenteret.
Indhold 1 Logbog 2 1.1 Log den 01-02-10.................................. 2 1.2 Log den 02-02-10.................................. 2 1.3 Log den 08-02-10.................................. 2 1.4 Log den
Læs mereBIM Shark brugervejledning v1 Februar 2016
Indholdsfortegnelse 1 BIM Shark's mission... 2 2 Kom godt i gang... 2 2.1 Oprettelse af bruger... 2 2.2 Oprettelse af virksomhed... 3 2.3 Inviter medlemmer/accepter invitation/sende invitationer... 3 2.3.1
Læs mereHøringssvar vedr. Serviceinterface for Person
Høringssvar vedr. Serviceinterface for Person 1. Indledning... 3 1.1 Arkitekturmæssige overvejelser... 3 2. Konkrete ændringsforslag... 5 2.1 Variable attributnavne... 5 2.2 Registeroplysninger fra akkreditiv...
Læs mereIndhold. Dansk forord... 7
Indhold Dansk forord........................................... 7 Kapitel 1: Hvad er positiv motivation?...................... 13 Kapitel 2: Forståelse af motivationens hvorfor og hvad : introduktion til
Læs mereUndervisningsbeskrivelse
Undervisningsbeskrivelse Stamoplysninger til brug ved prøver til gymnasiale uddannelser Termin Juni 2017 Institution Det Blå Gymnasium, Tønder Uddannelse Fag og niveau Lærer(e) Hold EUX Informations Teknologi
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 mereOpgaveteknisk vejledning Word 2013. Tornbjerg Gymnasium 10. december 2015
Opgaveteknisk vejledning Word 2013 Tornbjerg Gymnasium 10. december 2015 Gem!!! Så snart et dokument er oprettet skal det gemmes under et fornuftigt navn, gør det til en vane at gemme hele tiden mens man
Læs mereECdox som favorit. Indledning 1. Internet Explorer 2. Chrome 4. Safari 5. Favorit på mobile enheder 6 Android 6 IOS 7. ECdox på mobile enheder 7
ECdox som favorit Indledning 1 Internet Explorer 2 Chrome 4 Safari 5 Favorit på mobile enheder 6 Android 6 IOS 7 ECdox på mobile enheder 7 Indledning Dette dokument beskriver hvordan man opretter og arbejder
Læs mereSpecialiseringen Rapport Lavede Af Rasmus R. Sørensen Side 1 af 6
Side 1 af 6 Indholdsfortegnelse INDHOLDSFORTEGNELSE 1 INTRO 3 STARTEN AF SPECIALISERINGEN 3 ANKOMST TIL SKOTLAND 4 DATABASER 5 NETVÆRK 5 INTERAKTION 5 AFSLUTNING AF SPECIALISERINGEN 5 KONKLUSION 6 Side
Læs mereLonbox PCM2001 betjeningsenhed
PROLON CONTROL SYSTEMS Herstedvesterstræde 56 DK-2620 Albertslund Danmark Tlf.: (+45) 43620625 Fax: (+45) 43623125 Lonbox PCM2001 betjeningsenhed Bruger vejledning Oktober 2002 Denne manual beskriver installation
Læs mereVÆRKTØJER TIL ARKITEKTER GUIDE TIL HÅNDTERING AF DWG, TIPS OG TRICKS
VÆRKTØJER TIL ARKITEKTER GUIDE TIL HÅNDTERING AF DWG, TIPS OG TRICKS VÆRKTØJER TIL ARKITEKTER INDHOLD DE FORSKELLIGE FILTYPER SKIFT VINKEL/PERSPEKTIV I AUTOCAD OM DWG FILER Håndtering af downloadede DWG
Læs mereExceptions i Delphi. Try except
Exceptions i Delphi Exceptions er en teknik til at fange fejl under programafviklingen. Ikke programmeringsfejl, men fejl der opstår i forskellige situationer, f.eks. en fil der mangler en fil der er skrivebeskyttet,
Læs mereInput fra omgivelser. Målet med øvelsen er:
Input fra omgivelser Med denne øvelse får du mulighed for at blive klogere på dine styrker i form af input fra nære kolleger og andre personer i din omgangskreds, der på hver deres måde har unik og værdifuld
Læs mereLektion 6. Grundlæggende programmering i VR
Lektion 6 Grundlæggende programmering i VR Plan for i dag Simpelt FPS Triggerzones og animationer C# og objekt orienteret programmering Interfaces Generics Google Cardboard Video om VRs fremtid App til
Læs mereDesign af genbrugeligt objektorienteret software
Velkommen Design af genbrugeligt objektorienteret software Evaluering af software ved hjælp af statiske mål. 24 februar 2004 Specialeforsvar af: Søren Gaardbo Jensen Design af genbrugeligt objektorienteret
Læs mereRMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation).
Denne guide er oprindeligt udgivet på Eksperten.dk RMI introduktion Denne artikel beskriver Java RMI (Remtote Method Invocation). Den beskriver teorien bag RMI, viser et simpelt kode eksempel og forklarer
Læs mereW6 - Model- og Tegningskomposition
W6 - Model- og Tegningskomposition Introduktion Dette er en kort introduktion til de nye værktøjer for tegningskomposition i 3D. Du vil komme til at arbejde med Clip Volume, Dynamic Views, Saved Views,
Læs mereConcurrency-mønstre i indlejrede systemer Temadag om Embeddede systemer Teknologisk Institut, 6. december 2004
Concurrency-mønstre i indlejrede systemer Temadag om Embeddede systemer Teknologisk Institut, 6. december 2004 Finn Overgaard Hansen, Ingeniørhøjskolen i Århus E-mail: foh@iha.dk Version: 6-12-2004 Agenda
Læs mereObjektorienterede metoder
Objektorienterede metoder Denne gang: Designmønstre Skabende designmønstre: Fabrikeringsmetode/Fabrik, Singleton, Abstrakt fabrik (Toolkit), Prototype, Objektpulje Singleton eksempel: Forskellige slags
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 mereSoftware Construction 1. semester (SWC) januar 2014 Spørgsmål 1
Spørgsmål 1 Grundlæggende objektorienterede begreber o Klasse (class) o Objekt (object) o Metode (method), herunder return type og parametre o Instansvariable (instance variables) & egenskaber (properties),
Læs mereI det kommende afsnit vil vi løbende komme ind på de enkelte resultater og samtidig komme med bud på, hvordan disse kunne løses i fremtiden.
Opsummeret Feedback Introduktion I dette dokument vil vi opsummere de mest relevante resultater, der kom fra begge de afholdte workshops. De mest relevante resultater var dem, der igennem begge workshops
Læs mereVideregående programmering i Java
Videregående programmering i Java Dag 5 Model View Controller arkitekturen Model View Controller arkitekturen (MVC) Evt.: Rekursion Læsning: VP 19 Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html
Læs mereForelæsning Uge 15. Design af applikationer Designmønstre Computerspil 5 Exceptions og filhåndtering
Forelæsning Uge 15 Design af applikationer Designmønstre Computerspil 5 Exceptions og filhåndtering Mundtlig eksamen Kursusevaluering Fraktaler og Mandelbrotmængden Smukke computergenererede billeder Design
Læs mereEasyRun En løbers bedste ven
En løbers bedsteven Anders Arnfast 06525, Martin Søberg 0655, Ken Falk 06504 09 . INDHOLD. Indhold... 2 2. Introduktion... 3 Opsætning... 3 3. System arkitekturdesign... 4 4. Hardware Design... 5 Ethernet
Læs mereUndervisningsbeskrivelse
Undervisningsbeskrivelse Termin Juni 2019 Institution Uddannelse Fag og niveau Lærer Hold Erhvervsgymnasiet Grindsted HHx Informatik C John Hansen (JO) Jan Søndergaard (JS) grundforløbshold HHxgf18a 1.AV18
Læs mereAnalyse, problemområde, anvendelsesområde
OOA&D, kap. 1-5 Fiktiv case Det supermarked I dagligt handler i, skal have et integreret kasse-, lagerstyrings- og EDI-system. Systemet skal gøre det muligt at sænke varebeholdningen uden at der kommer
Læs mereOpgaveteknisk vejledning Word 2016 til Mac. Tornbjerg Gymnasium 10. december 2015
Opgaveteknisk vejledning Word 2016 til Mac Tornbjerg Gymnasium 10. december 2015 Gem!!! Så snart et dokument er oprettet skal det gemmes under et fornuftigt navn, gør det til en vane at gemme hele tiden
Læs mereANSØGNINGSVEJLEDNING TIL ANSØGNINGSPORTALEN, Deltidsuddannelser
ANSØGNINGSVEJLEDNING TIL ANSØGNINGSPORTALEN, Deltidsuddannelser Vær opmærksom på at vælge den danske version af login siden, så du benytter Ansøgningsportalen på dansk! Et godt tip Tryk på F11 for at få
Læs mereIndledning...3. OnTime Kalenderen...3. Daglig brug af OnTime...4. Oversigter / Views...5. Funktioner...7. Brug af ikoner...12
Indholdsfortegnelse: Indledning...3 OnTime Kalenderen...3 Daglig brug af OnTime...4 Oversigter / Views...5 Funktioner...7 Brug af ikoner...12 Grafisk visning af tid...13 Side 2 Indledning I større organisationer
Læs mereForskningsprojekt og akademisk formidling - 13. Formulering af forskningsspørgsmål
+ Forskningsprojekt og akademisk formidling - 13 Formulering af forskningsspørgsmål + Læringsmål Formulere det gode forskningsspørgsmål Forstå hvordan det hænger sammen med problemformulering og formålserklæring/motivation
Læs mereDatatekniker med programmering som speciale
Datatekniker med programmering som speciale H3 H1 varer ti uger bestående af syv uddannelsesspecifikke fag, samt 2 Valgfri Udannelsesspecifikke Fag og 1 Valgfrit Speciale Fag Indhold På H2 er der fokus
Læs mereInput/Output: Brugergrænseflader. dopsys
Input/Output: Brugergrænseflader dopsys Interaktion med bruger Visse devices lægger et fundamentalt sæt af spilleregler for vores brug af computere Generisk tilbagemelding, hvad laver den : Billedskærm
Læs mereIndholdsfortegnelse. Indledning...side 1. Problemformulering... side 1. Metode... side 1. Beskrivelse af institutionen..side 1
Indholdsfortegnelse Indledning.....side 1 Problemformulering... side 1 Metode... side 1 Beskrivelse af institutionen..side 1 Hvad er selvforvaltning.....side 2 Dannelse....side 2 Del konklusion..... side
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 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 mereDatatekniker 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 mereAftenskole i programmering sæson Watch Me. Sæson 2 - Lektion 19
Watch Me Sæson 2 - Lektion 19 I sidste uge I sidste uge tog vi en lille maraton, for at få lavet version 0.5 af ugesedel appen, og lektionen blev 2.5 timer lang. Undskyld! Vi brugte tiden på: At lave en
Læs mereForelæsning Uge 15 Mandag
Forelæsning Uge 15 Mandag Design af applikationer Design mønstre Mundtlig eksamen Kursusevaluering Fraktaler og Mandelbrotmængden smukke computergenererede billeder Design af applikationer I dette kursus
Læs mereStudieordning for bacheloruddannelsen i softwareudvikling ved IT-Universitetet i København
Studieordning for bacheloruddannelsen i softwareudvikling ved IT-Universitetet i København Studieordning a 1. september 2012 Revideret 16. juni 2014 Revideret 19. august 2015 Indhold Indledning Kapitel
Læs mereLitterær artikel I den litterære artikel skal du analysere og fortolke en (eller flere) skønlitterære tekster samt perspektivere den/dem.
Litterær artikel I den litterære artikel skal du analysere og fortolke en (eller flere) skønlitterære tekster samt perspektivere den/dem. Din litterære artikel skal bestå af tre dele: 1. Indledning 2.
Læs mereDANSK IT ARKITEKTUR CERTIFICERING
DANSK IT ARKITEKTUR CERTIFICERING Practitioneruddannelsen System Arkitekt Practitioner Kompetencebeskrivelse Version 2018.02.08 DANSK IT www.dit.dk/ark Copyright All Rights Reserved DANSK IT ARKITEKTUR
Læs mere