9.9.2013 Luokkakaaviot Luokkakaaviot Tekninen suunnittelu
UML UML (Unified Modelling Language) Luokkakaaviot 9.9.2013 Luokkakaaviot UML UML (Unified Modelling Language) 1997 standardi joka vakiinnutti luokkakaavioiden kuvaamisen UML –kielellä UML-mallinnuskieli sisältää useita erilaisia kaavioita joilla pyritään esittämään järjestelmän koostuminen osista tai näiden osien välistä vuorovaikutusta – jako rakennetta (structure) ja käyttäytymistä (behavior) kuvaaviin kaavioihin Luokkakaaviot Käsitekaavio jossa käsitteet luokkia Luokilla ominaisuuksia (attribute) ja operaatioita / metodeja (method) Luokkien välillä yhteyksiä (relationship) jotka assosiaatioita, koostumisia (aggregaatio) tai periytymistä (inherit)
9.9.2013 Luokkakaaviot UML UML-kaavioissa mallinnetaan olioiden väliset suhteet. Olioiden välillä voi olla kolme erilaista perussuhdetta: Assosiaatio: oliot palvelevat toisiaan ja niiden on ”nähtävä” toisensa paikkakunta ja kunnanjohtaja, pankkitili ja tilinhaltija Sisältyminen: jokin olio koostuu toisista olioista ja jokin olio sisältyy toiseen Auto ja pyötä, viiva ja päätepisteet, osasto ja työntekjät, korttipakka ja kortti Yleistys (erikoistaminen, periyttäminen) Henkilö-Kunnanjohtaja, Kulkuneuvo-Auto
9.9.2013 Luokkakaaviot Assosiaatio
9.9.2013 Luokkakaaviot Periytyminen
Periytyminen ja koostuminen 9.9.2013 Luokkakaaviot Periytyminen ja koostuminen
Oliokielistä Smalltalk C++ Java C#, Visual Basic 9.9.2013 Luokkakaaviot Oliokielistä Smalltalk Ensimmäinen oliokieli joka kehitetty 1970-luvulla. C++ Kehitetty 1980-luvulla (pohjautuu C-kieleen) Monia vuosia C++ oli yleisin kieli joka tuki olio-ohjelmointia Suurin osa maailman käyttöjärjestelmistä, laiteohjaimista, sulautetuista järjestelmistä ja peleistä toteutettu C++ -kielellä. Java Julkaistu vuonna 1995 Muistuttaa pitkälti C++ -kielen rakennetta Alun perin web-sovelluksiin mutta suosittu palvelinpuolen dynaamisten www-sivujen luomisessa (JSP) C#, Visual Basic Moderneja ohjelmointikieliä, muistuttavat usein C++ -kieltä. Visual Basic muuttunut vuosien saatossa oliokieleksi (suuria muutoksia Visual Studio .NET –päivityksessä vuonna 2002). Visual Basic 6.0 edelleen käytössä monissa vanhoissa sovelluksissa.
Oliokielet (PHP) Uuden olio luominen Operaatiot Attribuutit 9.9.2013 Luokkakaaviot Oliokielet (PHP) Uuden olio luominen Uusi instanssi luokasta luodaan koodissa new –sanalla $obj = new OwnClass(); Operaatiot Luokan sisältämiä funktioita kutsutaan operaatioiksi tai metodeiksi (method). Funktio/aliohjelma vs metodi: metodi on aliohjelma joka liittyy tiettyyn luokkaan, kuvaa luokan toimintaa Erityiset rakennin (kontrstruktori, constructor) ja hävitin (destructor) Attribuutit Luokan muuttujat ominaisuuksia (properties) tai attribuutteja (attributes) Määritellään julkisiksi (public), suojatuiksi (protected) tai yksityisiksi (private), tämä määrittää muuttujan näkyvyyden Mikäli metodissa käytetään static –avainsanaa ei oliota tarvitse luoda jotta metodia pystyttäisiin ajamaan (vrt. Reader.readInt())
Oliokielet (PHP) Luokan periminen kuvataan koodissa sanalla extends 9.9.2013 Luokkakaaviot Oliokielet (PHP) Luokan periminen kuvataan koodissa sanalla extends class Ralliauto extends Auto Muodostin ja hävitin Kun uusi ilmentymä luokasta luodaan kutsutaan aluksi rakenninta (muodostin), kun ilmentymä poistuu sovelluksen käytöstä kutsutaan automaattisesti hävitintä. Rakentimessa esimerkiksi alustetaan muuttujat oletusarvoilla. function __construct() { print "In BaseClass constructor\n"; } function __destruct() { print "Destroying " . $this->name . "\n"; }
Abstraktit luokat Luokka voidaan määritellä PHP 5:ssä abstraktiksi 9.9.2013 Luokkakaaviot Abstraktit luokat Luokka voidaan määritellä PHP 5:ssä abstraktiksi Abstraktista luokasta ei voi luoda instansseja vaan luokasta tulee aina johtaa toteutettava aliluokka Käytännössä laaditaan runko jossa määritellään mitä aliluokkien tulee sisältää Abstraktia luokkaa muistuttaa käsite Interface (Java) Interface suositeltava luokassa jonka metodit halutaan määritellä ennakkoon mutta joiden varsinainen toteutus vaihtelee aina varsinaisen ohjelman toteutuksessa.
Käytetyt lähteet Haikala, Märijärvi: Ohjelmistotuotanto, satku 2000 9.9.2013 Luokkakaaviot Käytetyt lähteet Haikala, Märijärvi: Ohjelmistotuotanto, satku 2000 Martin Fowler, Kendal Scott: UML, docendo 2002 PHP Manual http://www.php.net/manual/en/language.oop5.php Wikipedia http://en.wikipedia.org/wiki/Unified_Modeling_Language http://en.wikipedia.org/wiki/Class_diagram