Programming Language Pragmatics

Download Report

Transcript Programming Language Pragmatics

582101 - Ohjelmistotekniikan menetelmät,
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
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
4
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
5
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
6
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
7
Esimerkki sanastosta
Term
Definition 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 instance
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]
8
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
9
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
10
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)
11
Tietovuokaaviot
• Data flow diagrams, DFD
• Historiallisesti käytetyin
kuvaustekniikka
• Järjestelmän
toiminnallinen ositus
• Epäyhteensopivuus
oliomallinnuksen kanssa
aiheuttanut suosion
hiipumisen
12
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ä
13