Return to search

Cross-platform software component design

The aim of this thesis is to analyze a project to design and implement a new FM Radio application for Symbian OS. The project process and relevant events are discussed when they have an impact on the design work. The goal of the project was to offer an improved user experience with features like favorite stations, song history, RT+ support, and automatic region selection. In order to complete the application within the project schedule, the existing radio modules were to be reused as much as possible. The application was required to be developed using the Qt application framework and to have no dependencies on the old UI framework from the Symbian OS. Platform-independence, testability, and simplicity were other key requirements for the new radio application. A final comprehensive goal was to stick to established design patterns and to follow the design principles and good practices defined earlier in the bachelor’s thesis by the same author. An added challenge was provided by the necessity to develop the application on top of a new UI framework that was still in development itself. Constant changes to the framework put a strain on the already tight project schedule. The discussion focuses on the design of the engine module that was required to house most of the application logic. The engine is disconnected from the Symbian OS by the use of a wrapper module, whose purpose is to hide the platform details. Due to its relevance to the engine, the design of the wrapper is discussed in detail. The application UI and the reused radio modules are discussed briefly and only to the extent that is relevant for the engine design.

The resulting design fulfills its requirements and the implemented application performs as designed. All the required features are supported, and the existing radio modules are reused. The lack of dependency on the old UI framework is witnessed by running the application in a system that does not contain the framework. The possibility to run the application on a Windows workstation also affirms that the platform-independence requirement was achieved. The design and implementation adhere to the principles outlined in the bachelor’s thesis and provide a practical use for them. The principles are found to be valid and important for the successful completion of a complex software project. It is discovered that the goal of designing a simple system from complicated beginnings is difficult to achieve and requires many iterations. Gradual refinements to the architecture and implementation are necessary to finally arrive at the optimal design. Constant refactoring is found to be a key element in the successful completion of a software project. / Tässä työssä analysoidaan projektia, jossa suunniteltiin ja toteutettiin uusi FM Radio -sovellus Symbian-käyttöjärjestelmälle. Projektin prosessi ja oleelliset tapahtumat kuvataan siltä osin kuin ne vaikuttavat suunnittelutyöhön. Projektin tavoite oli tarjota parempi käyttökokemus uusilla ominaisuuksilla kuten suosikkikanavilla, kappalehistorialla, RT+ -tuella, ja automaattisella aluevalinnalla. Olemassa olevia radiomoduuleita oli uudelleenkäytettävä niin paljon kuin mahdollista, jotta projekti saataisiin aikataulun puitteissa valmiiksi. Sovellus tuli suunnitella Qt-sovelluskehystä käyttäen, eikä sillä saanut olla riippuvuuksia vanhaan käyttöliittymäkirjastoon. Alustariippumattomuus, testattavuus ja yksinkertaisuus olivat myös tärkeitä vaatimuksia. Viimeinen kattava tavoite oli pitäytyä vakiintuneissa suunnittelumalleissa ja noudattaa suunnitteluperiaatteita ja hyviä toimintatapoja, jotka olivat saman tekijän kandidaatintyössä aiemmin määritelty. Tarve toteuttaa sovellus keskeneräisen käyttöliittymäkirjaston päälle asetti oman lisähaasteensa. Jatkuvat muutokset kirjastossa rasittivat jo valmiiksi tiukkaa projektiaikataulua.

Tämän työn pääpaino on moottorimoduulissa, jonka tuli sisältää suurin osa sovelluksen logiikasta. Moottori on eriytetty Symbian-käyttöjärjestelmästä adapterimoduulilla, jonka tarkoitus on piilottaa ohjelmistoalustan yksityiskohdat. Adapterin suunnitelma kuvataan yksityiskohtaisesti. Sovelluksen käyttöliittymä ja uudelleenkäytetyt radiomoduulit kuvataan lyhyesti ja vain niiltä osin kuin ne ovat moottorin suunnitelmalle oleellisia. Tuloksena syntyvä suunnitelma täyttää vaatimukset, ja toteutettu sovellus toimii kuten oli suunniteltu. Kaikki vaaditut ominaisuudet ovat tuettuja ja olemassa olevat radiomoduulit käytettiin uudelleen. Riippumattomuus vanhasta käyttöliittymäkirjastosta havaitaan suorittamalla sovellusta järjestelmässä, jossa sitä ei ole. Mahdollisuus ajaa sovellusta Windows-työasemassa myös todistaa sen, että alustariippumattomuuden vaatimus täytettiin. Suunnitelma ja toteutus noudattavat kandidaatintyössä määriteltyjä periaatteita ja tarjoavat niille käytännön sovellutuksen. Periaatteet todetaan paikkansapitäviksi ja tärkeiksi monimutkaisen ohjelmistoprojektin onnistuneen valmistumisen kannalta. Työssä havaitaan, että tavoite suunnitella yksinkertainen järjestelmä monimutkaisista lähtökohdista on vaikea saavuttaa ja vaatii useita toistoja. Asteittaiset korjaukset arkkitehtuuriin ja toteutukseen ovat välttämättömiä optimaaliseen suunnitelman saavuttamiseksi. Jatkuvan uudelleenjärjestelyn havaitaan olevan avainasemassa ohjelmistosuunnitteluprosessissa.

Identiferoai:union.ndltd.org:oulo.fi/oai:oulu.fi:nbnfioulu-201306011427
Date03 June 2013
CreatorsKivijärvi, M. (Marko)
PublisherUniversity of Oulu
Source SetsUniversity of Oulu
LanguageEnglish
Detected LanguageFinnish
Typeinfo:eu-repo/semantics/masterThesis, info:eu-repo/semantics/publishedVersion
Formatapplication/pdf
Rightsinfo:eu-repo/semantics/openAccess, © Marko Kivijärvi, 2013

Page generated in 0.0022 seconds