Designmönster - EMW. Kent Petersson epost1: kentp@cs.chalmers.se epost2: kent.petersson@emw.ericsson.se URL: http://www.cs.chalmers.



Relevanta dokument
Designmönster, introduktion. Vad är det? Varför skall man använda mönster?

Alla rättigheter till materialet reserverade Easec

Våga Visa kultur- och musikskolor

Seminarier i datavetenskap, datorteknik och informationsteknik

Coridendro ett verktyg för att grafiskt åskådliggöra incidensen av malignt melanom inom olika släkter

Delaktighet inom äldreomsorgen

Slutrapport för JMDB.COM. Johan Wibjer

På webbsidan Matriskonstruktion kan du följa hur en matris kan byggas upp. Det här exemplet utvecklar tankar från den visade matrisen.

Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg niklas.broberg@chalmers.

UTBILDNINGSPLAN. Högskoleingenjörsutbildning i datateknik, 180 högskolepoäng. Computer Engineering Programme, 180 ECTS Credits

Granskning av målstyrning och mätetal svar på revisionsskrivelse från Huddinge kommuns revisorer

Varför Genomförandeplan?

Objektorienterad programmering

Det första steget blir att titta i Svensk MeSH för att se om vi kan hitta några bra engelska termer att ha med oss på sökresan.

Enkät rörande boende för äldre i Krokoms Kommun

UMEÅ UNIVERSITET 26 april 2002 Instutionen för datavetenskap. Grafproblem. Laboration 4, Datastrukturer och Algoritmer VT02

Barnkraft/Aladdin Ett FHM-projekt i samverkan mellan Danderyds kommun och FoU Nordost

Usify. EasyReader. Affärsmodeller

TDDD80. Mobila och sociala applikationer Introduktion HTTP,SaaS. Anders Fröberg Institutionen för Datavetenskap (IDA)

Lättläst sammanfattning Åtgärder mot fusk och fel med assistansersättning

============================================================================

Tidigt uppföljningssystem Skövde

Kom igång med ArcGIS Online - Snabba steg för att börja arbeta

Ansökan om tillstånd att använda alternativt urval till Programmet för dataspelsutveckling - design

Sammanfattning på lättläst svenska

Objektorienterad Programkonstruktion. Föreläsning 6 23 nov 2015

Anvisningar för utformning av sammandrag som mognadsprov

LEGO NXT Robotprogrammering

Slitskyddade skovlar för slunghjul

Lednings- och styrdokument. SÄKERHET Styrdokument antaget av kommunfullmäktige den 20 juni 2011

Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl

Programmering och digital kompetens

Arkitektur Michael Åhs

Verksamhetsplan för Kvarngårdens förskola /2016

Peter Ottosson 31/ Introduktionskurs i datateknik II1310

Föreläsning 10. ADT:er och datastrukturer

använda teknikområdets begrepp och uttrycksformer.

Arkitektur. Den Röda Tråden

Aldrig mer krångliga system

Revisionsrapport. Arvika kommun. Uppföljning av tidigare granskning Arbete mot mobbning, grundskolan. Juni Lars Näsström

Nyhetsdokument Vitec Teknisk Förvaltning

Gemensamma riktlinjer fo r genomfo rande av Examensarbete Hing Elkraftteknik

IT för personligt arbete F6

Svenska Linuxföreningen. Fri programvara Mer än bara gratis 1(17) Copyright 2006 Marcus Rejås

Taltaggning. Rapport av Daniel Hasselrot , 13 oktober 2003

Föreläsning 6: Introduktion av listor

Programmering för språkteknologer II, HT2014. Rum

Trygghetsavtal. Scanlasers. för ökad driftsäkerhet. Vi finns där vi behövs: Huvudkontor Sverige. Scanlaser Östra. Scanlaser Mellan.

Enkät Plantskolan Hammarby IF FF vinter 2015/ Har din son deltagit som? 2. I vilken åldersgrupp har din son deltagit?

Förstudie. Nerikes Brandkår. Diarieföring av allmänna handlingar Ref Roger Wallin

SKEPPISUTBILDNING 2013

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 8 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Komma igång med Eventor

Samhälle, samverkan & övergång

Anmälningskod: GU Sök senast: 15 april

ELEVHJÄLP. Diskussion s. 2 Åsikter s. 3. Källkritik s. 11. Fördelar och nackdelar s. 4. Samarbete s. 10. Slutsatser s. 9. Konsekvenser s.

ABAX Föraridentifiering

Manual till Genomförandeplan

FÖRMEDLING AV CYKELHJÄLM PÅ BARNAVÅRDSCENTRAL

Sidan Dan Ulfskans

Metod- PM: Påverkan på Sveriges apotek efter privatiseringen

Vad tycker du om sfi?

PMSv3. Om konsten att hålla koll på ett vägnät

E-post, chat mm. E-post, chat mm. E-post, chat mm. E-post, chat mm. E-post, chat mm. E-post, chat mm

Bygga hus med LECA-stenar

Miljö och hållbar utveckling MHU

Innehåll. Användarstudier. Användarstudier enligt Microsoft. Varför? Aktivt lyssnande. Intervjuteknik. Intervju Observation Personor Scenarier Krav

Liten introduktion till akademiskt arbete

Grunderna i stegkodsprogrammering

Bokstäver. Myrstackens kvalitetsarbete. Hällevadsholms förskola

12 principer of agile practice (rörlig)

Instruktion för att slutföra registreringen

Slutrapport YUNSIT.se Portfolio/blogg

Utbildningsplan för Programmet för Medicinsk Informatik 160 poäng

Foto: Johan Eriksson

Butikschefsutbildning med inriktning mot textil och mode Retail Education with Specialization in Textile and Fashion 180 credits

Uppdrag att utvärdera intagningsreglerna för förskolan.

Modell för styrningen i Kungälvs kommun - Från demokrati till effekt och tillbaka

VARFÖR För att skapa en överblick över alla kanaler. Bra för att dra ut insikter om nuvarande kommunikation.

Koppla lampor på bil. (DRL) All hjälp uppskattas. Postad av Karl Heden - 10 okt :13

Smart Ring 12kV kompaktställverk

Business Model You Din personliga affärsplan framtagen på åtta timmar.

Möbel- och byggnadshantverk, 120 hp

Aditro HR Portalen - logga in och byta lösenord

Enkelt och effektivt kompetensverktyg

Utbildningsförvaltningen. Arbetsplan för Hallaryds förskola

OKT/2015 ALLT OM DÖRRAR. Nyhetsbrev Arkitekter

Kundtjänst: gemensamt mål

UTSTÄLLNINGAR NORDSTAN JUL. textilkonstnär katrin bawah

HexaFlip. Kravspecifikation

Färgklövern. Färgklövern är gjord 1998 i samarbete mellan Datateket i Linköping och Hargdata AB i Linköping.

Slutrapport för Pacman

Min väg till framtiden. Att arbeta med process i grupper

Björn Abelli Programmeringens grunder med exempel i C#

Introduktion till arv

Med den här boken får du: Författaren:

Fritextsökning på studera.nu

Lära tillsammans som grund för utveckling erfarenheter från förskolan. Sunne 3-4 februari 2010 Katina Thelin

Sammanställning Undersökning av kommunens funktionsbrevlådor 2013

Data visualization on Android

Transkript:

Designmönster - EMW Kent Petersson epost1: kentp@cs.chalmers.se epost2: kent.petersson@emw.ericsson.se URL: http://www.cs.chalmers.se/~kentp arbetar på Inst. för Datavetenskap, Cth & Gu, 50% och Software Laboratory (FT/K), EMW, 50%. 2001-12-04 1 Designmönster - EMW Innehåll: Översikt av arbetet med designmönster på EMW Presentation av examensarbete: Design Patterns Presentation av examensarbete: Beskrivning av oo-system med hjälp av designmönster Presentation av ytterligare arbete med att försöka beskriva mjukvaruarkitekturer m.h.a. mönster 2001-12-04 2 (Kent.Petersson@emw.ericsson.se) 1

Designmönster - EMW Designmönster, studiecirkel genomgång av GoF-boken, april-juni, 1999 (genomförd ytterligare 2ggr i FT/Ks regi) Examensarbete om Designmönster: Marcus Engene & Carl Åsman, Göteborgs Univ: Design Patterns våren 1999 grundläggande genomgång av olika tillämpningar på mönster 2001-12-04 3 Designmönster - EMW Studiecirkel om arkitekturmönster: genomgång av POSA-boken (PatternsOfSoftwareArchitecture) mars-maj, 2000 Examensarbete om arkitekturmönster: Stefan Wendt, HISkövde: Beskrivning av objektorienterade system med hjälp av mönster. våren 1999 Försök att beskriva arkitekturen i ett projekt med hjälp av arkitekturmönster: hösten 2000-2001 2001-12-04 4 (Kent.Petersson@emw.ericsson.se) 2

Examensarbete 1: Software Patterns. Carl Åsman och Marcus Engene, Institutionen för datavetenskap, Göteborgs Universitet vårterminen 1999 http://www.cs.chalmers.se/~kentp 2001-12-04 5 Examensarbete 1: Design Patterns Examensarbetet är en bred och grundlig genomgång av begreppet Software Patterns : vad som är ett mönster hur mönster kan introduceras på ett företag vilka konsekvenser som mönsteranvändning kan medföra 2001-12-04 6 (Kent.Petersson@emw.ericsson.se) 3

Examensarbete 1: Design Patterns Innehåll: Syfte och läsanvisning Var mönster kommer från. Olika typer av mönster (idiom, designmönster, arkitekturmönster, organisationsmönster, antimönster ) Tillämpning av mönster Olika sätt att introducera mönster i ett företag Mönster hos FY/D (en avdelning på EMW)... 2001-12-04 7 Examensarbete 2: Beskrivning av objektorienterade system med hjälp av designmönster. Stefan Wendt, Institutionen för datavetenskap, Högskolan i Skövde vårterminen 2000 http://www.ida.his.se/ida/htbin/exjobb/2000/hs-ida-ea-00-111 (eller från http://www.cs.chalmers.se/~kentp) 2001-12-04 8 (Kent.Petersson@emw.ericsson.se) 4

Examensarbete 2: Beskrivning av oo-syst. m.h.a. designmönster Problem: I detta projekt har designmönster studerats utifrån aspekten att använda dessa för att förbättra dokumentationen av objektorienterade programvarusystem. Metod: Användning av reverse engineering, dvs. analysera programsystemet i syfte att skapa en representation av detta på en högre abstraktionsnivå. Utgångsdata: källkod Metod: BACKDOOR (Shull, 96) 2001-12-04 9 Examensarbete 2: Beskrivning av oo-syst. m.h.a. designmönster Slutsatser (i examensarbetsrapporten): Designmönster kan användas för att öka förståelsen för ett system och det går att identifiera designmönster i efterhand. Det är svårt att skapa en förståelse för helheten genom att bara använda designmönster. Det finns en risk att arkitekturen förvanskas vid reverse engineering. Att använda mönster för dokumentation kompletterar de två övriga och mer kända användningsområdena (återanvändning och gemensamt språk) 2001-12-04 10 (Kent.Petersson@emw.ericsson.se) 5

Examensarbete 2: Beskrivning av oo-syst. m.h.a. designmönster Slutsatser (mina): Jag anser att ett mönster beskriver ett problem/lösningspar och där problemet är nyckeln till användandet av ett mönster. Det är därför svårt att med reverse engineering (bottom-up) dokumentera ett program med mönster. Jag anser att en del av de hittade mönstren inte i någon högre grad bidrar till förståelsen av programmet medan andra ger bra förståelse för programmet samt ger förslag på förbättringar i programstrukturen Jag anser att man bör använda mönster top-down om de skall bidra till förståelsen och dokumentationen av ett program. 2001-12-04 11 Examensarbete 2: Beskrivning av oo-syst. m.h.a. designmönster Slutsatser (mina): Designmönster (från GoF) är begränsade när man skall uttrycka intentionen med programlösningar. Arkitekturmönster (från POSA) beskriver lösningar i termer av programdelar (många klasser). Dessa delar kan vara svåra (omöjliga) att hitta i ett klassdiagram. Mönster har mycket med användning (dynamik) att göra. Detta syns inte i klassdiagrammet. Flera mönster har samma klass-struktur! Mönster bra för refactoring! Mönster handlar om återanvändning / kräver mycket insikt i programmets användning. 2001-12-04 12 (Kent.Petersson@emw.ericsson.se) 6

Examensarbete 2: Beskrivning av oo-syst. m.h.a. designmönster Slutsatser (min sammanfattning): Mönster är bra som verktyg för att dokumentera program. Designmönster ibland på för låg abstraktionsnivå. Mönster är bra som verktyg för att förbättra strukturen på existerande program (refactoring) Mönster för dokumentation kräver stor insikt i hur programmet fungerar programmets struktur vilka förändringar som programmet kan tänkas utsättas för dvs. det är lika svårt som att designa programmet (och i själva verket är det samma sak!!) 2001-12-04 13 Efter dessa examensarbeten, hur skulle vi fortsätta? Vi bestämde att försöka beskriva arkitekturen av ett större existerande system med hjälp av mönster. System: Databehandlingen i ett spaningsradarprojekt. Vi hade för några år sedan försökt göra en arkitektur för att befrämja återanvändningen av delar mellan olika projekt (inom samma familj av produkter) Beslutade att använda mönster (arkitekturmönster) för att beskriva denna arkitektur och speciellt de frågeställningar som beaktades vid designen. Se om vi kunde finna detaljer som skulle kunna förbättras. 2001-12-04 14 (Kent.Petersson@emw.ericsson.se) 7

Resultat: Rapport: Kent Petersson: Beskrivning av arkitektur med hjälp av mönster. Ett exempel Speciella hänsyn vid definition av arkitekturen: Återanvändning (reuse), utbyggbar. Så oberoende delar som möjligt. Samma arkitektur i många (alla) projekt 2001-12-04 15 Problem med förändringar av hårdvara/operativsystem. Strukturera med avseende på abstraktionsnivå (användare - maskin). Problem med att få delarna så oberoende av varandra som möjligt för att förbättra flexibiliteten. Lösning: introducera en lagrad arkitektur (beroenden nedåt) Mönster: Layers (POSA-boken) 2001-12-04 16 (Kent.Petersson@emw.ericsson.se) 8

applikationslager supportlager kärnlager 2001-12-04 17 Alla komponenter är självständiga program (processer). Alla gränssnitt är skrivna i IDL (Interface Definition Language) All kommunikation mellan komponenterna sker med hjälp av CORBA. Detta medför att: vi har frihet att ta med olika applikationer i olika projekt vi har separerat logisk (funktionell) arkitektur från fysisk (hårdvaru) arkitektur. Komponenter kan exekvera på samma eller olika maskiner. 2001-12-04 18 (Kent.Petersson@emw.ericsson.se) 9

Problem med att strukturera funktionaliteten i lämpliga delar Lösning: använd dataflödesprincipen Mönster: Pipes and Filters (POSA-boken) Följning Korrelering Hotutvärdering Insatsplanering 2001-12-04 19 Nytt problem: Användningen av Layers och Pipes & Filters fungerar inte bra tillsammans! Applikationerna (Komponenterna i översta lagret) får inte vara direkt beroende av varandra. Lösning: Introducera speciella datalagringskomponenter i supportlagret. Applikationerna hämtar indata och lämnar resultatet i datalagringskomponenterna. 2001-12-04 20 (Kent.Petersson@emw.ericsson.se) 10

applikationer Följning Korrelering Hotutvärdering Insatsplanering Plottar Följen System mål Hotdata datalagringskomponenter 2001-12-04 21 Problem: Applikationerna hämtar data från datalagringskomponenterna (pollning). Detta blir ineffektivt för data som sällan ändras, t.ex. olika sorters styrningar. Lösning: Händelsehantering Mönster: Publisher / Subscriber (POSA-boken) En applikation prenumererar på styrningar från datalagringskomponenten. En annan applikation (OPC) genererar en styrning genom att påverka datalagringskomponenten. Datalagringskomponenten behöver inte a priori känna till vilka applikationer som är intresserade av styrningar. 2001-12-04 22 (Kent.Petersson@emw.ericsson.se) 11

Problem: En del av systemet som är speciellt ändringsbenäget är presentation/styrningsdelen. Kunderna brukar ha mycket Lösning: Separera ut presentation och styrning från de andra komponenterna Mönster: Model-View-Controller Modifiering: Vi har inte separerat View och Control utan har en komponent för båda Operator Presentation & Control 2001-12-04 23 Presentation Styrning Distribution View & Control Model 2001-12-04 24 (Kent.Petersson@emw.ericsson.se) 12

Designmönsterarbetet, slutsatser Designmönster (och andra mönster) ger en bra vokabulär för att diskutera programmeringsproblem och dess lösningar (börjar inkluderas i nyare läroböcker) Designmönster förmedlar kunskap i hur objektorienterad programmering används för att lösa verkliga problem Leta INTE efter mönster i gammal kod! 2001-12-04 25 Designmönster - EMW Kent Petersson epost1: kentp@cs.chalmers.se epost2: kent.petersson@emw.ericsson.se URL: http://www.cs.chalmers.se/~kentp 2001-12-04 26 (Kent.Petersson@emw.ericsson.se) 13