582101 - Ohjelmistotekniikan menetelmät, kevät 2008 1
Ohjelmistotekniikan menetelmät Methods for Software Engineering 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/k08/ otm/ Korvaa aikaisemman kurssin Johdatus sovellussuunnitteluun 2
Suhde muihin peruskursseihin 3
Kurssikirja Maciaszek L., Liong B., Practical Software Engineering A Case Study Approach, Addison- Wesley, 2005 Optimointina, valitse kaksi kolmesta: 1. Luennot 2. Laskuharjoitukset 3. Oppikirja 4
Oppimistavoitteet Olio-ohjelmiston kehittämiseen ja elinkaareen liittyvät peruskäsitteet ja -menetelmät Käyttötapaus-, luokka- ja sekvenssikaavioiden laatiminen UML:llä Tutustuminen CASE-, IDE-, versionhallinta-, testaus- ja muihin ohjelmistotyökaluihin Vaatimusanalyysin, kohdealueen mallinnuksen sekä arkkitehtuuri- ja oliosuunnittelun alkeet & soveltaminen pienessä mittakaavassa 5
Kurssin suoritus 10 luentokertaa, viikoilla 11-17 Tiistaisin 10-12 ja torstaisin 12-14 (B123) Luennoija FM Pietu Pohjalainen pietu.pohjalainen@cs.helsinki.fi Vastaanotto perjantaisin klo 8-8.45 Opintopiiritapaamiset, viikoilla 12-17 Muodostetaan 3-5 henkilön opintopiirejä Ohjaajan kanssa tapaamiset kahdesti viikossa, lisäksi ryhmän sisäiset tapaamiset Kurssikoe maanantaina 5.5. klo 16-19 salissa A111 6
Ilmoittautuminen ja harjoitusryhmät Ilmoittautuminen ILMO-järjestelmän kautta http://ilmo.cs.helsinki.fi Ilmoittautumistilanne per 11.3.2008 1. BK107 TI 12-14, BK106 PE 12-14 Jari Suominen [23/23] 2. BK107 TI 14-16, BK106 PE 14-16 Jaakko Nurro [13/23] 3. BK107 KE 10-12, BK106 PE 10-12 Jaakko Nurro [10/23] 98. Uusijat= suoritusta aiemmin kahdesti yrittäneet [1/999] 99. Jono - jos ryhmät ovat täynnä tai ajat eivät sovi [3/999] 7
Arvostelu Kurssin maksimipistemäärä 60 pistettä Kurssikoe: jaossa 40 pistettä Vaaditaan minimissään 16 pistettä Opintopiirit: jaossa 20 pistettä Vaaditaan minimissään 5 pistettä Yhteensä kurssin läpäisemiseksi vaaditaan minimissään noin 30 pistettä. Vaihtoehtoinen suoritustapa: erilliskoe, jossa jaossa 60 pistettä. 8
Kurssin sisältö Johdatus ohjelmistotuotantoon Ohjelmistojen mallintaminen ja UML Käyttötapauksiin perustuva vaatimusmäärittely Luokkamallien laatiminen Vuorovaikutuksen suunnitteleminen Ohjelmistojen arkkitehtuuri ja rajapinnat Ohjelmistotuotannon työkalutuki Testauksen suunnitteleminen ja toteuttaminen 9
Kurssin pääsisältö (1/8) Johdatus ohjelmistotuotantoon (Ch. 1) Tietojärjestelmien peruskäsitteet Ohjelmistotuotannon eroavuudet verrattuna muuhun teolliseen tuotantoon Ohjelmiston elinkaaren päävaiheet 10
Kurssin pääsisältö (2/8) Ohjelmistojen mallintaminen ja UML (Ch. 2) Miksi ohjelmistoja pitää mallintaa Strukturoitu mallinnus: DFD- ja ER-kaaviot Oliokäsitteistön kertaus UML:n yleisesittely ja eri kaaviotyyppien käyttötarkoitukset Sidosryhmäkaavio Käyttötapauskaavio Luokkakaavio Sekvenssikaavio 11
Kurssin pääsisältö (3/8) Käyttötapauksiin perustuva vaatimusmäärittely (Ch. 6-8) 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 12
Kurssin pääsisältö (4/8) Luokkamalli (Ch. 6-8) Esimerkkejä UML-luokkamalleista Luokkakaavio UML:ssä Luokat ja luokkien ilmentymät Luokkien attribuutit Yhteydet Operaatiot 13
Kurssin pääsisältö (5/8) Luokkamallin lisäohjeistusta Erilaiset yhteystyypit: kooste ja kompositio Muita suhteita, riippuvuuksista, luokkahierarkia Ohjelmistotuotannon työkalutuki (Ch. 3.2-3.2) CASE- ja mallinnustyökalut IDE-ympäristöt Järjestelmänrakennus 14
Kurssin pääsisältö (6/8) Vuorovaikutuksen suunnitteleminen (Ch 11.3) Sekvenssikaaviot, kommunikointikaavio Esimerkkejä 15
Kurssin pääsisältö (7/8) Arkkitehtuurisuunnittelu (Ch 9) Esimerkkejä erilaisista arkkitehtureista Arkkitehtuurikehyksistä Suunnittelumalleja Järjestelmän eri osien välisten riippuvuuksien hallinta 16
Kurssin pääsisältö (8/8) Huomioita toteutusvaiheesta (Ch. 12) Testiohjatusta kehitysmallista Yksikkötestaus ja testausohjattu kehitys (TDD) Hyväksymis- ja regressiotestaus Ylläpitovaihe, ryhmätön tuki (Ch. 3.4) Muutoksenhallinta Konfiguraation- ja versionhallinta Takaisinmallinnus ja uudelleentoteutus 17
Harjoituksista (1/2) Opintopiireissä harjoituksia viitenä viikkona 1. Sidosryhmät (vko 12-13, pääsiäisloma) 2. Käyttötapaukset (vko 14) 3. Luokkamallinnus (vko 15) 4. Vuorovaikutus (vko 16) 5. Arkkitehtuuri (vko 17) Seuraavan viikon harjoitukset jaetaan viimeistään edellisen viikon jälkimmäisellä luennolla 18
Harjoituksista (2/2) Viikon 1. tapaamisella valmistellaan töitä Viikon 2. tapaamiskerralla esitellään työt Näiden välissä ryhmän tulisi keskenään tuottaa kirjallinen raportti Raporttipisteet jaetaan raportin kansilehdellä mainituille tekijöille! 19