Improving the software architecture of a ship logbook, data collection and reporting system

No Thumbnail Available

URL

Journal Title

Journal ISSN

Volume Title

School of Science | Master's thesis
Checking the digitized thesis and permission for publishing
Instructions for the author

Date

2010

Major/Subject

Ohjelmistotekniikka

Mcode

T-106

Degree programme

Language

en

Pages

[8] + 50 s. + liitt. 12

Series

Abstract

Software architecture erodes over time, unless it is updated when the software is changed. Software code should be structured into cohesive components to cope with change. Modularity improves maintainability, because cohesive components contain less code, which is easier to understand than monolithic code. Less time is required for maintenance, and more time can be used to fulfil user requirements. Code can be restructured by refactoring. The architecture of a software system which is used to replace paper logbooks aboard ships is redesigned in this thesis. The system has evolved to include functionalities for collecting and reporting data, which are not directly related to the logbook. The architecture is to he changed in such a way that the main functionalities of the system are separated into their own programs. The new architecture was designed based on information gathered from the stakeholders of the system, as well as on methods which have been proven to be successful in the industry. The system was separated into new modules with very cohesive and well structured code. Some issues not directly related to the functionalities of the system still remained after the redesign. This thesis shows that improving the maintainability of a system by redesigning its architecture does not necessarily take a lot of time. It pays for itself quickly by shortening future development time.

Ohjelmistoarkkitehtuurin ylläpidettävyys heikkenee ajan myötä, ellei sitä päivitetä kun ohjelmisto muuttuu. Koodin pitäisi olla jäsennetty yhtenäisiin komponentteihin, jotta muutoksia olisi helppo tehdä. Modulaarisuus edistää ylläpidettävyyttä, koska yhtenäiset komponentit sisältävät vähemmän ja helpommin ymmärrettävää koodia. Ylläpitoon tarvitaan vähemmän aikaa ja enemmän aikaa voidaan käyttää täyttämään asiakkaiden vaatimuksia. Koodia voi järjestellä uudelleen refaktoroimalla. Tässä työssä suunnitellaan paperisia laivalokikirjoja korvaavan ohjelmistojärjestelmän arkkitehtuuri uudelleen. Järjestelmä on kehittynyt sisältämään toiminnallisuuksia tiedon keräämiseen ja raportointiin, jotka epäsuorasti liittyvät lokikirjaan. Arkkitehtuuria muutetaan siten, että järjestelmän päätoiminnallisuudet ovat erotettuja itsenäisiin ohjelmiin. Uudistettu arkkitehtuuri perustuu järjestelmän sidosryhmiltä kerättyyn tietoon, sekä menetelmiin, jotka teollisuudessa ovat osoittautuneet onnistuneiksi. Järjestelmä jaettiin uusiin moduuleihin, joilla on hyvin yhtenäinen ja jäsennelty koodi. Joitain ongelmia, jotka eivät suorastaan liity järjestelmän toiminnallisuuksiin, oli vielä olemassa uudelleensuunnittelun jälkeen. Tämä työ osoittaa, että ohjelmistojärjestelmän kunnossapidettävyyden parantaminen uudelleen suunnittelemalla sen arkkitehtuuria ei välttämättä vie paljon aikaa. Lyhentämällä tulevan kehityksen vaatimaa aikaa, se maksaa itsensä takaisin nopeasti.

Description

Supervisor

Saikkonen, Heikki

Thesis advisor

Karanta, Antti

Keywords

software architecture, ohjelmistoarkkitehtuuri, redesign, uudelleensuunnittelu, modularity, modulaarisuus

Other note

Citation