En kort innføring i Design Patterns

Slides:



Advertisements
Liknende presentasjoner
Objektorientert systemutvikling og UML  OOSU er den mest anvendte metoden på både store og små prosjekter  UML er det mest anvendte beskrivelsesspråk.
Advertisements

Del 3 : Patterns (Kap 16 – kap 20, Craig Larman) Arne Maus Inst. for informatikk, UiO.
Memento Object Behavioral Design Pattern. Lagre og hente tilstander • Et system inneholder ofte mekanismer som trenger gjenbruk av tilstander • Memento.
Sekvensdiagram En sekvens viser hvordan objekter samarbeider om en oppgave Diagrammet viser hvem som har kontrollen til enhver tid Det spesifiserer nøyaktig.
Utforming for gjenbruk In 140 Sommerville kap 14.
Realisering av Software Patterns Software Design Patterns Realisering med kode Refaktorering Gjenkjenning av mønstre.
Mediator i prosjektet easyhtml Mediator. Widgets og signaler  Systemet inneholder mange signalgivere  Mange til mange er erstattet med en til mange.
Objektorientert systemutvikling og UML
IMT OOSU 28.sept Dagens tema : forts. DESIGN PATTERNS ObjektOrientert Design = Bevissthet i tildeling/fordeling av ansvar til softwareklasser for.
Beslektede algoritmer. Isolere klient fra algoritme  Klienter trenger av og til helt forskjellige måter å gjøre det samme på  Men klienten selv kan.
OOSU 21.sept 2011 PATTERNS (mønstre)  Hva er et Pattern – opprinnelsen  Mal for en Patternbeskrivelse  Hva er et Pattern Language ?  Ulike typer Pattern.
Chain of Responsibility GoF mønster Operasjonelt (behavioral)
UML & object models av gruppe 8
Mønstre og tekniske applikasjoner
Flere UML diagrammer UML Distilled kap. 7,8, 9 Kirsten Ribu
Java Server Faces (JSF) en introduksjon Frode Eika Sandnes.
Gruppe 9 Design evaluering og validering.
Objektorientert utforming In 140 Forelesning Nr 13 Sommerville kap 12 – del 2.
OOSU PATTERNS (mønstre) Hva er et Pattern – opprinnelsen Mal for en Patternbeskrivelse Typer Pattern vi anvender innen systemutvikling Noen eksempler.
4/4/2017 IMT2243: 17.februar 2011 Domenemodellering / Konseptuelle Klassediagram Monopol- eksempel SSD : System Sequence Diagram Kort repetisjon av teknikken.
Patterns (mønstre) Patterns er erfaringer Patterns er best-practices Patterns er how-to Patterns er velkjent design Larman: ” ’new Pattern’ is an Oxymoron”
Læring og tenkning Systemutvikling er læring Gjensidig respekt og samarbeid Følge en konkret oppskrift Velge blant flere oppskrifter Nå målet uten oppskrift,
Sekvensdiagram En sekvens viser hvordan objekter samarbeider om en oppgave Diagrammet spesifiserer hvem som har kontrollen til enhver tid Det vises nokså.
Prosjektet transparente lag Composite og tegnende objekter Decorator og gui-kontrollere Factory Method Iterator.
GRASP General Responsibility Assignment SP GRASP er et hjelpemiddel for å lære om OD GRASP er retningslinjer for å fordele og tildele ansvar mellom klasser.
GoF GoF er fire systemutviklere, Gang of Four GoF fikk utgitt boken Design Patterns høsten 1994 Boken Design Patterns er en klassiker Design Patterns beskriver.
21.Januar 2003 Design Patterns 1.Kort repetisjon av viktige patterns 2.Oppgave 3.Felles gjennomgang Bendik Bygstad Høgskolen i Vestfold.
Klassediagrammer Klassen er en grunnleggende enhet i det objektorientert systemet Alle kan finne klasser i et domene Det å finne klasser er en intuitiv.
Hovedprinsipper i Rational Unified Process
Bendik Bygstad Høgskolen i Vestfold RUP-prosjekt Sammenhengen med UML 1.Hovedstruktur i RUP-prosjekter 2.Faser og iterasjoner 3.Sammenhengen med.
Domeneklasser En applikasjon kan ha domenesvake og domenesterke klasser.
Mediator Mediator i prosjektet easyhtml. Widgets og signaler Systemet inneholder mange signalgivere Mange til mange er erstattet med en til mange Hvert.
Patterns (mønstre) Patterns er erfaringer Patterns er best-practices Patterns er how-to Patterns er velkjent design Larman: ” ’new Pattern’ is an Oxymoron”
Bygging av gui for binærkode Prosjektet simpletidy.
Oppsummering av hovedområdene i kurset LO 135A Kirsten Ribu
Kirsten Ribu HiO Ansvarsdrevet design og bruk av design-mønstre Kirsten Ribu.
Innledning SIF80AP Future and HCI av Brad Myers m.fl.
Combining Compound Conceptual User Interface Components with Modelling Patterns - a Promising Direction for Model-based Cross-platform User Interface Development.
UML og grensesnitt UML er standard for modellering innen objekt-orientert programvare kan UML også brukes til modellering av grensesnitt? fordel: bedre.
Gruppe 3 – Presentasjon 2 Henning Kristiansen, Mats Lindh, André Hauge og Vegard Simensen.
Singleton & Adapter Pattern Gruppe 3. Singleton Pattern Sørger for at en klasse kun kan ha en instans Vanligvis implementert med globale variabler –Singleton.
Composite & Decorator Patterns Patterns Composite Spørsmål? Introduksjon Decorator Resymé Gruppe 4 Ivar Bonsaksen Remi Karlsen Jonas Lepsøy Stian Rostad.
Object Oriented Measurement
Prinsipper og Patterns
INF 295 forelesning 14 - kap 8 Disjunkt mengde ADT Hans Fr. Nordhaug (Ola Bø)
Organisering av IKT området
Intro til php - Uke3.2 - Ronny Mandal Introduksjon til PHP.
Information Expert GRASP Grunnleggende prinsipp i programdesign.
Innkapsling av request. Køing, logging, angre Command tilhører gruppen av ”behavioral patterns” Instanser av mønsteret leder til instanser av forespørsler.
Composite GoF Structural Pattern. Alle kjenner Composite Alle som har brukt lister organisert som trær i brukermiljøer, kjenner Composite Pattern.
Username anonym Password s1mpletransport Host hve3920.hive.no Path /home/transport.
Finne og gå til et chatterom Bruk søk i Lync til å finne rom som du har tilgang til. 1.I hovedvinduet i Lync klikker du kategorien Chatterom. 2.I søkeboksen.
Gruppe 5 består av: – Cecilie Vitting – – Marit S. Asklien -
PUG-NORWAY OKTOBER 2008 THOMAS SKJØRTEN, HILDE ANDREASSEN UML og OpenEdge OOABL.
BUCS Utfordringer og valg av fokus Tor Stålhane. Rammebetingelser Første spørreundersøkelse viser at det vi gjør må kunne: Brukes sammen med UML Passe.
Objektorientert utforming
Objektorientert utforming In 140 Sommerville kap. 12.
NIJOS-foredrag1 Veiledningstjeneste: ”Lett tilgjengelig faginformasjon for webtjenester.” En rapport med vurderinger og et eksempel på løsning, NIJOS og.
1 GeoPortal – Rammeverk Introduksjon. 2 Teknisk rammeverk - Interoperabilitet Interoperabilitet evne til å kommunisere, kjøre programmer, eller overføre.
INF-1400 Obligatorisk Oppgave 2
Forstudie Nå situasjonen: dagens situasjon med ulemper og fordeler
Objektorientert design
Objektorientert utforming In 140 Forelesning Nr 11 Sommerville kap 12 – del 1.
1 Ansvarsdrevet design og bruk av design-mønstre Utforming av klassediagrammer
IN 265 Våren 2003 : Forelesning : Design av arkitektur og komponent 1 IN250 – Om komponent design Mål for forelesningen: l Se på prinsipper.
RUP-prosjekt Sammenhengen med UML
Cerebrum og SMP Steinar Kleven NTNU.
Utskrift av presentasjonen:

En kort innføring i Design Patterns Kilde: Craig Larman: Applying UML and Patterns Bendik Bygstad 3.12.02

Patterns (mønstre) Stammer fra arkitekturteori Christopher Alexander (1977): A Pattern Language En standard løsning på et standard problem – men på en slik måte at hver enkelt anvendelse blir ulik. Bendik Bygstad 3.12.02

Patterns Det er kjente måter å løse tilbakevendende problem på. De beskrives gjerne som Problem-Løsningspar og har kjent under bestemte navn. De beskriver fundamentale prinsipper for objektdesign og tildeling av ansvar, uttrykt som mønstre. Bendik Bygstad 3.12.02

Patterns Patterns gjør det mulig å samle og beskrive gode og velprøvde måter å designe OO-systemer på. Gjør det mulig for eksperter å kommunisere effektivt om OO-designproblemer. Diskusjonen foregår på et mer abstrakt / overordnet plan. Bendik Bygstad 3.12.02

Patterns - syntaks Navn Kontekst Problem Løsning (kjerne) Forhold til andre patterns - alle kan lage/publisere patterns…. Bendik Bygstad 3.12.02

GRASP patterns General Responsibility Assignment Software Patterns High Cohesion (Høy Sammenheng) Low Coupling (Lav Kobling) Information Expert (Informasjonsekspert) Creator (Skaper) Controller Bendik Bygstad 3.12.02

To andre patterns Layers (Lagdeling) Fasade Bendik Bygstad 3.12.02

Kohesjon og kobling Grunnleggende prinsipper i OO utvikling for å håndtere kompleksitet: Høyest mulig grad av kohesjon Lavest mulig grad av kobling Bendik Bygstad 3.12.02

Informasjonsekspert og Creator Informasjonsekspert: Tildeling av ansvar Tildel ansvar til informasjonseksperten – klassen som har den nødvendige informasjonen for å oppfylle ansvaret Creator: Opprette instanser av klasser A oppretter B dersom A aggregerer, inneholder eller bruker B-objekter, eller hvis A inneholder informasjon som er nødvendig for å opprette B. Bendik Bygstad 3.12.02

Kontroller Mottar innkommende hendelser Formidler mellom GUI-lag og domenelag Viktig i arkitekturen: Muliggjør flere typer grensesnitt uten for mye ombygging Typer: Use Case controller og system-kontroller Bendik Bygstad 3.12.02

Fasade Inngang til pakke (av flere klasser) Samme rolle som kontroller, inne i pakken Innkapsler pakken Bendik Bygstad 3.12.02

Lagdeling Tre lag: Presentasjon – Domene – Lagring Seks lag (Layers-pattern’et): Presentasjon (GUI) Applikasjon (sesjoner, kontrollere) Domene (domeneklasser, fasader) Forretnings-infrastruktur (f.eks valuta-konvertering) Tekniske tjenester (persistens, sikkerhet) Fundament (Databaser, filer) Avhengigheter: Nedover i lagene (ikke omvendt) Bendik Bygstad 3.12.02

Lagdeling Presentasjon Applikasjon Domene Forr.infrastr. Tekniske Tjenester Fundament GUI 1 GUI 2 Kontroller Faktura Kunde Vare Valutakonv. Les/skriv DB 1 DB 2 Bendik Bygstad 3.12.02