Ohjelmistotekniikka: Luento 8 Jouni Lappalainen
|
|
- Jukka-Pekka Sariola
- 7 vuotta sitten
- Katselukertoja:
Transkriptio
1 Ohjelmistotekniikka: Luento 8 Jouni Lappalainen Luku 12: Mallipohjainen (pattern-based) suunnittelu suunnittelumallit malliperustainen suunnittelu arkkitehtuurimallit käyttöliittymän suunnittelumallit kehykset Luku 13: Web-sovelluksen suunnittelu laatutekijät suunnittelun tavoitteet käyttöliittymän suunnittelu, graafinen suunnittelu sisällön suunnittelu, arkkitehtuurin suunnittelu ja navigoinnin suunnittelu hypermedia suunnittelumallit ja OOHD menetelmä 1
2 Soveltuvat lait ja pohdiskelun aiheita 1. Suunnittelumallien käyttö johtaa nopeampaan ja parempaan ylläpitoon / hyp_no 4, Gamma
3 Pohdiskelun aiheita Fowler esittelee oheisessa artikkelissa XP-menetelmän tuomia muutoksia suunnitteluprosessiin. Miten esim. YAGNI periaate sopii XP-menetelmään? Miten refaktorointi ja YAGNI sopivat yhteen? Miten suunnittelumalleja (design pattern) tulisi käyttää XP-menetelmän mukaisessa kehittämisessä? Mitä ohjeita Fowler antaa UML kuvausten käyttämiselle XP-menetelmän yhteydessä? Fowler M., Is Design Dead? ( designdead.html)
4 Pohdiskelun aiheita Hahmottele (voit piirrellä paperille kynällä) UWE navigointikaaviolla (esitelty luennoilla, materiaalia löytyy WebOodin käytön jokin toiminta, esimerkiksi listaus suorituksista. Kuvaa kaikki vaiheet TOL:n pääsivulta lähtien. Olet suunnittelemassa nettikauppa.com nimistä tietotekniikka/viihde-elektroniikkakauppaa webiin. Mieti miten toteutat Olsinan ja Fitzpatrickin laatutekijät sovellukseesi.
5 Suunnittelumallin käsite Cristopher Alexander et al.: A Pattern Language, 1977 Cristopher Alexander: The Timeless Way of Building, 1979 Alkujaan talonrakennuksen arkkitehtuuristen ratkaisujen tueksi. esim. millainen kattoratkaisu varjostaa vähiten talon pohjoispuolen pihaa Määritellään: Jokainen malli määrittelee ongelman, joka esiintyy uudelleen ja uudelleen ympäristössämme ja sitten ydinratkaisun siihen, niin että sitä voidaan voidaan soveltaa miljoonia kertoja tekemättä kuitenkaan koskaan samaa ratkaisua kahdesti.» Alexander 1977 Erityisen hyödyllinen käsite myös ohjelmistotuotannossa 5
6 Suunnittelumallin ominaisuudet Ohjelmistoja koskevat suunnittelumallit julkaistiin jo 1980 luvulla, mutta 1985 julkaistu Design patterns (Gamma et al. 1985) kirja esitteli GoF (Gang of Four) suunnittelumallit Tehokas suunnittelumalli / Coplien 2005 ratkaisee ongelman toimii käytännössä ratkaisu ei ole ilmeinen vaan esitetään epäsuorasti kuvaa järjestelmän syvemmän rakenteen toimii ihmiskomponenttina mallin avulla parannetaan ratkaisun esteettisyyttä ja käytettävyyttä 6
7 Suunnittelumalli (design pattern) Yleinen ratkaisu toistuvasti esiintyvään arkkitehtuuriin/ suunnitteluun liittyvään kontekstisidonnaiseen ongelmaan. Yleinen: ei ole sidottu mihinkään tiettyyn kieleen tai ympäristöön. Kuvataan (puoli)formaalina dokumenttina. Toistuva: ratkaisu yleiseen ongelmaan. Arkkitehtuuri-/suunnittelutaso: voidaan soveltaa arkkitehtuuritasolta yksityiskohtaiseen suunnitteluun. Kontekstisidonnaisuus: konteksti määrittää vaatimuksia. 7
8 Suunnittelumallien hyödyt Tekevät suunnittelutietouden eksplisiittiseksi ja kaikkien saavutettavaksi. Voidaan hyödyntää järjestelmien dokumentoinnissa. Tuovat ohjelmointikieliä paremmin esiin korkeamman tason rakenteita. Voidaan hyödyntää arkkitehtuurin rakennuspalikoina. Luo yhteisen kielen suunnittelijoille. 8
9 Suunnittelumallin kuvaus Nimi: tarkoituksena kuvata sekä ongelma, että sen ratkaisu, sen tulisi olla havainnollinen muodostuu osaksi suunnittelusanastoa. Ongelma: kuvataan tilanne, johon suunnittelumallia sovelletaan Ratkaisu: kuvaa suunnittelumalliin liittyvät elementit, niiden keskinäiset suhteet, vastuut ja yhteistyön kuvataan abstrakti ratkaisu, jota on helpompi soveltaa Seuraukset: suunnittelumallin soveltamisen tulokset (hyödyt) ja mahdolliset kompromissit (haitat) 9
10 Suunnittelumallit (design patterns) Malli esitellään nimen, ongelman, ratkaisun ja seurauksien avulla, mutta voidaan käyttää myös seuraavaa tarkempaa muotoa Name Intent Mitä tekee? Also-known-as Tunnettu myös nimellä Motivation Skenaarioesitys, miten malli ratkaisee ongelman Applicability Milloin mallia voidaan soveltaa? Structure Graafinen esitys mallin luokkarakenteesta Participants Luokkien osallistuminen malliin ja luokkien vastuut Collaborations Miten osallistujat tekevät yhteistyötä? Consequences Miten malli tukee tavoitteiden saavuttamista? Mitä tuloksia saadaan mallin käytöllä? Implementation Mistä vaaroista, ohjeista tai tekniikoista pitäisi tietää mallin käytössä? Sample code Koodiesimerkit kertovat, miten mallin voi toteuttaa Java, C++ kielillä Known uses Esimerkkejä mallin käytöstä in the real life Related patterns Mitkä mallit ovat sidoksissa tähän malliin? 10
11 GoF suunnittelumallien luokittelu Luontimallit: Luontimallit abstrahoivat olioiden luomisprosessia, minkä avulla järjestelmät voidaan suunnitella riippumattomiksi siitä, miten niiden oliot luodaan. Rakennemallit: Rakennemallit huolehtivat olioiden välisistä suhteista ja siitä miten nämä muodostavat isompia kokonaisuuksia. Rakennemalleja käytetään myös suurten ohjelmistojen tehokkuuden ja muistin käytön optimointiin. Käyttäytymismallit: Käyttäytymismallit huolehtivat algoritmeista ja olioiden välisistä vastuuketjuista. Olioiden ja luokkien määrittelyn lisäksi käyttäytymismallit ottavat kantaa niiden väliseen kommunikaatioon. 11
12 GoF suunnittelumallien luokittelu Luontimallit: Tehdasmetodi (Factory Method), Abstrakti tehdas (Abstract Factory), Rakentaja (Builder), Prototyyppi (Prototype), Ainokainen (Singeleton) Rakennemallit: Sovitin (Adapter), Silta (Bridge), Kooste (Composite), Kuorruttaja (Decorator), Julkisivu (Facade), Hiutale (Flyweight), Sijainen/Edustaja (Proxy) Käyttäytymismallit: Tulkki (Interpreter). Operaatiorunko (Template Method), Vastuuketju (Chain of Responsibility), Komento (Command), Iteraattori (Iterator), Välittäjä (Mediator), Muistio (Memento), Tarkkailija (Observer), Tila (State), Strategia (Strategy), Vierailija (Visitor) 12
13 Miten edetään suunnittelumallien käyttöön Shalloway & Trott (2005) esittävät vaiheita 1. pyri ymmärtämään konteksti (big picture), johon ohjelmisto sijoittuu 2. etsi suunnittelumalleja, jotka soveltuvat tälle abstraktiotasolle 3. aloita ohjelmiston rungon suunnittelu, jossa suunnittelumallit ovat mukana 4. mene suunnittelussa tarkemmalle tasolle ja etsi sopivia suunnittelumalleja alemmalla abstraktiotasolla 5. toista askelia 1 4, kunnes suunnittelu on valmis 6. tarkenna suunnitelmaa sovittamalla suunnittelumallit rakennettavaan ohjelmistoon 13
14 Malliperustainen suunnittelu Arkkitehtuurimallit (architectural patterns) kuvataan ohjelmiston perusrakenne ja määritellään koko järjestelmän kattavia ominaisuuksia esimerkkinä Model-View-Controller (MVC) malli Idiomit / koodausmallit kuvaa tunnetun tavan, miten jokin tehtävä suoritetaan valitulla kielellä Mallikieli (pattern language) tunnetaan useita suunnittelumalleja sovellusalueella ja se miten ne toimivat yhdessä sovellusalueen ongelmien ratkaisuissa Antisuunnittelumalli (antipattern) tavoitteena on tunnistaa annetun kuvauksen perusteella jokin ohjelmiston, projektin tai prosessin rakenteessa oleva perustavanlaatuinen ongelma antisuunnittelumalli esittää korjausehdotuksen tai tavan vähentää ongelman kriittisyyttä 14
15 Rakennemallit: Composite (Kooste) mallin yleinen muoto Client Component * anoperation() is polymorphically redefined anoperation() addcomponent() removecomponent() getchild() 1 Leaf anoperation() OtherLeaf anoperation() for all c in componentcollection c.anoperation() Composite componentcollection anoperation() addcomponent() removecomponent() getchild() Collection of Component object identifiers (Bennett et al., 2010) 15
16 Käyttäytymismallit: Observer (Tarkkailija) Tarkkailija-suunnittelumallissa ajatellaan, että maailma koostuu kahdenlaisista olioista: subjekteista, joita tarkkaillaan, ja tarkkailijoista, jotka tarkkailevat. Kullakin subjektilla voi olla mielivaltaisen monta tarkkailijaa, joiden laatua subjekti ei tunne. Aina, kun subjektin tila muuttuu, se ilmoittaa tästä muutoksesta kaikille tarkkailijoilleen. tarkkailijat reagoivat tähän kukin omalla tavallaan Kun tarkkailija haluaa alkaa tarkkailla tiettyä subjektia, se ilmoittautuu tälle. (Raisamo 2007) 16
17 Observer (Tarkkailija) suunnittelumalli (Raisamo 2007) 17
18 Observer (Tarkkailija) suunnittelumalli Esimerkkinä käyttöliittymäarkkitehtuuri: Subjektina on itse sovellus tai sen osa ja tarkkailijana tämän näkymä näytöllä. Kun sovelluksen tila muuttuu, kaikille sen näkymille ilmoitetaan muutoksesta. Elementtien ei tarvitse tuntea toisiaan, vaikka ne riippuvatkin toisistaan. Sovelluksen ei tarvitse tuntea näyttöjen tarkempaa laatua eikä toteutustapaa ainoastaan tarkkailijarajapinta (operaatio), jolla muutoksesta ilmoitetaan. (Raisamo 2007) 18
19 Observer (Tarkkailija) suunnittelumalli Tämä suunnittelumalli sopii sellaisiin tilanteisiin, joissa toisistaan riippuvat oliot halutaan toteuttaa mahdollisimman riippumattomasti. vaikka subjektin on tunnettava tarkkailijoiden ilmoitusoperaatio (rajapinta), subjekti ei tule riippuvaiseksi tietystä tarkkailijaluokasta. Tarkkailijarajapinta voidaan määritellä kutakin subjektiluokkaa kohden erikseen. Kaikki tarkkailijarajapinnan toteuttavat luokat voivat toimia kyseisen subjektin tarkkailijoina. (Raisamo 2007) 19
20 Observer (Tarkkailija) suunnittelumallin sekvenssikaavio (Raisamo 2007) 20
21 Esimerkki: Useita näkymiä, automaattinen päivitys 21
22 Käyttöliittymän suunnittelumallit Käyttöliittymän suunnittelumallit voidaan luokitella malleiksi, jotka tukevat esim. koko käyttöliittymän rakentamista TopLevelNavigation pattern sivun suunnittelua CardStack pattern kyselylomakkeiden käyttö Fill-in-the-Blanks taulukoita SortableTable navigointia EditInPlace» 22
23 Kehykset (ohjelmistokehys -> sovelluskehys, komponenttikehys) Ohjelmistokehys on kiinteästi toisiinsa liittyvien luokkien ja/tai rajapintojen kokoelma, joka toteuttaa tietyn ohjelmistoperheen perusarkkitehtuurin Ohjelmistokehystä erikoistamalla saadaan sovellus tai komponentti Tällöin käytetään kehyksestä termiä sovelluskehys tai komponenttikehys Sovelluskehys on ohjelmisto, joka sisältää tietyn tyyppisten sovellusten perusratkaisut esim. graafisten käyttöliittymien toteutusta tukeva luokkakirjasto (Microsoftin MFC ja Sunin AWT & Swing) Komponenttikehyksen esimerkkinä Visual Component Framework GUI pohjaisten C++ sovellusten rakentamiseen Windows, (Mac & Linux on tulossa) alustoilla 23
24 Alustakehitysprosessi (domain engineering) Vaatimusmäärittely Sovellusalueen käsitemalli Muunneltavuusvaatimukset Alustan suunnittelu Tuoterunkoarkkitehtuuri Alustan toteutus Yhteiset vaatimukset Toteutusympäristö Alusta Tuotekehitysprosessi (application engineering) Tuote Tuotekohtainen koodi Vaatimusmäärittely Tuotevaatimukset Tuotteen toteutus Kehystekniikat tarjoavat perustan muunneltavuudelle
25 Luku 13: Web-sovelluksen suunnittelu Web sovellusten luokittelu ja ominaispiirteet RUP ja XP Web sovelluksen kehittämisessä laatutekijät graafinen suunnittelu, sisällön suunnittelu, arkkitehtuurin suunnittelu ja navigoinnin suunnittelu hypermedia suunnittelumallit ja UWE kuvausmenetelmä 25
26 Web-sovelluksen suunnitteluaktiviteetit Käyttöliittymän suunnittelu Graafinen suunnittelu Sisällön suunnittelu Navigoinnin suunnittelu Arkkitehtuurisuunnittelu Komponenttisuunnittelu 26
27 Web-sovellusten luokittelu / Murugesan & Ginige 2005 Toiminnallisuus Tiedottavat Interaktiiviset Transaktiopohjaiset Töiden järjestelyyn suuntautuneet Yhteistyötä tukevat Yhteisöt, markkinapaikat Esimerkkejä Online sanomalehdet, online kirjat, tuoteluettelot, uutiskirjeet Ilmoittautumislomakkeet, räätälöity tiedon esittäminen, pelit Verkkokauppa, verkkopankki, verkossa tapahtuva matkan varaus Verkossa tapahtuva suunnittelu ja aikataulutus, tilan valvonta, toimittajaketjun hallinta Hajautetut kirjoitusjärjestelmät, yhteissuunnittelua tukevat työkalut Keskusteluryhmät, verkkomarkkinat, sähköiset kauppapaikat
28 Web sovelluksen ominaispiirteet Verkosta riippuvuus (verkkointensiivisyys) sovellus elää verkossa ja palvelee hyvin hajanaisen asiakaskunnan tarpeita Samanaikaisuus suuret käyttäjämäärät käyttävät sovellusta samaan aikaan, käyttötavat voivat poiketa paljonkin Ennustamaton kuormitus käyttäjämäärät voivat vaihdella huomattavasti eri päivinä Suorituskyky vasteajan täytyy olla kohtuullinen, jotta käyttäjä on tyytyväinen 28
29 Web sovelluksen ominaispiirteet Palveluaste (availability) vaikka 100 % palveluastetta ei saavuteta, suositun sovelluksen käyttäjät vaativat 24/7/365 palvelua Tietoa käyttäjälle sovelluksen ensisijainen tarkoitus on hypermedian keinoin tarjota tietoa eri esitysmuodoissa Sisällön tärkeys sisällön laatu ja esitystapa tärkeimmät sovelluksen laatutekijät Jatkuva evoluuutio Web sovellukset kehittyvät jatkuvasti, eivät suunnitelluin julkaisuin, kuten perinteiset 29
30 Web sovelluksen ominaispiirteet Välittömyys (kehittämisnopeus) Web sovellusten kehittämisaika muutamia päiviä/viikkoja Varmuus sovelluksen käytön oltava turvallista käyttäjän kannalta Esteettisyys teknisen suunnittelun lisäksi tarvitaan myös ulkonäön suunnittelua 30
31 RUP & XP Web sovelluksen kehittämisessä julkaisu ohjelmiston uusi osa Hyväksymistesti Asiakas käyttää & arvioi Jatkuva integrointi Koodaus Komponenttitesti TDD Koodin yhteisomistus Pienet julkaisut toimitus rakentaminen refaktorointi kommunikointi Asiakkaan läsnäolo mallintaminen Liiketoiminta-analyysi - sovelluksen konteksti - sidosryhmien tunnistus - integrointi muihin järjestelmiin Vaatimusten keräys suunnittelu Projektisuunnitelma Metafora Suunnittelupeli Analyysimalli - sisältö - interaktio - toiminta - konfiguraatio Suunnittelumalli - sisältö - arkkitehtuuri - navigointi - käyttöliittymä - komponentit
32 Web sovelluksen rakentaminen - parhaat käytänteet Käytä aikaa liiketoimintatarpeiden ja tuotetarpeiden ymmärtämiseen, vaikka yksityiskohdat voivat vielä muuttua Kuvaa käyttäjien vuorovaikutus skenaarioilla Tee projektisuunnitelma, vaikka kevytkin Käytä aikaa suunnitteluun, mitä aiot rakentaa Katselmoi mallit niiden yhdenmukaisuuden ja laadun kannalta Käytä sellaisia työkaluja ja teknologiaa, jotka mahdollistavat mahdollisimman laajan uudelleenkäytön Tee riittävän laajat testisuunnitelmat ja testit ja suorita ne ennen julkaisua 32
33 Huonot käytänteet We have a great idea, so let s begin building the WebApp - now ja miten pitäisi tehdä: Käytä muutamia tunteja/päiviä kuvataksesi sovelluksen liiketoimintaa, ja varmista että rahoittajat ja käyttäjät hyväksyvät sen Stuff will change constantly, so there s no point in trying to understand WebApp requirements (never write anything down) ja miten pitäisi tehdä: Vaikka vaatimukset muuttuvat, tiedon keruu sanallisesti on kevyt vaihtoehto ja vähentää turhia muutoksia 33
34 Huonot käytänteet Developers whose dominant experience has been in traditional software development can develop WebApps immediately. No new training is required. ja miten pitäisi tehdä: Web sovellukset vaativat erityisosaamista, johon tarvitaan harjoittelua Be bureaucratic ja miten pitäisi tehdä: Suosi ketteriä prosesseja, jotka hyödyntävät tiimin valmiuksia. Jos metriikkatietoa tarvitaan, toteuta se niin kevyesti kun mahdollista Testing? Why bother? ja miten pitäisi tehdä: Jos loppukäyttäjät joutuvat testaajiksi, he helposti luopuvat sovelluksen käytöstä 34
35 Web-sovellusten vaatimukset ja keinot niiden täyttämiseksi / Murugesan & Ginige 2005 yhtenäinen ulkomuoto ja toimintatapa tiedon yhdenmukaisuus läpi järjestelmän tiedon helppo päivitys ja ylläpito uusien Web sivujen helppo lisäys keskitetty hallinto mekanismit laadun ja tiedon relevanttisuuden valvontaan hakukoneita suosiva rakenne sivujen luonti mallisivujen (template & style) avulla talletetaan tieto vain yhteen paikkaan, josta se haetaan tarvittaessa tiedon muutokset tehdään taustalla olevaan tietovarastoon navigointilinkkien dynaaminen generointi monitasoinen käyttäjien hallinta, joka tarjoaa erityispalveluja tietosisällöstä ja varastosta vastaaville metadatan käyttö Web-sivuille; Webrobottien käyttö keskeisen tiedon keruuseen ja laadun valvontaan meta-tagien käyttö ja hakukoneille rekisteröinti
36 Laatutekijöiden yhteys ei-toiminnallisiin vaatimuksiin Ei-toiminnalliset vaatimukset Tuotevaatimukset Yrityskohtaiset vaatimukset Ulkopuoliset vaatimukset Käytettävyyteen liittyvät Toiminnallisuuteen liittyvät Luotettavuuteen liittyvät Tehokkuuteen liittyvät Ylläpidettävyyteen liittyvät Siirrettävyyteen liittyvät ymmärrettävyys toimivuus analysoitavuus muutettavuus opittavuus viehättävyys vakaus testattavuus
37 Web-sovellusten laatu Kun Web-sovellukset ovat tulleet jokapäiväiseen elämään, niiltä vaaditaan luotettavuutta, suorituskykyä ja turvallisuutta Web-sovellusten laatu arvioidaan (Murugesan & Ginige 2005) skaalautuvuudella luotettavuudella palveluasteella ylläpidettävyydellä käytettävyydellä turvallisuudella (Dustin, Rashka & McDiarmid 2002) toiminnallisuudella turvallisuudella & yksityisyydellä suorituskyvyllä & skaalautuvuudella yhteensopivuudella käytettävyydellä
38 Olsina et al Käytettävyys Sivuston ymmärrettävyys On-line palaute ja opastus Käyttöliittymän laatu Erityispiirteet Toiminnallisuus Hakujen tehokkuus Navigointi- ja selausominaisuudet Sovellusalueen erityisominaisuudet Web-sovelluksen laatu Luotettavuus Linkkien virheetön käsittely Virheistä toipuminen Käyttäjän antaman tiedon validointi Tehokkuus Vasteaika Sivun luonti Grafiikan lataus Ylläpidettävyys Korjauksen helppous Sovitettavuus Laajennettavuus (vain siirrettävyys laatuominaisuus puuttuu ISO/IEC 9126 malliin verrattuna) 38
39 näkyvyys jäljitettävyys haettavuus saatavuus kuinka hyvin sivu löytyy latautumisnopeus sivulle pääsyn helppous ymmärrettävyys luettavuus kuuluvuus käsitettävyys oikea & ajanmukainen uskottavuus viehättävyys erilaistaminen eheys paikkansapitävyys navigoitavuus vuorovaikutteisuus miellyttävyys spesialiteetti identiteetti oikeellisuus käypäisyys käyttäjän onnistuminen pyrkimys paras alallaan tarjotun tuotteen esilletulo Verkkosivujen lisälaatutekijät / Fitzpatrick 2000
40 Graafinen (esteettinen) suunnittelu Layoutin suunnittelun ohjeita älä pelkää tyhjää tilaa korosta sisältöä, siksi käyttäjä on sivulla (80% sisältöä, 20% muuta) järjestä sivun elementit ylä-vasemmalta ala-oikealle, käyttäjät lukevat sivua kuten kirjaa ryhmittele navigointi, sisältö ja toiminta sivulla, ihmiset etsivät malleja älä laajenna esitystäsi vierityspalkeilla, tarvittaessa vähennä asiaa tai käytä useampia sivuja suunnittele layout resoluution ja selaimen ikkunakoon mukaan, käytä esitettäville asioille prosenttiarvoja kiinteän koon sijaan 40
41 Arkkitehtuurin suunnittelu Sisällön arkkitehtuuri miten sisältöä kuvaavat oliot (tai olioiden kokoelma, kuten Web sivu) on rakennettu esitystä ja navigointia varten? lineaarinen rakenne: peräkkäinen, mutta voi sisältää myös vaihtoehtoisia polkuja (kysytään ensin tietoja) ritilä/ristikko (grid): jos sisällöstä voidaan tunnistaa ristikko-/ matriisirakenne (esim. kauppapaikka) hierarkia: yleisin, linkitys puumaisesti ja saman tason välillä verkko: linkitys lähes kaikkien komponenttien välillä Sovelluksen arkkitehtuuri miten tuetaan vuorovaikutusta, navigointia ja sisällön esitystä esim. MVC suunnittelumallia voi käyttää Web-sovelluksen rakentamisessa käyttöliittymän, toiminnan ja tiedon erotteluun 41
42 Navigoinnin suunnittelu Jokainen käyttäjä käyttää sovellusta eri tavalla > navigoinnille erilaisia tarpeita Käyttäjän vuorovaikutus sovelluksen kanssa toteutetaan navigointiyksiköillä (navigation semantic unit, NSU) NSU tehdään jokaiselle käyttötapaukselle NSU kertoo, miten toimija etenee (ways of navigation) NSU koostuu solmuista (navigation node, NN) ja niiden välisistä linkeistä linkki 12 NN 2 linkki 24 NN 1 NN 4 linkki 13 NN 3 linkki 34 42
43 Yhteinen käsitteellinen malli, joka kuvaa sovelluksen logiikan NN 1 linkki 12 NN 2 linkki 24 NN 4 linkki 13 NN 3 linkki 34 NN 2 linkki 24 NN 1 linkki 13 linkki 14 NN 3 linkki 34 NN 4 Web-sovellukset, jotka on toteutettu yhteisen mallin eri näkyminä linkki 23 NN 3 NN 4 linkki 34 Käyttöliittymäoliot esittävät navigointisolmut eri esityslaitteilla Kolmitasoinen suunnitteluarkkitehtuuri / Jacyntho, Schwabe, Rossi 2002
44 NSU:n luonti Käyttötapaus: Valitse SafeHome järjestelmän komponentit Web sovellus suosittelee tuotteen komponentteja (kuten ohjauspaneelit, anturit, kamerat) ja muita tarvikkeita (kuten ohjausohjelmisto) jokaiseen huoneeseen tai tilaan. Jos pyydän vaihtoehtoisia ratkaisuja, Web-sovellus tuottaa ne. Voin myös katsella komponenttien ja niiden koosteen hintatietoja. Web-sovellus tuottaa valitsemilleni komponenteille kokonaislaskun. <<navigointilinkki>> kysy vaihtoehto <<navigointilinkki>> valitse huone Huone <<navigointilinkki>> katso KokonaisLaskua <<navigointilinkki>> suosittele komponentit <<navigointilinkki>> <<navigointilinkki>> paluu huoneeseen hanki TuoteKomponentti TuoteKomponentti <<navigointilinkki>> näytä TuoteKomponentti <<navigointilinkki>> näytä kuvaus KokonaisLasku KompKuvaus <<navigointilinkki>> hanki TuoteKomponentti MarkkinointiKuvaus Kaavio TekninenKuvaus Valokuva Video 44
45 Käsitteellinen kaavio (osa) SafeHomeAssured.com kysytään suositeltavaa komponenttia TuoteKomponentti asiakas valitsee komponentin Huone huonenimi koko ikkunat ovet osanumero osanimi osatyyppi kuvaus hinta luouusiosa() annakuvaus() annateknmäär() Anturi Kamera Säädintaulu Ohjelmisto KokonaisLasku tunniste materiaalilista osienmäärä kokonaishinta lisääalkio() tuhoaalkio() editoialkio() nimi() laskehinta() asiakas jatkaa komponenttien valintaa Tilaus tilausnro asiakasinfo KokonaisLasku lähetysinfo laskutusinfo asiakas pyytää toimituksen OsaLasku määrä osanro osanimi osatyyppi hinta lisäälistaan() tuhoalistasta() 45
46 Hypermedia-suunnittelumallit Web-sovelluksiin räätälöityjä Arkkitehtuurimallit sisällön ja sovelluksen arkkitehtuurin sunnitteluun (esim. Java Blueprints, java.sun.com/blueprints) Komponentin rakentamismallit suositeltuja menetelmiä, miten kooste rakennetaan Navigointimallit avustavat NSU:n ja koko navigointivuon suunnittelussa Esitysmallit avustavat esim. sovelluksen käytettävyyden parantamisessa Käyttäytymis/käyttöliittymämallit kuinka parhaiten esitetään käyttäjälle esim. tietyn toiminnan seuraukset, linkin määränpää,... 46
47 HDM 1995 RMM EORM 1996 OOHDM WebML UWE 2002 WUML 2003 OOH WebSA WebRE NDT HDM = Hypermedia Design Model RMM = Relation Management Method EORM = Enhanced Object Relationship Methodology OOHDM = Object-Oriented Hypermedia Design Method UWE = UML-Based Web Engineering WebML = Web Modeling Language NDT = Navigational Development Techniques WebSA = Web Software Architecure WebRE = Metamodel for Web Requirements = navigointiluokat käytössä Web metodologiat / Escalona & Aragon, IEEE Transactions on SE, 2008
48 UWE = UML-Based Web Engineering
49 navigationclass Hypertekstisolmu, jossa käyttäjä käy selailun aikana navigationlink Hyperlinkki, jonka avulla päästään lähtösolmusta kohdesolmuun 49
50 index Käytetään navigointilinkeille, jos assosiaatiossa kertautuminen > 1 menu Käytetään navigointiluokille, jos lähteviä assosiaatioita > 1 query Käytetään navigointiluokan olion valintaan 50
51 {ishome} Sovelluksen alkusolmu (ei tulevia linkkejä) {islandmark} Solmuun voidaan tulla mistä tahansa solmusta (kaikissa muissa solmuissa on linkki tänne) 51
52
53
54
55 55
56 Soveltuvat lait ja pohdiskelun aiheita 1. Suunnittelumallien käyttö johtaa nopeampaan ja parempaan ylläpitoon / hyp_no 4, Gamma 1995 Jos ylläpito on sidoksissa esim. tekijöihin laajennettavuus ja ymmärrettävyys, sivujen 23 ja 25 tulokset eivät vahvista hypoteesia. 56
57 Pohdiskelun aiheita Fowler esittelee oheisessa artikkelissa XP-menetelmän tuomia muutoksia suunnitteluprosessiin. Miten esim. YAGNI periaate sopii XP-menetelmään? Miten refaktorointi ja YAGNI sopivat yhteen? Miten suunnittelumalleja (design pattern) tulisi käyttää XP-menetelmän mukaisessa kehittämisessä? Mitä ohjeita Fowler antaa UML kuvausten käyttämiselle XP-menetelmän yhteydessä? Fowler M., Is Design Dead? ( designdead.html)
58 Pohdiskelun aiheita Hahmottele (voit piirrellä paperille kynällä) UWE navigointikaaviolla (esitelty luennoilla, materiaalia löytyy WebOodin käytön jokin toiminta, esimerkiksi listaus suorituksista. Kuvaa kaikki vaiheet TOL:n pääsivulta lähtien. Olet suunnittelemassa nettikauppa.com nimistä tietotekniikka/viihde-elektroniikkakauppaa webiin. Mieti miten toteutat Olsinan ja Fitzpatrickin laatutekijät sovellukseesi.
Luento 8. Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila
Luento 8 Luku 12: Mallipohjainen (pattern-based) suunnittelu suunnittelumallit malliperustainen suunnittelu arkkitehtuurimallit käyttöliittymän suunnittelumallit kehykset Luku 13: Web-sovelluksen suunnittelu
LisätiedotOhjelmistotekniikka: Luento 7 Jouni Lappalainen
Ohjelmistotekniikka: Luento 7 Jouni Lappalainen Luku 12: Mallipohjainen (pattern-based) suunnittelu suunnittelumallit malliperustainen suunnittelu arkkitehtuurimallit käyttöliittymän suunnittelumallit
Lisätiedothttp://www.enteract.com/~bradapp/docs/patterns-intro.html http://www.hillside.net/patterns/
5. Suunnittelumallit Suunnittelumallin käsite Suunnittelumallien hyötyjä Suunnittelumallien kuvaaminen Esimerkki: Rekursiokooste Antisuunnittelumallit Suunnittelumallit ja UML Mallikielet Suunnittelumallit
LisätiedotKäytettävyyslaatumallin rakentaminen verkkosivustolle
Käytettävyyslaatumallin rakentaminen verkkosivustolle Tapaus kirjoittajan ABC-kortti Oulun yliopisto tietojenkäsittelytieteiden laitos pro gradu -tutkielma Timo Laapotti 9.6.2005 Esityksen sisältö Kirjoittajan
LisätiedotOhjelmistotekniikan menetelmät, suunnittelumalleja
582101 - Ohjelmistotekniikan menetelmät, suunnittelumalleja 1 Suunnittelumallit (design patterns) Kuvaus sellaisesta luokkarakenteesta & olioiden vuorovaikutuksesta, joka ratkaisee tietyn yleisen ongelman
LisätiedotOhjelmistoarkkitehtuurit kevät
Ohjelmistoarkkitehtuurit Kevät 2011-2012 Johannes Koskinen http://www.cs.tut.fi/~ohar/ 5. Suunnittelumallit Suunnittelumallin käsite Suunnittelumallien hyötyjä Suunnittelumallien kuvaaminen Esimerkki:
LisätiedotOhjelmistojen suunnittelu
Ohjelmistojen suunnittelu 581259 Ohjelmistotuotanto 154 Ohjelmistojen suunnittelu Software design is a creative activity in which you identify software components and their relationships, based on a customer
LisätiedotKehyspohjainen ohjelmistokehitys
Kehyspohjainen ohjelmistokehitys Sovellusalueen käsitemalli, piirremalli Yhteiset vaatimukset Kehyksen suunnittelu Suunnittelumallit Vaatimusmäärittely Muunneltavuusvaatimukset Kehysarkkitehtuuri Erikoistamisrajapinta
LisätiedotT SEPA - päiväkirja: Design Patterns. ETL työkalu
T-76.115 SEPA - päiväkirja: Design Patterns ETL työkalu Versio Päivämäärä Tekijä Kuvaus 1.0 25.10.2004 Jani Honkanen PP-vaiheen jälkeinen versio 1,1 26.11.2004 Mika Suvanto I1- vaiheen kokemuksia lisätty
Lisätiedot5. Suunnittelumallit. TTY Ohjelmistotekniikka
5. Suunnittelumallit Suunnittelumallin käsite Suunnittelumallien hyötyjä Suunnittelumallien kuvaaminen Antisuunnittelumallit Esimerkki: Rekursiokooste Suunnittelumallit ja kehykset Suunnittelumallit ja
LisätiedotOhjelmistotekniikka - Luento 2 Jouni Lappalainen
Ohjelmistotekniikka - Luento 2 Jouni Lappalainen Luku 2: Prosessimallit - miten spiraalimalliin päädyttiin - spiraalimallista (R)UP malliin - oman ammattitaidon kehittäminen; PSP ja TSP mallit 1 Luento
LisätiedotOhjelmistotekniikka - Luento 2
Ohjelmistotekniikka - Luento 2 Luku 2: Prosessimallit - miten spiraalimalliin päädyttiin - spiraalimallista (R)UP malliin - oman ammattitaidon kehittäminen; PSP ja TSP mallit 1 Luento 2: Prosessimallit
LisätiedotOhjelmistojen mallintaminen, mallintaminen ja UML
582104 Ohjelmistojen mallintaminen, mallintaminen ja UML 1 Mallintaminen ja UML Ohjelmistojen mallintamisesta ja kuvaamisesta Oliomallinnus ja UML Käyttötapauskaaviot Luokkakaaviot Sekvenssikaaviot 2 Yleisesti
Lisätiedot812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton
2015 syksy 2. vsk IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton Sisältö 1. Johdanto luontimalleihin 2. Proxy 3. Factory Method 4. Prototype 5. Singleton Suunnittelumallit Proxy et.
LisätiedotOlio-ohjelmointi Johdanto suunnittelumalleihin. 1. Yleistä
Olio-ohjelmointi Johdanto suunnittelumalleihin Hyvin toimivan olio-ohjelmointiparadigmaa noudattavan ohjelman suunnitteleminen ei ole helppo tehtävä. On löydettävä sopiva luokkarakenne kuvaamaan ratkaistavaa
LisätiedotTarjolla tänään: Sanastoa Koneenohjausjärjestelmien suunnittelumallit. Pattern Architecture Style. GoF. Design pattern
Koneenjärjestelmien suunnittelumallit Ohjelmistoarkkitehtuurit 9.2. 2012 Veli-Pekka Eloranta Tarjolla tänään: Suunnittelumallit Sanastoa Taustaa Kuvaustavat Mallikielet Työkoneet sovellusalueena Miksi
LisätiedotTIE-20200 Ohjelmistojen suunnittelu
TIE-20200 Ohjelmistojen suunnittelu Luento 1: Virtuaalifunktiot, Template method 1 Yleistä asiaa Muistakaa harkkatyöilmoittautuminen 23 ryhmää (mm. lihansyöjäkirahvi), vajaita ryhmiäkin on 44 henkeä vielä
Lisätiedot12. Kehysarkkitehtuurit
12. Kehysarkkitehtuurit Johdanto Kehystyypit Kehysten osittaminen Kehykset ja suunnittelumallit Kehysten etuja ja ongelmia Yhteenvetoa Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 1 Johdanto
LisätiedotT SEPA - päiväkirja: Design Patterns. ETL työkalu
T-76.115 SEPA - päiväkirja: Design Patterns ETL työkalu Versio Päivämäärä Tekijä Kuvaus 1.0 25.10.2004 Jani Honkanen PP-vaiheen jälkeinen versio 1,1 26.11.2004 Mika Suvanto I1- vaiheen kokemuksia lisätty
LisätiedotCopyright by Haikala. Ohjelmistotuotannon osa-alueet
Copyright by Haikala Ohjelmistotuotannon osa-alueet Ohjelmiston elinkaari 1. Esitutkimus, tarvekartoitus, kokonaissuunnittelu, järjestelmäsuunnittelu (feasibility study, requirement study, preliminary
LisätiedotOhjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus
Yhteenveto Ohjelmistotuotanto vs. muut insinööritieteet Monimutkaisuus Näkymättömyys (Usein näennäinen) luotettavuus ja edullisuus Muunnettavuus Epäjatkuvuus virhetilanteissa Skaalautumattomuus Copyright
LisätiedotHirviö. Design Patterns
Hirviö SEPA-päiväkirja Design Patterns Anssi Kalliolahti Liia Sarjakoski 8. helmikuuta 2005 1 Sisältö 1 Johdanto 3 2 Menetelmän käytäntöön soveltaminen 3 3 Kokemuksia ja muutoksia 3 3.1 PP..........................................
Lisätiedot812347A Olio-ohjelmointi, 2015 syksy 2. vsk. VI Johdanto suunnittelumalleihin
2015 syksy 2. vsk VI Johdanto suunnittelumalleihin Sisältö 1. Taustaa 2. Model View - Controller 3. Suunnittelumallin kuvaamisesta 4. Tavoitteita 5. Suunnitteluongelmien suhde malleihin 6. Suunnittelumallien
LisätiedotSisällys. Ratkaisumallien historia. Ratkaisumalli. Ratkaisumalli [2] Esimerkki: Composite [2] Esimerkki: Composite. Jaakko Vuolasto 25.1.
Sisällys Ratkaisumallien historia Jaakko Vuolasto 25.1.2001! Ratkaisumalli! Christopher Alexander! Ohjelmistotuotannosta arkkitehtuuriin! Henkilöhistoriaa! Ensimmäisiä käyttökokemuksia! Yhteenveto 25.1.2001
LisätiedotInteraktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.
Malli-näkym kymä-ohjain arkkitehtuurit (Model-View View-Controller, MVC) Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta. Lähtökohdat: Sovelluksen
Lisätiedot5. Suunnittelumallit. TTY Ohjelmistotekniikka
5. Suunnittelumallit Suunnittelumallin käsite Suunnittelumallien hyötyjä Suunnittelumallien kuvaaminen Antisuunnittelumallit Esimerkki: Rekursiokooste Suunnittelumallit ja kehykset Suunnittelumallit ja
LisätiedotSuunnitteluvaihe prosessissa
Suunnittelu Suunnitteluvaihe prosessissa Silta analyysin ja toteutuksen välillä (raja usein hämärä kumpaankin suuntaan) Asteittain tarkentuva Analyysi -Korkea abstraktiotaso -Sovellusläheiset käsitteet
LisätiedotHirviö. Design Patterns
Hirviö SEPA-päiväkirja Design Patterns Anssi Kalliolahti Liia Sarjakoski 15. maaliskuuta 2005 1 Sisältö 1 Johdanto 3 2 Menetelmän käytäntöön soveltaminen 3 3 Kokemuksia ja muutoksia 3 3.1 PP..........................................
LisätiedotPohdiskelujen aiheita study group työskentelyyyn Luento 1:
1 Pohdiskelujen aiheita study group työskentelyyyn Luento 1: Miten ohjelmistojen korjaamisen aiheuttamaa "rapistumista" voidaan välttää? Tee yhteenveto Hookerin seitsemästä periaatteesta ja esitä tiivistelmä
LisätiedotHieman lisää malleista ja niiden hyödyntämisestä
Hieman lisää malleista ja niiden hyödyntämisestä Ohjelmistojen mallintaminen Kesä 2012 (Avoin yliopisto) Toni Ruokolainen, 23.8.2012 Mallit Mallit ovat todellisuuden abstraktioita, jotka on muodostettu
LisätiedotOhjelmistojen mallintaminen, kesä 2010
582104 Ohjelmistojen mallintaminen, kesä 2010 1 Ohjelmistojen mallintaminen Software Modeling Perusopintojen pakollinen opintojakso, 4 op Esitietoina edellytetään oliokäsitteistön tuntemus Ohjelmoinnin
LisätiedotTIE-20200 Ohjelmistojen suunnittelu
TIE-20200 Ohjelmistojen suunnittelu Luento 1: Virtuaalifunktiot, Template method 1 Seuraavaksi tarjolla: Otekn-asiaa vähän pintaa syvemmältä Virtuaalifunktiot ja erikoistaminen, olioiden kopiointi ja elinaika
LisätiedotOliosuunnittelu. Oliosuunnittelu
Oliosuunnittelu Perinnän ja dynaamisen sidonnan hyödyntäminen Tarkastellaan ohjelmaa, jonka tehtävänä on tuottaa erilaisista kuvioista muodostuva kuvaesitys Ratkaisu 1: perinteinen malli - ei perintää
LisätiedotOhjelmistokehykset ohjelmistorunkoja uudelleenkäyttö olioperustaisista ohjelmistorunko
Ohjelmistokehykset Määritelmä & tavoitteet, taustaa & peruskäsitteitä, kehykset vs. suunnittelumallit, erikoistamisrajapinnat & kontrollinkulku, kehystyypit, kehysten rakenne ja evoluutio, esimerkki: JHotDraw,
LisätiedotHarjoitustehtävät ja ratkaisut viikolle 48
Harjoitustehtävät ja ratkaisut viikolle 48 1. Tehtävä on jatkoa aiemmalle tehtävälle viikolta 42, missä piti suunnitella älykodin arkkitehtuuri käyttäen vain ennalta annettua joukkoa ratkaisuja. Tämäkin
LisätiedotOhjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja
582104 Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja 1 Arkkitehtuurisuunnittelu Ohjelmistoarkkitehtuurin määritelmä & arkkitehtuurisuunnittelun lähtökohta ja tavoitteet Kerrosarkkitehtuuri
LisätiedotOhjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1
3. Komponentit ja rajapinnat 3.1 Komponenttien idea: ohjelmistotuotannon rationalisointi 3.2 Mikä on ohjelmistokomponentti? 3.3 Komponentit ohjelmistoyksikköinä 3.4 Rajapinnat 3.6 Komponenttien räätälöinti
LisätiedotOhjelmistotuotanto. Luento 9 23.4.2012
Ohjelmistotuotanto Luento 9 23.4.2012 Lisää suunnittelumalleja Olion rikastaminen dekoraattorilla Joskus eteen tulee tarve lisätä olioon jotain ekstraominaisuuksia, pitäen kuitenkin olio sellaisena että
LisätiedotInteraktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.
Malli-näkym kymä-ohjain arkkitehtuurit (Model-View View-Controller, MVC) Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta. Lähtökohdat: Sovelluksen
LisätiedotTietojärjestelmän osat
Analyysi Yleistä analyysistä Mitä ohjelmiston on tehtävä? Analyysin ja suunnittelun raja on usein hämärä Ei-tekninen näkökulma asiakkaalle näkyvien pääkomponenttien tasolla Tietojärjestelmän osat Laitteisto
LisätiedotAnalyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio
Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio Analyysi Tarkentaa ja jäsentää vaatimusmäärittelyä, vastaa kysymykseen MITÄ järjestelmän tulisi tehdä. Suoritetaan seuraavia
LisätiedotOhjelmistojen mallintaminen, suunnittelumalleja
582104 Ohjelmistojen mallintaminen, suunnittelumalleja 1 Suunnittelumallit (design patterns) Kuvaus sellaisesta luokkarakenteesta & olioiden vuorovaikutuksesta, joka ratkaisee tietyn yleisen ongelman tiettyjen
LisätiedotOhjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit
Ohjelmiston testaus ja laatu Ohjelmistotekniikka elinkaarimallit Vesiputousmalli - 1 Esitutkimus Määrittely mikä on ongelma, onko valmista ratkaisua, kustannukset, reunaehdot millainen järjestelmä täyttää
LisätiedotSuunnittelumalleja, MVC. Juha Järvensivu 2008
Suunnittelumalleja, MVC Juha Järvensivu juha.jarvensivu@tut.fi 2008 Sisältö Tarkkailija Strategia Rekursiokooste Tehdas-metodi MVC Tarkkailija suunnittelumalli Tarkkailijamalli (Observer) Määrittelee olioiden
LisätiedotAnalyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio
Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio Analyysi Tarkentaa ja jäsentää vaatimusmäärittelyä, vastaa kysymykseen MITÄ järjestelmän tulisi tehdä. Suoritetaan seuraavia
LisätiedotOhjelmistoarkkitehtuurit
Ohjelmistoarkkitehtuurit 2012-2013 22.1.2013 1 5. Suunnittelumallit Suunnittelumallin käsite Suunnittelumallien hyötyjä Suunnittelumallien kuvaaminen Esimerkki: Rekursiokooste Antisuunnittelumallit Suunnittelumallit
Lisätiedot812347A Olio-ohjelmointi, 2015 syksy 2. vsk. VII Suunnittelumallit Adapter ja Composite
2015 syksy 2. vsk VII Suunnittelumallit Adapter ja Composite Sisältö 1. Johdanto rakennemalleihin 2. Adapter (Sovitin) 3. Composite (Rekursiokooste) Suunnittelumallit Adapter ja Composite 2 VII.1 Johdanto
LisätiedotSunnittelumallit Harjoitustehtävät syksy 2015 / Simo Silander
Sunnittelumallit Harjoitustehtävät syksy 2015 / Simo Silander Ohjelmointitehtävät koodataan pääsääntöisesti Javalla. Netistä löytyviä vapaasti käytettäviä ratkaisuja voi esittää, kunhan ne osaa selittää.
LisätiedotMalliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki
Malliperustainen ohjelmistokehitys - MDE 25.9.2007 Pasi Lehtimäki MDE Miksi MDE? Mitä on MDE? MDA, mallit, mallimuunnokset Ohjelmistoja Eclipse, MetaCase Mitä jatkossa? Akronyymiviidakko MDE, MDA, MDD,
Lisätiedot812347A Olio-ohjelmointi, 2015 syksy 2. vsk. VIII Suunnittelumallit Observer ja State
2015 syksy 2. vsk VIII Suunnittelumallit Observer ja State Sisältö 1. Johdanto käyttäytymismalleihin 2. Observer 3. State Suunnittelumallit Observer ja State 2 VIII.1 Johdanto käyttäytymismalleihin Päätarkoitus
LisätiedotOliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä
Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Matti Luukkainen 10.12.2009 Tässä esitetty esimerkki on mukaelma ja lyhennelmä Robert Martinin kirjasta Agile and Iterative Development löytyvästä
LisätiedotOhjelmistojen mallintaminen, kesä 2009
582104 Ohjelmistojen mallintaminen, kesä 2009 1 Ohjelmistojen mallintaminen Software Modeling Perusopintojen pakollinen opintojakso, 4 op Esitietoina edellytetään oliokäsitteistön tuntemus Ohjelmoinnin
LisätiedotHELIA 1 (14) Outi Virkki Käyttöliittymät ja ohjlmiston suunnittelu
HELIA 1 (14) Luento 7 Käyttöliittymäolio... 2 Olioajattelun perusteet... 3 Tavoitteet... 3 Peruskäsitteet... 4 Olio / Olioinstanssi / Olion esiintymä... 4 Ominaisuudet... 4 Toiminnot... 4 Olioluokka /
LisätiedotSisäänrakennettu tietosuoja ja ohjelmistokehitys
Sisäänrakennettu tietosuoja ja ohjelmistokehitys Petri Strandén 14. kesäkuuta, 2018 Petri Strandén Manager Cyber Security Services Application Technologies Petri.stranden@kpmg.fi Petri vastaa KPMG:n Technology
LisätiedotSEPA - Design Patterns
SEPA - Design Patterns Kimmo Karlsson, 51066R & Antti Pirinen, 51406N 15. maaliskuuta 2005 1 Sisältö 1. Sisältö 2. Johdanto 3. Käyttöönotto 4. Käyttökokemukset 2 Johdanto Valitsemamme ohjelmistonkehityskäytäntö
Lisätiedot4.12.2005. SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T
SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T SEPA: REFAKTOROINTI 2 (9) SEPA: REFAKTOROINTI 3 (9) VERSIOHISTORIA Version Date Author Description 0.1 2.12.2005 Erik Hakala Ensimmäinen
LisätiedotOhjelmistotekniikan menetelmät, kesä 2008
582101 - Ohjelmistotekniikan menetelmät, kesä 2008 1 Ohjelmistotekniikan menetelmät Methods for Software Engineering Perusopintojen pakollinen opintojakso, 4 op Esitietoina edellytetään oliokäsitteistön
LisätiedotKehyksillä toteuttettujen tuotelinjojen rakenteellinen optimointi
Kehyksillä toteuttettujen tuotelinjojen rakenteellinen optimointi Pietu Pohjalainen Geneerinen metaohjelmointi Syksy 2004 Tietojenkäsittelytieteen laitos Helsingin yliopisto Esityksen sisältö Oliopohjaiset
Lisätiedot13/20: Kierrätys kannattaa koodaamisessakin
Ohjelmointi 1 / syksy 2007 13/20: Kierrätys kannattaa koodaamisessakin Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy
LisätiedotAnalyysi on tulkkaamista
Analyysi on tulkkaamista Petri: Pitää osata menetelmiä, arkkitehtuureja, suunnittelumalleja, eli miten [ohjelmistoja] ylipäänsä kehitetään. Pitää olla viestintätaitoja. Perttu: Pitää ymmärtää miten projekti
LisätiedotOhjelmistoarkkitehtuuri
Ohjelmistoarkkitehtuurien ylläpito Arkkitehtuurityylejä ja laatuvaatimuksia Arkkitehtuurin uudistaminen Arkkitehtuurin uudistamisen malleja Arkkitehtuurin arviointi TTY Ohjelmistotekniikka 1 Ohjelmistoarkkitehtuuri
LisätiedotOhjelmistoarkkitehtuurit. Kevät
Ohjelmistoarkkitehtuurit Kevät 2012-2013 Johannes Koskinen http://www.cs.tut.fi/~ohar/ Tervetuloa Oulun yliopisto, Tampereen yliopisto, Turun yliopisto, Tampereen teknillinen yliopisto 2 Kurssin tavoitteet
LisätiedotKäytettävyys verkko-opetuksessa Jussi Mantere
Käytettävyys verkko-opetuksessa 21.8.2002 Jussi Mantere Mitä käytettävyys on? Learnability (opittavuus) Efficiency (tehokkuus) Memorability (muistettavuus) Errors prevented (virheiden tekeminen estetty)
LisätiedotOhjelmistojen mallintaminen
Ohjelmistojen mallintaminen - Mallit - Ohjelmiston kuvaaminen malleilla 31.10.2008 Harri Laine 1 Malli: abstraktio jostain kohteesta Abstrahointi: asian ilmaiseminen tavalla, joka tuo esiin tietystä näkökulmasta
LisätiedotSEPA päiväkirja. Aihe: Suunnittelumallit Tekijät: Tuukka Laakso ja Antti Kettunen
SEPA päiväkirja Aihe: Suunnittelumallit Tekijät: Tuukka Laakso ja Antti Kettunen 1. Johdanto...3 2. Menetelmän käyttö...4 3. Kokemukset ja muutokset...5 1. Johdanto SEPAn aiheenamme meillä on suunnittelumallit
LisätiedotTenttikysymykset. + UML- kaavioiden mallintamistehtävät
Tenttikysymykset 1. Selitä mitä asioita kuuluu tietojärjestelmän käsitteeseen. 2. Selitä kapseloinnin ja tiedon suojauksen periaatteet oliolähestymistavassa ja mitä hyötyä näistä periaatteista on. 3. Selitä
LisätiedotTOIMINNALLINEN MÄÄRITTELY MS
TOIMINNALLINEN MÄÄRITTELY 11.11.2015 MS YLEISTÄ 1/2 jäsennelty etenee yleiskuvauksesta yksityiskohtiin kieliasultaan selkeä kuvaa myös tulevan järjestelmän ympäristöä tarpeellisella tarkkuudella kuvaa
LisätiedotOleelliset vaikeudet OT:ssa 1/2
Oleelliset vaikeudet OT:ssa 1/2 Monimutkaisuus: Mahdoton ymmärtää kaikki ohjelman tilat Uusien toimintojen lisääminen voi olla vaikeaa Ohjelmista helposti vaikeakäyttöisiä Projektiryhmän sisäiset kommunikointivaikeudet
LisätiedotITK130 Ohjelmistojen luonne
ITK130 Ohjelmistojen luonne Luennon sisältö Ohjelmistotekniikka ja vaatimukset Ohjelmistotuote Ei-toiminnallisten vaatimusten luokittelu Sisäiset ja ulkoiset vaatimukset Oikeellisuus Luotettavuus Kestävyys
Lisätiedot10. Tuoterunkoarkkitehtuurit
10. Tuoterunkoarkkitehtuurit Johdanto Näkökulmat tuoterunkoihin perustuvaan ohjelmistokehitykseen: liiketoiminta, organisaatio, prosessi, tekninen Tuoterunkojen etuja ja ongelmia 1 Uudelleenkäytt yttö
LisätiedotTestaaminen ohjelmiston kehitysprosessin aikana
Testaaminen ohjelmiston kehitysprosessin aikana 04.02.2004 http://cs.joensuu.fi/tsoft/ Sisällys 1. Johdanto 2. Yksikkö- ja integrointitestaus 3. Järjestelmätestaus 4. Hyväksymistestaus http://cs.joensuu.fi/tsoft/
LisätiedotOhjelmistojen mallintaminen, mallinnustekniikat käytännössä
582104 Ohjelmistojen mallintaminen, mallinnustekniikat käytännössä 1 Sisältö Oliomenetelmien taustaa Kirjastojärjestelmän käyttötapaukset Kirjastojärjestelmän luokkamalli 2 Oliosuuntautunut suunnittelumenetelmä
LisätiedotOhjelmistotekniikan menetelmät, UML
582101 - Ohjelmistotekniikan menetelmät, UML 1 Sisältö DFD- ja sidosryhmäkaavioiden kertaus Oliomallinnus UML:än kaaviotyypit 2 Tietovuokaaviot Data flow diagrams, DFD Historiallisesti käytetyin kuvaustekniikka
LisätiedotOhjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista
582101 - Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista 1 Ohjelmistotuotannon työkaluuista Projektinhallintatyökalut (ei käsitellä tällä kurssilla) CASE- ja mallinnustyökalut (esim. Poseidon)
LisätiedotHELIA 1 (17) Outi Virkki Käyttöliittymät ja ohjelmiston suunnittelu 2.11.2000
HELIA 1 (17) Luento 6 Tyyliopas... 2 Käytön tuki... 2 Suunnittelun ja toteutuksen tuki... 3 Ohjeiden hierarkia... 4 Viralliset standardit... 4 Käytännön standardit... 4 Yrityskohtaiset standardit... 4
LisätiedotHELIA 1 (8) Outi Virkki Tietokantasuunnittelu
HELIA 1 (8) Luento 1 Johdatusta tietokannan suunnitteluun... 2 Tietokantasuunnittelu?... 2 Tietokanta?... 2 Tieto?... 2 Tietokantasuunnittelun tavoite, v.1... 2 Luotettavuus?... 3 Tietokantasuunnittelun
LisätiedotOhjelmistotekniikan menetelmät, kevät 2008
582101 - Ohjelmistotekniikan menetelmät, kevät 2008 1 Ohjelmistotekniikan menetelmät Methods for Software Engineering Perusopintojen pakollinen opintojakso, 4 op Esitietoina edellytetään oliokäsitteistön
LisätiedotOhjelmistotekniikan menetelmät, toteutuksesta ja testauksesta
582101 - Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta 1 Toteutuksesta ja testauksesta Suunnitteluprosessista Tarkan tason luokkasuunnittelu Siirtyminen UML-kaavioista Java-toteutukseen
LisätiedotTarjolla tänää: Ohjelmiston toteutuksesta. Kuinka tulla hyväksi ohjelmoijaksi? CRC-kortit. Testilähtöinen kehittäminen JOT2007. Uudelleenrakentaminen
Tarjolla tänää: Ohjelmiston toteutuksesta JOT2007 CRC-kortit Testilähtöinen kehittäminen Uudelleenrakentaminen Voisiko ohjelmointi olla sittenkin suunnittelua? Kuinka tulla hyväksi ohjelmoijaksi? CRC-kortit
Lisätiedot9. Muunneltavuuden hallinta
9. Muunneltavuuden hallinta Muunneltavuuden hallinta (Variability management): Tekniikat ja työtavat, jotka auttavat kuvaamaan, toteuttamaan ja hyödyntämään tuoterungon mahdollistamaa ohjelmistotuotteiden
LisätiedotXPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy
IBM Collaboration Forum ٨.٣.٢٠١١ XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy ٢٠١١ IBM Corporation Domino-sovelluskehitys Nopea kehitysympäristö (Rapid application development,
LisätiedotUudelleenkäytön jako kahteen
Uudelleenkäyttö Yleistä On pyritty pääsemään vakiokomponenttien käyttöön Kuitenkin vakiokomponentit yleistyneet vain rajallisilla osa-alueilla (esim. windows-käyttöliittymä) On arvioitu, että 60-80% ohjelmistosta
LisätiedotOhjelmistojen mallinnus Ohjelmistoarkkitehtuuri Harri Laine 1
Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri 2 28.11.2008 Harri Laine 1 Ohjelmistoarkkitehtuuri Rajapinta UML:ssä piirteiden (attribuuttien ja operaatioiden) kokoelma, josta ei voi suoraan luoda ilmentymiä
LisätiedotViestinvälitysarkkitehtuurit
Viestinvälitysarkkitehtuurit Lähtökohta: Järjestelmä koostuu keskenään kommunikoivista komponenteista, mahdollisesti hajautettuja Komponenttien palveluja ei tiedetä tarkasti etukäteen Komponentteja ja
Lisätiedot$$$ Raha ratkaisee. $$$ Raha ratkaisee. Ohjelmistotuote. Ohjelmistotekniikan määritelmä
$$$ Raha ratkaisee On vaara rakastua tekniikkaan, myös asiakkailla Kaikki pitää pystyä perustelemaan taloudellisesti Projektin toteutus yleensä -> voidaan jättää toteuttamatta, jos ei maksa itseään takaisin
Lisätiedotohjelman arkkitehtuurista.
1 Legacy-järjestelmällä tarkoitetaan (mahdollisesti) vanhaa, olemassa olevaa ja käyttökelpoista ohjelmistoa, joka on toteutettu käyttäen vanhoja menetelmiä ja/tai ohjelmointikieliä, joiden tuntemus yrityksessä
Lisätiedotkäyttötapaukset mod. testaus
käyttötapaukset Jari Ojasti Nokia email : jari.ojasti@nokia.com puh : 040 5926 312 Kartta hyväksyntä määrittely suunnittelu suunnittelu mod. testaus integrointi sys. testaus Ylläpito koodaus (toteutus)
LisätiedotOhjelmistojen mallintaminen kertausta Harri Laine 1
kertausta 5.12.2008 Harri Laine 1 Ohjelmiston elinkaari, elinkaarimallit Yleinen puitemalli (reference model) - abstrakti kokonaiskuva ei etenemiskontrollia, ei yksityiskohtia Ohjelmistoprosessimallit
LisätiedotOsittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit
6. Arkkitehtuurityylit Osittavat arkkitehtuurityylit Kerrosarkkitehtuurit Tietovuoarkkitehtuurit Palveluihin perustuvat arkkitehtuurityylit Asiakas-palvelin arkkitehtuurit Viestinvälitysarkkitehtuurit
LisätiedotOhjelmistojen mallintaminen. Luento 11, 7.12.
Ohjelmistojen mallintaminen Luento 11, 7.12. Viime viikolla... Oliosuunnittelun yleiset periaatteet Single responsibility eli luokilla vain yksi vastuu Program to an interface, not to concrete implementation,
LisätiedotUML- mallinnus: Tilakaavio
UML- mallinnus: Tilakaavio Karkea kuvaus UML- kaavioiden käytöstä ohjelmistonkehityksen eri vaiheissa ja tehtävissä. Mallinnus tilakaavioilla Tilakaaviolla kuvataan yhden luokan olioiden tilan muuttumista
LisätiedotOhjelmistojen mallintaminen, kurssikoe esimerkkivastauksia
Ohjelmistojen mallintaminen, kurssikoe 15.12. esimerkkivastauksia Tehtävä 1 a: Ohjelmistotuotantoprosessi sisältää yleensä aina seuraavat vaiheet: määrittely, suunnittelu, toteutus, testaus ja ylläpito.
LisätiedotKurssin aihepiiri: ohjelmistotuotannon alkeita
Kurssin aihepiiri: ohjelmistotuotannon alkeita [wikipedia]: Ohjelmistotuotanto on yhteisnimitys niille työnteon ja työnjohdon menetelmille, joita käytetään, kun tuotetaan tietokoneohjelmia sekä monista
LisätiedotSaavutettavuus > Tapio Haanperä Saavutettavuusasiantuntija tel
Saavutettavuus > Tapio Haanperä Saavutettavuusasiantuntija tel. 0505588666 www.papunet.net/saavutettavuus GOOD DESIGN ENABLES BAD DESIGN DISABLES WCAG 2.x - Verkkosisällön saavutettavuusohjeet World Wide
LisätiedotOhjelmistoarkkitehtuurit, syksy
Ohjelmistoarkkitehtuurit Tuoteperheet Tuoterunkoarkkitehtuurit Perinteisessä ohjelmistotuotannossa on keskitytty uusien ohjelmistojen laadukkaaseen tuottamiseen Erikoistuneista ainutlaatuisista vaatimuksista
LisätiedotArkkitehtuurien tutkimus Outi Räihä. OHJ-3200 Ohjelmistoarkkitehtuurit. Darwin-projekti. Johdanto
OHJ-3200 Ohjelmistoarkkitehtuurit 1 Arkkitehtuurien tutkimus Outi Räihä 2 Darwin-projekti Darwin-projekti: Akatemian rahoitus 2009-2011 Arkkitehtuurisuunnittelu etsintäongelmana Geneettiset algoritmit
Lisätiedot1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008
1 Johdanto 1.1 Mikä on ohjelmistoarkkitehtuuri? 1.2 Katsaus ohjelmistotuotannon kehittymiseen 1.3 Epäonnistuneen ohjelmistoarkkitehtuurin seurauksia 1.4 Ohjelmistoarkkitehtuuri ja ohjelmistokehitysprosessi
LisätiedotLuento 8. Ohjelmistokehykset Tuoteperheet CSM14101 Ohjelmistoarkkitehtuurit
Ohjelmistoarkkitehtuurit Luento 8 Ohjelmistokehykset Tuoteperheet 19.10.2017 CSM14101 Ohjelmistoarkkitehtuurit 1 OHJELMISTOKEHYKSET 19.10.2017 CSM14101 Ohjelmistoarkkitehtuurit 2 Ohjelmistokehykset (software
Lisätiedot7. Tuoterunkoarkkitehtuurit
7. Tuoterunkoarkkitehtuurit Johdanto Näkökulmat tuoterunkoihin perustuvaan ohjelmistokehitykseen Kerrostyyli tuoterunkoarkkitehtuureille Tuoterunkojen etuja ja ongelmia 1 Uudelleenkäytt yttö opportunistinen:
LisätiedotToiminnot eli käyttäytyminen. Tieto eli rakenteelliset ominaisuudet
Toiminnot eli käyttäytyminen Tieto eli rakenteelliset ominaisuudet Olio (ks. määritelmä): rajattavissa ja yksilöitävissä oleva asia tai käsite, joka on merkityksellinen käsillä olevan tarkastelun kannalta
Lisätiedot