Ratkaisumallien historia Jaakko Vuolasto 25.1.2001.

Slides:



Advertisements
Samankaltaiset esitykset
YLIOPISTOJEN AASIA-VERKOSTO
Advertisements

Tietokoneen käyttöjärjestelmä
Ohjelmiston tekninen suunnittelu
Tämä on SUUNTA-työkalun käyttöön opastava diaesitys
Johdatus Linuxiin Mauri Heinonen
Active directory.
Tietojärjestelmät 2.
Kulttuuri, mieli ja kasvatus
Ohjelman perusrakenteet
Luku 5 – Tietojen hakeminen sovelluksiin
Toimittaja – Sovellusarkkitehtuuritas on pilkkominen Kalle Launiala, ProtonIT Oy
KAOS KAOS WORLD CAFE VALTIOVARAINMINISTERIÖSSÄ: JHS179 UUDISTUS Cafe 1 – Toiminta-arkkitehtuuri.
Tietokannan suunnittelu
EXtensible Markup Language
Tekninen suunnit-telu
MULTIMEDIAN MONET MUODOT
Valitse sanomapalkissa Ota muokkaus käyttöön,
Gradun arvionti Markku Nykky Komponentit ohjelmistotuotannossa 1999.
Ohjelmointi Vesa Lappalainen jyu class Hello { public static void main(String[] args) { System.out.println("Hello world!"); } }
Päivi Ovaska Tutkijaopettaja LTY/Tite
Tietojärjestelmän suunnittelu
@ Leena Lahtinen Helia OHJELMOINTITAITO ICT02D 12 OP.
OHJELMOINTITAITO ICT02D 12 ECTS. OPINTOJAKSON TOTEUTUS  KESTO: –  PÄIVÄOPISKELIJAT: – KAKSI LUOKAA (SUOMI) –YKSI LUOKKA (ENGLANTI)
CSC / Tietohallinnon asiakkaat ja tuotteet / Teemu Kemppainen Aikataulu 09:00-09:30Mallin kehitys versioon 1 ja tästä eteenpäin; UML-notaatio.
HYVÄ MONIKULTTUURINEN KOHTAAMINEN Juha Parkkinen
Oliomallittaminen ja UML
Julkaisujärjestelmät Mitä seuraavaksi? Rami Alanko.
Mereologia ja sen soveltaminen
SE-02 Olioperustainen ohjelmistokehitys Tampereen yliopisto, syksy 2000 Roope Raisamo perustuu Kai Koskimiehen Oliokirjaan ja kurssin aiempiin materiaaleihin.
Rakenteen ja ilmeen määrittelystä konseptissa. Konseptisuunnittelu Konseptisuunnitelman sisällöstä Konseptisuunnitelmassa kuvaillaan Projektin tausta.
Käsitteen didaktiikkaa
Muotoiluosaamisen kehittäminen suunnittelun näkökulmasta Ohjelma Aamupäivä Kuluttajakäyttäytyminen muuttuu: trendit Kuinka muotoilija voi tuottaa.
Pro gradu -tutkielmat ohjelmistotestauksesta
GNU-ohjelmointityökalut Jussi Raunio TI09OHJ
Tehnyt: Jaska Kauppila Ti10 TIVE.  GIMP (GNU Image Manipulation Program) on yksi suosituimpia ilmaisia kuvankäsittelyohjelmia  Sitä on käännetty usealle.
Ohjelmistojen suunnittelumenetelmät ja –työkalut
− työkalu toiminnan suunnittelun ja suunnitelman arvioinnin tueksi
Henkilöstöjohtaja Lasse Lintilä Valio Oy
Heuristinen arviointi Antti Nummiaho Johdanto (1/3) Heuristinen arviointi on käytettävyyden arviointia ilman käyttäjää. Se on yksinkertainen,
Graafiset www-käyttöliittymät Proseminaari | Sami Niemelä Graafiset www-käyttöliittymät kun kokeellisuus kohtaa konventiot.
Sisällönsuunnittelun workshop Verkkokoulutusprojektin eteneminen KonseptointiSisältösuunnittelu Vaatimus- määrittely ja visuaalinen ilme Sisällöntuotanto.
T Loppudemo Kaffetauko eAuction
Johdanto Teppo Räisänen, Principal Lecturer Oulu University of Applied Sciences, School of Business and Information Management
Maitomestarit Ilmanvaihto-workshop Työtehoseura, Vantaa ELL Heidi KangasSavonia-AMK Iisalmi.
OHJELMOINTITAITO ICT02D 12 ECTS. OPINTOJAKSON TOTEUTUS  KESTO: –  AVOIMEN OPISKELIJAT: – YKSI LUOKA (SUOMI) – LUOKKA ICT02O-1.
Heuristinen arviointi Käyttöliittymäseminaari Jere Salonen.
Package diagram Tiia Jefremoff
– Ohjelmistojen mallintaminen, mallintaminen ja UML.
Seminaarityön rakenteesta
Jouni Juntunen Oulun seudun ammattikorkeakoulu Liiketalouden yksikkö
1 Lastensuojelun tieto lapsesta Mirva Makkonen Kehittäjä-sosiaalityöntekijä Oulun seudun lastensuojelun kehittämisyksikkö.
Käyttöönottokaavio– Deployment diagram Vesa Jokikokko Tarmo Kemi TIK9SNA.
Oppimisen ohjaus lähikehityksen vyöhykkeellä verkko-oppimisympäristössä Tutkimussuunnitelma Tero Paakki.
Pakkauskaavio– Package Diagram Jani Pelkonen, Niko Viinikanoja, Teemu Tervahauta.
Koostekaavio– composite structure diagram Mikko Näpänkangas.
St. Amant (1999): Planning and User Interface Affordances
Tietokantapalvelimet Ville Parviainen. Sisältö Yleistä tietokannoista SQL PostgreSQL MySQL MySQL vs. PostgreSQL Linux -työ.
Windows 2000 Jukka Stranden Marko Suhonen Käyttöjärjestelmät Seminaari 2006.
Feministinen opettaminen – verkkojakson esittely Sari Koski-Kotiranta Opetusteknologiakeskus.
JHKA 2.0 tilanne JHKA-työryhmän kokous JulkICT.
Tutkielman teko-ohjeet
UML-mallinnus osana tietotuotemäärittelyä
OHJELMOINTITAITO ICT02D 12 Leena Lahtinen Helia
Tutkiva ja dialoginen orientaatio opetusharjoittelun lähtökohtana
OHJELMOINTITAITO ICT02D 12 Leena Lahtinen Helia
Arvioinnista arkipäivää
OHJELMOINTITAITO ICT02D 12 ECTS.
OHJELMOINTITAITO ICT02D 12 ECTS.
1. Olio-ohjelmointi.
OHJELMOINTITAITO ICT02D 12 ECTS.
Esityksen transkriptio:

Ratkaisumallien historia Jaakko Vuolasto

Ratkaisumallien historia2 / 29 Sisällys Ratkaisumalli Christopher Alexander Ohjelmistotuotannosta arkkitehtuuriin Henkilöhistoriaa Ensimmäisiä käyttökokemuksia Yhteenveto

Ratkaisumallien historia3 / 29 Ratkaisumalli Ratkaisumalli (Design Pattern) on hyväksi havaittu, dokumentoitu tapa ratkaista tietty ongelma

Ratkaisumallien historia4 / 29 Ratkaisumalli [2] Ratkaisumalli koostuu: Asiayhteydestä Ongelmasta Ratkaisusta Ratkaisumallit ovat uudelleenkäyttöä suunnittelun tasolla

Ratkaisumallien historia5 / 29 Esimerkki: Composite

Ratkaisumallien historia6 / 29 Esimerkki: Composite [2] Asiayhteys: Hierarkioiden esittäminen Ongelma: Miten hoitaa erilaisten olioiden käsittely elegantisti Ratkaisu: Abstrakti yliluokka, josta sekä yksinkertainen että rakenteinen luokka periytyvät

Ratkaisumallien historia7 / 29 Esimerkki: Composite [3] Seuraukset: [+] Yksinkertainen asiakas [+] Uudenlaisten komponenttien lisääminen helppoa [-] Liioitellun yksinkertainen rakenne

Ratkaisumallien historia8 / 29 Christopher Alexander Arkkitehti Syntyi Wienissä 1936, vietti lapsuutensa Englannissa Valmistui Cambridgesta Tohtoriksi Harvardista: Notes on the Synthesis of Form

Ratkaisumallien historia9 / 29 Christopher Alexander [2]

Ratkaisumallien historia10 / 29 Arkkitehtuurin ongelmat Alexander: 1900-luvun arkkitehtuuri syyllistynyt vakaviin virheisiin: Epätasapaino Tarkoituksen puuttuminen Esteettisiä ja toiminnallisia epäonnistumisia Ihmisten huomiotta jättäminen

Ratkaisumallien historia11 / 29 Miten aikaisemmin? Ongelmat eivät vaivanneet aikaisempaa arkkitehtuuria: Rakennukset syntyivät ilman formaaleja malleja tai menetelmiä Rakentamisen tukena sen sijaan kokoelma implisiittisiä sääntöjä Usein evoluution tulos

Ratkaisumallien historia12 / 29 Malli (Pattern) Kuvaa vaikuttavien voimien joukkoa ja niiden keskinäisiä suhteita Ei mikään formaali käsite Malleja kaikkialla, monella eri tasolla A Pattern Language: kokoelma näitä malleja

Ratkaisumallien historia13 / 29 Malli (Pattern) [2] Määritellään viiden elementin avulla: Nimi Esimerkki Asiayhteys Ongelma Ratkaisu

Ratkaisumallien historia14 / 29 Hyppy ohjelmistotuotantoon Beck ja Cunningham 1987 Tektronixilla viimeistelemässä suunnitteluvaihetta Ottivat käyttäjien edustajan mukaan (Alexanderin oppien mukaan) Tuloksena viiden ratkaisumallin joukko

Ratkaisumallien historia15 / 29 Beckin ja Cunninghamin mallit Yksinkertaisia malleja: Window Per Task: yksi ikkuna tehtävää kohti Few Panes: tämä yksi ikkuna jaettu useaan pienempään osaan Standard Panes: ikkunan osilla standardi ulkoasu Nouns And Verbs: jaottelu asioihin (substantiiveja) ja tekoihin (verbejä) Short Menus: Pop-up –menun elementtien pitää olla lyhyitä ja selkeitä

Ratkaisumallien historia16 / 29 OOPSLA 87 Beck & Cunningham esittelivät tuloksiansa Vastaanotto hyväksyvä Ei konkreettisia edistysaskelia

Ratkaisumallien historia17 / 29 Advanced C++ James Coplien työsti luetteloa C++- spesifisistä malleista, julkaistiin 1992: Advanced C++ Programming Styles and Idioms Esiversioita käytettiin C++-kursseilla AT&T:lla

Ratkaisumallien historia18 / 29 OOPSLA 92 Bruce Anderson puhui ohjelmisto- arkkitehtuurista Yhteenveto: Towards an Architecture Handbook

Ratkaisumallien historia19 / 29 OOPSLA 92 [2] Anderson käsitteli peruskysymyksiä: Mitä on ohjelmistoarkkitehtuuri Millainen käsikirja aiheesta tarvitaan Ehdotus sisällöksi: Komponentit ja rakenteet (sisältäen malleja!) Periaatteet ja ominaisuudet Kokoelma järjestelmän kuvauksia

Ratkaisumallien historia20 / 29 OOPSLA 92 [3] Peter Coad & Mark Mayfield pitivät Workshopin ratkaisumalleista Keskustelua ohjasi joukko kysymyksiä: Mitä ratkaisumallit ovat? Miten niitä löydetään/kuvataan? Millaisia esimerkkejä on saatavilla?

Ratkaisumallien historia21 / 29 Mallien tulevaisuudesta (1992) Coad ja Mayfield olivat vakuuttuneita ratkaisumallien merkityksestä: ”We explored the potential impact of patterns. We believe that the impact is HUGE.”

Ratkaisumallien historia22 / 29 Hillside Group Perustettiin elokuussa 1993 Päämääränä yhdistää Alexanderin mallikäsitykset ja olioparadigma Erich Gamman (tutkimus)työ perustana

Ratkaisumallien historia23 / 29 PLoP Pattern Languages of Program Design: vuosittainen konferenssi Hillside Group järjestävänä tahona Konferenssijulkaisut Pattern Languages of Program Design 1, 2, 3 ja 4

Ratkaisumallien historia24 / 29 Gang of Four Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides Ryhmä muodostui OOPSLA 91- ja 92- konferenssien yhteydessä Design Patterns on alan perusteos

Ratkaisumallien historia25 / 29 GoF-ratkaisumallit Kaikkiaan 23 ratkaisumallia Jaettu kolmeen ryhmään tarkoituksen perusteella: Olioiden luominen, rakenne ja käyttäytyminen

Ratkaisumallien historia26 / 29 A System of Patterns Frank Buschmann et al Jaottelu arkkitehtuurimalleihin, ratkaisumalleihin ja idiomeihin

Ratkaisumallien historia27 / 29 Mallit yhteisenä kielenä Ratkaisumallit ovat kehittäjien yhteistä sanastoa Mutta mikä on tämän sanaston ydin, mitkä mallit jokaisen kehittäjän tulisi hallita? Esim. Gamma vs. Buschmann?

Ratkaisumallien historia28 / 29 Ratkaisumallit tulevaisuudessa Merkitys yhteisenä kielenä toivottavasti kasvaa Työkalujen tuki tärkeässä roolissa Samoin suhde UML:ään Pahin hype toivottavasti jo ohi

Ratkaisumallien historia29 / 29 Yhteenveto 1977: Christopher Alexander 1987: Beck & Cunningham 1993: Hillside Group 1995: Design Patterns 1992: Advanced C++