3 research outputs found

    Sulautettujen tehtäväkriittisten satelliittijärjestelmien ohjelmistokehitysmenetelmät

    No full text
    Mission critical flight software for spacecraft is essential for spacecraft functionality. It controls all subsystems such as payloads, and multiple standards and conventions have been developed to provide reliability and robustness for the software. The most significant feature of developing spacecraft software is the codesigning of the hardware and software, where robustness must be taken into consideration. There are multiple traditional methods for developing mission critical embedded software. These methods struggle from slow development velocity and do not favor possible changing requirements. New methods for developing software have emerged in latest decades, but they are designed for differ ent fields of industry and not for mission critical embedded software. This thesis studies how to improve embedded mission critical software development in a small company with limited resources and a tight development schedule. The thesis was developed as an assignment for Finland based NewSpace company ICEYE. In this thesis, the traditional spacecraft software development conventions are provided as a background information. Then, different modern software development techniques are presented. After that, this information is applied to ICEYE software development, where final analysis and developed systems are presented. The focus of development phases is divided into four subsections, which are development tools, hardware and software codesign, continuous integration and continuous delivery, and lastly, testing. Finally, the conclusions and integration of these four analyses are provided, with suggestions for future work. The results propose agile acceptance test-driven approaches with the trackable requirements from system level with justified use of development tools. The final system should be tested in real simulated functional scenarios, which occur during the actual mission. This thesis also presents developed configurations, testing environment and analysis of selected tools.Tehtäväkriittinen lento-ohjelmisto on oleellinen osa avaruusaluksen toimintaa. Se hallitsee kaikkia alijärjestelmiä kuten hyötykuormia, ja useat erilaiset standardit sekä käytännöt pyrkivät varmistamaan ohjelmiston eheyden sekä luotettavuuden. Eräs huomionarvoisin ominaisuus tämänkaltaisen ohjelmiston kehittämisessä on ohjelmiston ja laitteiston yhtäaikainen kehittäminen, missä eheys pitää ottaa huomioon. Tällaisen ohjelmiston kehittämisestä on olemassa useita perinteisiä tapoja. Nämä kuitenkin kärsivät hitaasta kehitysnopeudesta eivätkä taivu mahdollisiin muuttuviin vaatimuksiin. Viimeisinä vuosikymmeninä on kehitetty uudempia kehittyneitä tapoja kirjoittaa ohjelmistoja, mutta nämä on kehitetty pääasiassa muiden teollisuudenalojen tarpeisiin eivätkä täten toimi itsessään tehtäväkriittisille sulautetuille järjestelmille. Tämä diplomityö tutkii tehtäväkriittisen sulautetun järjestelmän ohjelmiston kehittämisen tehostamista, jonka lisäksi etsittiin ratkaisuja, millä tavalla kyseisiä toimia voidaan käyttää hyväksi rajoitetuilla resursseilla sekä nopealla kehitysaikataululla. Diplomityö tehtiin toimeksiantona ICEYE-nimiselle suomalaiselle NewSpace-yritykselle. Tässä diplomityössä esitellään aluksi perinteiset ohjelmistokehitysmenetelmät avaruusohjelmistolle. Myös erilaiset modernit ohjelmistokehitystekniikat esitellään. Näiden pohjalta analysoidaan ICEYEn nykyistä ohjelmistokehitystä ja diplomityön aikana kehitetyt järjestelmät esitellään. Analysoinnin pääpaino on jaettu neljälle eri osa-alueelle, jotka ovat kehitystyökalut, laitteiston ja ohjelmiston yhdenaikainen kehitys, jatkuva integraatio sekä jatkuva julkaisu ja lopuksi testausmenetelmät. Lopuksi nämä kaikki kiedotaan yhteen ja tehdään lopulliset päätelmät, sekä esitellään tulevaisuuden kehitysehdotukset. Tulokset esittävät, että kehityksessä pitäisi suosia hyväksymistestauksen kautta perittyjä ketteriä kehitysperiaatteita, jossa järjestelmätason vaatimukset voidaan jäljittää koko kehityksen aikana. Käytössä olevien työkalujen täytyy olla oikeutettuja. Lopullinen järjestelmä testataan simuloiduilla tehtävänaikaisilla tapahtumilla. Tämä diplomityö myös esittää kehitetyt asetustiedostot, testausympäristön sekä työkalujen analysoinnin
    corecore