Browsing by study line "Software"
Now showing items 21-40 of 80
-
(2024)Introduction: EU medical device regulation (MDR) sets requirements for medical device software (MDSW) development. Following international standards, such as IEC 62304 and IEC 82304-1, is considered best practice to ensure compliance with regulation. At first glance, MDR and standards seem counter-intuitive to the DevOps approach. DevOps has been successful in regular software development, and it could improve MDSW development. In addition, standalone software is more prevalent as a medical device and as software does not need to be embedded into a physical device, the DevOps approach should be more feasible. Methods: In this thesis, a systematic approach of multivocal literature review was conducted. The goal is to find the state-of-the-art of DevOps in MDSW development, what DevOps techniques and practices are suggested by academic literature and industry experiences, and what the challenges and benefits of DevOps are in MDSW. 18 scientific articles and 10 sources of gray literature were analyzed. Results: The DevOps benefits of improved quality and faster release cycle can be achieved up to a certain point. Regulations prevent Continuous Deployment, but Continuous Integration (CI) and Continuous Delivery (CD) are possible. The most promising improvements can be made by automated documentation creation and bringing tasks of regulatory experts and developers closer together by streamlining the regulatory process. Existing DevOps tools can be extended to support compliance requirements. Third-party platforms and AI/ML solutions remain problematic due to regulations.
-
(2023)DevOps software development methodologies have steadily gained ground over the past 15 years. Properly implemented DevOps enables the software to be integrated and deployed at a rapid pace. The implementation of DevOps practices create pressure for software testing. In the world of fast-paced integrations and deployments, software testing must perform its quality assurance function quickly and efficiently. The goal of this thesis was to identify the most relevant DevOps software testing practices and their impact on software testing. Software testing in general is a widely studied topic. This thesis looks into the recent develop- ments of software testing in DevOps. The primary sources of this study consist of 15 academic papers, which were collected with the systematic literature review source collection methodolo- gies. The study combines both systematic literature review and rapid review methodologies. The DevOps software testing practices associated with high level of automation, continuous testing and DevOps culture adoption stood out in the results. These were followed by the practices highlighting the need for flexible and versatile test tooling and test infrastructures. DevOps adoption requires the team composition and responsibilities to be carefully planned. The selected testing practices should be carefully chosen. Software testing should be primarily organized in highly automated DevOps pipelines. Manual testing should be utilized to validate the results of the automatic tests. Continuous testing, multiple testing levels and versatile test tooling should be utilized. Integration and regression testing should be run on all code changes. Application monitoring and the collection of telemetry data should be utilized to improve the tests.
-
(2024)Digitaalinen transformaatio tarkoittaa prosessia, jossa organisaatiot reagoivat ympäristössään tapahtuviin muutoksiin käyttämällä uusia digitaalisia teknologioita muuttamaan arvonluonti-prosessejaan pysyäkseen kilpailukykyisinä. Tämän hetken digitaalisen transformaation tärkeimpinä teknologisina ajureina pidetään tekoälyä, lohkoketjua, pilviteknologiaa ja data-analytiikkaa. Tutkielman tarkoituksena oli selvittää kirjallisuuden avulla, miten digitaalinen transformaatio vaikuttaa ohjelmistokehitykseen. Menetelmänä käytettiin systemaattista kirjallisuuskatsausta, sillä se tarjoaa protokollan, jota noudattamalla voidaan vähentää katsaukseen liittyviä vinoumia. Tulosten mukaan digitaalinen transformaatio tarkoittaa ohjelmistokehityksen kannalta eri alojen digitaalisen transformaation toteuttamista, uusien teknologioiden mukaantuloa ja automaation lisääntymistä. Digitaalinen transformaatio muuttaa ohjelmistokehitystä muuttamalla osaamistarpeita ja työnjakoa, datasta on tulossa yhä tärkeämpää ja pilvestä hallitseva alusta ohjelmistoille. Digitaalisen transformaation vuoksi tarvittavista taidoista tärkeimpiä ovat tekoäly, data-analytiikka, tietoturva, toimialaosaaminen, matalan koodin alustat, pilvialustat, kyberfyysiset järjestelmät ja esineiden internet. Digitaalinen transformaatio vaikuttaa ohjelmistokehitykseen muiden alojen digitaalisen transformaation toteuttamisen kautta, jolloin ohjelmistokehittäjiltä vaaditaan kykyä toteuttaa asiakkaiden haluamia ohjelmistoja, joka voi vaatia uusien teknologioiden osaamista. Se vaikuttaa myös ohjelmistoalaan ohjelmistokehityksen muuttuessa yhä enemmän automatisoiduksi. Tulevaisuudessa tekoälyn rooli ohjelmistokehityksessä kasvaa.
-
(2022)The importance of software architecture design decisions has been known for almost 20 years. Knowledge vaporisation is a problem in many projects, especially in the current fast-paced culture, where developers often switch from project to another. Documenting software architecture design decisions helps developers understand the software better and make informed decisions in the future. However, documenting architecture design decisions is highly undervalued. It does not create any revenue in itself, and it is often the disliked and therefore neglected part of the job. This literature review explores what methods, tools and practices are being suggested in the scientific literature, as well as, what practitioners are recommending within the grey literature. What makes these methods good or bad is also investigated. The review covers the past five years and 36 analysed papers. The evidence gathered shows that most of the scientific literature concentrates on developing tools to aid the documentation process. Twelve out of nineteen grey literature papers concentrate on Architecture Decision Records (ADR). ADRs are small template files, which as a collection describe the architecture of the entire system. The ADRs appear to be what practitioners have become used to using over the past decade, as they were first introduced in 2011. What is seen as beneficial in a method or tool is low-cost and low-effort, while producing concise, good quality content. What is seen as a drawback is high-cost, high-effort and producing too much or badly organised content. The suitability of a method or tool depends on the project itself and its requirements.
-
(2022)Parlamentaaristen aineistojen digitointi ja rakenteistaminen tutkimuskäyttöön on nouseva tutkimuksenala, jonka tiimoilta esimerkiksi Euroopassa on tällä hetkellä käynnissä useita kansallisia hankkeita. Tämä tutkielma on osa Semanttinen parlamentti -hanketta, jossa Suomen eduskunnan täysistuntojen puheenvuorot saatetaan ensimmäistä kertaa yhtenäiseksi, harmonisoiduksi aineistoksi koneluettavaan muotoon aina eduskunnan alusta vuodesta 1907 nykypäivään. Puheenvuorot ja niihin liittyvät runsaat kuvailutiedot on julkaistu kahtena versiona, parlamentaaristen aineistojen kuvaamiseen käytetyssä Parla-CLARIN XML -formaatissa sekä linkitetyn avoimen datan tietämysverkkona, joka kytkee aineiston osaksi laajempaa kansallista tietoinfrastruktuuria. Yhtenäinen puheenvuoroaineisto tarjoaa ennennäkemättömiä mahdollisuuksia tarkastella suomalaista parlamentarismia yli sadan vuoden ajalta monisyisesti ja automatisoidusti. Aineisto sisältää lähes miljoona erillistä puheenvuoroa ja linkittyy tiiviisti eduskunnan toimijoiden biografisiin tietoihin. Tässä tutkielmassa kuvataan puheenvuorojen esittämistä varten kehitetyt tietomallit ja puheenvuoroaineistojen keräys- ja muunnosprosessi sekä tarkastellaan prosessin ja syntyneen aineiston haasteita ja mahdollisuuksia. Toteutetun aineistojulkaisun hyödyllisyyden arvioimiseksi on Parla-CLARIN-muotoista aineistoa jo hyödynnetty poliittiseen kulttuuriin liittyvässä digitaalisten ihmistieteiden tutkimuksessa. Linkitetyn datan pohjalta on kehitetty semanttinen portaali, Parlamenttisampo, aineistojen julkaisemista ja tutkimista varten verkossa.
-
(2022)Ohjelmistotuotannon ammattilaiset tarvitsevat monenlaisia kompetensseja. Yksi näistä kompetensseista on kyky elinikäiseen oppimiseen, joka on tarpeellinen laajalla ja jatkuvasti muutoksessa olevalla alalla. ICT-aloille muodostuneen osaajatarpeen myötä elinikäisen oppimisen rooli onkin alkanut korostumaan entisestään. Tutkielman tarkoituksena on ollut lisätä ymmärrystä elinikäisen oppimisen roolista ohjelmistotuotannon ammattilaisen näkökulmasta. Tutkielmassa on pyritty tunnistamaan, mitä oppimisen muotoja hyödynnetään sekä millaisiin tarkoituksiin niitä käytetään, mitkä elinikäisen oppimisen kompetenssin osatekijät ovat tärkeitä sekä mitä haasteita elinikäiseen oppimiseen liittyy. Tutkimuksen aineisto on kerätty puolistrukturoiduilla haastatteluilla ohjelmistotuotannon ammattilaisten kanssa. Näiden haastattelujen tuloksia on verrattu tutkielmaa varten suoritetun kirjallisuuskatsauksen tuloksiin. Oppimisen muodoista informaalia oppimista hyödynnetään eniten ja erityisesti pienempiin oppimistarpeisiin. Nonformaalia ja formaalia oppimista taas hyödynnetään isompiin tarpeisiin, mutta harvemmin. Motivaatio, tiedonhaku ja metaoppiminen korostuvat keskeisinä elinikäisen oppimisen kompetenssin osatekijöinä. Ajanpuute ja itsensä motivoiminen mielletään yleisimmiksi haasteiksi elinikäistä oppimista koskien. Myös tiedonlähteisiin liittyvät puutteet sekä puutteellinen ymmärrys metaoppimisesta mielletään vaikeuttavan elinikäistä oppimista. Tutkielman havainnot tukevat elinikäisen oppimisen kompetenssin keskeistä roolia ohjelmistotuotannon ammattilaisilla. Kehitettävää löytyy kuitenkin vielä ohjelmistotuotannon ammattilaisten valmiuksista elinikäiseen oppimiseen, esimerkiksi metaoppimista koskien. Havainnot perustuvat kuitenkin lyhyemmän aikaa ohjelmistotuotannon ammattilaisina työskennelleiden kokemuksiin, joten lisää tutkimusta tarvitaan etenkin pitempään työskennelleiltä ohjelmistotuotannon ammattilaisilta.
-
(2024)The fast development cycles of Web User Interfaces (UI) create challenges for test automation to keep up with the changes in web elements. Test automation may suffer from test breakages after developers update the UIs of the System Under Test (SUT). Test breakages are not defects or bugs in the SUT, but a failure in test automation code. Failing to correctly locate web element from the UI, is one of the key reasons for test breakages to occur. Prior work to gain self-healing of element locators, has been traditionally done with different algorithms and recently with the help of Large Language Models (LLMs). This thesis aims to discover how to enable self-healing locators for Robot Framework Web UI tests, are there some web element locator types that are more easily repaired than others, and which LLMs should be used for this task. An experimental study was conducted for enabling self-healing locators for Robot Framework. Custom Robot Framework library was created with Python, which was tested for eight different locator strategies raised from locator breakage taxonomy. Results show that the best performance in self-healing locators is gained by using the bigger LLMs. GPT-4 Turbo and Mistral Large showed the best performance accuracy by repairing 87,5% of the locators in the Robot Framework test cases. The worst performer was Mistral 7B Instruct which was not able to correct any locators. Using LLMs for self-healing locators in Robot Framework tests is possible. To get the best results for self-healing locators, my results suggest that practitioners should focus on LLM prompt designing, in the usage of candidate algorithm with locator version history and use the biggest LLMs available if possible.
-
(2024)This thesis explores the integration of Augmented Reality (AR) into social media platforms, taking Snapchat's AR as a case study. Design science research methodology is used as a research method. The primary question addressed is how augmented reality enhances user interaction and engagement in social media. The second research question is about challenges and considerations in integrating AR into social media platforms. An artifact including a series of AR features is developed by utilizing Lens Studio. User interaction features such as 3D object manipulation, distance-opacity mapping and camera interaction transformations are expected to bring immersive AR experience to users. The combination of AR and cloud-based technologies for location-based AR, data management and multi-user scenarios is also discussed. A structured experiment is conducted to evaluate the effectiveness of AR features in enhancing user engagement. The developed AR features are distributed to participants to experience via Snapchat QR codes then they provid feedback through a detailed questionnaire. The evaluation focused on metrics such as time spent, interaction frequency, depth of interaction, and technical performance, revealing significant insights into both user engagement and technical challenges. The findings confirm that AR significantly increases user engagement, with a majority of participants willing to spend more time and interact more frequently with Snapchat due to the AR features. However, technical challenges like battery drain and response time were highlighted. The thesis concludes that while AR has great potential to enhance social media experiences, ongoing improvements in technical infrastructure are essential to fully realize this potential. Future research should explore the long-term impacts of AR and its scalability across different platforms.
-
(2023)This thesis conducts a systematic literature review on ethical issues of large language models (LLM). These models are a very prudent topic, as both their presence and demand have skyrocketed since the release of ChatGPT - a free to use generative language model. The literature review of 116 studies, both conceptual and empirical, identifies 39 recurring ethical issues. The issues range from methodological to fundamental ones, for example Environmental impacts" and "Biased training data or outputs". These identified issues are analyzed based on the Ethics guidelines for trustworthy AI (Artificial Intelligence), released by the European Commission’s High-Level Expert Group on AI. The guidelines detail requirements that all trustworthy and ethical AI applications should adhere to, e.g., Human agency, Transparency, Accountability. All identified issues are mapped to these requirements, and the conclusion is that LLMs have significant challenges relating to each one. The findings indicate that the use LLMs comes with significant issues, both demonstrated and theorized. While some methods for mitigating these issues are identified, many still remain unanswered. One of these unanswered issues is the most identified one - inherent biases in LLMs. Since there is no universal understanding on biases, there is no way to make LLMs seem unbiased to everyone. This thesis collates the current talking points and issues identified with LLMs. It provides a comprehensive, but not exhaustive, list of these issues and shows that there is much discussion on the topic. The conclusion is that more discussion is required, but more vitally, even more (regulatory) action is needed along with it.
-
(2024)In higher education, student recruitment and marketing play a prominent role in the success of educational institutions, maintaining a robust student population and fostering diversity. Institutions compete for the attention of prospective students, and in this data-driven era, a strategic and data-driven approach is required to compete and make informed business decisions. The student recruitment and marketing team of the University of Helsinki possesses various data sources that require storage, transformation, and visualization to get insights from that data. This thesis aims to solve these problems by creating a cloud database using Azure SQL Database, building Extract, Transform, and Load (ETL) pipelines using Azure Data Factory, and developing dashboards in Power BI that allow the student recruitment and marketing team to transform and load their data into a database and visualize the data in Power BI that helps in making better strategic decisions and sharing the dashboards with stakeholders across the institution. The results establish the ability to use Azure services for data management. Results include interactive dashboards in Power BI consisting of various visualizations that meet the requirements of the student recruitment and marketing team by providing Key performance indicators (KPIs). This approach enabled data-driven decision-making for the student recruitment and marketing team.
-
(2022)Etuuspohjaisen eläkejärjestelyn laskennan tavoitteena on selvittää eläkevakuutuksen ottajan säästö- ja eläkesuunnitelmien yhteensopivuus ottaen samalla huomioon sopimukseen kuuluvat turvat ja muut kulut. Vapaaehtoisiin eläkesopimuksiin tehtyjen lakimuutosten seurauksena tällainen laskenta on monimutkaistunut huomattavasti 2000-luvun aikana ja vanhoille järjestelmille luodut laskentamallit eivät aina suoriudu toivotulla nopeudella. Tämän tutkielman aiheena on Profit Software Oy:n Profit Life & Pension -vakuutustenhallintajärjestelmän optimointi edellä kuvatun laskennan osalta.
-
(2023)This thesis examines the render speeds of WebViews in React Native applications. React Native is a popular cross-platform framework for developing mobile applications, and WebViews allow embedding web content within mobile applications. While WebViews offer the advantage of bringing readily available web content in applications, the cost of using this technology in terms of applications responsiveness is not well researched. The goal of this thesis is to evaluate this cost so that developers and stakeholders can make more informed decisions regarding the use of WebViews in React Native applications. A series of tests was performed using a React Native application that was developed for the purpose of this study. In these tests, we rendered WebViews and similarly appearing views that consist of React Native components, and measured their mean render times. Our analysis of these results revealed that using React Native components instead of WebViews offers significant benefits in terms of rendering performance on both, iOS and Android platforms. The use of WebViews in rendering user interfaces can bring a notable disadvantage in the matter of user experience, especially on Android devices. These findings suggest that rendering Native user interface components instead of WebViews should be preferred if we want to maximize user experience across different devices and platforms.
-
(2022)While the role of IT and computer science in the society is on the rise, interest in computer science education is also on the rise. Research covering study success and study paths is important for understanding both student needs and developing the educational programmes further. Using a data set covering student records from 2010 to 2020, this thesis aims to find key insights and base research in the topic of computer science study success and study paths in the University of Helsinki. Using novel visualizations and descriptive statistics this thesis builds a picture of the evolution of study paths and student success during a 10-year timeframe, providing much needed contextual information to be used as inspiration for future focused research into the phenomena discovered. The visualizations combined with statistical results show that certain student groups seem to have better study success and that there are differences in the study paths chosen by the student groups. It is also shown that the graduation rates from the Bachelor’s Programme in Computer Science are generally low, with some student groups showing higher than average graduation rates. Time from admission to graduation is longer than suggested and the sample study paths provided by the university are not generally followed, leading to the conclusion that the programme structure would need some assessment to better incorporate students with diverse academic backgrounds and differing personal study plans.
-
(2023)Context: An abundance of research on the productivity of software development teams and developers exists identifying many factors and their effects in different contexts and concerning different aspects of productivity. Objective: This thesis aims to collect and analyse existing recent research results of factors that are related to or directly influence the productivity of teams or developers, how they influence it in different contexts and briefly summarise the metrics used in recent studies to measure productivity. Method: The method selected to reach for these aims was to conduct a systematic literature review on relevant studies published between 2017 and 2022. Altogether, 48 studies were selected and analysed during the review. Results: The metrics used by the reviewed studies for measuring productivity range from time used for completing a task to self-evaluated productivity to the amount of commits contributed. Some of these are used by multiple studies and many by only one or a few and measure productivity from different angles. Various factors were found and these range from team size to experienced emotion to working from home during the COVID-19 pandemic. The relationships found between these factors and some aspects of the productivity of developers and teams range from positive to negative and sometimes both depending on the context and the productivity metric in question. Conclusions: While many relationships were found between various factors and the productivity of software developers and development teams in this review, these do not cover all possible factors, relationships or measurable productivity aspects in all possible contexts. Additionally, one should keep in mind that most of the found relationships do not imply causality.
-
(2024)The rapid growth and increased requirements within the game development process have made it largely dependent on time, effort and complexity. Game engines were developed to reduce these constraints, by providing game developers with useful features and tools. However, there also lies a deep problem, which is the dependency formed between game developers and the engine administration, the upper management who controls the engine. This dependency relies on the engine administration to maintain their engine without causing harm towards their users. A major conflict happened in the autumn of 2023 between the indie development community and Unity Technologies. Motivated by this conflict we set goals within this thesis to assess the relationship and dependency between game developers and engine administration, and to provide awareness towards trust issues and the impact towards the game industry. In this thesis, we approach this problem with three methods: survey, interviews, and a case study. Development teams participated in the survey, from which three developers were selected for interviews. The game developers described multiple events that formed the basis for the case study, which focused on the past events within Unity Engine. The results show that Unity has considerable value for game developers, but trust in Unity has been significantly impacted by the recent actions of its administration. Developers were met with serious considerations to change their game engine, whether the administration would not regain their lost trust. Despite this, the developers still hope that the engine recovers and the administration takes action to regain their trust. As a conclusion, we emphasize the interaction between game developers and engine administration, what would lead to their mutual interest, in other words creating games.
-
(2023)Ship traffic is a major source of global greenhouse gas emissions, and the pressure on the maritime industry to lower its carbon footprint is constantly growing. One easy way for ships to lower their emissions would be to lower their sailing speed. The global ship traffic has for ages followed a practice called "sail fast, then wait", which means that ships try to reach their destination in the fastest possible time regardless and then wait at an anchorage near the harbor for a mooring place to become available. This method is easy to execute logistically, but it does not optimize the sailing speeds to take into account the emissions. An alternative tactic would be to calculate traffic patterns at the destination and use this information to plan the voyage so that the time at anchorage is minimized. This would allow ships to sail at lower speeds without compromising the total length of the journey. To create a model to schedule arrivals at ports, traffic patterns need to be formed on how ships interact with port infrastructure. However, port infrastructure is not widely available in an easy-to-use form. This makes it difficult to develop models that are capable of predicting traffic patterns. However, ship voyage information is readily available from commercial Automatic Information System (AIS) data. In this thesis, I present a novel implementation, which extracts information on the port infrastructure from AIS data using the DBSCAN clustering algorithm. In addition to clustering the AIS data, the implementation presented in this thesis uses a novel optimization method to search for optimal hyperparameters for the DBSCAN algorithm. The optimization process evaluates possible solutions using cluster validity indices (CVI), which are metrics that represent the goodness of clustering. A comparison with different CVIs is done to narrow down the most effective way to cluster AIS data to find information on port infrastructure.
-
(2024)SQLite has been called the most widely deployed database system but its use in web services has been somewhat limited compared to client/server database engines. Today due to the continued development of SQLite it has the needed features to be a serious option for certain kinds of web services. SQLite is also the technology behind many emerging globally distributed database technologies. In a case study, an existing web application that is backed by centralized SQLite is evaluated in the context of what trade-offs would have to be made when switching to a globally distributed database. This is done by benchmarking the difference in latency users experience depending on their geographical location. Outside of that known challenges in the context of distributed computing as well as challenges specific to migrating from a centralized embedded database to a globally distributed one are evaluated as well. In the results, we found out that there are latency improvements to be made with the globally distributed approach. That said optimizing application code is likely to be the most effective latency improvement for many projects. In addition, especially the increased complexity of running a distributed system compared to a centralized one was in our estimations a big rea- son why the application being studied ultimately decided not to migrate towards a globally distributed deployment. Our findings relate primarily to this one application and other applications with different cir- cumstances could come to a different answer. These technologies are still rapidly advancing so it is likely we will see continued development and properties of these globally distributed database technologies evolving.
-
(2023)Introduction: The issue of climate change has emerged as a global challenge in response to the increasing consumption of natural resources. As the Information Technology (IT) sector has undergone significant growth in recent years, the implementation of environmentally sustainable practices which lower the environmental impact of software, such as electricity usage, has become imperative. The concept of green in software engineering seeks to address these challenges in the software engineering process. Methods: As the goal is to explore and evaluate different approaches to environmental sustainability in green in software engineering whilst also taking a look into the maturity and evidence level of research about the subject, this study adopts a systematic literature review approach. The search strings, search process and other relevant information are meticulously documented and explored in each step of the research process. Results: Green in software engineering has been identified as a promising field of research, but the absence of agreed-upon definitions and terminology often leads to research efforts replicating the previous studies without a clear reason as to why. The goal of increasing environmental sustainability is commonly agreed on in software engineering, but the concrete steps to achieve it are currently missing. Building a strong body of knowledge, common measurements and tooling to support them and increasing the knowledge about sustainability in the field of software engineering should all be taken into account in an effort to reach the environmental sustainability goals of tomorrow.
-
(2023)Background: The production, operation and use of information technology (IT) have a significant impact on the environment. As an example, the estimated footprint of global greenhouse gas emissions of the IT industry, including the production, operation and maintenance of main consumer devices, data centres and communication networks, doubled between 2007 (1–1.6%) and 2016 (2.5–3.1%). The European Union regulates the energy efficiency of data centre hardware. However, there is still a lack of regulation and guidance regarding the environmental impacts of software use, i.e. impacts from the production, operation and disposal of hardware devices required for using software. Aims: The goal of this thesis is to provide actionable knowledge which could be used by software practitioners aiming to reduce the environmental impacts of software use. Method: We conducted a systematic literature review of academic literature where we assessed evidence of the effectiveness of tools, methods and practices for reducing the environmental impacts of software use. The review covers 20 papers. Results: 60% of studied papers focus on reducing the energy consumption of software that is executed on a single local hardware device, which excludes networked software. The results contain 6 tools, 25 methods and 11 practices. Program code optimisation can potentially reduce the energy consumption of software use by 2–62%. Shifting the execution time of time-flexible data centre workloads towards times when the electric grid has plenty of renewable electricity can potentially reduce data centre CO2 emissions by 33.7%. Conclusions: The results suggest that the energy consumption of software use has received much attention in research. We suggest more research to be done on environmental impacts other than energy consumption, such as CO2 emissions, software-induced hardware obsolescence, electronic waste and freshwater consumption. Practitioners should also take into account the potential impacts of data transmission networks and remote hardware, such as data centres, in addition to local hardware.
-
(2022)Toimijamalli on hajautetun ja samanaikaisen laskennan malli, jossa pienet osat ohjelmistoa viestivät keskenään asynkronisesti ja käyttäjälle näkyvä toiminnallisuus on usean osan yhteistyöstä esiin nouseva ominaisuus. Nykypäivän ohjelmistojen täytyy kestää valtavia käyttäjämääriä ja sitä varten niiden täytyy pystyä nostamaan kapasiteettiaan nopeasti skaalautuakseen. Pienempiä ohjelmiston osia on helpompi lisätä kysynnän mukaan, joten toimijamalli vaikuttaa vastaavan tähän tarpeeseen. Toimijamallin käytössä voi kuitenkin esiintyä haasteita, joita tämä tutkimus pyrkii löytämään ja esittelemään. Tutkimus toteutetaan systemaattisena kirjallisuuskatsauksena toimijamalliin liittyvistä tutkimuksista. Valituista tutkimuksista kerättiin tietoja, joiden pohjalta tutkimuskysymyksiin vastattiin. Tutkimustulokset listaavat ja kategorisoivat ohjelmistokehityksen ongelmia, joihin käytettiin toimijamallia, sekä erilaisia toimijamallin käytössä esiintyviä haasteita ja niiden ratkaisuita. Tutkimuksessa löydettiin toimijamallin käytössä esiintyviä haasteita ja näille haasteille luotiin uusi kategorisointi. Haasteiden juurisyitä analysoidessa havaittiin, että suuri osa toimijamallin haasteista johtuvat asynkronisen viestinnän käyttämisestä, ja että ohjelmoijan on oltava jatkuvasti tarkkana omista oletuksistaan viestijärjestyksestä. Haasteisiin esitetyt ratkaisut kategorisoitiin niihin liittyvän lisättävän koodin sijainnin mukaan.
Now showing items 21-40 of 80