Improving modularity of a large legacy application

Loading...
Thumbnail Image

URL

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