Skip to main content
Login | Suomeksi | På svenska | In English

Browsing by study line "Ohjelmistot"

Sort by: Order: Results:

  • Kauhanen, Janne (2022)
    Legacy software systems, which refers to old and likely outdated software applications and practices, are a reality that most software development companies have to contend with. Old practices and technologies are often at fault for slowing down development and deployment of software, as they can have compatibility, security, scalability and economic issues with their continued use, among other issues. Software modernization, reengineering and refactoring can alleviate the issues stemming from legacy systems, whether it be in the form of altering practices, updating technologies or changing platforms. There are many technologies and methods that can facilitate the modernization of a software system, including a move to using different architectures, specific newer technologies and changing the methods of working and developing the software system. These technologies and methods, and modernization in general, come with their own risks and challenges that must be considered for a successful modernization to take place; These strategic considerations are a key factor in modernization. This thesis will explore software modernization in general through literature reviews and as a case study for a specific company using data from surveys and the case company’s logs, with a look into the technologies, concepts and strategies required for a successful modernization, and what kinds of effects modernization can have on the software system being modernized, both from a user perspective as well as from a developer perspective. The end-result of this exploration reveals that modernization is a complex subject with many challenges, but that also offers benefits to the software system being modernized. These results are best used as a guideline on what issues should be concentrated on during modernization, with a mindful consideration for the limited scope of the case study represented within.
  • Koskelin, Jukka (2023)
    Infrastructure as Code (IaC) is one of the key components for shortening the software development cycle and enabling DevOps culture in software development teams. While the concept was introduced to the wider audience in the mid-2000s, alongside DevOps, the adoption of Public Cloud and declarative domain-specific IaC -languages has made it an integral part of software development. In this thesis, we describe the IaC as a concept and examine its history, tools, and the state of the current research. We examine Infrastructure Systems and Infrastructure Stacks as concepts for describing IaC, and different patterns for re-usable modules. We then introduce Microsoft Azure as a Public Cloud Provider, its Platform-as-a-Service (PaaS) -resources, and infrastructure deployment mechanics, focusing on Azure Resource Manager templates and Bicep domain-specific language. As a case example, we go through a real-life project for creating re-usable Azure Bicep modules, examine how its architecture evolved during the project and architectural decisions made in different parts of the project. We introduce Common Azure Resource Module Library as a reference architecture for modular Azure Bicep code, present an architecture based on a façade module pattern and perform an Architectural Trade-off Analysis (ATAM) to find tradeoffs, architecture sensitivity points and risks.
  • Kauvo, Sara (2022)
    Context: Factors that affect software team performance are a highly studied subject. One of the reasons for this is the subject’s meaningfulness to companies and software teams since anyone interested in improving team performance wants to know which factors affect positively on the team performance. What motivated us to do this thesis on this subject was our interest in both software teams and social sciences. Objective: This thesis’s aim was to better understand how the factors selected in our unofficial interviews will affect the software team performance and how big this affect is. These selected factors are psychological safety, team leader’s behaviour and team’s gender diversity. Method: We conducted a literature review with a keyword search. When we needed to specify the search by a factor we used factor-related words and if needed limit the subject area to computer science. All in all 23 reference papers were selected in the search. Results: Our analysis shows that all of our factors have a positive impact on the performance of the team, though how big this impact is depended on the factor. Psychological safety seems to have the biggest impact while the behaviour of team leader has a decent impact, not huge but not minuscule, lastly the gender diversity of the team has only a very small impact. Conclusions: Ultimately we have concluded that all three chosen factors have a positive effect on software team performance. Though from these three factors, psychological safety and team leader’s behaviour have the most significant impact on software team performance. So for software team leaders, it’s important to pay attention to these two factors, especially since they are even linked to each other.
  • Rantanen, Robert (2023)
    Manual creation of game content is often the most expensive and time-consuming part of game development. Procedural content generation offers an alternative solution, automatically generating game content with the help of algorithms. This can decrease the cost and effort of content creation inaddition to offering other benefits such as increasing the game’s replayability. This thesis investigates the current state of procedural content generation and how it is utilized in game development. A major part the thesis is investigating state-of-art open-source software that can be used for automatic generation of game content. We evaluate the usefulness and practicality of utilizing these tools in game development.
  • Padhy, Barunes (2023)
    Research in the field of life sciences is crucial for comprehending the underlying characteristics of an organism, which aids in the development of vaccines and medications as well as insights into how nature evolves and the future course it may take. Analyzing Phylogenetic trees and DNA sequences are typical techniques used in this research. New researchers often struggle with command-line usage and OS intricacies due to their lack of expertise. Even seasoned researchers are not immune to typos which, in the worst case, could take considerable debugging time. It is also important to note that due to the computationally intensive nature of running such algorithms, use cases often involve running these analyses on the cloud. This thesis aims to create a generalized web application (PhyloStreamer) that gives users the ability to create a UI for command-line tools which abstracts the technical nuances of utilizing OS commands. The thesis covers the need for such a tool, to establish domain-level knowledge in phylogenetics with examples of a few tools used, explains the general architecture of the tool, explains in detail the functionalities provided by the tool, and describes GUI creation. The results demonstrate a finished web application, which allows a user to easily create a GUI for a command-line tool, with the only caveat being that if a certain command-line tool is run via an interactive shell, for e.g, python. However, if there exists a way to run a command via the command line without the need for an interactive shell, PhyloStreamer should be able to create a GUI for it. Furthermore, noting the importance of running this on the cloud, the tool also covers the deployment of this tool on cloud.
  • Popova, Vera (2023)
    A dynamically evolving nature of software development (SWD) necessitates an emphasis on lifelong learning (LLL) for professionals in this field. In today’s rapidly changing technology domain LLL has transitioned from an exceptional practice to an essential norm, recognized as a fundamental skill within the industry. This thesis investigates a current state, trends, challenges, and best practices of lifelong learning in SWD workplaces. Our research draws on a review of literature spanning the past two decades, complemented by semi-structured interviews conducted with software professionals of diverse experience levels, all employed in the capital region of Finland. Additionally, this thesis contributes to an existing classification of learning methods utilized by software professionals and to a lifelong learning framework grounded in established research. Our findings underscore the importance of fostering a culture of continuous learning in software development workplaces, offering recommendations for employers to consider. Nurturing a learning mindset and personalized, employee-centered approach to learning increases learner autonomy and commitment, seamlessly integrating learning as a natural part of work and career development. Such a workplace culture enhances employee well-being and employer’s innovativeness and competitiveness, establishing lifelong learning as a mutually beneficial solution for both of the parties involved.
  • Valto, Kristian (2023)
    Microservices have been a popular architectural style to build server-side applications for quite a while. It has gained popularity for its inherent properties that countered the downsides of matured monoliths that are harder to maintain and further develop the larger the monoliths get. A monolithic application consists of a single unit. It usually is split into application tiers such as client, database, and server-side applications. The properties countering monoliths come from splitting a service into smaller services. These smaller services then form the server-side application by communicating with each other. The goal of a single microservice is to focus on "doing one thing well" and only that. Together they form a loosely coupled group of services to achieve larger business goals. However, the fact is that distributed systems are complex. With software architecture we can separate the complexity of distributed systems and business functions.
  • Lahelma, Jere (2023)
    Wide range of psychological distress risk factors in older adults have been identified, however there is room for improvement in the comprehension of population-level disparity among risk factors for subgroups. Understanding risk factor variance would help public health professionals recognise the diversity of at-risk populations and arrive at more effective health policy. Older adults have unique risk factor profiles for psychological distress since they experience more frequently neurological disorders, diminished physical capabilities and insomnia along with adverse life events like bereavement and socio-economic changes. In this thesis, an approach combining computational statistics with methods of observational epidemiology were used with Helsinki Health Study cohort of City of Helsinki municipal workers to analyse novel risk factor disparities and evaluate the suitability of model-based recursive partitioning method. The method combines decision trees with generalised linear models to identify subgroups with the most significant disparity among risk factors. The risk factors investigated for psychological distress in older adults included sleep disturbance, history of depression, childhood adversities and lack of social support. Sleep disturbance showed relatively low disparity, while social support and childhood adversities showed more disparity across subgroups. Model-based recursive partitioning offers promising modelling technique for exploratory subgroup analysis with focus on interaction effects and model interpretability.
  • Kärki, Arto (2021)
    Perinteisten levyperustaisten relaatiotietokantojen taulujen sisältämä tieto talletetaan riveittäin peräkkäistiedostoihin ja rivi koostuu yleensä useista eri sarakkeista. Tällöin tietokantaan kohdistettava yleensä SQL-kielinen kysely saa haettua yhden rivin tiedot nopeasti, varsinkin jos kyseinen rivi sattuu olemaan jo valmiiksi muistissa. Jos kyselyllä haetaankin tietoja useilta sadoilta, ellei jopa tuhansilta riveiltä ja kyselyyn sisältyy hakuehto, jossa voi olla mukana useita sarakkeita, niin kyselystä tulee yleensä aina hidas, elleivät rivit sitten sattumalta ole järjestetty hakutekijän mukaan. Lisäksi jos haettavat rivit eivät ole valmiina muistissa, niin järjestelmä joutuu tekemään hitaan tiedon haun levyltä ja tämä hidastaa entisestään halutun tulosjoukon muodostamista. Sarakeorientoituneessa tietokannassa kunkin taulun sarakkeen tieto voidaan tallettaa omaan tiedostoonsa, tai sitten kunkin sarakkeen tiedot sijaitsevat peräkkäin samassa tiedostossa. Kunkin sarakkeen tiedot voidaan myös tiivistää ja säästää näin tilaa. Sarakeorientoituneesta taulusta tietyn rajatun osajoukon hakeminen on usein nopeampaa, koska kysely voidaan kohdistaa vain haluttuihin sarakkeisiin ja koska sarakkeet arvot ovat peräkkäin, ovat tiedot näin nopeasti saatavilla. Jos tiedot eivät ole jo valmiiksi muistissa, niin myös tiedon hakeminen ulkoiselta tiedostolta nopeutuu, koska halutut tiedot ovat peräkkäin levyllä. Kun sarakeorientoitunut tietokanta sijoitetaan keskusmuistiin, niin myös mahdollinen levyltä lukemiseen kuluva viive poistuu, ja tulosten saanti nopeutuu entisestään. Tutkielmassa tarkastellaan sarakeorientoituneen keskusmuistitietokannan toimintaa ja sen liittämistä osaksi muuta tietokantajärjestelmää. ACM Computing Classification System (CCS): Information systems → Main memory engines Information systems → Data compression Information systems → Database query processing
  • Isosaari, Matias (2022)
    In this thesis, software industry testing standards were reviewed to help improve NAPCON Display Viewer 5 (DV5) test coverage. DV5 is the graphical user interface part of the NAPCON Operator Training Simulator (OTS) and has a large existing codebase with no existing testing procedures. To help improve build stability a shallow and wide smoke testing approach would be adopted to cover as much core functionality as possible, before more rigorous end-to-end testing could be implemented. The thesis study was conducted using the design science methodology. As part of this thesis, a smoke testing tool was created to test DV5 display and faceplate opening functionality. DV5 simulator configurations can consist of up to several hundreds of displays and display construction requires a lot of manual work. Using the created tool, tests were conducted in several display repositories to determine the functionality of the display sets. With only shallow automated testing, minor errors were found in most of the tested repositories, demonstrating the usefulness of automated testing with large display sets. In addition to the display testing results the display testing execution helped demonstrate some of the DV5 performance issues. Based on these findings, the smoke testing scenarios could prove useful in the future in DV5 performance testing.
  • Koskipää, Saara (2022)
    Background: The digital transformation of the financial industry led by technological advances, together with changes in regulations, have created opportunities for companies to provide innovative new financial services. Fintech applies latest technological innovations to provide better and more efficient financial products and business models, disrupting the traditionally rigid banking industry. Objective: The objective of this study was to find out what kind of digital services are provided by the fintech industry, what software or technology related competencies and skills are needed in the development of fintech software, and the special requirements of fintech software. Method: The method of this study was systematic literature review. Following the defined review protocol, 31 primary studies published between the years of 2015 and 2021 were identified as relevant for this review by queries to three scientific databases. The selected primary studies were categorized by services, competencies and requirements. Results: Most of the identified digital services were payment applications but also robo-advisors, budgeting tools and compliance automation tools were found. The technologies and related skills extracted from the studies were divided to software development skills and data science skills and further categorized. Compliance with laws and regulations and various reporting and auditing practices were found to be unique domain requirements for fintech. Security was the most mentioned non-functional requirement of a financial system. Conclusions: Fintech is a cross-disciplinary field with unique requirements for business critical software. However, research on fintech software development is still limited.
  • Talosela, Pinja (2022)
    Terveysteknologisten ohjelmistojen ja hyvinvoinnin ja terveyden sovellusten määrä on kasvanut viime vuosina. Osa ohjelmistoista luokitellaan lääkinnällisiksi ohjelmistoiksi, joille on asetettu lainsäädännössä rajoituksia ja vaatimuksia. Terveysteknologisen alan tuotteita sitova sääntely vaikuttaa myös lääkinnällisten ohjelmistojen kehitykseen. Yksi terveys- ja hyvinvointialan ohjelmistokehityksen haasteista on ketterien ohjelmistokehitysmenetelmien soveltaminen tehokkaasti. Tutkielman tavoitteena on tutkia, miten terveysteknologisen ohjelmiston ja sen kehittämistyön pystyy yhdistämään ketteriin ohjelmistokehitysmenetelmiin. Tutkimusmenetelmänä on systemaattinen kirjallisuuskatsaus. Kirjallisuusaineisto muodostettiin 30 tutkimuksesta. Tutkielman tuloksina kirjallisuudesta selvitetään lääkinnällisten ohjelmistojen ja ketterän ohjelmistokehityksen yhdistämisessä ilmenneitä haasteita ja erilaisia yhdistämisen tapoja. Lisäksi selvitetään ohjelmistokehittäjiltä vaadittavia taitoja lääkinnällisten ohjelmistojen ketterässä kehityksessä.
  • Malkki, Jaakko (2023)
    Microservice architecture is a software architecture style that has gained popularity in the last decade. Microservice architecture applications consist of multiple smaller microservices, which can be developed, tested and deployed independently. Testing the whole microservice application at system-level has been difficult for various reasons, such as that the services might use different technologies or the amount of services makes the system complex. The goal of this thesis is to study typical challenges in microservice testing and address them by developing a prototype of a tool for system-level testing of microservice applications. This thesis presents a prototype of a tool for microservice testing that focuses on making the test code and configuration reusable. Reusability allows creating new tests easily, because it is common for tests to share many parts. The tool uses Docker for running the microservices, which makes it agnostic to the technologies used by the services as long as they can be containerized. The tool is then used to test a real microservice application to validate that it is usable in practice. It is shown that the tool mostly fulfills its requirements and that it provides a good base for further development and studies.
  • Laitinen, Emma (2023)
    Implementing software process improvement (SPI) models or standards can be challenging for a small organization due to their limited resources compared to larger companies. The ISO/IEC 29110 series of systems and engineering standards were designed especially for very small entities (VSEs), i.e. for organizations having up to 25 employees. Company X is a small Finnish software company following a Scrum workflow. At Company X, challenges have been identified in the software testing process. Because of the company’s size, ISO/IEC 29110 out of different SPI standards was identified as a potential fit for improving this process. While the ISO/IEC 29110 standard can be applied to any software life cycle method, including agile, there is no formal guide on how to implement the standard in an agile environment. The aims of this thesis are two-fold: first, to investigate how Scrum corresponds with the standard, and second, to use the standard to identify weak points in Company X’s current software testing process and to identify action points to address them. The mappings between Scrum and the standard were investigated by carrying out a systematic literature review (SLR). A self-assessment and a software testing deployment package provided with the standard were used to assess the current testing process and to identify shortcomings in it. The shortcomings were analyzed and action points feasible in Company X’s context were suggested. The improved process containing the suggested action points was then re-assessed. The SLR yielded only a handful of papers, indicating that the topic of implementing ISO/IEC 29110 into an agile lifecycle in practice is relatively unexplored. The three papers together provided mappings for all three aspects of the standard vs. their counterparts in Scrum: activities, roles, and work products. The baseline assessment of Company X’s current process yielded a score of achieved ‘Partially’ (46,5 %). A set of seven shortcomings were identified in the assessment process and nine action points were suggested to address them. Assessing the improved process improved the score to implemented ‘Fully’ (97 %).
  • Roberts, Taylor (2024)
    The continuous application of generative AI is increasingly employed to enhance both creative and knowledge-centric processes. With the release of OpenAI’s GPT models in 2022, generative AI utilisation has surged, facilitating the optimisation of these processes to a greater extent than before. This research has been conducted for PwC Finland and presents a solution that leverages generative AI and RAG methods to aid consultants in data retrieval and analyses. This work follows a design science methodology, whereby, an incremental and iterative process is followed to produce an IT artifact. The artifact is in the form of a Proof of Concept (POC) instantiation: a Microsoft Word Add-in that links to a backend process employing a RAG framework, generative AI, and contemporary software architecture. This research has found that utilising RAG methods with generative AI alone is not enough to produce specific analyses within the tax and legal context. With an accuracy of only 62.5%, its important to utilise metadata filtering, pre-prompting and knowledge graphs to enhance contextual understanding.
  • Jussila, Outi (2023)
    Verkkosivuston saavutettavuudella tarkoitetaan kaikenlaisten käyttäjien huomioonottamista digitaalisissa palveluissa. Saavutettavuus on herättänyt entistä enemmän keskustelua ja siihen kiinnitetään yhä paremmin huomiota verkkosivustojen kehittämisessä. Saavutettavuus edistää yhdenvertaisuutta ja siitä on nykyään säädetty laissa. Tämän maisterintutkielman tavoitteena on lisätä tietoutta saavutettavuudesta ja sen arviointimenetelmistä. Automaattisten arviointityökalujen tarjonnan ollessa hyvin laajaa on tärkeää löytää omaan käyttötarkoitukseen sopivat menetelmät. Tässä tutkielmassa selvitettiin, millaisia eroja työkaluista löytyy omien kokeilujen ja kirjallisuuden perusteella, ja miten työkalujen tulokset eroavat saavutettavuuden asiantuntijan arviosta. Tutkielmassa perehdyttiin kolmen ilmaistyökalun arvioon ja teetettiin yksi asiantuntijan saavutettavuusarvio. Arviot suoritettiin Sanakirja.fi-sivustolle. Tulosten perusteella luotiin kehitystiimille ehdotelma sopivista menetelmistä tukemaan sivuston saavutettavuuden arviointia. Osaksi palvelun kehitysprosessia suositellaan kahta automaattityökalua toisiaan täydentämään ja listaa tarvittavista manuaalisista tarkistuksista.
  • Lonardi, Jarno (2021)
    Tutkimuksessa tutustutaan verkkoselaimen uusiin rajapintoihin ja niiden soveltamiseen pelien kehityksessä. Viimeisten vuosien aikana kaikki suosituimmat selaimet ovat alkaneet tukea uusia HTML5-, WebGL- ja WebAssembly rajapintoja. Nämä rajapinnat mahdollistavat useita tärkeitä asioita peleille kuten laitteistokiihdytetyn 3D-grafiikan esittämisen, suorituskykyisen koodin suorittamisen ja esimerkiksi peliohjaimen tilan lukemisen. Tutkielma on konstruktiivinen ja rajapintojen soveltuvuus koestetaan kahden kokeellisen pelin avulla. Tarkoituksena on yrittää todentaa rajapintojen soveltuvuus pelien kehittämiseen sekä tutkia millaisia työkaluja, esimerkiksi pelimoottoreita, on olemassa. Ensimmäinen peleistä toteutetaan käyttäen ainoastaan selaimen rajapintoja ja toinen käyttäen olemassa olevaa pelimoottoria, joka on rakennettu näiden rajapintojen päälle. Lisäksi työssä yritetään löytää ongelmakohtia, jotka liittyvät selainpelien kehitykseen. Pelkästään selaimen rajapintoja käyttäen on mahdollista toteuttaa suorituskykyisiä 3D-pelejä, mutta etenkin WebAssembly on vielä vahvasti kehityksen alla. WebAssemblyn käyttö on melko hankalaa ja se vaatii ympärilleen työkaluja, jotta sitä voidaan hyödyntää kehitystyössä tehokkaasti. Sen sijaan HTML5- ja WebGL-rajapinnat ovat helposti käytettäviä rajapintoja, joihin löytyy suuri määrä käärekirjastoja, jotka tekevät etenkin WebGL-rajapinnan käytöstä hyvin yksinkertaista. Pelimoottorit ovat alkaneet myös hyödyntää näitä uusia rajapintoja. Esimerkiksi Unitypelimoottori ei vaadi enään erillisen liitännäisen asentamista selaimeen. Unityn ja muiden selainpelimoottorien avulla pystytään hyvin tehokkaasti tuottamaan 3D-pelejä selaimelle. Vaikka nykyisin näyttäviä pelejä voidaan toteuttaa selaimelle, niihin liittyy useita ongelmia. Pelien 3D-mallien suuri koko ja niiden siirtämien verkon yli on hidasta ja kopionsuojaus on hankalaa sillä pelin lähdekoodi pitää aina ladata käyttäjän koneelle. Lisäksi peliä suorittava laitteisto on tuntematon ja sitä ei voida rajata hyvän pelikokemuksen saavuttamiseksi kuten esimerkiksi mobiilipeleissä tehdään
  • Riihimäki, Tatu (2023)
    ICT-sektorin edellyttämän sähköenergiantuotannon aiheuttamat kasvihuonepäästöt ovat kasvaneet lentoliikenteen kasvihuonepäästöjen suuruisiksi. Tähän on kuitenkin mahdollista vaikuttaa tekemällä energiankulutustietoisia valintoja ohjelmistokehityksessä, josta tänä päivänä osa kohdistuu verkkoselaimissa suoritettavien verkkosovellusten kehitykseen, jossa apuna käytetään erilaisia verkkosovelluskehyksiä. Tässä tutkielmassa vertaillaan käytetyimpien JavaScript-verkkosovelluskehysten: React, Angular ja Vue, energiankulutusta uuteen Blazor WebAssembly -verkkosovelluskehykseen, joka perustuu WebAssemblyyn, jonka JavaScriptiä pienemmästä energiankulutuksesta ja paremmasta suorituskyvystä on jo tutkimusnäyttöä. Tutkielmassa toteutetaan valituilla verkkosovelluskehyksillä vertailukelpoiset testiverkkosovellukset, joiden suoritusaikaista energiankulutusta, tehonkäyttöä ja suoritusaikaa mitataan Intel Power Gadget -mittausohjelmistolla. Mittaustulosten perusteella todetaan, että Blazor WebAssembly ei ole energiankulutukseltaan JavaScript-verkkosovelluskehyksiä pienempi, vaan sijoittuu tarkasteltujen JavaScript-verkkosovelluskehysten väliin. Tutkielma rajoittui tarkastelemaan verkkosovelluskehysten toiminnoista tilanhallintaa ja muutosten havaitsemista. Intel Power Gadget -mittausohjelmisto osoittautui helppokäyttöiseksi, tarkaksi ja automatisoitavaksi mittaustavaksi, jota voidaan suositella käytettäväksi tämän tutkielman kokemusten perusteella vastaavissa mittauksissa. Lisäksi kestävän ohjelmistokehityksen näkökulmasta tutkielman tuloksista voidaan oppia, että verkkosovelluskehyksen valinnalla voidaan vaikuttaa verkkosovelluksen suoritusaikaiseen energiankulutukseen verkkosovelluskehyksen vastuualueella jopa 43%:a, mutta sen vaikutusta koko verkkosovelluksen suoritusaikaiseen energiankulutukseen ei tutkielman tulosten perusteella voida arvioida.
  • Fredriksson, Klaus (2022)
    With increasing amounts of software services provided to users and the more demanding requirements needed from them, monitoring of services is becoming increasingly important. Web service monitoring is the process of confirming system functionality by studying its various attributes, such as availability, reliability, and performance. Monitoring the services helps the software developers, maintainers and owners as they allow for increased reliability, robustness and possibly performance analysis. This thesis focuses on web service monitoring and the tools that it is done with. Specific goals are to learn about the different categories that monitoring services can take and to showcase a custom web service monitoring tool and its further development. The subject is important to the case company LogiNets, which has specific monitoring requirements that need to be fulfilled. These goals were achieved by researching literature on different types of monitoring tools for a literature review and then doing a case study of monitoring tool development. The case study was done about adding a new functionality to LogiNets’s indoor web service monitoring tool called Agent. The literature review was successful in identifying different categories of monitoring tools both by their location relative to the monitored service as well as by the quality of service requirements they fulfill. The review did not, however, discover significant research about existing commercial monitoring tools, and thus provided little help in the case study. The case study was more successful, with the new functionality added and similar extensions planned for the future.