HELIA 1 (14) Outi Virkki Käyttöliittymät ja ohjlmiston suunnittelu

Samankaltaiset tiedostot
Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki

HELIA 1 (17) Outi Virkki Tiedonhallinta

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

HELIA 1 (1) Outi Virkki Käyttöliittymät ja ohjelmiston suunnittelu :04

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Kertaus: yleistys-erikoistus ja perintä

2. Olio-ohjelmoinnin perusteita 2.1

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton

TOIMINNALLINEN MÄÄRITTELY MS

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat

HELIA 1 (20) Outi Virkki Tiedonhallinta

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4

Sisällys. Mitä on periytyminen? Yksittäis- ja moniperiytyminen. Oliot ja perityt luokat. Periytymisen käyttö. 8.2

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Jouni Huotari & Ari Hovi. Käsitemallinnuksesta relaatiokantaan KÄSITEMALLI. LOOGINEN MALLI: tietomalli valittu. FYYSINEN MALLI: DBMS valittu

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. II Johdanto olio-ohjelmointiin

ohjelman arkkitehtuurista.

HELIA 1 (12) Outi Virkki Tiedonhallinta

Tietokannan suunnittelu

TIE Ohjelmistojen suunnittelu. Luento 8..9: moniperintä

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

12. Monimuotoisuus 12.1

Avoimen ja yhteisen rajapinnan hallintamalli

Tietokantojen suunnittelu, relaatiokantojen perusteita

Mitä on periytyminen?

2. Olio-ohjelmoinnin perusteita 2.1

8/20: Luokat, oliot ja APIt

Ohjelmistojen suunnittelu

Ylläpitodokumentti. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Rajapinta (interface)

Ohjelmistojen mallintaminen Luokkakaaviot Harri Laine 1

812341A Olio-ohjelmointi, I Johdanto

Luento 3 Tietokannan tietosisällön suunnittelu

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op

Ohjelmistojen mallintaminen viikon 4 laskareiden mallivastauksia

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

Ohjelmistojen mallintaminen, kesä 2010

Osio 4: Graafinen käyttöliittymä

Luokkakaavion laatiminen

Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia.

HELIA 1 (15) Outi Virkki Käyttöliittymät ja ohjelmiston suunnittelu :28

S11-09 Control System for an. Autonomous Household Robot Platform

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

12. Monimuotoisuus 12.1

Osio 4: Graafinen käyttöliittymä

Antti-Jussi Lakanen Ohjelmointi 1, C# / kevät 2011

13/20: Kierrätys kannattaa koodaamisessakin

SUOMEN KUNTALIITTO RY

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja

Ohjelmistotekniikan menetelmät, kesä 2008

Joskus yleistäminen voi tapahtua monen ominaisuuden pohjalta. Myös tällöin voi tulla moniperintätilanteita.

Tarjolla tänää: Ohjelmiston toteutuksesta. Kuinka tulla hyväksi ohjelmoijaksi? CRC-kortit. Testilähtöinen kehittäminen JOT2007. Uudelleenrakentaminen

Ohjelmistojen mallintaminen, kesä 2009


Uudelleenkäytön jako kahteen

Muutamia peruskäsitteitä

Semanttinen Web. Ossi Nykänen Tampereen teknillinen yliopisto (TTY), DMI / Hypermedialaboratorio W3C Suomen toimisto

Ohjelmoinnin peruskurssien laaja oppimäärä, kevät

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen

Ohjelmistotekniikan menetelmät, UML

Visma Business AddOn Tositteiden tuonti. Käsikirja

UML Luokkakaavio 14:41

7/20: Paketti kasassa ensimmäistä kertaa

Käyttöliittymä ja tuotantokäsikirjoitus. Heini Puuska

HELIA 1 (17) Outi Virkki Käyttöliittymät ja ohjelmiston suunnittelu

GroupDesk Toiminnallinen määrittely

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Paikkatietojen tietotuotemäärittely

Sisällys. JAVA-OHJELMOINTI Osa 6: Periytyminen ja näkyvyys. Luokkahierarkia. Periytyminen (inheritance)

Luokka- ja oliokaaviot

Paikkatietojen tietotuotemäärittely

Muusta kuin vesisioista

Visma Software Oy

Visuaalinen käyttöliittymäanalyysi

3. Käsiteanalyysi ja käsitekaavio

Aalto Yliopisto T Informaatioverkostot: Studio 1. Oliot ja luokat Javaohjelmoinnissa

Olio-ohjelmointi Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton. 1. Proxy (Edustaja)

Verkkopokerijärjestelmä. Loppuraportti Ryhmä Kanat Ohjelmistotuotantoprojekti, syksy 2008

Järjestelmäarkkitehtuuri (TK081702)

Harjoitustehtävät ja ratkaisut viikolle 48

Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta. Hajautuksen hyötyjä

SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T

15. Ohjelmoinnin tekniikkaa 15.1

Olio-ohjelmointi: Luokkien toteuttaminen. Jukka Juslin

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

815338A Ohjelmointikielten periaatteet

KOHDELUOKAN MÄÄRITTELY

TAMK Ohjelmistotekniikka G Graafisten käyttöliittymien ohjelmointi Herkko Noponen Osmo Someroja. Harjoitustehtävä 2: Karttasovellus Kartta

PlanMan Project projektihallintaohjelmisto koulutusohjeistus

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät

HELIA 1 (11) Outi Virkki Käyttöliittymät ja ohjelmiston suunnittelu

Eclipse & WindowBuilder

Transkriptio:

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 / Luokka / Olio... 4 Suhteet... 6 Toimintaideat... 7 1. Abstraktio / Periytyvyys (Abstraction / Inheritance)... 7 2. Suojaus (Encapsulation)... 7 3. Monimuotoisuus (Polymorphism)... 8 Käyttöliittymä ja olioajattelu... 9 Käyttäjän näkökulma... 12 Suunnittelun ja toteutuksen näkökulma... 13 Tehtävä... 14

HELIA 2 (14) Käyttöliittymäolio Lähtökohta: Tietokeskeinen suunnittelu ohjelmakeskeisen suunnittelun sijasta Å Kaikkea käsiteltävää tieto ajatellaan dokumentteina Å.. Olioina Käyttöliittymän tulisi tarjota käyttäjälle ymmärrettävä ja yhdenmukainen kehys työskentelyä varten Käyttäjän tulisi voida keskittyä työhönsä Käyttäjän ei tarvetta huolehtia teknisistä ratkaisuista Å Metaforaksi olio Ä Kaksi erilaista hahmotustapaa! 1. Microsoft: Käyttöliittymässä oliot kuvaavat mitä tahansa informaatioyksikköä: taulukon soluja, kappaleita, merkkejä, kaavioita ja itse dokumentteja, missä ne sijaitsevat 2. Kuitunen & Burman: Käyttöliittymässä oliot kuvaavat kohdemaailman olioita ikkuna tyhjänä olioluokkaa tiedoilla varustettuna olion ilmentymää

HELIA 3 (14) Olioajattelun perusteet Tavoitteet 1. Ylläpidettävyys 2. Uudelleenkäytettävyys Ohjelmistot elävät usein vuosia, jopa vuosikymmeniä Toiminnan, tekniikan tms. muuttuessa sovelluksiin halutaan pieniä / suurempia muutoksia Å Ylläpitotehtävä Ohjelmiston tekijät vaihtavat työpaikkaa, tehtäviä, Dokumentointi jää usein huonoksi Muutoksia on tehty eri aikoina eri ihmisten toimesta Sovellukset voivat olla suuria & monimutkaisia Å Ylläpito-ongelma Ohjelmointityön tuottavuus on huono Ohjelmointi käsityövaltaista; kaikki tehdään alusta uudelleen Ä Ajatus valmiskomponenttien hyödyntämisestä (vrt. rakennusteollisuus) (ja selkeistä, pysyvistä rajapinnoista )

HELIA 4 (14) Peruskäsitteet Olio / Olioinstanssi / Olion esiintymä Olio on olio Käsite, abstraktio tai asia, jolla on selvät rajat ja joka on merkityksellinen tarkasteltavan ongelman kannalta Syntyy tietyn olioluokan jäseneksi Kullakin oliolla on identiteetti, joka on riippumaton kaikista sen ominaisuuksista ja eri kuin kaikilla muilla olioilla kyseisessä ympäristössä. Vrt erisnimet Ominaisuudet Oliolla on ominaisuuksia ja ominaisuuksilla arvoja. Esim. oliolla auto on ominaisuus väri, ja tietyn auton ominaisuuden väri arvo on punainen Toiminnot Mitä oliolle voidaan tehdä tai mitä sillä voi tehdä. Esim. olion kopiointi tai tuhoaminen Olioluokka / Luokka / Olio Joukko samankaltaisia olioita Luokan jäsenillä samankaltaiset ominaisuudet ja toiminnot Vrt. yleisnimet Esim. luokat opiskelija, opettaja, auto, tilaus,

HELIA 5 (14) Suhteet Olioilla on suhteita toisiin olioihin. Suhteet muihin oliohin vaikuttavat usein siihen miten olio käyttäytyy tai miten se näkyy. 1. Tavallinen suhde (association) PONI LAPSI 2. Luokkahierarkia (inheritance) HEPO PONI 3. Kokoelma (aggregation) VALJAKKO PONI KÄRRY Microsoftilla omat suhteet : 1. Collection joukko 2. Constraint rajoitus / vaikutus 3. Composite aggregaatti 4. Container tallentaja

HELIA 6 (14) Toimintaideat 1. Abstraktio / Periytyvyys (Abstraction / Inheritance) Jokainen aliluokka tarjoaa emoluokkansa tiedot ja toiminnot (mutta mahdollisesti uudelleenmääriteltyinä eli emoluokasta jossain määrin poikkeavalla tavalla) Aliluokka voi sisältää uusia tietoja ja toimintoja Kaikkia aliluokan olioita voidaan käsitellä emoluokan esittelemillä operaatioilla Open Closed periaate: Closed / Suljettu : Kun olioluokka on julkaistu sitä ei enää muuteta! Tällä taataan ylläpidettävyys, eli kaikki ko olioluokkaa käyttävät toiminnot voivat käyttää sitä jatkossakin entiseen malliin. Open / Avoin : Olioluokan toimintaa voidaan kehittää / muuttaa tekemällä sen pohjalta aliluokkia, jotka tarjoavat emoluokan tietojen ja toiminnallisuuden lisäksi mahdollisesti jotain muutakin 2. Suojaus (Encapsulation) Olion sisäinen toteutus piilotetaan Olioon tarjotaan vain rajapinta (julkiset toiminnot) joita muut oliot / ohjelmoija voi käyttää Å Sisäistä toteutusta voidaan tarvittaessa muuttaa, kunhan rajapinta ulospäin säilyy samana (so. miten kutsutaan, mitä palauttaa)

HELIA 7 (14) 3. Monimuotoisuus (Polymorphism) Järjestelmässä viitattu kohde selviää tarkasti vasta ajoaikana (ns. myöhäinen sidonta): Esim. (ns. operaatiopolymorfismi) Ollaan määritelty luokka hevonen ja sille aliluokka poni. Ohjelmassa käsitellään hevosta operaatiolla ota_kiinni. Mikäli käsiteltävä hevonen onkin poni, sen kiinniotto poikkeaa muiden hevosten kiinniotosta HEVONEN numero nimi... --------------------- ota_kiinni (x) = lassoa PONI rotu --------------------- ota_kiinni(x) = anna kauraa

HELIA 8 (14) Käyttöliittymä ja olioajattelu Tarkastelun kohteena käyttöliittymän asiakirjaikkuna Asiakirjaikkunassa on 2 keskeistä elementtijoukkoa 1. Tiedot 2. Toiminnot Tiedot esitetään pääasiassa käyttöliittymäikkunan työalueella Toiminnot seitetään vaihtelevammin: Valikkorivin valintoina Työkalurivin ikoneina Komentopainikkeina Olioluokka Määrittelee luokkaan kuuluvien olioiden tietorakenteen ja toiminnot Ikkuna vastaaa käyttöliittymässä olioluokkaa: 1. työalueelta löytyvät tiedot 2. valikkoriviltä (mm.) löytyvät toiminnot l. metodit. Olion ilmentymä olioluokan jäsen, Ikkunassa tietyllä hetkellä käsiteltävänä olevat tiedot vastaavat olion ilmentymää. Ikkunassa on tavallisesti käsiteltävänä vain yhden olion tiedot kerrallaan. Esim. yhden asiakkaan tiedot kerrallaan Käytettävissä on myös muun tyyppisiä ikkunoita, joissa voi esiintyä useamman olion tiedot kerrallaan Å Ns. joukko-olio sisältää tiedot oliojoukosta. Esim ikkunassa saattaa olla monen asiakkaan tiedot

HELIA 9 (14) Käyttäjän näkökulma Käyttäjä näkee olion ainoastaan käyttöliittymän välityksellä Ä Huom: samaa oliota voidaan usein katsella useamman käyttöliittymän (ikkunan) kautta! Käyttöliittymäolion tulee olla tarkoituksenmukaisella tavalla samankaltainen kuin sitä vastaavan todellisuuden olion Kohdetodellisuuden tuntee parhaiten käyttäjä Å Käyttöliittymäolion rajauksen ja määrittelyn on lähdettävä käyttäjän näkökulmasta. Ä monta käyttäjää = monta näkökulmaa! Taloudellisesti ei ole mahdollista tehdä kullekin käyttäjälle omaa sovellusta / käyttöliittymää Integroidaan käyttäjien näkemykset yhteiseksi näkemykseksi, Yhteisen näkemyksen pohjalta voidaan tarvittaessa tehdä muutama versio (aliluokka) eri käyttäjäryhmien erilaisiin tarpeisiin

HELIA 10 (14) Suunnittelun ja toteutuksen näkökulma Suunnittelijan näkökulma: Käyttöliittymäolio on eräs tapa mallintaa käyttöliittymiä suunnitteluvaiheessa. Käyttöliittymäolio on siis termi ja dokumentointiyksikkö, joka on osa laajempaa suunnitelukokonaisuutta Toteuttajan näkökulma Käyttöliittymäoliosta tai niiden joukosta muodostuu itsenäinen sovellusohjelma Käyttöliittymän tietosisällön mallinnusta ei kannata irrottaa koko sovelluksen tietosisällön mallinnuksesta Käyttöliittymän näkökulmasta mielenkiinnon kohteeksi tulevat lisäksi: tiedoille tehtävät toiminnot, tiedon esitysmuoto muut ikkunan visuaaliset elementit ohjeet Kun toimintaa mallinnetaan oliomenetelmällä tulokseksi saadaan sovelluksen oliomalli Käyttöliittymäoliot on pyritty irrottamaan sovelluksen olioista erillisen rajapinnan avulla sovelluksen ylläpidettävyyden ja siirrettävyyden parantamiseksi Sovelluksen oliomallin tuntemus on paras lähtökohta käyttöliittymän suunnittelussa. Sovelluksen oliomalli on luotu käyttäjien antaman tiedon pohjalta.

HELIA 11 (14) Tehtävä Miten kuvaisit Notepadillä käsiteltävää olioluokkaa?