Dependency management in a Linux based software project

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

2011

Major/Subject

Ohjelmistotekniikka

Mcode

T-106

Degree programme

Language

en

Pages

ix + 78 s. + liitt. 7

Series

Abstract

In this thesis the most common dependency management related issues in software development are studied. An example software project is presented where some dependency management related issues have been identified. Finally a solution is suggested on how to address these issues and the rationale behind the solution is presented. Some well-known build tools, build systems and practices that are commonly used to case the management of software dependencies were studied as a part of this thesis. The results of these studies are presented as a part of this thesis. The developed software of the example software project is a platform running on a Linux operating system. The platform consists of over 200 subsystems, is developed for several CPU architectures, is developed on several continents and is aimed to be used in telecommunication devices requiring high performance and reliability. The identified dependency management problems are mainly related to build process of the platform. To solve the identified issues the use of a binary package based creation of installation images is suggested. The changes that would need to be done to implement the suggested solution include updating the available dependency information, modularizing the build system, revising the software's modularization and considering alternative build tools.

Tässä diplomityössä perehdytään ohjelmistokehityksen yleisimpiin riippuvuuksiin, niistä aiheutuviin ongelmiin ja niiden eri hallintamenetelmiin. Työssä esitellään ohjelmistoprojekti, jossa on havaittu riippuvuuksien hallintaan liittyviä ongelmia ja näille ongelmille esitetään lopulta ratkaisuehdotus perusteluineen. Ratkaisuehdotusta varten tutkittiin tunnettuja ja esimerkkinä esitetyn ohjelmistoprojektin kannalta lupaavia käännöstyökaluja, käännösjärjestelmiä sekä erilaisia riippuvuuksien hallinnassa käytettyjä tunnettuja käytänteitä. Näiden tutkimusten tulokset esitellään osana tätä diplomityötä. Esimerkin ohjelmistoprojektissa kehitetään Linux-käyttöjärjestelmän päällä toimivaa ohjelmistoalustaa. Ohjelmistoalusta koostuu yli kahdesta sadasta osajärjestelmästä ja sitä kehitetään useassa maanosassa ja usealle prosessoriarkkitehtuurille. Ohjelmistoalusta on suunniteltu käytettäväksi telekommunikaatiolaitteissa, joissa vaaditaan erityisen hyvää suorituskykyä ja luotettavuutta. Projektista tunnistetut riippuvuuksien hallintaan liittyvät ongelmat liittyvät lähinnä ohjelmistoalustan käännösprosessiin. Esimerkkinä annetun ohjelmistoprojektin ongelmien ratkaisuksi ehdotetaan binääripaketteihin perustuvaa asennusmedian kasaamista. Ratkaisun toteuttamista varten tulisi ainakin käännösjärjestelmän riippuvuustietoja päivittää, käännösjärjestelmä modularisoida, ohjelmiston moduulijako tarkistaa sekä harkita vaihtoehtoisia käännöstyökaluja.

Description

Supervisor

Tarhio, Jorma

Thesis advisor

Koivistoinen, Ossi

Keywords

build tool, käännöstyökalu, build system, käännösjärjestelmä, dependency management, riippuvuuksien hallinta, Linux, CMake, Poky, open build systems, Yocto

Other note

Citation