Ohjelmistojen mallintaminen, mallintaminen ja UML

Samankaltaiset tiedostot
Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistojen mallintaminen

Ohjelmistotekniikan menetelmät, mallintaminen ja UML

Ohjelmistotekniikan menetelmät, UML

Ohjelmistojen mallintaminen, kesä 2009

Ohjelmistotekniikan menetelmät, kesä 2008

Ohjelmistotekniikan menetelmät, kevät 2008

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Ohjelmistotekniikan menetelmät, käyttötapauksiin perustuva vaatimusmäärittely

Ohjelmistojen mallintaminen Tietovuokaaviot Harri Laine 1

Yhteenveto. Menettelytavat

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Ohjelmistojen mallintaminen, kesä 2010

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Mallinnus. 5. Järjestelmämallit. Abstraktiot. Mallinnuksen etuja. Arkkitehtuurimalli. Yhteysmallit. Ohjelmistotuotanto, järjestelmämallit Kevät 2005

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Lähestymistavat - toiminnallinen

Ohjelmistotuotanto, s

5. Järjestelmämallit. Mallinnus

Ohjelmistojen mallintaminen, kertausta

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

Ohjelmistojen suunnittelu

Hieman lisää malleista ja niiden hyödyntämisestä

Kurssin aihepiiri: ohjelmistotuotannon alkeita

Ohjelmistotekniikan menetelmät, koe

Luento 3 Tietokannan tietosisällön suunnittelu

Ohjelmistojen mallintaminen Olioperustainen ohjelmistomalli Harri Laine 1

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2007 ER-mallin peruskäsitteet.

Ohjelmistojen mallintaminen. Matti Luukkainen

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Imperatiivisten ohjelmien organisointiparadigmojen. historia

Imperatiivisten ohjelmien organisointiparadigmojen historia

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Ohjelmistojen mallintaminen. Luento 3, 9.11.

Ohjelmistojen mallintaminen Olioiden yhteistyö Harri Laine 1

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus:

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

Ohjelmistojen mallintaminen, sekvenssikaaviot

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto

2. Olio-ohjelmoinnin perusteita 2.1

TT00AA Ohjelmoinnin jatko (TT10S1ECD)

UML- mallinnus: Tilakaavio

HELIA 1 (20) Outi Virkki Tiedonhallinta

Mallinnus UML-yleiskatsaus

Ohjelmiston vaatimusmäärittely. tietoteknisen järjestelmän osat

UML -mallinnus Viestiyhteyskaavio EERO NOUSIAINEN

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

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

UML:n yleiskatsaus. UML:n osat:

UML-kielen formalisointi Object-Z:lla

812341A Olio-ohjelmointi, I Johdanto

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Tietokannan suunnittelu

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Ohjelmistojen mallintaminen, mallinnustekniikat käytännössä

Ohjelmistotuotanto, kuvaustekniikat Syksy Kuvaustekniikat. Miksi kuvaustekniikoita? Abstraktiotasot. Abstrahointi UML

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2006 Tiedon mallinnus ja tietokannat. Harri Laine 1. Tietokanta.

Lingsoft. Tietotermit-palaveri. Täyden palvelun kielitalo. Tapaaminen VM:n kanssa, Lingsoft Oy

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

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

2. Olio-ohjelmoinnin perusteita 2.1

Tietojärjestelmän osat

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

11/20: Konepelti auki

Prosessien ja toiminnan kuvaamisen kehittämiskohteet, tasot, näkökulmat ja esimerkit

Luokkakaavion laatiminen

Ohjelmiston vaatimusmäärittely. Systeemianalyysi

Unified Modeling Language

Luokka- ja oliokaaviot

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

Määrittelyvaihe. Projektinhallinta

Analyysi on tulkkaamista

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Toiminnot eli käyttäytyminen. Tieto eli rakenteelliset ominaisuudet

Arkkitehtuuripankki. Mallintamisen metamalli ja notaatiot

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

2. Käsiteanalyysi ja relaatiomalli

Ohjelmistojen mallintaminen Luokkakaaviot Harri Laine 1

3. Käsiteanalyysi ja käsitekaavio

Yhteydelle voi antaa nimen kumpaankin suuntaan Sille ei tarvise antaa lainkaan nimeä Yhteysnimen asemasta tai lisäksi voidaan käyttää roolinimiä

Oppijan palvelukokonaisuus. Tietomallinnuksen laaja katselmointi

Sisällys. Ratkaisumallien historia. Ratkaisumalli. Ratkaisumalli [2] Esimerkki: Composite [2] Esimerkki: Composite. Jaakko Vuolasto 25.1.

Älysopimusten kehittäminen. Sopimus suuntautunut ohjelmointi

Ohjelmien analysointi. ER-kaaviot

Yhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin?

JHS 179 ICT-palvelujen kehittäminen: Kokonaisarkkitehtuurin kehittäminen Liite 2 Arkkitehtuurikehyksen kuvaus

1. Olio-ohjelmointi 1.1

Olioperustaisuus (object oriented)

Ohjelmistojen mallintaminen viikon 4 laskareiden mallivastauksia

Johdatus sovellussuunnitteluun, s99, osa2 Helsingin yliopisto;/tktl Harri Laine 1. Olioperustaisuus (object oriented)

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

Johdatus sovellussuunnitteluun, s99, osa2 Helsingin yliopisto;/tktl Harri Laine 1. Olioperustainen ohjelmistokehitys

Tietokantojen suunnittelu, relaatiokantojen perusteita

4. Lausekielinen ohjelmointi 4.1

Transkriptio:

582104 Ohjelmistojen mallintaminen, mallintaminen ja UML 1

Mallintaminen ja UML (Ch 2.) Ohjelmistojen mallintamisesta ja kuvaamisesta Strukturoitu mallinnus Tietovuo- ja ER-kaaviot Oliomallinnus ja UML Luokkakaaviot Käyttötapauskaaviot Sekvenssikaaviot 2

Mallintamisesta ja kuvaamisesta Ohjelmistotuotannossa on kyse mallintamisesta Toisaalta ohjelmiston käsittelemää liiketoimintaa Toisaalta ohjelmiston sisäistä rakennetta Näiden tulisi vastata toisiaan Tietojärjestelmän kehittäminen on yhteistyötä Ohjelmiston kehittäjien ja muiden sidosryhmien ymmärrettävä toisiaan Projektiin tulevan uuden henkilön pystyttävä muodostamaan yleiskuva järjestelmästä Tämän vuoksi muodostamme järjestelmän mallin ja siihen perustuvia kuvauksia eri tarpeisiin 3

Mallit ja abstraktiot Malli: abstraktio jostain kohteesta Abstrahointi: asian ilmaiseminen tavalla, joka tuo esiin tietystä näkökulmasta katsottuna oleellisen ja kätkee tarpeettomat yksityiskohdat abstraktio on abstrahoinnin tulos, siis tietystä näkökulmasta katsottuna oleellisia asioita sisältävä kuvaus kohteesta Ohjelmiston malli: abstraktio ohjelmistosta (näkemys, kuvaus) 4

Mallinnuskielet Mallintamiseen tarvitaan kieli Voidaan käyttää luonnollista kieltä (suomea) Suosittua on käyttää visuaalista kieltä (UML) Vaatimusmäärittely- ja suunnitteluvaiheessa Kaavio itsessään on vain harvoin riittävä, lisäksi tarvitaan sanallista selostusta 5

Formaalit menetelmät Formaalit menetelmät (Z, B method, Alloy) Perustuvat matematiikkaan, logiikkaan Ideana mahdollistaa automaattinen päättely, mallin ominaisuuksien todistaminen Käytössä joillakin erityisalueilla, kuten protokollien tai mikropiirien suunnitteleminen Suosiota vähentää tarvittavan koulutuksen määrä Myös itse ohjelma on malli, jota voidaan lisäksi koneellisesti suorittaa 6

Ohjelma itsessään on malli Tietojenkäsittelytehtävän suorituksen malli ohjelmointikielen käsittein esitettynä Suoritettava malli: ohjelman sisältää kaiken suorituksen kannalta tarpeellisen tiedon Ohjelmakoodiin (=mallin esitys) voi sisältyä myös suorituksen kannalta tarpeetonta informaatiota, kommentteja Kuvaavat (mallintavat) ohjelmaa tai sen suoritusta Ollakseen hyödyllisiä tulisi olla korkeammalla abstraktiotasolla kuin ohjelmakoodi 7

Kommentit ohjelmakoodissa Esim. i=1; // i saa arvon 1 hyödytön kommentti, sama abstraktiotaso Parempi: // muunnetaan eurohinnat dollareiksi for (int i=0; i<euros.length; i++) { dollars[i] = ExchangeRate*euros[i]; } 8

Kommenttien käyttäminen mallintamiseen Ohjelmakommenttien tarjoamat abstraktiot ohjelmasta eivät perustu mihinkään yhtenäiseen käsitteistöön, vaan ovat ohjelmoijan vapaasti muodostettavissa eritasoisia taso ei mitenkään näy esitetään luonnollisella kielellä, dokumentointijärjestelmä (esim. JavaDoc) voi asettaa jotain syntaktisia ehtoja 9

Abstraktion tasot Tietojenkäsittelytieteessä puhutaan usein abstraktiotasoista (levels of abstraction) eri tasoilla on oma kiinnitetty käsitteistönsä, johon kyseisen tason mallit perustuvat sama kohde mallinnetaan kullakin tasolla eri käsittein 'ylempi' taso suhteellisesti abstraktimpi ja 'alempi' konkreettisempi 10

Ohjelman annotaatiot Ohjelman annotaatiot ovat kommenttien kaltaisia, mutta formaalimmin määriteltyjä Esim @Identity int id; Määrittelee, että kenttä id toimii olion identiteettinä Identiteetin käsite puolestaan määritellään annotaatiota hyödyntävässä paikassa Annotaatiot toimivat usein samalla tai samankaltaisella abstraktion tasolla (separation of concerns) 11

Käsitteistö Abstraktiotasoon liittyvä käsitteistö muodostaa perustan tason mukaisen abstraktion muodostamiselle. Käsitteistö on suunnittelun ja ajattelun apuväline Ohjelmat ovat keinotekoisia kuten myös niiden mallinnuksessa käytettävät käsitteet. Uusia käsitejärjestelmiä syntyy jatkuvasti. Ei voida yleisesti osoittaa, että jokin kattava käsitteistö olisi toista parempi joitain puutteita käsitejärjestelmissä toki on osoitettavissa. 12

Luonnollisen kielen käyttäminen mallinnuksessa Esimerkki: sanaston (glossary) laatiminen Kielenkäytössä esiintyy synonyymejä ja homonyymejä Synonyymi kaksi eri sanaa tarkoittavat samaa Homonyymi kaksi samaa sanaa erilaisin tarkoituksin Kohdealueen asiantuntija pystyy helposti ymmärtämään asiayhteydestä tarkoitetun asian Tietojärjestelmän toteuttaja on vain harvoin kohdealueen asiantuntija 13

Sanaston laatiminen Luettelo organisaation toiminnan kannalta keskeisistä käsitteistä ja niiden määritelmistä Voidaan esittää vaihtelevin abstraktiotasoin Koko organisaatiolle Kullekin osa-alueelle erikseen tarkemmin Auttaa muiden mallien laatimisessa Luokkamallin olioluokkien löytäminen Olennaista käsitteistön selkeys ja ristiriidattomuus 14

Esimerkki sanastosta Term ad advertisement ad instance Definition and Explanations A unique piece of creative that may be broadcast, screened, published or otherwise exposed any number of times. Each ad exposure by a media outlet is known in the AEM system as an ad instance. advertisement A particular occurrence of an ad, i.e. each incidence of an ad broadcast, screening or publication. product A merchandise or service that may be advertised. Products may be categorized (i.e. a product can belong to a category of products). Categories are classifications of products as envisaged by AEM. The AEM system supports a hierarchical grouping of categories with an unlimited number of levels in the hierarchy. Products may only be categorized at the lowest level of the category hierarchy. [Kurssikirja, s. 206-207] 15

Abstraktiotasot ja näkökulmat Ohjelmistot muodostuvat ajan myötä laajoiksi, sisältävät runsaasti yksityiskohtia Yksityiskohdat ovat tärkeitä, mutta häiritsevät kokonaisuuden hahmottamista Kehittäjillä ja muilla sidosryhmillä erilaisia tarpeita eri tilanteissa ja ohjelmistoprosessin eri vaiheissa 16

Abstraktiotasot ja näkökulmat Tarvitaan kuvauksia eri abstraktiotasoilla järjestelmän rajaus järjestelmän yleisarkkitehtuuri osajärjestelmien yksityiskohtaiset kuvaukset ohjelmakoodi.. ja eri näkökulmista Kruchtenin 4+1-malli jakaa näkökulmiin Looginen näkökulma Prosessinäkökulma Toteutusnäkymä Fyysinen näkymä.. Jotka yhdessä muodostavat käyttötapaukset 17

Strukturoitu mallinnus Strukturoidun mallinnuksen taustalla on strukturoitu (eli rakenteinen) ohjelmointi Rakenteisessa ohjelmoinnissa silmukat ja if-lauseet toteutetaan kielen antamina kontrollirakenteina Go to-komentoa ei suvaita [E. Dijkstra (March 1968). Go To Statement Considered Harmful. Comm. of the ACM 11 (3): 147 148] Ohjelma jaetaan top-down menetelmällä osiin Ilmentää monoliittista, proseduraalista perusluonnetta Keskeiset visuaaliset kuvaustekniikat Tietovuokaaviot (data flow diagram, DFD) Käsitekaaviot (entity-relationship diagram, ER) Rakennekaaviot (structure chart) 18

Tietovuokaaviot Data flow diagrams, DFD Historiallisesti käytetyin kuvaustekniikka Järjestelmän toiminnallinen ositus Epäyhteensopivuus oliomallinnuksen kanssa aiheuttanut suosion hiipumisen 19

Yhteys- eli sidosryhmäkaavio Rajaa järjestelmän suhteessa toimintaympäristöön Kaavioelementit Yksi koko järjestelmää kuvaava prosessisymboli Joukko ulkoisia tahoja (edustavat mm. järjestelmän sidosryhmiä ja muita, ulkoisia tietojärjestelmiä) Joukko tietovuosymboleita em. välillä 20