Pitkän elinkaaren ohjelmiston kehittäminen
Aho, Ville (2013)
Aho, Ville
2013
Tietotekniikan koulutusohjelma
Tuotantotalouden ja rakentamisen tiedekunta - Faculty of Business and Built Environment
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2013-06-05
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tty-201306101187
https://urn.fi/URN:NBN:fi:tty-201306101187
Tiivistelmä
Ohjelmiston elinkaareen kuuluu monia erilaisia vaiheita ja muutoksia. Pitkä elinkaari asettaa haasteita niin määrittelyllisesti kuin teknisestikin. Tässä työssä pyritään selvittämään, miten pitkään olemassa ollutta ohjelmistoa voidaan kehittää mahdollisimman tehokkaalla tavalla. Tavoitteena on löytää tekniikoita ja työvälineitä, joilla kehitystyötä voidaan viedä tehokkaasti eteenpäin.
Työ jakautuu neljään osa-alueeseen. Ohjelman nykyisen rakenteen tarkastelussa luodaan käsitys ohjelmassa käytetyistä arkkitehtuurityyleistä. Evoluution hallinnassa tutkiskellaan sitä, miten ohjelmaa muutettaessa pystytään hallitsemaan muutostilanteet, varmistumaan lopputuloksesta ja millaisia riskejä muutokset sisältävät. Työkalujen tarkastelussa pyritään löytämään nykyisistä työkaluista hyödyntämismahdollisuudet. Lisäksi kartoitetaan mitä vielä tuntemattomia apuvälineitä on mahdollista hyödyntää. Tuotteen koostamisessa perehdytään tuotteen rakenneosien hallinnointiin eri ohjelmaversioiden välillä. Samalla tarkastellaan millä käytännön toimenpiteillä ja tekniikoilla koostamisprosessia hallinnoidaan.
Tutkielman tuloksena havaitaan, että arkkitehtuurityylien ymmärtäminen ja noudattaminen selkeyttävät ohjelman luettavuutta sekä pienentävät virheiden todennäköisyyttä ohjelmaa muutettaessa. Toiminnan prosessimalli on tuotava entistä selkeämmin esiin jokapäiväisessä työssä, jotta sitä voidaan kehittää paremmin työyhteisöön sopivaksi. Ylläpito ei ole vain virheiden korjaamista. Siihen kuuluu myös ohjelmaan liittyvän dokumentaation parantaminen. Ominaisuuksia lisättäessä tai muutettaessa on ymmärrettävä selvästi niiden vaikutusalue. Oleellista on myös selvittää, millaista hyötyä ominaisuuksilla saadaan, mitä riskejä niihin liittyy ja mihin ohjelmaversioon muutos on tarkoitus toteuttaa. Henkilöresurssien käyttö on tehokasta silloin, kun se on suunniteltu joustavaksi. Työkaluja on pystyttävä hyödyntämään entistä tehokkaammin. Siinä voidaan käyttää apuna tiimin sisäistä dokumentaatiota ja muuta tiedonvaihtoa. Työkaluja voidaan hyödyntää nykyistä enemmän erityisesti ohjelman suorituskyvyn analysointiin. Hajautetun versiohallinnan hyödyntäminen on vasta alussa. Siihen liittyvät toimintatavat edellyttävät vielä kehittämistä. Kirjattujen tehtävien ja niihin liittyvien muutosten linkittäminen tehostavat integraatiotestausta. Many different types of phases and changes are involved with the lifecycle of software. Long lifecycle puts challenges for both requirements and technologies. In this thesis goal is to sort out most efficient ways to develop long existed software. Object is to discover techniques and tools by which it is possible to carry out development work efficiently as possible.
The thesis is divided into four sections. In the analysis of software’s current structure, goal is to create understanding architecture styles used throughout in software. In evolution control studying aim is in the event of change and managing those events, verifying outcome and evaluating the risks of changes to be made. Studying tools is about exposing utilisation possibilities out of current tools. It is also to survey what other still unknown tools are there to be utilized. Product composition is about managing components between different versions of software. Simultaneously used procedures and techniques of managing composition process are being examined.
As a result of this study, it is being noted that understanding and following of architectural styles clarify software readability and also reduce the risk of errors while making changes to software. The work process model has to be brought out more distinctly in every day work for it to be improved better matching to work community. Maintenance isn’t just bug fixing. It also includes improving software related documentation. While adding or changing features, one has to understand target area of those. It’s also essential to study what kind of benefit it’ll bring, what risks are involved with those and to which version it’s meant to be implemented. Use of personnel resources is efficient when it’s designed to be flexible. Tools are to be used more efficiently. As a help there can be used teams internal documentation and other data exchange. Tools can be utilised more than now to especially for software’s performance analysis. Invocation of distributed version control is just beginning. Procedures relating to it still require development. Registered tasks and linking changes relating to those streamline integration testing.
Työ jakautuu neljään osa-alueeseen. Ohjelman nykyisen rakenteen tarkastelussa luodaan käsitys ohjelmassa käytetyistä arkkitehtuurityyleistä. Evoluution hallinnassa tutkiskellaan sitä, miten ohjelmaa muutettaessa pystytään hallitsemaan muutostilanteet, varmistumaan lopputuloksesta ja millaisia riskejä muutokset sisältävät. Työkalujen tarkastelussa pyritään löytämään nykyisistä työkaluista hyödyntämismahdollisuudet. Lisäksi kartoitetaan mitä vielä tuntemattomia apuvälineitä on mahdollista hyödyntää. Tuotteen koostamisessa perehdytään tuotteen rakenneosien hallinnointiin eri ohjelmaversioiden välillä. Samalla tarkastellaan millä käytännön toimenpiteillä ja tekniikoilla koostamisprosessia hallinnoidaan.
Tutkielman tuloksena havaitaan, että arkkitehtuurityylien ymmärtäminen ja noudattaminen selkeyttävät ohjelman luettavuutta sekä pienentävät virheiden todennäköisyyttä ohjelmaa muutettaessa. Toiminnan prosessimalli on tuotava entistä selkeämmin esiin jokapäiväisessä työssä, jotta sitä voidaan kehittää paremmin työyhteisöön sopivaksi. Ylläpito ei ole vain virheiden korjaamista. Siihen kuuluu myös ohjelmaan liittyvän dokumentaation parantaminen. Ominaisuuksia lisättäessä tai muutettaessa on ymmärrettävä selvästi niiden vaikutusalue. Oleellista on myös selvittää, millaista hyötyä ominaisuuksilla saadaan, mitä riskejä niihin liittyy ja mihin ohjelmaversioon muutos on tarkoitus toteuttaa. Henkilöresurssien käyttö on tehokasta silloin, kun se on suunniteltu joustavaksi. Työkaluja on pystyttävä hyödyntämään entistä tehokkaammin. Siinä voidaan käyttää apuna tiimin sisäistä dokumentaatiota ja muuta tiedonvaihtoa. Työkaluja voidaan hyödyntää nykyistä enemmän erityisesti ohjelman suorituskyvyn analysointiin. Hajautetun versiohallinnan hyödyntäminen on vasta alussa. Siihen liittyvät toimintatavat edellyttävät vielä kehittämistä. Kirjattujen tehtävien ja niihin liittyvien muutosten linkittäminen tehostavat integraatiotestausta.
The thesis is divided into four sections. In the analysis of software’s current structure, goal is to create understanding architecture styles used throughout in software. In evolution control studying aim is in the event of change and managing those events, verifying outcome and evaluating the risks of changes to be made. Studying tools is about exposing utilisation possibilities out of current tools. It is also to survey what other still unknown tools are there to be utilized. Product composition is about managing components between different versions of software. Simultaneously used procedures and techniques of managing composition process are being examined.
As a result of this study, it is being noted that understanding and following of architectural styles clarify software readability and also reduce the risk of errors while making changes to software. The work process model has to be brought out more distinctly in every day work for it to be improved better matching to work community. Maintenance isn’t just bug fixing. It also includes improving software related documentation. While adding or changing features, one has to understand target area of those. It’s also essential to study what kind of benefit it’ll bring, what risks are involved with those and to which version it’s meant to be implemented. Use of personnel resources is efficient when it’s designed to be flexible. Tools are to be used more efficiently. As a help there can be used teams internal documentation and other data exchange. Tools can be utilised more than now to especially for software’s performance analysis. Invocation of distributed version control is just beginning. Procedures relating to it still require development. Registered tasks and linking changes relating to those streamline integration testing.
