Focusing software clustering on architectural quality
No Thumbnail Available
Journal Title
Journal ISSN
Volume Title
Helsinki University of Technology |
Diplomityö
Checking the digitized thesis and permission for publishing
Instructions for the author
Instructions for the author
Author
Date
2008
Department
Major/Subject
Ohjelmistotekniikka
Mcode
T-106
Degree programme
Language
en
Pages
73 s. + liitt. 6
Series
Abstract
Ohjelmistoklusterointi on dataklusteroinnin sovellus, joka viittaa ohjelmistojärjestelmään liittyvien olioiden ja tiedon ryhmittelyyn, klusterointiin. Sen tavoitteena on kehittää tai suunnitella uudelleen kohteena olevan ohjelmiston arkkitehtuuria, jotta sen ymmärrettävyyttä, ylläpidettävyyttä, uusiokäyttöä, testattavuutta tai jopa suorituskykyä voitaisiin parantaa. Yleisesti edellä mainittuja ominaisuuksia voidaan saavuttaa järjestelmän korkealla modulaarisuudella. Modulaarisuus voidaan määritellä järjestelmän kykynä piilottaa toteutuksen yksityiskohdat hyvin määritellyn, julkisen rajapinnan taakse. Ohjelmistojärjestelmissä tätä määritelmää voidaan pyrkiä toteuttamaan monin tavoin. Tässä diplomityössä esitetään yleinen klusterointiprosessi ja ohjelmistoklusterointimenetelmiä. Klusteroinnin lähtödataa kerätään esimerkkijärjestelmän lähdekoodista ja altistetaan erilaisille klusterointitoteutuksille. Testien tuloksia tulkitaan ja havainnollistetaan käyttäen useita määriteltyjä metriikoita. Tutkimuksen ja testien tuloksena paljastuu ongelmia, jotka vaikuttavat klusterointitulosten arkkitehtuurin laatuun heikentävästi. Näiden perusteella olemassa olevaa algorithmia muokataan ottamaan paremmin huomioon eräs arkkitehtuuri kannalta olennainen asia, sykliset riippuvuudet. Muokattu algoritmi tarjoaa ensin lupaavia tuloksia, mutta järjestelmän skaalan kasvaessa tulokset heikkenevät. Tämän kokeilun lisäksi yhtäläisyysmittauksia käsitellessä löytyy vaihtoehtoinen menetelmä entiteettien välisien yhteyksien laskemiseen. Tämä menetelmä näyttää vahvuutensa tuottamalla parempia tuloksia läpi testien.Description
Supervisor
Saikkonen, HeikkiThesis advisor
Laverty, Roman MacKeywords
data clustering, dataklusterointi, software clustering, ohjelmistoklusterointi, software architecture, ohjelmistoarkkitehtuuri, modularity, modulaarisuus, cyclic dependencies, sykliset riippuvuudet