582104 Ohjelmistojen mallintaminen, kesä 2010 1
Ohjelmistojen mallintaminen Software Modeling Perusopintojen pakollinen opintojakso, 4 op Esitietoina edellytetään oliokäsitteistön tuntemus Ohjelmoinnin perusteet-kurssin laajuudessa Web-sivu: http://www.cs.helsinki.fi/u/pohjalai/ke10/ohma/ Korvaa aikaisemmat kurssit Johdatus sovellussuunnitteluun tai Ohjelmistotekniikan menetelmät 2
Mikä on malli? A model is an abstract representation of an item or a concept a car, a plane, or a building or a part of something, such as a tire, a wing, or a room. Models are created in order to view, manipulate, or test the thing they represent without having to build the real thing. [MSDN Microsoft Oslo documentation] 3
Suhde muihin peruskursseihin 4
Kurssimoniste Kurssi perustuu Matti Luukkaisen ja Harri Laineen kurssimonisteeseen Ohjelmistojen mallintaminen 5
Oppimistavoitteet Olio-ohjelmiston kehittämiseen ja elinkaareen liittyvät peruskäsitteet ja -menetelmät Käyttötapaus-, luokka- ja sekvenssikaavioiden laatiminen UML:llä Vaatimusanalyysin, kohdealueen mallinnuksen sekä arkkitehtuuri- ja oliosuunnittelun alkeet & soveltaminen pienessä mittakaavassa 6
Kurssin suoritus 24 luentotuntia, 10 laskuharjoitustuntia Luennot tiistaisin ja torstaisin klo 16.15-19 Luennoija FM Pietu Pohjalainen pietu.pohjalainen@cs.helsinki.fi Laskuharjoitukset R1: klo 16-18, R2: klo 14-16, sali B221 Laskuharjoitusten pitäjä Matti Seise matti.seise@cs.helsinki.fi 7
Kurssikoe ja arvostelu Kurssikoe lauantaina 4.9. klo 9-12 Tarkista paikka! Avoimessa tenttiin ilmoittautuminen viimeistään 10 päivää ennen tenttiä Kurssin maksimipistemäärä 60 pistettä Tentti: jaossa 50 pistettä Laskuharjoitukset: jaossa 10 pistettä Yhteensä kurssin läpäisemiseksi vaaditaan minimissään noin 30 pistettä. Lisäksi vapaaehtoinen ohjelmointieksperimentti, johon osallistumisesta saa 5 pistettä 8
Ohjelmointieksperimentti Kurssilla käsitellään viimeisellä luentokerralla lisämoniste, jossa yhdistellään lankoja tämän kurssin ja kurssin Tietokantojen perusteet välillä Kurssilaisilla on mahdollisuus osallistua ohjelmointieksperimenttiin, jossa toteutetaan ylläpidollisia muutoksia olemassaolevaan oliomallinnettuun järjestelmään Eksperimenttiin osallistuminen tuottaa uutta tieteellistä tietoa.. sekä lisää tästä kurssista saamaasi pistemäärää 5 pisteellä. 9
Kurssin sisältö Johdatus ohjelmistotuotantoon Ohjelmistojen mallintaminen ja UML Käyttötapauksiin perustuva vaatimusmäärittely Luokkamallien laatiminen Vuorovaikutuksen suunnitteleminen Ohjelmistojen arkkitehtuuri ja rajapinnat 10
Kurssin pääsisältö (1/5) Johdatus ohjelmistotuotantoon Tietojärjestelmien peruskäsitteet Ohjelmistotuotannon eroavuudet verrattuna muuhun teolliseen tuotantoon Ohjelmiston elinkaaren päävaiheet 11
Kurssin pääsisältö (2/5) Ohjelmistojen mallintaminen ja UML Miksi ohjelmistoja pitää mallintaa Oliokäsitteistön kertaus UML:n yleisesittely ja eri kaaviotyyppien käyttötarkoitukset Käyttötapauskaavio Luokkakaavio Sekvenssikaavio 12
Kurssin pääsisältö (3/5) Käyttötapauksiin perustuva vaatimusmäärittely Ohjelmiston sidosryhmien löytäminen Käyttötapausmalli ja -kaavio Käyttötapaukset kaaviona ja tekstinä Käyttötapausten organisoiminen Käyttötapausmallin laatiminen Käyttötapaukset ohjelmiston elinkaaressa 13
Kurssin pääsisältö (4/5) Luokkamalli Esimerkkejä UML-luokkamalleista Luokkakaavio UML:ssä Luokat ja luokkien ilmentymät Luokkien attribuutit Yhteydet Operaatiot Luokkamallin lisäohjeistusta Erilaiset yhteystyypit: kooste ja kompositio Muita suhteita, riippuvuuksista, luokkahierarkia 14
Kurssin pääsisältö (5/5) Vuorovaikutuksen suunnitteleminen Sekvenssikaaviot, kommunikointikaavio Esimerkkejä Arkkitehtuurisuunnittelu Esimerkkejä erilaisista arkkitehtureista Arkkitehtuurikehyksistä Suunnittelumalleja Järjestelmän eri osien välisten riippuvuuksien hallinta 15
Harjoituksista Laskuharjoitukset viitenä kertana 1. Yleispohdiskelua 2. Käyttötapaukset 3. Luokkamallinnus 4. Vuorovaikutus 5. Arkkitehtuuri Luentojen ja laskuharjoitusten välillä vain lyhyt kalenteriaika! 16