1 582104 – Ohjelmistojen mallintaminen, mallintaminen ja UML.

Slides:



Advertisements
Samankaltaiset esitykset
Ohjelmiston tekninen suunnittelu
Advertisements

M M o o V V E E Ammatillisen huippuosaamisen mallintaminen Modeling Vocational Excellence.
@ Leena Lahtinen Helia TIETO JA TIETOKONEOHJELMA  TIETOKONEOHJELMA KÄSITTELEE TIETOJA  TIETOJA VOIDAAN KÄSITELLÄ OHJELMASSA VAIN SALLITUILLA.
KAOS World Cafe valtiovarainministeriössä: JHS179 uudistus
Tietojärjestelmät 2.
Luokkakaaviot Luokkakaaviot Tekninen suunnittelu.
Tietojärjestelmät ja Systeemisuunnittelu
Mallintarkistus ja sen soveltaminen PLC toimilohko-ohjelmien verifioinnissa AS Automaatio- ja systeemitekniikan projektityöt – loppuesitys Markus.
Oppiminen ja opettaminen harjoitustilanteessa
KAOS KAOS WORLD CAFE VALTIOVARAINMINISTERIÖSSÄ: JHS179 UUDISTUS Cafe 1 – Toiminta-arkkitehtuuri.
Tietokannan suunnittelu
5 Toimintojen ja tietojen kuvaus
Tekninen suunnit-telu
1. Olio-ohjelmointi.
Olio-mallinnus Tietojärjestelmien suunnittelu KYAMK, Liiketalous, Kouvola Jarkko Ansamäki, 2002.
BPMN ja hiukan prosessien määrittelystä
Päivi Ovaska Tutkijaopettaja LTY/Tite
Tietojärjestelmän suunnittelu
– Ohjelmistojen mallintaminen, kesä 2009
OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT. LUOKKA JAVA ohjelma koostuu luokista LUOKKA sisältää metodeja molemmat sisältävät attribuutteja eli muuttujia.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
CSC / Tietohallinnon asiakkaat ja tuotteet / Teemu Kemppainen Käsitemalli kuvaa relevantit tiedot kohdealueelta. Tietotarpeet määrittävät relevantit.
2/2001 Tietojärjestelmät ja Systeemisuunnittelu Luennoitsija: Tapio Lammi
Tietojärjestelmät ja Systeemisuunnittelu
Oliomallittaminen ja UML
Marja Toivonen gsm Tuumasta toimeen – seminaarin päätös Aktiivi
SE-02 Olioperustainen ohjelmistokehitys Tampereen yliopisto, syksy 2000 Roope Raisamo perustuu Kai Koskimiehen Oliokirjaan ja kurssin aiempiin materiaaleihin.
Olioperustainen ohjelmistoprosessi
3. Spesifikaatioiden laatiminen
TIETO JA TIETOKONEOHJELMA TIETOKONEOHJELMA KÄSITTELEE TIETOJA TIETOJA VOIDAAN KÄSITELLÄ OHJELMASSA VAIN SALLITUILLA MENETELMILLÄ.
2. Vuokaaviot.
Osaamisen ja sivistyksen parhaaksi Oppijan verkkopalveluiden hyväksymistestitapausten kuvausohje.
Tietokoneohjelman suoritus opintojakso Olioajattelu ja –ohjelmointi, osa I Hans Nieminen Syksy 2013.
Käsitemallin suunnittelu
Seminaarin tavoitteet Murmanskissa joulukuu 2010 Mare Rantaniemi ja Natalia Strelskaja Projektipäälliköt.
− työkalu toiminnan suunnittelun ja suunnitelman arvioinnin tueksi
Projekti käsitteenä Projekti on selkeästi asetettuihin tavoitteisiin pyrkivä ja ajallisesti rajattu kertaluonteinen tehtäväkokonaisuus, jonka toteuttamisesta.
Tutkimussuunnitelman ja opinnäytetyön rakenne
JHS:N SUOSITUKSET VAATIMUSMÄÄRITTELYLLE SEPPO RÄSÄNEN SAVONIA-AMMATTIKORKEAKOULU TERVEYSALA, KUOPIO Ohjelmistotekniikka ja projektinhallinta,
HAJAUTTAMISEN IDEAA SEPPO RÄSÄNEN SAVONIA-AMMATTIKORKEAKOULU TERVEYSALA, KUOPIO Ohjelmistotekniikka ja projektinhallinta, 4 op.
4. Attribuutit 4.1. Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2.
Johdanto Teppo Räisänen, Principal Lecturer Oulu University of Applied Sciences, School of Business and Information Management
Koostekaavio – Composite Structure Diagram Kinnula – Kellolampi - Lehtosaari.
Systeemityö 2 Kokoava vuorovaikutuskaavio – Interaction
Mallinnustavat.
Osaamisen ja sivistyksen parhaaksi Valintaperusteiden mallintaminen
Rinnakkaisuus Järjestelmässä, jossa voi olla useita prosesseja rinnakkain suorituksessa voi tulla tilanteita, joissa prosessien suoritusta täytyy kontrolloida.
Vaatimustenhallinta.
Analyysi. Yleistä analyysistä Mitä ohjelmiston on tehtävä? Analyysin ja suunnittelun raja on usein hämärä Ei-tekninen näkökulma asiakkaalle näkyvien pääkomponenttien.
– Ohjelmistojen mallintaminen, kertausta
T Ryhmä ”Tete” Henkilökohtainen SE-harjoitus Marko Nikula (Assesment of Architecture) Arkkitehtuurin arviointi.
– Ohjelmistojen mallintaminen Unified Modeling Language (UML)
Ohjelmistojen mallintaminen, sekvenssikaaviot
Pakkauskaavio– Package Diagram Jani Pelkonen, Niko Viinikanoja, Teemu Tervahauta.
Ohjelmistotekniikka - Määrittely (Analysis) Kevät 2003 Hanna-Kaisa Lammi LTY/Tite.
Ohjelmistotekniikka ja projektinhallinta, 4 op
Tietojärjestelmät ja Systeemisuunnittelu
Kurssin aihepiiri: ohjelmistotuotannon alkeita ● [wikipedia]: – Ohjelmistotuotanto on yhteisnimitys niille työnteon ja työnjohdon menetelmille, joita käytetään,
Laatutyö ja KA Toiminnan kuvaaminen JY:n KA-tiimi
1. Olio-ohjelmointi.
– Ohjelmistojen mallintaminen, mallintaminen ja UML
PITCHAUS Hero 2017.
– Ohjelmistojen mallintaminen, kesä 2010
Vaatimukset ja käyttötapaukset
Mallintamisen metamalli ja notaatiot
Yhteiskehittäminen Innokylässä
Ohjelmistotekniikan menetelmät, sekvenssikaaviot
TIETO JA TIETOKONEOHJELMA
Vaatimukset ja käyttötapaukset
1. Olio-ohjelmointi.
Esityksen transkriptio:

– Ohjelmistojen mallintaminen, mallintaminen ja UML

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ä 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 [Kurssikirja, s ] 15 TermDefinition and Explanations ad advertisement 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 ad instanceA particular occurrence of an ad, i.e. each incidence of an ad broadcast, screening or publication. productA 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.

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