OOSU 22.sept Pattern har sin opprinnelse innen arkitektur (byplanlegging / bygninger)

Like dokumenter
(MVC - Model, View, Control)

Hvordan komme i gang med ArchiMate? Det første modelleringsspråket som gjør TOGAF Praktisk

Design Patterns - mønstre

Unit Relational Algebra 1 1. Relational Algebra 1. Unit 3.3

EXAM TTM4128 SERVICE AND RESOURCE MANAGEMENT EKSAM I TTM4128 TJENESTE- OG RESSURSADMINISTRASJON

KROPPEN LEDER STRØM. Sett en finger på hvert av kontaktpunktene på modellen. Da får du et lydsignal.

Distributed object architecture

Trigonometric Substitution

Graphs similar to strongly regular graphs

Forelesning IMT Mars 2011

Design Patterns - mønstre. Kirsten Ribu

IT-ledelse 25.jan - Dagens

Den europeiske byggenæringen blir digital. hva skjer i Europa? Steen Sunesen Oslo,

EKSAMENSOPPGAVE I BI2034 Samfunnsøkologi EXAMINATION IN: BI Community ecology

Oppgave 1. ( xφ) φ x t, hvis t er substituerbar for x i φ.

Den som gjør godt, er av Gud (Multilingual Edition)

UNIVERSITETET I OSLO

Distributed object architecture

EN Skriving for kommunikasjon og tenkning

UNIVERSITETET I OSLO

Nærhetsetikk. Hva er nærhetsetikk? Hva er nærhetsetikk ikke? Hva slags nærhet snakker vi om? -Har nærhet etisk. Problemer med nærhetsetikk

Hvor mye praktisk kunnskap har du tilegnet deg på dette emnet? (1 = ingen, 5 = mye)

Slope-Intercept Formula

GYRO MED SYKKELHJUL. Forsøk å tippe og vri på hjulet. Hva kjenner du? Hvorfor oppfører hjulet seg slik, og hva er egentlig en gyro?

UNIVERSITETET I OSLO

Uke 5. Magnus Li INF /

FIRST LEGO League. Härnösand 2012

Emnedesign for læring: Et systemperspektiv

System integration testing. Forelesning Systems Testing UiB Høst 2011, Ina M. Espås,

Databases 1. Extended Relational Algebra

Administrasjon av postnummersystemet i Norge Post code administration in Norway. Frode Wold, Norway Post Nordic Address Forum, Iceland 5-6.

Fagevalueringsrapport FYS Diffraksjonsmetoder og elektronmikroskopi

buildingsmart Norge seminar Gardermoen 2. september 2010 IFD sett i sammenheng med BIM og varedata

Risikofokus - også på de områdene du er ekspert

5 E Lesson: Solving Monohybrid Punnett Squares with Coding

API: Application programming interface, eller programmeringsgrensesnitt

Hvordan føre reiseregninger i Unit4 Business World Forfatter:

Nasjonalt kvalifikasjonsrammeverk og læringsmål i forskerutdanningen

Software Requirements and Design (SRD) 1 Generelt om dokumenter

Økologisk og kulturell dannelse i økonomiutdanningen

Øystein Haugen, Professor, Computer Science MASTER THESES Professor Øystein Haugen, room D

Examination paper for TDT4252 and DT8802 Information Systems Modelling Advanced Course

Kurskategori 2: Læring og undervisning i et IKT-miljø. vår

INF5120 Eksamen Løsningsforslag Oppgave 1a,b COMET

M A M M estre A mbisiøs M atematikkundervisning. Novemberkonferansen 2015

Du må håndtere disse hendelsene ved å implementere funksjonene init(), changeh(), changev() og escape(), som beskrevet nedenfor.

Dybdelæring i læreplanfornyelsen

SVM and Complementary Slackness

Perpetuum (im)mobile

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

En praktisk innføring i team-basert læring

TMA4329 Intro til vitensk. beregn. V2017

// Translation // KLART SVAR «Free-Range Employees»

Mathematics 114Q Integration Practice Problems SOLUTIONS. = 1 8 (x2 +5x) 8 + C. [u = x 2 +5x] = 1 11 (3 x)11 + C. [u =3 x] = 2 (7x + 9)3/2

Systematisk abstraksjon som verktøy i ICE-prosesser. Harald Selvær Fagskolen Oslo Akershus

Smidige metoder i praksis Høgskolen i Oslo Kristin Meyer Kristiansen Objectnet AS

Standarder med relevans til skytjenester

INTERACTION WITH AI MODULE 2. Session 2 Asbjørn Følstad, SINTEF

Norsk (English below): Guide til anbefalt måte å printe gjennom plotter (Akropolis)

FYSMEK1110 Eksamensverksted 23. Mai :15-18:00 Oppgave 1 (maks. 45 minutt)

1 User guide for the uioletter package

Information search for the research protocol in IIC/IID

COLLECTION FAB KATALOG S PRODUKTBLAD FAB CIRCULAR S Enjoy! embaccolighting

Hva gjøres i design? 19. september 2002, Tore Berg Hansen, TISIP

Syntax/semantics - I INF 3110/ /29/2005 1

Dynamic Programming Longest Common Subsequence. Class 27

UNIVERSITY OF OSLO DEPARTMENT OF ECONOMICS

BIBSYS Brukermøte 2011 Live Rasmussen og Andreas Christensen. Alt på et brett? -om pensum på ipad og lesebrett

stjerneponcho for voksne star poncho for grown ups

Solutions #12 ( M. y 3 + cos(x) ) dx + ( sin(y) + z 2) dy + xdz = 3π 4. The surface M is parametrized by σ : [0, 1] [0, 2π] R 3 with.

Server-Side Eclipse. Martin Lippert akquinet agile GmbH

A Study of Industrial, Component-Based Development, Ericsson

Neural Network. Sensors Sorter

Windlass Control Panel

EKSAMENSOPPGAVE I BI2014 MOLEKYLÆRBIOLOGI

Grønne obligasjoner- Et verktøy for klimafinansiering og miljømessig integritet. Klimamarin 2017, 7. desember 2017 Alexander Berg CICERO klimafinans

Elektronisk innlevering/electronic solution for submission:

Mannen min heter Ingar. Han er også lege. Han er privatpraktiserende lege og har et kontor på Grünerløkka sammen med en kollega.

Eksamensoppgave i SANT2100 Etnografisk metode

Eksamensoppgave i SANT1002 Økonomi, politikk og økologi

Gir vi de resterende 2 oppgavene til én prosess vil alle sitte å vente på de to potensielt tidskrevende prosessene.

Examination paper for (BI 2015) (Molekylærbiologi, laboratoriekurs)

E-Learning Design. Speaker Duy Hai Nguyen, HUE Online Lecture

Smart High-Side Power Switch BTS730

Maple Basics. K. Cooper

Medisinsk statistikk, KLH3004 Dmf, NTNU Styrke- og utvalgsberegning

Server-Side Eclipse. Bernd Kolb Martin Lippert it-agile GmbH

Brukerkrav og use case diagrammer og -tekst 19. januar Agenda. Brukerkrav og use case. Diagrammer Tekst.

TUSEN TAKK! BUTIKKEN MIN! ...alt jeg ber om er.. Maren Finn dette og mer i. ... finn meg på nett! Grafiske lisenser.

Generalization of age-structured models in theory and practice

STILLAS - STANDARD FORSLAG FRA SEF TIL NY STILLAS - STANDARD

Tyrannosaurus Test Adapt or Die!

Molare forsterkningsbetingelser

TUSEN TAKK! BUTIKKEN MIN! ...alt jeg ber om er.. Maren Finn dette og mer i. ... finn meg på nett! Grafiske lisenser.

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET Geografisk institutt

Han Ola of Han Per: A Norwegian-American Comic Strip/En Norsk-amerikansk tegneserie (Skrifter. Serie B, LXIX)

Compello Fakturagodkjenning Versjon 10 Software as a service. Tilgang til ny modulen Regnskapsføring

TFY4170 Fysikk 2 Justin Wells

Transkript:

OOSU 22.sept 2010 PATTERNS (mønstre) Hva er et Pattern opprinnelsen Mal for en Patternbeskrivelse Hva er et Pattern Language? Ulike typer Pattern vi anvender innen systemutvikling Dagens Pensum : (kursorisk litteratur : kopier fra C.Alexander under fagstoff i Fronterrom) ArtSaml nr 7 : Brad Appleton : Patterns and Software : Essensial Concepts and Terminology Pattern har sin opprinnelse innen arkitektur (byplanlegging / bygninger) Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice. (Christopher Alexander e.a. 1977) Opererer med flere nivåer av patterns som samlet utgjør en helhet ( 253 i alt ) Region og by (Community of 7000, Ring roads, Nine per cent parking ) Nabolag og bygningsgrupper (Pedestrian street) Enkeltbygninger og rom (Main enterance, The flow through rooms, Cooking layout) IMT3102 Objektorientert systemutvikling 1

Hvordan ser en Patternbeskrivelse ut? Et Pattern er en beskrivelse. Det skal alltid være veldokumentert. Det har dannet seg en viss uniformitet, dog ingen standard for hvordan beskrivelsene bør være. Lista i artikkelen til Appleton viser sentrale elementer i oppbygningen av et pattern, og er mer detaljert enn den vi finner hos Larman : Name : Problem : Context : Forces : Solution : Skal inneholde betydningen. Viktig i kommunikasjon Forteller om hva vi vil oppnå med Patternet - hensikten I hvilken sammenheng er dette relevant å anvende Forklaring gpå kompleksiteten i problemets natur. Det gis en beskrivelse av sentrale krefter og rammer i omgivelsene. Beskrivelse på hvordan vi realiserer et design som løser problemet. Angir struktur, samarbeidsforhold og deltagere i løsningen. forts. Examples : Viser eksempler på sammenhenger, anvendelse og virkning av patternet i en eller flere situasjoner Resulting Context : Forteller om tilstanden, positive og negative etter anvendelse av Pattern et Rationale : Gir en forklaring på hvordan patternet i detalj virker Related Patterns : Samhandling med andre patterns innen samme språk, evt. andre navn det kan gå under etc. Known Uses : Kjent bruk av patternet. (Det er ikke et pattern før man har vist dets styrker gjennom konkret anvendelse) IMT3102 Objektorientert systemutvikling 2

Patterns i praksis Bruk av Pattern fungerer bare godt hvis du etterhvert på en rimelig enkel måte kan: tolke den sammenheng du står overfor identifisere et Pattern som tilbyr løsning på dette ut fra Pattern-beskrivelsen være i stand til å realisere løsningen i det miljøet du utvikler systemet (ved å finne ferdigdefinerte idioms eller ved å kode selv ut fra løsningsskissen) Hva er et Pattern Language? En samling av Patterns i en helhetlig struktur er et Pattern Language. Each pattern can exist in the world, only to the extent that is supported by other patterns: the larger patterns in which it is embedded, the pattern of the same size that surround it, and the smaller patterns which are embedded in it. (Alexander, 1977) Dette skal gi deg en helhet du har å velge i når du skal komme frem til en helhetlig oppbygning av en løsning. Språket skal utover beskrivelsen av det enkelte pattern, gi deg retningslinjer i anvendelsen, og en beskrivelse av sammenhengen mellom de enkelte Pattern. Du må likevel ha frihet i dine valg og muligheter for tilpasninger for at språket skal være godt. IMT3102 Objektorientert systemutvikling 3

Hvilke typer Patterns har vi innen systemutvikling? Patterns et eksempel på at fagfeltet systemutvikling har lært mye fra andre fagfelt, og ut fra dette laget sine fagspesifikke beskrivelser. Men det er tildels en hype rundt patterns. Listen under viser noen kategorier som er omtalt i litteraturen med navn på nøkkelpersoner. Benytt dem, men gjør det kritisk. Organizational Patterns (Jim Couplien) Process Patterns (Scott Ambler) Analysis Patterns (Martin Fowler) Architecture Patterns (Frank Buschmann) Design Patterns (Eric Gamma) HCI / GUI Patterns (Jenifer Tidwell) Idioms Software Anti-Patterns (Anrew Koenig) Kjennetegn ved et Pattern (Jim Couplien) It solves a problem. Patterns capture solutions, not just abstract principles or strategies. It is a proven concept. Patterns capture solutions with a track record. The solution isn t obvious. It describes a relationship. Patterns don t just describe modules, but describe deeper system structures and mechanisms. The best patterns explicitly appeal to aesthetics and utility. (http://hillside.net/patterns/definition.html) IMT3102 Objektorientert systemutvikling 4

Patterns i teorien I OOSU jobber vi ikke med å implementere Patterns, men dere skal : få en forståelse av ideene bak og nytten i Patterns kjenne oppbygningen i et Pattern kunne lese og sette dere inn i ulike Design Pattern bli innstilt på å søke i ekspertenes generelle løsningsskisser fremfor å finne opp hjulet på nytt når dere utvikler programvare Software Pattern A design pattern systematically names, motivates, and explains a general design that addresses a recurring design problem in object-oriented systems. It describes the problem, the solution, when to apply the solution, and its consequences. It also gives implementation hints and examples. The solution is a general arrangement of objects and classes that solve the problem. The solution is customized and implemented to solve the problem in a particular context (Gang of Four, 1995) IMT3102 Objektorientert systemutvikling 5

Design Patterns vi gjennomgår i OOSU : Larman : GRASP Patterns : Grunnleggende Objektorienterte ansvarsfordelingsprinsipper. Gang of Four : Creational : Structural : Behavioral : Singleton Adapter, Facade, Decorator Observer, Strategy IMT3102 Objektorientert systemutvikling 6