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
- Kirjallisuus
- Kai Koskimies, Tommi Mikkonen: Ohjelmistoarkkitehtuurit, Talentum 2005
- Kalvot
- Kalvot kirjaan liittyen (ei paikalliset) http://www.cs.tut.fi/~ohar/luennot/
- Paikalliset kalvot kurssin sivuilla (HT Etsi kurssin kotisivut.)
- Muu
- Videoluennot kirjaan liittyen (ei paikalliset) http://www.cs.tut.fi/~ohar/luennot/
- Simon Brown: The Frustrated Architect; GoTo2011 Aarhus
Luennot
- Paikalliset luennot
- Ei videointia, yritän tehdä "kalvoja"
- Videoluennot (ei paikalliset) http://www.cs.tut.fi/~ohar/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…