582104 - Ohjelmistojen mallintaminen 4 op, syksy 2010, 2. periodi
Kurssikuvaus
Kurssi on tietojenkäsittelytieteen pääaineopiskelijoiden ja sivuaineopiskelijoiden perusopintoihin sisältyvä pakollinen opintojakso, laajuudeltaan 4 opintopistettä. Kurssilla käsitellään ohjelmistoihin ja niiden kehittämiseen liittyvää käsitteistöä ja välineitä, erityisesti ohjelmiston rakenteen ja toiminnan määrittelyä ja kuvaamista. Keskeisenä asemassa on UML-mallinnuskieli ja sen soveltaminen. Kurssi korvaa vanhan tutkintojärjestelmän kurssin Ohjelmistotekniikan menetelmät.Ajankohtaista
- Palautetilaisuus maanantaina 17.1. klo 15-16 salissa B221
- Koe on korjattu. Laskarirastien tarkastuslista ja kokeen tehtävien pisteet täällä.
- Kurssin tulokset.
- Arvosanarajat:
- 30p: 5
- 27p: 4
- 24p: 3
- 21p: 2
- 18p: 1
- Kokeen esimerkkivastaukset ja arvosteluperusteita.
- Viimeisen luennon kalvoista löytyy hieman kokeen kannalta oleellista asiaa. Koe siis 15.12.2010 9.00-12 salissa A111.
- Kokeeseen saa tuoda mukanaan itse tehdyn, käsin tehdyn yhden A4 arkin (saa
olla 2-puolinen) lunttilapun. Lunttilapun teossa siis ei saa käyttää kopiokonetta tai tietokonetta.
-
Viime syksyn kurssikoe näytti tältä
- Laskareiden piteytys:
- 30 tehtävää 8 pistettä
- 27 tehtävää 7 pistettä
- ...
- 9 tehtävää 1 piste
- Muutama Ron Jeffriesin lyhyt artikkeli liittyen viime päivien teemoihin
- What is really essential?
- Clean Code: Too Much of a Good Thing?
- Technical Stories: We don’t need ‘em.
- Tiistain 7.12. luennon aihepiiri on muuttunut. Alunperin oli tarkoitus esitellä lisää UML:ää (tilakaavio ja aktiviteettikaavio). Kaaviot kuitenkin väistyvät tärkeämmän ja mielenkiintoisemman aiheen tieltä. Tämän muutoksen takia monisteen luku 7 ei kuulu kurssikokeen aihepiiriin
Luennolla puhutaan testauksesta ja testauksen automatisoinninsta JUnit-testauskehyksen avulla. Aihe on tärkeä, sillä esim. Ohjelmoinnin harjoitustyössä JUnitia on ensi keväästä asti pakko käyttää.
Luennon toinen puolikas sisältää jotain tähän mennessä laitoksella (lähes) ennenäkemätöntä. Esittelen yhdessä Matti Paksulan kanssa ns. Test Driven Development -tekniikkaa (TDD) ja pariohjelmointia. TDD ja pariohjelmointi ovat eturivin ohjelmistoyrityksissä tehtävissä ketterissä ohjelmistoprojekteissa yleisesti käytössä olevia käytänteitä. Ks esim. Reaktor innovationsin sivuja
Toinen luento tulee olemaan livedemonstraatio, jossa pariohjelmoimme Matin kanssa TDD:llä erään ohelmoinnin jatkokurssin tehtävän.
- Luentoon 11 liittyvä JUnit-ohje
- UML-kaavioiden piirtelyyn on olemissa kymmenittäin erilaisia ohjelmia. Eräs tälläinen on Magic Draw, jonka asennusohje täällä.
Muita käyttökelpoisia ohjelmistoja:
- Helppokäyttöinen Online-työkalu sekvenssikaavioiden piirtelyyn
- BOUML
- Argo UML (tukee vain UML:n versiota 1.4)
- Umbrello (ei sekvenssikaavioita)
- Dia
- Microsoft Visio (ks. http://www.cs.helsinki.fi/tietotekniikka/microsoftin-ohjelmia-opiskeluk-ytt-n)
- Omnigraffle (Mac, maksullinen)
Ohma-kurssilla ei edellytetä minkään mallinnusohjelmiston käyttöä, käsin piirretyt kaaviot riittävät.
- luentomonisteen "lopullinen" versio ilmestynyt
- Kurssin IRC-kanava #ohma10 on auennut
- Laskarit alkavat jo viikolla 1, tehtävät löytyvät hieman alempaa
- Vaikeuksia laskareiden tekemisessä? Neuvontapaja auttaa!
- neuvontapajassa CK110 on ohjaaja paikalla ma 17-, ti 16- ja to 12-
- neuvontapajaluokka on opiskelijoiden käytössä muinakin aikoina
Luennot
01.11.-10.12. TI 10-12, PE 12-14 A111 Matti LuukkainenAlustava sisältö:
Pvm | aihe | monisteen sivut | |
---|---|---|---|
02.11. | Johdanto ohjelmistotuotantoon | 1-10 | |
05.11. | Käyttötapausmalli | 11-20 | |
9.11. | Luokka- ja oliokaavio (luokka, olio, yhteys) | 21-32 | |
12.11. | Luokkakaavio jatkuu (kooste, kompositio) | 32-34 | |
16.11. | Yhteysluokat, luokkamallin muodostaminen | 34-42 | |
19.11. | Sekvenssi- ja kommunikaatiokaaviot | 51-62 | |
23.11. | Luokkakaavio jatkuu (yleistyshierarkiat) | 42-50 | |
26.11. | Kirjastoesimerkki (käyttötapausmalli ja kohdealueen luokkamalli) | 63-72 | |
30.11. | Ohjelmiston arkkitehtuuri, pakettidiagrammit) | 73-78 | |
03.12. | Kirjastoesimerkki jatkuu (oliosuunnittelu) | 79-99 | |
07.12. | JUnit-testauskehys ja Test Driven Development | ||
10.12. | Esimerkkejä, kertausta, hieman uutta asiaa oliosuunnittelusta |
Laskuharjoitukset
HUOM: Laskuharjoitukset alkavat jo ensimmäisellä viikolla.
Jokaisella harjoitusviikolla on noin 5-7 kotona tehtävää tehtävää. Joillakin viikoilla on ehkä myös muutama laskareissa tehtävä tehtävä.
Tehtäviä ja esimerkkiratkaisuja:
- Viikko 1: tehtävät
- Viikko 2: tehtävät, esimerkkiratkaisuja
- Viikko 3: tehtävät, esimerkkiratkaisuja
- Viikko 4: tehtävät, esimerkkiratkaisuja tehtävät 1-4, ja 5-6
- Viikko 5: tehtävät, esimerkkiratkaisuja
- Viikko 6: tehtävät, esimerkkiratkaisuja, monopolin sekvenssikaavio
Harjoitusajat:
TI 12-14 C222 Arto Vihavainen KE 16-18 C222 Arto Vihavainen TO 10-12 C222 Matti Luukkainen PE 14-16 B222 Matti Luukkainen
Kurssimateriaali
LuentomonisteMagic Draw -ohjelmiston asennusohje.
Opiskelun tukena voi käyttää esim. seuraavia kirjoja:
- Craig Larman: Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development. Kolmas painos.
- Martin Fowler: UML Distilled: A Brief Guide to the Standard Object Modeling Language. Kolmas painos.
Verkosta löytyy paljon vaihtelevatasoista UML-materiaalia.
- Larmanin kirjan luvut 2, 5 ja 6 täällä
- Allen Holub's UML Quick Reference on kompakti tiivistelmä tärkeimpien UML-kaavioiden käytöstä
- Alistair Cockburnin käyttötapauspohja
Kurssin suoritus
Kurssiin liittyy yksi koe, joka järjestetään 15.12.2010 9.00-12 salissa A111.
Koko kurssin arvostelun maksimipistemäärä on 36. Kokeen maksimipistemäärä on 28 ja harjoitusten 8. Kurssin läpipääsy edellyttää vähintään puolta koepisteistä ja puolta kokonaispistemäärästä.
Kurssin voi suorittaa myös erilliskokeella. Erilliskokeiden aikataulu. Syksyn kurssin laskuharjoituspisteet huomioidaan helmikuun erilliskokeessa. Erilliskokeen voi toki tehdä myös "normaalina" erilliskokeena, jolloin laskaripisteillä ei ole vaikutusta.