Ohjelmiston toteutus (teknisestä näkökulmasta)

Slides:



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

18. Abstraktit tietotyypit
– Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä.
Luokkakaaviot Luokkakaaviot Tekninen suunnittelu.
Tietojärjestelmät ja Systeemisuunnittelu
Luokka- eli ER- eli käsitekaaviot (Luku 6)
Tapahtumasekvenssit = Käyttötapausten realisointi
Olio-ohjelmointi. Mitä olio-ohjelmointi on ?  Pyritään mallintamaan jotain reaalimaailman kohdetta tietokoneohjelman avulla  Olio on luokan ilmentymä.
Tekninen suunnit-telu
1. Olio-ohjelmointi.
Olio-mallinnus Tietojärjestelmien suunnittelu KYAMK, Liiketalous, Kouvola Jarkko Ansamäki, 2002.
Ohjelmiston elinkaarimallit
Ohjelmistotuotanto - Suunnittelu
Perintä. Yleistä Olio-ohjelmoinnin menetelmä muodostaa uusia luokkia aiemmin määriteltyjen luokkien avulla Luokka saa automaattisesti käyttöönsä kaikki.
OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT. LUOKKA JAVA ohjelma koostuu luokista LUOKKA sisältää metodeja molemmat sisältävät attribuutteja eli muuttujia.
@ Leena Lahtinen Helia OHJELMOINTITAITO ICT02D 12 OP.
OHJELMOINTITAITO ICT02D 12 ECTS. OPINTOJAKSON TOTEUTUS  KESTO: –  PÄIVÄOPISKELIJAT: – KAKSI LUOKAA (SUOMI) –YKSI LUOKKA (ENGLANTI)
Korkeakoulujen ja opetusministeriön yhteinen tietohallintohanke, jota CSC koordinoi RAkenteellisen KEhittämisen Tukena TIetohallinto RAKETTI-XDW Käsitemäärittely,
Olio-ohjelmoinnin perusteet luento 3
2/2001 Tietojärjestelmät ja Systeemisuunnittelu Luennoitsija: Tapio Lammi
T Oma menetelmä Arkkitehtuurisuunnittelu Jarkko Ilomäki
SE-02 Olioperustainen ohjelmistokehitys Tampereen yliopisto, syksy 2000 Roope Raisamo perustuu Kai Koskimiehen Oliokirjaan ja kurssin aiempiin materiaaleihin.
Olioperustainen ohjelmistoprosessi
3. Spesifikaatioiden laatiminen
Oliosuunnittelu.
© Lammi-Niskala-Kossarev ADT:n toteutus Imperatiivinen paradigma Imperatiivinen paradigma toimenpiteet aktiivisia, tiedot passiivisia toimenpiteet.
© Jukka Harju, Jukka Juslin
1 Kertaus koetta varten oleellisista asioista Jukka Juslin.
Johdatus ohjelmointiin Ohjelmistosuunnittelu Jaana Holvikivi.
Ohjelmistojen suunnittelumenetelmät ja –työkalut
(mukaellen Haikala & Mikkonen 2011, 29)
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op ALU.
Selainkäyttöliittymän tuotantoprosessi Klikkaamalla pääotsikoista tietosi karttuu. Sininen mökki toimii paluupainikkeena. Selainkäyttöliittymän tuotantoprosessi.
Ohjelmistotekniikka ja projektinhallinta, 4 op
Esitutkimus (tarvekartoitus)
10. Abstrakti luokka Johdanto Abstrakti luokka (abstract class) poikkeaa konkreettisesta luokasta (ei-abstrakti luokka) siten, että siitä ei.
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.
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op.
Komponenttipohjainen ohjelmistotekniikka (TJTSS56) Osa 4 Kevätlukukausi 2010 Jyväskylän yliopisto Tietojenkäsittelytieteiden laitos Markku Sakkinen.
Mi Menetelmä tosiaikaiseen sivustomuokkaukseen Sulake Dynamoid | Strictly confidential – legally protected and privileged information Ilari Tuominen Software.
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ö
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.
Komponenttikaavio Lehtonen Iiro, Janne Liikka
Component diagram– Komponenttikaavio J. Pätsi & H. Malmihuhta
Diplomityöseminaari Ohjelmistokehysten erikoistamistutoriaalit Fred-ympäristössä Pekka Savolainen
Graafinen käyttöliittymä, osa 1
– Ohjelmistojen mallintaminen Unified Modeling Language (UML)
8. Periytyminen Sisällys Mitä on periytyminen? Yksittäis- ja moniperiytyminen. Oliot ja perityt luokat. Periytymisen käyttö.
Ohjelmistotekniikka - Määrittely (Analysis) Kevät 2003 Hanna-Kaisa Lammi LTY/Tite.
Ohjelmistotuotanto - Suunnittelu Kevät 2005 Jani Vaara LTY/Tite.
OMT Design System design –design technical environment Object design –design class diagram.
Ohjelmiston suunnitteluperiaatteita Kevät 2002 Päivi Ovaska LTKK/Tite.
Tietojärjestelmät ja Systeemisuunnittelu
jew1 Systeemityön eteneminen opintojaksolla Ohjelmiston suunnittelutaito Opintojakson eteneminen.ppt.
1.0 TE DiplomityöEsitelmä/ / JT Soveltuvuustutkimus Lifebelt-ohjelman ideologian käytettävyydestä olio- orientoituneeseen ohjelmointiin Jukka.
1. Olio-ohjelmointi.
OHJELMOINTITAITO ICT02D 12 Leena Lahtinen Helia
OHJELMOINTITAITO ICT02D 12 Leena Lahtinen Helia
8. Periytyminen.
OHJELMOINTITAITO ICT02D 12 ECTS.
OHJELMOINTITAITO ICT02D 12 ECTS.
8. Periytyminen.
4. Luokan testaus ja käyttö olion kautta
2. Olio-ohjelmoinnin perusteita
1. Olio-ohjelmointi.
OHJELMOINTITAITO ICT02D 12 ECTS.
Esityksen transkriptio:

Ohjelmiston toteutus (teknisestä näkökulmasta) Määrittely asiakkaan näkökulma Toteutus Arkkitehtuurisuunnittelu Ohjelmisto jaetaan moduuleiksi ja moduulien väliset rajapinnat määritellään Moduulien sisäinen toteutus suunnitellaan Huonot ratkaisut kostautuvat Hyvässä arkkitehtuurissa huono moduuli on helppo korvata paremmalla 16. Ohjelmiston suunnitteluperiaatteita

16. Ohjelmiston suunnitteluperiaatteita Spagetista olioihin Rakenteinen ohjelmointi (1970-luvulla9 Aliohjelmarakenne Globaalit tietorakenteet Kontrollirakenteet, ei hyppykäskyjä Selkeä rakenne; ylläpidettävyys huono (globaalit tietorakenteet) Ositus ongelmallista 1970-luvun lopulla modulaarisuuteen alettiin kiinnittää entistä enemmän huomiota; rakenteisuutta alettiin perustaa entistä enemmän tietorakenteisiin eikä niinkään toimintoihin 16. Ohjelmiston suunnitteluperiaatteita

Oliopohjainen rakenne Tietorakenteet koteloidaan moduulien sisään ja tietorakenteen käyttäjälle tarjotaan funktiorajapinta, jonka avulla niitä voidaan käsitellä Ei globaaleja muuttujia Moduulilla on sisäinen tila, joka ei muutu muutoin kuin moduulin rajapinnoissa olevia funktioita kutsumalla Soveltuu hyvin suuriin ohjelmistoprojekteihin; toteutus ja testaus toisista riippumatonta, ylläpidettävyys ja uudelleenkäyttö helpompaa Moduuli voi käyttää hyväkseen muiden moduulien palveluita; monimutkaiset osajärjestelmät; skaalautuvuus Strukturoidun ohjelmoinnin periaatteita voidaan käyttää hyväksi moduulien sisäisessä toteutuksessa 16. Ohjelmiston suunnitteluperiaatteita

Suunnittelun tavoitteet Asiakkaan kokema laatu Kustannukset Tuotteen laatu Tuotteen valmistuminen aikataulun mukaisesti Perusta laatutavoitteiden toteutumiselle luodaan määrittelyvaiheessa; myös suunnittelu ja toteutusvaiheissa niihin voidaan vaikuttaa Tehokkuus, luotettavuus, käytettävyys, uudelleenkäyttö, uudelleenkäytettävyys, ylläpidettävyys, siirrettävyys, toteutettavuus, ymmärrettävyys, muunneltavuus 16. Ohjelmiston suunnitteluperiaatteita

Suunnittelun yleisiä periaatteita Suunnittelu ei ole pelkästään tekninen ongelma Koon kasvaessa yhä enemmän oppimis- ja kommunikointiprosessi suoraviivaisuus ja yksinkertaisuus osittaminen ja lokaalisuus abstraktioiden hyödyntäminen yhdenmukainen toteutusfilosofia 16. Ohjelmiston suunnitteluperiaatteita

16. Ohjelmiston suunnitteluperiaatteita

Moduulien toteuttaminen Ohjelman abstraktiot toteutetaan ohjelmamoduuleina Yksi ohjelmamoduuli kuvaa yleensä yhden abstraktioin Moduulin rajapinta on sopimus moduulin käyttäjän ja sen toteuttajan välillä Sopimuksessa määritellään Palvelut Moduulin tekemät oletukset ympäristöstään ja käyttäjän toiminnasta Moduulin toteutuksen asettamat rajoitukset Moduulin toiminta poikkeustilanteissa 16. Ohjelmiston suunnitteluperiaatteita

16. Ohjelmiston suunnitteluperiaatteita Moduulien rajapinnat Moduulin rajapinta on sopimus moduulin käyttäjän ja sen toteuttajan välillä Sopimuksessa määritellään Palvelut Moduulin tekemät oletukset ympäristöstään ja käyttäjän toiminnasta Moduulin toteutuksen asettamat rajoitukset Moduulin toiminta poikkeustilanteissa Moduulien sisäinen kiinteys (cohesion) Looginen yhteenkuuluvuus Moduulien väliset kytkennät (coupling) Moduulien väliset riippuvuudet 16. Ohjelmiston suunnitteluperiaatteita

Suunnittelun eteneminen Suunnitteluun liittyviä tehtäviä Mietitään ratkaisun yleiset periaatteet (toteutusfilosofia) Suunnitellaan moduulirakenne Määritellään moduulien sisältö Suunnitellaan moduulien rajapinnat Määritellään moduulien näkyvyys Testataan ratkaisut tutkimalla esimerkiksi sekvenssejä Suunnitellaan moduulien sisäinen toteutus Varmistetaan kriittisimpien toteutusratkaisujen toimivuus esim. prototyypillä Suunnitellaan dokumentointi Tehtäviä on tehtävä iteroiden ja rinnakkain; testaus ainakin aiheuttaa iterointia 16. Ohjelmiston suunnitteluperiaatteita

Uudelleenkäytettävyys ja uudelleenkäyttö 60-80% kaikesta tehtävästä ohjelmistosta on tehty jo aiemmin (?) Uudelleenkäytettävät ohjelmistokomponentit Yleiskäyttöiset: käyttöliittymien rakenteluun tarkoitetut kirjastot, matematiikkakirjastot, tietorakennekirjastot Sovelluskohtaiset: oma käyttöliittymäkirjasto, tulostus Komponentin muokkaaminen (tuotteenhallinta??!!) Oliokielissä hallittu muokkaaminen: periyttäminen Ongelmia: monimutkaisuus, komponenttikirjaston työmäärä, dokumentoinnin puute, … Ongelmia: esim. Ariane 5 Uudelleenkäyttö vaatii erikoispanostusta ja erikoisosaamista, se ei ole itsestäänselvyys eikä sivutuote! 16. Ohjelmiston suunnitteluperiaatteita

16. Ohjelmiston suunnitteluperiaatteita

16. Ohjelmiston suunnitteluperiaatteita Oliokeskeisyys OOP, Object Oriented Programming (olio-ohjelmointi) OOA, Object Oriented Analysis (oliomäärittely) OOD, Object Oriented Designing (oliosuunnittelu) Olio Tieto on kapseloitu, koteloitu moduulien sisään Rajapintaan määritellään tietoja käsittelevien funktioiden joukko Oliokielissä olio toteutetaan luokkana Oliota kutsutaan oliokielissä myös ilmentymäksi Tietoja käsittelevä funktio = metodi, palvelu 16. Ohjelmiston suunnitteluperiaatteita

16. Ohjelmiston suunnitteluperiaatteita Olio-ohjelmointi Periytyminen aliluokka perii yliluokkansa attribuutit ja metodit Aliluokalle voidaan määritellä lisää attribuutteja tai metodeja Perittyjä metodeja voidaan määritellä uudelleen = polymorfismi Abstrakti luokka Toimivat vain yliluokkina Ensimäinen oliokieli Simula Oliopohjaisia: Ada, Modula-2 Puhtaita oliokieliä: Smalltalk, Eiffel, Java (?) Hybridikieliä: C++, Object Pascal 16. Ohjelmiston suunnitteluperiaatteita

16. Ohjelmiston suunnitteluperiaatteita Oliomäärittely Tavoitteena löytää kohdealueen olioluokat, niiden attribuutit ja operaatiot sekä luokkien väliset suhteet Käytetään pohjana käyttötapausmallia tai muuta toimintaa kuvaavaa dokumentaatiota Kuvataan luokkakaaviona Luokat Luokkien yhteydet (assosiaatio, periytyminen, kooste) Suunnitteluvaiheessa luokkakaaviota täydennetään toteutukseen liittyvillä luokilla (esim. käyttöliittymäluokat, tietokantaluokat) sekä yhteyksien toteutuksella 16. Ohjelmiston suunnitteluperiaatteita

16. Ohjelmiston suunnitteluperiaatteita OMT++ 16. Ohjelmiston suunnitteluperiaatteita

16. Ohjelmiston suunnitteluperiaatteita