Oliomallittaminen ja UML Seppo Törmä ja Esko Nuutila
UML - Unified Modeling Language Tietojärjestelmien määrittämiseen, suunnitteluun ja toteuttamamiseen tarkoitettu kokoelma mallitusmenetelmiä v. 1997 luotu yhdistelmä kolmen oliosuunnittelun kehittäjän (James Rumbaugh, Grady Booch ja Ivar Jacobson) aikaisemmista malleista yleiskäyttöinen: tukee koko ohjelmistonkehityksen elinkaarta ja sopii useimmille kohdealueille keskeisenä osana on käsitemallittaminen, mutta sisältää myös muita mallinnustapoja Teollisuusstandardi tukijoina suuret tietotekniikkayritykset: IBM, HP, Microsoft, ... OMG:n suosittama laajimmin käytetty oliosuunnittelumenetelmä Useita UML:ää tukevia CASE-työkaluja Rational Rose, Paradigm Plus, Poseidon, ... Unified Software Process UML:n käyttämiseen perustuva ohjelmistoprosessimalli
UML:n kaaviot Vaatimusmäärittely Rakenteen mallittaminen 1. Käyttötapauskaavio (use case diagram) Rakenteen mallittaminen 2. Luokkakaavio (class diagram) 3. Oliokaavio (object diagram) Muutokset olioiden tilaan 4. Tilakaavio (state diagram) 5. Vuokaavio (activity diagram) Olioiden vuorovaikutukset 6. Sekvenssikaavio (sequence diagram) 7. Yhteistoimintakaavio (collaboration diagram) Järjestelmän toteutus 8. Komponenttikaavio (component diagram) 9. Käyttöönottokaavio (deployment diagram)
Käyttötapauskaavio Vaatimusten määrittäminen rakennettavalle järjestelmälle tehdään suunnittelun alussa vaikuttavat järjestelmän yleiseen arkkitehtuuriin koskevat erityisesti järjestelmän käyttäjiä Tunnistetaan mitkä ovat järjestelmään liittyvät aktorit (toimijat) mitä eri käyttötapauksia järjestelmään liittyy mitkä aktorit liittyvät mihinkin käyttötapauksiin ovatko jotkin käyttötapaukset joidenkin toiseten osia tai erikoistapauksia
Aktoreiden yleistyssuhteet Käyttötapauksiin luotu abstrakti aktorirooli, josta on kaksi konkreettista esimerkkiä
Aktorin liittyminen käyttötapauksiin
Käyttötapauskaavio Käyttötapaus voivat sisältää toisia käyttötapauksia tai sen suorittaminen voi laukaista toisen käyttötapauksen
Luokkakaavio UML:n keskeisin ja monipuolisin kaavio Ohjelmiston käsitteistön mallittaminen Luokat (classes) Minkä tyyppisiä oliota järjestelmään kuuluu? Mitä yläluokka/alaluokka -suhteita luokkien välillä on? Ominaisuudet (attributes) Mitä ominaisuuksia kuhunkin luokkaan kuuluvilla olioilla on? Suhteet (associations) Mitä keskinäisiä suhteita eri luokkiin kuuluvien olioiden välillä on? Suunta, moniarvoisuus Toiminnot (operations) Mitä toimintatapoja tai käyttäytymisiä kuhunkin luokkaan liittyy? Rajoitukset (constraint rules) Ominaisuudet, suhteet ja metodit periytyvät yläluokilta alaluokille