Tenttikysymykset 1. Selitä mitä asioita kuuluu tietojärjestelmän käsitteeseen. 2. Selitä kapseloinnin ja tiedon suojauksen periaatteet oliolähestymistavassa ja mitä hyötyä näistä periaatteista on. 3. Selitä miksi on tärkeää panostaa järjestelmäarkkitehtuurin suunnitteluun. 4. Selvitä miten RUP-prosessi yhdistää vesiputousmallin ja ketterien menetelmien parhaita puolia. 5. Selitä mitä UML-kaaviotyypeistä voitaisiin käyttää mallintamaan Korppi-järjestelmää ja mitä näkymiä järjestelmästä näillä kaavioilla voitaisiin esittää. 6. Selvitä myös mitä etuja visuaalisesta esittämisestä on ja kuka hyötyy visuaalisesta esittämistä. 7. Selitä miten laaditaan käyttötapausmalli ja miten se liittyy dynaamiseen mallintamiseen. + UML-kaavioiden mallintamistehtävät
Peruskäsitteitä
Tietojärjestelmä?
(Alter, 2002)
Oliolähestymistapa tarkoittaa kehittämisja ohjelmointiparadigmaa, jonka mukaan todellisuus nähdään joukkona toisiinsa vuorovaikutuksessa olevia olioita (Koskimies, 1995).
Olio on rajattavissa ja yksilöitävissä oleva asia tai käsite, joka on merkityksellinen käsillä olevan tarkastelun kannalta, ja joka kattaa sekä rakenteen (tilan) että käyttäytymisen (UML,1999).
Olio voi olla esimerkiksi: - liiketoimintaolio (business object, application-domain object), joka vastaa liiketoiminnan käsitettä tai asiaa. - käyttöliittymäolio (boundary object), joka on toteutettavan järjestelmän käyttäjärajapinnan tekninen komponentti. - ohjausolio (control object), jonka vastuulla on ohjata ja koordinoida muiden olioiden toimintaa.
Olioluokka kuvaa joukkoa, joka muodostuu rakenteeltaan ja käyttäytymiseltään samanlaisia olioita; eräänlainen muotti. Esim. Työntekijä.
Olioluokat muodostavat hierarkian, jossa on yliluokka ja sen aliluokkia
Attribuutti kuvaa luokkaan kuuluvien olioiden rakenteellista ominaisuutta. Esim. nimi, oppiarvo, tuntipalkka. Attribuuttiarvo yksilöi ominaisuuden. Esim. Toni, Kaupp.yo, 25.
Operaatio on olion käyttäytymisen määrittelyä; voidaan ymmärtää määritykseksi palvelusta, jonka olio tarjoaa. Esim. laskepalkka(). Operaatioon voi liittyä parametreja. Esim. muutapalkka(muutos) Metodi on luokan olioihin sovitettu operaation toteutus. Esim. public double laskepalkka() { palkka=tunnit*tuntipalkka; return palkka; }
Viesti on olioiden kommunikaatiota ja se voidaan ymmärtää palvelupyynnöksi; viestin vastaanottaminen saa aikaan olion aktivoitumisen ja viestissä mainitun operaation (tarkemmin metodin) toteuttamisen. Assosiaatio on on kahden tai useamman luokan välinen rakenteellinen suhde. Esim. Töissä-assosiaatio Työntekijän ja Osaston välillä.
Perusperiaatteita
Abstrahointi on periaate, jonka mukaan nostetaan esille ongelman kannalta relevantit piirteet ja jätetään huomiotta epärelevantit; tehdään tarkastelukohteen yksinkertaistamiseksi tiettyä tarkoitusta varten.
Identiteetti on periaate, jonka mukaan oliot ovat yksikäsitteisesti tunnistettavissa muiden kuin ominaisuuksiensa avulla. Käsitettä on verrattu käsitteelliseen "kahvaan" (handle, UML), jonka avulla muut oliot voivat tunnistaa olion ja lähettää sille viestejä.
Kapselointi on periaate, jonka mukaan kootaan yhteen toisiinsa liittyvät asiat: olion rakenne ja käyttäytyminen. Tiedon suojaus on periaate, jonka mukaan tietyt (yksityiskohtaiset) piirteet oliosta salataan sellaisilta olioilta, joiden ei kuulu niitä tuntea. Tehdään määrittelemällä olioille rajapintoja, joihin toiset oliot voivat viitata.
Periytyminen on periaate, jonka mukaan aliluokat perivät yliluokkansa ominaisuudet, jolloin aliluokkien olioilla on samantapainen rakenne ja käyttäytyminen kuin vastaavan yliluokan olioilla. Aliluokille voidaan määritellä lisäominaisuuksia.
Abstrakti luokka (=luokalla ei ole ilmentymiä) Työntekijä määrittää operaation LaskePalkka, jonka aliluokat Tuntityöläinen ja Kuukausipalkkalainen toteuttavat eri tavoin (polymorfismi). Dynaamisen sidonnan ansiosta suoritus ohjautuu ajonaikana oikeaa tyyppiä olevalle oliolle. Esim. laskettaessa kaikkien Työntekijöiden palkat käytetään Tuntityöläisen tai Kuukausipalkkalaisen metodeja olion konkreettisesta tyypistä riippuen, vaikka kutsujan kannalta tietorakenne sisältää vain Työntekijä-viitteitä.
Arkkitehtuuri
Tietojärjestelmän arkkitehtuuri kuvaa kohdealueensa rakenneosat, niiden ulospäin näkyvät ominaisuudet ja niiden väliset yhteydet ja riippuvuudet.
Tyypillisessä kolmitaso-arkkitehtuurissa (Bennett, 1999) oman tasonsa muodostavat: - käyttöliittymän muodostavat luokat (presentation), - pysyväisluonteisista tiedoista huoltapitävät luokat (data) - sovelluslogiikasta vastaavat luokat (business logic).