OHJP-3201 Ohjelmiston suunnittelu
TTY Porin yksikkö
Klk-2010



Kurssin Moodle-sivusto: http://moodle.tut.fi

Luennot ja harjoitukset: Lähiopetus 54 tuntia. Kurssi edellyttää lähiopetukseen osallistumisen lisäksi itsenäisesti suoritettavaa työskentelyä.

Lähiopetus professori Hannu Jaakkola. Sähköposti: etunimi.sukunimi@tut.fi.

Tavoitteet: Opiskelija ymmärtää ohjelmistosuunnittelun merkityksen osana ohjelmistokehitystä. Opiskelijalla on kurssin suorittamisen jälkeen perusvalmiudet ohjelmiston arkkitehtuurin ja moduulirakenteen suunnitteluun.

Ydinainesanalyysi:

Sisältöalue Ydinaines Täydentävä tietämys Erityistietämys
1. Ohjelmiston suunnittelu prosessina
Ohjelmiston suunnitteluun liittyvä keskeinen käsitteistö.
UML-kielen suunnittelutyöhön liittyvät notaatiot.
2. Suunnittelutyötä ohjaavat laatuattribuutit. Ohjelmistosuunnittelun dokumentointi.
Uudelleenkäyttö toimintatapana.

3. Ohjelmiston arkkitehtuurinen rakenne. Käsitteistö, arkkitehtuurityylit, suunnittelumallit, ohjelmistokehykset. Middleware-ratkaisut. Case Symbian.
Hajautetut verkkopohjaiset arkkitehtuurit

4. Tuoterunkoarkkitehtuurit ja ohjelmistoperheet. Open Source (?)
5. Reaaliaikajärjestelmien suunnittelu


Toteutustapa: Luennot, niihin liittyvät harjoitustehtävät sekä omaehtoinen työskentely. Muista kurssin suorittamiseen liittyvistä käytännöistä sovitaan kurssin yhteydessä..

Kurssin laajuus: 5 op.

Kurssin suorittaminen: Kurssi suoritetaan kuulustelulla ja muilla kurssin yhteydessä sovittavilla suoritteilla. Kuulustelusta saatava maksimipistemäärä on 40. Kurssin läpipääsyraja on 16 pistettä (2/5*max). Tentistä on saatava hyväksytty suoritus kurssin läpäisemiseksi. Muut suoritteet muodostavat arvostelussa 20 pisteen suuruisen osion: Kurssin luennoilla läsnäolosta voi kerätä 10 pistettä (=90% luentokerroista) ja kurssiin liittyvistä suoritteista 10 pistettä. Kurssin arvosana määräytyy jakamalla yhteenlaskettu pistemäärä luvulla 10 ja pyöristämissääntöjen mukaisesti muuntamalla saatu tulos kokonaisluvuksi. Arvosteluasteikko 1-5.


Kirjallisuus ja kurssimateriaali:

Luennot on rakennettu seuraavia kirjoja hyödyntäen

Tyyppi Nimi Tekijä ISBN URL Painos,saatavuus... Tentti-
materiaali
Kieli
Kirja Ohjelmistoarkkitehtuurit Koskimies Kai, Mikkonen Tommi 952-14-0862-6
Talentum, 2005 Ei ole Suomi
Kirja Ohjelmistotuotanto Haikala Ilkka, Märijärvi Jukka 952-14-0486-8
Talentum, 10. painos Ei ole Suomi
Luentokalvot Ohjelmiston suunnittelun kalvomateriaali Jaakkola H.

TTY, Porin yksikkö Kyllä Suomi
Kirja Software Engineering Sommerville, Ian 0-321-31379-8
Addison-Wesley, 8. painos Kyllä Englanti
Kirja UML Distilled Fowler, Martin 0-321-19368-7
Addison-Wesley, 3. painos Ei ole Englanti
Kirja Software Design Budgen, David 0-201-72219-4
Addison-Wesley, 2. painos Ei ole Englanti
Kirja Software Architecture - System Design, Development and Maintenance Bosch, Jan et al. 1-4020-7176-0
Kluwer Academic Publishers Ei ole Englanti
Kirja Oliokirja Koskimies, Kai 951-762-720-3
Satku, 2000. Ei ole Suomi
Kirja Software Architecture in Practice Bass L., Clements P., Kazman R. 0-321-15495-9
Addison-Wesley, 2003. 2nd. Edition. Ei ole Englanti
Kirja Gamma E., Helm R., Johnson R., Vlisides J. (suom. Toivonen A.) Design Patterns - Olio-ohjelmointi, suunnittelumallit 951-826-428-7
IT Press, 2001. Vastaava alkuperäisteos: Design Patterns - Elements of Reusable Object Oriented Software, Addison-Wesley, 1997. Ei ole Suomi

Muita aihepiiriä käsitteleviä suositeltavia kirjoja lukemistoksi asiasta kiinnostuneelle esitellään luentojen yhteydessä.

Luentomateriaalin jakelu: Toteutetaan Moodle-sivuston avulla

Sisältö:

Ohjelmiston suunnittelu - yleistarkastelua

  • Johdanto ja suunnittelun terminologiaa
  • Ohjelmiston suunnittelu - Case (suunnitteluprosessin hahmottaminen)
  • UML suunnittelutyön tulosten dokumentoinnissa

Suunnitteluprosessi

  • Suunnitteluprosessi, suunnittelustrategia ja sovellusten arkkitehtuuriset lähtökohdat suunnittelutyölle
  • Laatuohjattu suunnittelu

Ohjelmistoarkkitehtuurit

  • Ohjelmistoarkkitehtuurit - yleistarkastelua
  • Komponentit: rajapinnat
  • Komponentit: riippuvuus
  • Suunnittelumallit
  • Arkkitehtuurityylit
  • Tuoterunkoarkkitehtuuri ja ohjelmistoperheet
  • Ohjelmistokehykset

Suunnittelun erityiskysymyksiä (käsitellään, mikäli aikataulu sallii)

  • Uudelleenkäyttö
  • Open source -ohjelmistokehitys
  • Reaaliaikajärjestelmien suunnittelu
Aineistolinkkejä: