Improving modularity of a large legacy application

Loading...
Thumbnail Image
Journal Title
Journal ISSN
Volume Title
School of Science | Master's thesis
Date
2010
Major/Subject
Ohjelmistotekniikka
Mcode
T-106
Degree programme
Language
en
Pages
[6+] 56 [+5]
Series
Abstract
Modularity is an important factor in maintenance and further development of existing large-scale software systems. Highly modular software systems are more comprehensible for the developers than less modular ones. Modular software is easier to modify and therefore enable faster development of new features with fewer bugs than non-modular software. Remodularization is the process of increasing modularity of the software without changing its functionality. It augments modifiability of the existing functionality, extensibility with new features, and reusability of the software parts. The main focus of this thesis is on remodularization and its application to a real-life system. The theoretical part presents remodularization methods and the case study software. The case study software is a large-scale legacy application for building information modelling. The theoretical part covers also metrics for measuring the effects of the remodularization project. The practical part applies Attribute-Driven Remodularization Design (ADRD) to the case study software. The outcome of the ADRD method is a remodularization process description. The practical work includes planning and executing a remodularization project based on the created remodularization process description. Finally, the impact of the changes is evaluated using the presented software metrics.

Modulaarisuus on tärkeä tekijä laajan ohjelmiston ylläpidettävyyden ja jatkokehityksen kannalta. Modulaarisen ohjelmiston ymmärrettävyys on parempi kuin ei-modulaarisen ja siksi modulaarista ohjelmistoa on helpompi muokata. Modulaariseen ohjelmistoon on myös mahdollista kehittää uusia ominaisuuksia nopeammin ja vähemmillä virheillä kuin ei-modulaariseen. Uudelleenmodulointi on ohjelmiston modulaarisuuden lisäämistä sen toiminnallisuutta muuttamatta. Uudelleenmodulointi parantaa olemassa olevan toiminnallisuuden muokattavuutta, ohjelmiston laajennettavuutta uusilla ominaisuuksilla ja ohjelmiston osien uudelleenkäytettävyyttä. Tämän työn painopiste on uudelleenmoduloinnin soveltamisessa olemassa olevaan järjestelmään. Teoriaosuudessa esitellään tapaustutkimusohjelmisto, joka on laaja kolmiulotteinen rakennustuotemalliohjelmisto. Lisäksi esitellään uudelleenmodulointimenetelmiä sekä työkaluja toteutettavan uudelleenmodulointiprojektin vaikutusten mittaamiseen. Käytännön työssä sovelletaan attribuuttiperustaista uudelleenmoduloinnin suunnittelumenetelmää (ADRD, Attribute-Driven Remodularization Design) tapaustutkimusohjelmistoon. Menetelmän avulla ohjelmistolle luodaan uudelleenmodulointiprosessikuvaus, jonka perusteella suunnitellaan ja toteutetaan uudelleenmodulointiprojekti. Muutosten vaikutukset arvioidaan esiteltyjä mittareita käyttäen.
Description
Supervisor
Saikkonen, Heikki
Thesis advisor
Rautakorpi, Tiina
Keywords
software modularity, modulaarisuus, software architecture, ohjelmistoarkkitehtuuri, architecture-centric methods, arkkitehtuurikeskeiset menetelmät, software re-engineering, ohjelmiston uudelleensuunnittelu, software remodularization, uudelleenmodulointi, attribute-driven remodularization design, attribuuttiperustainen uudelleenmoduloinnin suunnittelu, maintainability index, ylläpidettävyysindeksi, directed connectivity, suunnattu kytkeytyneisyys
Other note
Citation