TIES441 Luennot 2013

Sisällysluettelo

Ensimmäinen luento

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.

Kurssin sisältö

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

Suoritustapa

  • Kurssimateriaali
  • Suoritustapa
  • Luennot
  • Demot

Kurssimateriaali

  • Kirjallisuus
  • Kalvot
  • Muu

Luennot

Demot

  • Demot ovat vapaaehtoiset.
  • Demoista saa lisäpisteitä tenttiin. Voimassa kaikissa tämän kurssi-instanssin tenteissä, eli ei enää seuraavalla kerralla luennoitaessa.
  • Demot sisältävät sekä kotona, että demoissa tehtäviä tehtäviä.

Kysyttävää?

Kurssin sisältö tarkemmin

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

Ohjelmistoarkkitehtuuri

  • Mikä on ohjelmistoarkkitehtuuri?
  • Mitä hyötyä?
  • Miksi?
  • 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?

  • Vastaus

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

  • 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.

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"

Mallit ja mallikielet

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

Kehykset ja tuoterungot

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

Olioarkkitehtuurit

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

Muut jutut

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

Päivämäärä: 2013-08-29

Tekijä: Jonne Itkonen

Created: 2013-09-04 Wed 10:07

Emacs 24.3.50.3 (Org mode 8.0.3)

Validate