TIES441 Ensimmäinen luento 2012

TIES441 Ohjelmistoarkkitehtuurit - kevät 2012

Sisällysluettelo

1 Sisältö

  • Kurssin tavoite
  • Kurssin sisältö
  • Kurssin suoritustapa

2 Tavoite

  • Kurssin jälkeen ymmärrätte, mikä tai mitä on ohjelmistoarkkitehtuuri, miten sellainen luodaan ja dokumentoidaan, ja mikä on sen merkitys ohjelmistokehitykselle.
  • Sivujuonteina tulevat esille komponentit, ohjelmistokehykset, tuoterungot, mallit ja mallikielet, sekä jotain olio-ohjelmien arkkitehtuurista.
  • Heti ensin:

Ohjelmistoarkkitehtuuri ei ole vain joku oliojuttu.

  • Tästä hyötyvät myös imperativistit, funktionalistit ja loogikot.
  • Seuraus: Ohjelmistoarkkitehtuuri ei ole vain kasa UML-kaavioita.

3 Kurssin sisältö

  • Ohjelmistoarkkitehtuuri
  • Ohjelmistokomponentit
  • Mallit ja mallikielet
  • Kehykset ja tuoterungot
  • Olioarkkitehtuurit
  • Yms…

4 Suoritustapa

  • Kurssimateriaali
  • Suoritustapa
  • Luennot
  • Demot

4.1 Kurssimateriaali

  • Kirjallisuus
  • Kalvot
  • Muu

4.1.1 Kirjallisuus

4.1.2 Kalvot

4.1.3 Muu

4.2 TDD

tdd.png

4.2.1 Sovelletaan

  1. Te teette tentin
  2. Tentin perusteella pidän teille luennot
  3. Te teette tentin
  4. Jos tentti ei mene läpi, pidän uudet luennot
  5. Minä heijastan teidän kommentit luentoihin (materiaaliin)
  6. Toistetaan, kunnes kurssin asiat käyty läpi
  7. Teille opintopisteet ja osaaminen, minulle julkaisu

4.2.2 Sovelletaan lisää

Jep, minuakin jännittää, joten liudennetaan hieman. Luennoin hetken aikaa alussa, kokeillaan vähän ViLLEä demoissa, ja sitten vasta lähdetään TDL:llä vauhtiin.

4.2.3 Jos kaikki menee hyvin…

…eli jos pääsette loppuun, ja valo on vihreä (kaikki testit meni läpi), niin: Onnittelut! Olette läpäisseet kurssin! Arvosana? Tehtyjen tehtävien perusteella:

KriteeriArvosana
Kaikki tehtävät5
4
Perustehtävät3
2
Riittävä taso1
Alle riittävän tasonhylkäys

4.3 Luennot

  • Paikalliset luennot
    • Yksi luento on n. neljä opetustuokiota
    • Opetustuokiot määräytyvät tenttien perusteella
    • Ei videointia, yritän tehdä "kalvoja"
  • Videoluennot (ei paikalliset) http://www.cs.tut.fi/~ohar/luennot/
  • Aijoo, olen helmikuussa hetken lomalla, jos ihmettelette luentojen puutetta…

4.4 Demot

  • Pakolliset (vrt. TDD-testi)
  • Demoissa tehdään viikkotestejä, joiden perusteella päätetään (osittain) seuraavan viikon opetus
  • Demoaikoja vähän, teitä paljon, joten demot kestävät tunnin ja sitten uusi poppoo sisälle. (Korpissa vielä väärin, korjailen)
  • Tehtävät tulevat ViLLEen

4.4.1 ViLLE

4.4.2 Reflektio!

  • Kirjoittakaa ylös kokemuksia ja mielipiteitä!
  • Lähettäkää ne minulle!
  • Koetan laittaa tarjolle myös ViLLE-kysymyksiä tästä
    • ViLLEn kysymyksiä voi myös arvostella tähdillä, pliis, tehkää niin!

4.5 Kysyttävää?

5 Kurssin sisältö tarkemmin

  • Ohjelmistoarkkitehtuuri
  • Ohjelmistokomponentit
    • Rajapinnat ja riippuvuudet
  • Mallit ja mallikielet
  • Kehykset ja tuoterungot
  • Olioarkkitehtuurit
  • Muut jutut

5.1 Ohjelmistoarkkitehtuuri

  • Mikä on ohjelmistoarkkitehtuuri?
  • Mitä hyötyä?
  • Miksi?

5.1.1 Kysymys

Ohjelmisto kehitetään tekemään jotain, mitä asiakas toivoo. Asiakkaan toivomus ilmenee toiminnallisista vaatimuksista. Kun ohjelmisto täyttää toiminnalliset vaatimukset, on testattu ja toimii, onko se valmis?

5.1.2 Vastaus

Ei välttämättä ole, hyvällä tuurilla on.

5.1.3 Selitys

Ohjelmiston oikean toiminnan lisäksi (toiminnalliset vaatimukset on täytetty) tulee ohjelmisto olla oikein kehitetty. Oikein kehitetty selviää laadullisista vaatimuksista.

Laadulliset vaatimukset sanelevat ohjelmistoarkkitehtuurin, niiden perusteella valitaan ohjelmiston rakenne.

Ohjelmistoarkkitehtuuri jakaa ohjelmiston komponentteihin ja niiden välisiin kytkentöihin, ja kuvaa näiden molempien väliset ja ulospäin näkyvät ominaisuudet, sekä suhteet ympäristöön.

Ohjelmistoarkkitehtuuri on kyseisen ohjelmistonsa perustuslaki, jota ei helposti muuteta, ja joka sanelee kehityksen rajat.

5.2 Ohjelmistokomponentit

Ohjelmistokomponentin käsite on hyvin epämääräinen. Toisille se on sama kuin painonappi GUI:ssa, jollekin se tarkoittaa ohjelmiston liitännäistä (plug-in), kolmannelle koko GUI voi olla ohjelmistokomponentti.

Yhtä kaikki, ohjelmistokomponentti on kokonainen, jonkin toiminnon kapseloiva yksikkö, jolla on selkeästi määrätyt rajapinnat.

"High cohesion, low coupling, design by contract® , Liskov substitution"

5.3 Mallit ja mallikielet

"Isältä pojalle" "Kansantietämys" "Hiljainen tieto"

5.4 Kehykset ja tuoterungot

Selitetty ihan tajunnanvirtana luennolla, asiaan palataan myöhemmin tarkemmin…

5.5 Olioarkkitehtuurit

Selitetty ihan tajunnanvirtana luennolla, asiaan palataan myöhemmin tarkemmin…

5.6 Muut jutut

Selitetty ihan tajunnanvirtana luennolla, asiaan palataan myöhemmin tarkemmin…

Päivämäärä: 2012-01-10

Tekijä: Jonne Itkonen

Org version 7.8.03 with Emacs version 23

Validate XHTML 1.0