582101 - Ohjelmistotekniikan menetelmät, kesä 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 24 luentotuntia, 10 laskuharjoituskertaa Luennot MA 16-20, KE 16-20 ja PE 16-18 Luennoija FM Pietu Pohjalainen pietu.pohjalainen@cs.helsinki.fi Laskuharjoitukset TI ja TO Ryhmä 1: klo 14-16 Ryhmä 2: klo 16-18 Laskuharjoitusten pitäjä LuK Jari Suominen jari.suominen@cs.helsinki.fi Kurssikoe maanantaina 30.6. klo 16-19 osoitteessa Unioninkatu 40, sali 6 6
Arvostelu Kurssin maksimipistemäärä 60 pistettä Tentti: jaossa 50 pistettä Laskuharjoitukset: jaossa 10 pistettä Yhteensä kurssin läpäisemiseksi vaaditaan minimissään noin 30 pistettä. 7
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 8
Kurssin pääsisältö (1/8) Johdatus ohjelmistotuotantoon (Ch. 1) Tietojärjestelmien peruskäsitteet Ohjelmistotuotannon eroavuudet verrattuna muuhun teolliseen tuotantoon Ohjelmiston elinkaaren päävaiheet 9
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 10
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 11
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 12
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 13
Kurssin pääsisältö (6/8) Vuorovaikutuksen suunnitteleminen (Ch 11.3) Sekvenssikaaviot, kommunikointikaavio Esimerkkejä 14
Kurssin pääsisältö (7/8) Arkkitehtuurisuunnittelu (Ch 9) Esimerkkejä erilaisista arkkitehtureista Arkkitehtuurikehyksistä Suunnittelumalleja Järjestelmän eri osien välisten riippuvuuksien hallinta 15
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 16
Harjoituksista Opintopiireissä harjoituksia viitenä viikkona 1. Sidosryhmät 2. Käyttötapaukset 3. Luokkamallinnus 4. Vuorovaikutus 5. Arkkitehtuuri Luentojen ja laskuharjoitusten välillä vain lyhyt kalenteriaika! 17