OMT Design System design –design technical environment Object design –design class diagram.

Slides:



Advertisements
Samankaltaiset esitykset
Tuloksellinen Java-ohjelmointi Luku 3 Luokkien käyttäminen
Advertisements

Rajapintaluokat Rajapintaluokka luettelee metodit, joille tulee löytyä toteutus asianomaisen rajapinnan toteuttavista luokista. Rajapintaluokka on siis.
Testaus ja testausympäristöt
Ohjelmistokehitys Viikko 2 Mika Salo Pekka Valtonen Asmo Voutilainen
– Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä.
Koostumussuhde Jukka Juslin © Jukka Juslin.
Ohjelmiston tekninen suunnittelu
12. Monimuotoisuus Sisällys •Johdanto. •Periytymismekanismi määrittää alityypityksen. − Viitteiden sijoitus ja vertailu. •Staattinen ja dynaaminen.
Toimittaja – Sovellusarkkitehtuuritas on pilkkominen Kalle Launiala, ProtonIT Oy
Muutamia käsitteitätMyn1 Muutamia käsitteitä •Perintä (inheritance) on luokkien välinen suhde, jossa johdettu luokka (subclass, derived class) perii kantaluokan,
Luokkakaaviot Luokkakaaviot Tekninen suunnittelu.
Tietojärjestelmät ja Systeemisuunnittelu
Web Services ©Reino Aarinen, Miksi?  Web Services tekniikalla voi muuttaa valmiit sovellukset Web sovelluksiksi.  Sovellus voi julkaista toiminnon.
Tapahtumasekvenssit = Käyttötapausten realisointi
Olio-ohjelmointi. Mitä olio-ohjelmointi on ?  Pyritään mallintamaan jotain reaalimaailman kohdetta tietokoneohjelman avulla  Olio on luokan ilmentymä.
2.8.3 Abstraktit tietotyypit
Tekninen suunnit-telu
Johdetun luokan määrittely tMyn1 Johdetun luokan määrittely •Kun johdettu luokka periytetään kantaluokasta, saadaan kantaluokan jäsenet enemmän tai vähemmän.
1. Olio-ohjelmointi.
13. Pakkaukset.
Ohjelmiston toteutus (teknisestä näkökulmasta)
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Olio-ohjelmoinnin perusteet luento 3
2/2001 Tietojärjestelmät ja Systeemisuunnittelu Luennoitsija: Tapio Lammi
Tietojärjestelmät ja Systeemisuunnittelu
Oliomallittaminen ja UML
SE-02 Olioperustainen ohjelmistokehitys Tampereen yliopisto, syksy 2000 Roope Raisamo perustuu Kai Koskimiehen Oliokirjaan ja kurssin aiempiin materiaaleihin.
Olioperustainen ohjelmistoprosessi
T Personal SE assignment Project progress tracking and control.
2. Vuokaaviot.
Oliosuunnittelu.
© Jukka Harju, Jukka Juslin
1 Kertaus koetta varten oleellisista asioista Jukka Juslin.
Johdatus ohjelmointiin Ohjelmistosuunnittelu Jaana Holvikivi.
Työasemasovelluksen käyttöliittymä sovelluksien käyttöliittymät voidaan jakaa kahteen pääluokkaan: –kohde-toiminto -pohjaisiin (object-action) käyttöliittymiin.
4. Attribuutit 4.1. Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2.
10. Abstrakti luokka Johdanto Abstrakti luokka (abstract class) poikkeaa konkreettisesta luokasta (ei-abstrakti luokka) siten, että siitä ei.
Johdanto Teppo Räisänen, Principal Lecturer Oulu University of Applied Sciences, School of Business and Information Management
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
SE-02 Oliosuunnittelu Slides by Roope Raisamo. SE-02 Yksityiskohtainen suunnittelu Yksityiskohtaisessa suunnittelussa kunkin osan toteutus suunnitellaan.
Uudelleenkäyttö. Yleistä On pyritty pääsemään vakiokomponenttien käyttöön Kuitenkin vakiokomponentit yleistyneet vain rajallisilla osa-alueilla (esim.
OHJELMOINTITAITO ICT02D 12 ECTS. OPINTOJAKSON TOTEUTUS  KESTO: –  AVOIMEN OPISKELIJAT: – YKSI LUOKA (SUOMI) – LUOKKA ICT02O-1.
– Ohjelmistojen mallintaminen, mallintaminen ja UML.
Toteutus. Ohjelmointikielen valinta Käytetään samaa kuin muutkin Työkalujen laatu Usein asiakas määrää Yleensä valittu jo ennen toteutusta Osaaminen vs.
Jouni Juntunen Oulun seudun ammattikorkeakoulu Liiketalouden yksikkö
Johdetun luokan olion esittely... tMyn1 Johdetun luokan olion esittely ja määrittely Esittelyluokka tarkoittaa olion tunnuksen luokkaa. Määrittelyluokka.
Oliot ja luokat Oliot ja luokat Oliot (object) ja luokat (class) ovat keskeisiä olio- ohjelmoinnin käsitteitä. Olio-ohjelmointi on ohjelmointiparadigma,
Vesa Ollikainen & Outi Grotenfelt
11. Rajapinnat Sisällys Mitä rajapinnat ovat? Kuinka ne määritellään ja otetaan käyttöön? Moniperiytyminen rajapintojen avulla. Varoituksen.
– Ohjelmistojen mallintaminen, suunnittelumalleja.
Johdetun luokan olion alustus tMyn1 Johdetun luokan olion alustus määrätyillä arvoilla Kun ohjelmassa esiintyy johdetun luokan olion määrittely, järjestelmä.
Graafinen käyttöliittymä, osa 1
8. Periytyminen Sisällys Mitä on periytyminen? Yksittäis- ja moniperiytyminen. Oliot ja perityt luokat. Periytymisen käyttö.
15. Ohjelmoinnin tekniikkaa
Koostekaavio– composite structure diagram Mikko Näpänkangas.
PHP ja MySQL PHP: Hypertext Preprosessor. PHP, johdanto Komentosarjakieli, joka on suunniteltu dynaamisen sisällön tuottamiseen verkossa PHP on sekä kieli,
2/2001 Tietojärjestelmät ja Systeemisuunnittelu Luennoitsija: Tapio Lammi
Tietojärjestelmät ja Systeemisuunnittelu
2/2001 Tietojärjestelmät ja Systeemisuunnittelu Luennoitsija: Tapio Lammi
Harjoitustyö kurssille Mobile Application Development
11. Rajapinnat.
1. Olio-ohjelmointi.
Rajapintaluokat Rajapintaluokka luettelee metodit, joille tulee löytyä toteutus asianomaisen rajapinnan toteuttavista luokista. Rajapintaluokka on siis.
Muutamia käsitteitä Perintä (inheritance) on luokkien välinen suhde, jossa johdettu luokka (subclass, derived class) perii kantaluokan, perusluokan (superclass,
8. Periytyminen.
Slides by Roope Raisamo
8. Periytyminen.
4. Luokan testaus ja käyttö olion kautta
2. Olio-ohjelmoinnin perusteita
1. Olio-ohjelmointi.
Esityksen transkriptio:

OMT Design System design –design technical environment Object design –design class diagram

OMT System design (Pressman sivut ) Partitioning the analysis model Concurrency and Subsystem allocation Task Management Data Management Resource Management Human-Computer Interface Intersubsystem Communication

Oliopohjainen käyttöliittymän suunnittelu Sisältää sekä ulkoasun että toteutustavan suunnittelun Käyttöliittymän toteutustavan keskeisten ratkaisujen tulisi olla riippumattomia sen ulkoasusta Käyttöliittymän ja sovelluksen välinen kommunikointi tulisi olla käyttöliittymän toteutustavasta riippumaton

Käyttöliittymän suunnittelu Ulkoasun ja toteutustavan suunnittelu Ulkoasun suunnittelu erittäin tärkeä vaihe Toteutustavan tulisi olla riippumaton ulkoasusta

Käyttöliittymän ja sovelluksen välinen kommunikointi MVC -malli (Model-View-Controller) Tarkkailija (Observer) suunnittelumalli –Maailma koostuu subjekteista ja tarkkailijoista. Kullakin subjektilla voi olla mielivaltaisen monta tarkkailijaa, joiden laatua ei subjekti tunne.Aina kun subjekti haluaa muuttaa tilaansa, se ilmoittaa siitä kaikille tarkkailijoilleen, jotka noteeraavat muutoksen kukin tavallaan. Kun tarkkailija haluaa ryhtyä tarkkailemaan jotakin subjekti, se ilmoittautuu tälle. –Subjekti on sovellus, tarkkailija tämän kuva näytöllä. Kun sovelluksen tila muuttuu, kaikille siitä riippuville käyttöliittymäelementeille ilmoitetaan muutoksesta

Käyttöliittymän suunnittelu- Tarkkailija suunnittelumalli Maailmaa koostuu subjekteista ja tarkkailijoista. Kullakin subjektilla voi olla mielivaltaisen monta tarkkailijaa, joiden laatua subjekti ei tunne Aina kun subjekti muuttaa tilansa, se ilmoittaa siitä kaikille tarkkailijoilleen, jotka noteeraavat muutoksen kukin tavallaan Kun tarkkailija haluaa ryhtyä tarkkailemaan jotakin subjektia, se ilmoittautuu tälle

Oliosuunnittelu Tavoitteena täsmentää analyysimallia ottamalla huomioon toteutustekniset näkökohdat, mutta sitoutumatta kuitenkaan vielä tiettyyn toteutusvälineeseen (esim. kieleen) OMT:ssä lisäksi systeemisuunnitteluvaihe (= teknisen toteutusympäristön kiinnittäminen)

Oliosuunnittelun tehtävät Staattinen malli –olioiden esitysmuodon suunnittelu –tehokkuusnäkökohtien huomioon ottaminen –assosiaatioiden suunnittelu –muunneltavuuden lisääminen Dynaaminen malli –käyttöliittymän suunnittelu –operaatioiden suunnittelu –tilakaavioiden suunnittelu

Olioiden esitysmuoto Kaikkia analyysivaiheen luokkakaaviossa olevia luokkia ei välttämättä kannata toteuttaa omina luokkinaan –luokka voidaan esittää käyttäen perustietotyyppejä, esim. Kokonaislukuja –esitetäänkö jokin käsite omana luokkanaan vaiko vain joukkona jonkin toisen luokan attribuutteja

Tehokkuusnäkökohdat Assosiaatioiden vaikutus operaatioiden ja olioihin viittaamisen tehokkuutteen –viittauspolkuja lyhentävät assosiaatiot Johdetut attribuutit tehostavat usein suoritusta, koska niillä vältetään tietyn muista attribuuteista riippuvan tiedon uudelleenlaskenta

Assosiaatioiden suunnittelu Assosiaatiot puretaan toteutuksessa –1:1 suhteet viiteattribuuteiksi –2 tai 3, vastaava määrä viiteattribuutteja –n assosiaatio säiliöolion avulla (hajautettu hakemisto tai indeksoitu rakennne) –m:n erityisen assosiaatioluokan avulla

Muunneltavuuden ja ylläpidettävyyden lisääminen Abstraktit luokat ja virtuaalioperaatiot –voidaanko operaation määrittely antaa siinä luokassa, jossa operaatio esiintyy mallissa, tai onko operaatio tarkoitettu uudelleenmääriteltäväksi aliluokissa –uusia abstrakteja yliluokkia Abstraktit rajapintaluokat ylläpidettävyyden lisäämiseksi

Suunnittelumallit (desing patterns) Tapa suunnitella olio-ohjelmiston osa tietyn usein esiintyvän ongelman ratkaisemiseksi Suunniteluprosessin abstraktiotasoa voidaan nostaa ja kokeneiden ohjelmoijien osaamista siirtää muille –mallit ovat mestarikokin reseptejä :-) Koskee usein muutamia luokkia ja niiden välisiä suhteita; tyypillisesti 3-4 luokkaa Gamma et. al.: Design Patterns Erilaisia malleja: –luontimallit (creational patterns) –rakennemallit (structural patterns) –käyttäytymismallit (behavioral patterns)

Käyttöliittymän suunnittelu Ulkoasun ja toteutustavan suunnittelu Ulkoasun suunnittelu erittäin tärkeä vaihe Toteutustavan tulisi olla riippumaton ulkoasusta

Käyttöliittymän ja sovelluksen välinen kommunikointi MVC -malli (Model-View-Controller) Tarkkailija (Observer) suunnittelumalli –Maailma koostuu subjekteista ja tarkkailijoista. Kullakin subjektilla voi olla mielivaltaisen monta tarkkailijaa, joiden laatua ei subjekti tunne.Aina kun subjekti haluaa muuttaa tilaansa, se ilmoittaa siitä kaikille tarkkailijoilleen, jotka noteeraavat muutoksen kukin tavallaan. Kun tarkkailija haluaa ryhtyä tarkkailemaan jotakin subjekti, se ilmoittautuu tälle. –Subjekti on sovellus, tarkkailija tämän kuva näytöllä. Kun sovelluksen tila muuttuu, kaikille siitä riippuville käyttöliittymäelementeille ilmoitetaan muutoksesta

Operaatioiden suunnittelu Analyysivaiheessa kuvaus muutamalla lauseella Suunnitteluvaiheessa kuvaus täsmennetään niin, että näistä kuvauksista voi suoraviivaisesti tuottaa koodia Operaatiokaavake

Tilakaavioiden suunnittelu Ongelma: tilakaaviolla ei suoraa vastinetta ohjelmointikielissä Operaatiopohjainen toteutus: tilakaavion omaava olio vastaanottaa sanomat synkronisten operaatiokutsujen muodossa Simuloitu tila-automaatti: ohjausolio lukee sanomaa jostakin lähteestä Strukturoitu toteutus: ei erillistä tila-attribuuttia, tilaa vastaa tietty ohjelmakohta

Uudelleenkäytön oliomekanismit Periytyminen (inheritance) –muuntava uudelleenkäyttö (white-box reuse) –ongelmat: staattisuus: perittyjä ominaisuuksia ei voi muuttaa ajonaikana avoimuus: aliluokka näkee yliluokan yksityiskohdatkin

Uudelleenkäytön oliomekanismit Kompositio (Composition) –kokoaa uudelleenkäyttö (black-box reuse) –perustuu olioiden rajapintoihin: niin kauan kuin olioiden rajapinnat säilyy, ne voidaan vaihtaa toisiksi –Hyödyt: modulaarinen tapa helpompaa, tunnetaan vain rajapinnat –Haitat: toteutus vaikeammin ymmärrettävä vähemmän joustava –Komponenttipohjaiset ohjelmistot: Bean, EJB, Corba

Uudelleenkäytön oliomekanismit Delegointi (delegation) –periytymisen toteuttaminen komposition avulla –olio siirtää suorituspyynnön jollekin toiselle oliolle (yliluokkaolio, parent object), jos se ei itse pysty sitä toteuttamaan –etuna tavanomaiseen periytymiseen: olioiden käyttäytymistä voidaan dynaamisesti muuttaa –useissa suunnittelumalleissa sovelletaan delegointia

Sovelluskehykset (application frameworks) Kiinteästi toisiinsä liittyvien luokkien kokoelma, josta sopivasti täydentämällä ja kokoamalla saadaan valmis sovellus tai sen merkittävä osa Ohjelmisto, joka sisältää tietyn tyyppisten sovellusten peruratkaisut Esimerkki: graafisten käyttöliittymien toteutusta tukevat luokkakirjastot (Borland OWL, Java AWT)

Sovelluskehyksen suunnittelu Sovelluskehyksen suunnittelu iteratiivisesti: suunnitellaan yksittäisiä sovelluksia sovellusalueella, irroitetaan näiden yhteiset osat sovelluskehyksen ensimmäiseksi versioksi Sovelluskehyksen suunnittelussa olennaista löytää ne seikat, jotka voivat vaihdella (kuumat kohdat, hot spot)

Perinteinen ohjelmakirjasto ja sovelluskehys Hollywood-periaate: don’t call us, we’ll call you Sovellus Sovelluskehys Moduuleita Sovelluskohtainen koodi Uudelleenkäytettävä koodi Aliluokkia