Helsingin yliopisto Tietojenkäsittelytieteen laitos
 

Tietojenkäsittelytieteen laitos

Tietoa laitoksesta:

 

Suorituskyvyn ennustaminen ohjelmistoarkkitehtuurista

Tutkimusalue:

Ohjelmistotekniikka - ohjelmistoarkkitehtuurit, suorituskyky

Ohjaaja:

Ei vielä nimitetty.

Asiakkaat:

Juha Gustafsson ja Inkeri Verkamo - Tietojenkäsittelytieteen laitos

Työn aihepiiri:

Vuodenvaihteessa 2001-2002 päättyvässä Maisa-projektissa on toteutettu ohjelmistotyökalu, joka mittaa UML-kaavioista erilaisia ohjelmistometriikoita ja tunnistaa kaavioista suunnittelumalleja (design patterns). Työkalun tarkoitus on mitata kaavioiden edustamien ohjelmistoarkkitehtuurien laatua sekä tutkia suunnittelumallien vaikutusta eri metriikka-arvoihin. Työkalu on alunperin tarkoitettu käytettäväksi ohjelmiston suunnitteluvaiheessa, jolloin ohjelmiston laatua voitaisiin mitata jo ohjelmistoprosessin alussa. Sitä voidaan kuitenkin soveltaa myös ohjelmakoodin analysointiin saatujen laatuarvioiden validoimisessa toteutusvaiheen jälkeen sekä takaisinmallinnuksen (reverse engineering) apuvälineenä.

Suorituskyky on yksi keskeisiä laatuominaisuuksia, ja tulevan sovelluksen suorituskyvyn ennustaminen jo suunnitteluvaiheessa on tarpeen, jotta voidaan tarvittaessa ajoissa korjata suorituskyvyn kannalta riittämättömät ratkaisut. Sovelluksesta riippuen suorituskyvyn kannalta mielenkiintoisia suureita voivat olla sekä sovelluksen suoritusaika että sen varaaman muistitilan määrä. Näiden arvioimiseksi voi olla tarpeen tutkia sekä ohjelman rakenneosia kuvaavia kaavioita (esim. luokkakaavioita) että suoritusaikaista käyttäytymistä (esim. aktiviteettikaavioita).

Maisa-työkalu sisältää suoritusajan analysointiin tarvittavat perusrakenteet, joiden avulla UML:n aktiviteettikaavioihin voidaan liittää suoritusaikaan vaikuttavia tietoja kuten yksittäisten aktiviteettien kestoaikoja (minimiarvoja, maksimiarvoja, tyypillisiä arvoja) sekä toistorakenteiden ja haarautumisen todennäköisyyksiä tai frekvenssejä. Näiden perusteella työkalu laskee ennusteen tulevan sovelluksen suoritusajalle.

Työn kuvaus:

Työn tarkoituksena on perehtyä Maisa-työkalun suorituskyvyn ennustamiseen liittyviin ominaisuuksiin ja laajentaa niitä. Eräitä mahdollisia tarkastelukohteita ovat seuraavat:

Toisistaan riippuvat suorituspolut:

Tämänhetkisessä versiossa suorituspolkujen keskinäisiä riippuvuuksia ei oteta huomioon, jolloin saadut ylä- ja alaraja-arviot voivat olla tarpeettoman karkeita. Tarkemmassa analyysissa nämä voitaisiin ottaa huomioon.

Erilaisiin toteutusympäristöihin liittyvät vaihtoehdot:

Hierarkkiset aktiviteettikaaviot voivat sisältää osinaan aktiviteetteja, joiden toteuttamiseen on olemassa muutamia suoritusaikavaatimuksiltaan selkeästi erilaisia vaihtoehtoja (esim. aktiviteetin toteuttavan olion sijoittaminen samaan tai eri solmuun kuin aktiviteettia pyytävä olio, erilaiset sanomanvälitysmekanismit). Työssä selvitetään mahdollisuuksia analysoida näitä rinnakkain, jolloin ylä- ja alaraja-arvioiden sijasta saadaan tarkempaa tietoa mahdollisista arvoväleistä.

Muistitilan käyttö:

Työkalua laajennetaan muistitilan käytön ennustamisen vaatimilla ominaisuuksilla. Tämä edellyttää sekä luokkakaavioiden että aktiviteettikaavioiden sisältämän tiedon analysointia ja yhdistämistä.

Toteutusympäristö:

Java ja tarvittavat kirjastot tai sovelluskehykset (Swing).

Erityisvaatimukset:

Perustiedot suorituskykyasioista ovat hyödyksi.

Sopimus:

Järjestelmä toteutettaneen laitoksen yleisen lisenssisopimuksen alla.