Tampere University of Technology

TUT DPub
Not a member yet
    4987 research outputs found

    Testien valinta ja priorisointi jatkuvassa integraatiossa

    No full text
    It is beneficial for continuous integration (CI), that building and testing a software happens as quickly as possible. Sometimes, when a test suite grows large during the lifecycle of the software, testing becomes slow and inefficient. It is a good idea to parallelize test executions to speed up testing, but in addition to that, test case selection and prioritization can be used. In this case study, we use incremental machine learning techniques to predict failing and passing tests in the test suite of existing software from the space industry and execute only test cases that are predicted failing. We apply such test case selection techniques to 35 source code modifying commits of the software and compare their performances to traditional coverage based selection techniques and other heuristics. Secondly, we apply different incremental machine learning techniques in test case prioritization and compare their performances to traditional coverage based prioritization techniques. We combine features that have been used successfully in previous studies, such as code coverage, test history, test durations and text similarity to separate passing and failing tests with machine learning. The results suggest, that certain test case selection and prioritization techniques can enhance testing remarkably, providing significantly better results compared to random selection and prioritization. Additionally, incremental machine learning techniques require a learning period of approximately 20 source code modifying commits to produce equal or better results than the comparison techniques in test case selection. Test case prioritization techniques with incremental machine learning perform significantly better than the traditional coverage based techniques, and they can outweigh the traditional techniques in the weighted average of faults detected (APFD) values immediately after initial training. We show that machine learning does not need a rigorous amount of training to outperform traditional approaches in test case selection and prioritization. Therefore, incremental machine learning suits test case selection and prioritization well, when initial training data does not exist.Jatkuvan integraation toimivuuden edellytyksenä on, että ohjelmiston kääntäminen ja testaaminen tapahtuu mahdollisimman nopeasti. Ohjelmiston kehitystyön edetessä automaattisesti ajettavien testien määrä voi kasvaa suureksi. Tällöin on olemassa riski, että testaaminen hidastuu ja jatkuva integraatio kärsii sen seurauksena. Testejä voidaan nopeuttaa esimerkiksi rinnakkaistamalla testiajoja, mutta sen lisäksi testejä voidaan myös priorisoida tai testeistä voidaan valita vain pieni määrä ajettaviksi. Tässä tapaustutkimuksessa tutkimme testien valintaa ja priorisointia koneoppimisen avulla. Valitsemme ajettaviksi ainoastaan sellaiset testit, jotka koneoppimismallit ennustivat hajoaviksi. Koneoppimismallit päättelevät testien lopputulemia eri tietolähteitä yhdistelemällä. Näitä tietolähteitä ovat mm. koodikattavuus, testien ajohistoria, testien kestoaika ja testien ja koodimuutosten samankaltaisuus. Käytämme tällaista testien valintaa aineistoon, joka on kerätty avaruusteollisuuden ohjelmistoprojektista. Vertaamme koneoppimisen avulla saatuja tuloksia perinteisiin testien valintamenetelmiin ja heuristiikkoihin. Tapaustutkimuksessa vertailemme myös koneoppimisen avulla suoritettua testien priorisointia perinteisiin koodikattavuuspohjaisiin priorisointimenetelmiin. Tutkimuksen tulokset osoittavat, että tietyt testien valinta- ja priorisointimenetelmät tehostavat testaamista huomattavasti ja tuottavat merkittävästi parempia tuloksia kuin satunnaisuuteen perustuvat menetelmät. Tämän lisäksi tulokset osoittavat, että testien valinnassa koneoppimismenetelmät saavuttavat samankaltaisen tai paremman tuloksen kuin paras heuristiikka noin kahdenkymmenen koodimuutoksen jälkeen. Testien priorisoinnissa koneoppimismenetelmät tuottavat merkittävästi parempia tuloksia kuin vertailumenetelmät. Tutkimuksen tulokset osoittavat, että koneoppimismenetelmät eivät välttämättä tarvitse suuria määriä koulutusdataa, vaan voivat ennustaa pienelläkin määrällä koulutusdataa testien lopputulemia paremmin kuin vertailumenetelmät

    The Ethereum blockchain: Use cases for social finance applications

    No full text
    Centralized network solution have been around for a long time, despite having a considerable issue of trust, in which users need to rely on the implementation of the system. During unfortunate incidents such as centralized server hacking attacks, users' data can be stolen and distorted, as well as not available while requested. Blockchain is discovered and believed to be a distributed network solution which can mitigate the above issue. This bachelor's thesis studies how blockchain network can be integrated into a social financial mobile application. The research is completed by developing a smart contract and connect it with the mobile application. The smart contract is written in the Solidity programming language and run on the Ethereum network

    Version control of an old database system

    No full text
    Työssä esitellään tietokantaa normaalia enemmän hyödyntävä legacy-järjestelmä. Järjestelmää kehittäessä ei ole käytetty versiohallintaa ollenkaan, ja myöhemminkin vain varmuuskopionäkökulmasta. Järjestelmän ohjelmistologiikka on suurelta osin toteutettu tietokantojen proseduureissa, funktioissa ja liipaisimissa. Järjestelmästä on tehty julkaisuja asiakastoimituksia varten kopioimalla vanhoja toimituksia varten tehtyjä julkaisuja ja ajan kuluessa järjestelmän versiohistoria on hämärtynyt tai unohtunut kokonaan. Työssä pyritään tunnistamaan tästä aiheutuvia ongelmia ja perustelemaan, miksi ne ovat haitallisia. Ongelmat ovat merkittäviä ja aiheuttavat haittaa eri tavalla näkökulmasta riippuen. Ohjelmistokehittäjien työ vaikeutuu ja muuttuu epämiellyttävämmäksi, kun eri versioiden tilan selvittämiseen täytyy käyttää aikaa. Jo tehdyn kehitystyön unohtuminen aiheuttaa päällekkäisen työn tekemistä ja ylipäätään järjestelmän ohjelmistotekninen laatu laskee. Projektinjohtonäkökulmasta työn määrittely ja suunnittelu vaikeutuvat samoista syistä, sekä liiketoimintanäkökulmasta kaikkeen päällekkäiseen ja ylimääräiseen työhön kuluva aika maksaa rahaa. Ongelmien tunnistamisen jälkeen etsitään ratkaisukeinoja ohjelmistotieteen kirjallisuudesta. Erityisesti paneudutaan tapauksiin, joissa on ratkaistu vastaavia ongelmia. Voidaan todeta, että aiheesta on kirjoitettu vähän verrattuna versiohallintaan yleisesti. Suurin haaste tietokantojen versiohallinnoinnissa on ohjelmistologiikan muuttaminen versiohallintaa tukeviksi tiedostoiksi. Ratkaisujen oleellisin osuus onkin työkalujen käyttö tämän vaiheen helpottamiseksi. Keinoja, jotka tekisivät tietokantojen versionhallinnoinnista yhtä helppoa kuin tyypillisen ohjelmistokoodin versiohallinnoinnista ei löytynyt. Seuraavaksi esitellään joukko toimenpiteitä esitellyn järjestelmän tilan parantamiseksi. Toimenpiteet keskittyvät päällekkäisen työn välttämiseen, versiohistorian selventämiseen ja ohjelmistokoodin tason parantamiseen. Toimenpiteiden työmäärä arvioidaan planning poker -menetelmällä ja niistä valitaan toteutettavaksi kustannustehokkaimmat. Toimenpiteiden toteutuksen jälkeen niiden toteutusta ja tehoa arvioidaan. Osa niistä toteutettiin eri tavalla kuin oli suunniteltu, joitain jäi toteuttamatta ja lisäksi tehtiin joitain suunnittelemattomia toimenpiteitä. Voidaan todeta, että päällekkäisen kehitystyön tekeminen ja versiohistorian hämärtyminen saatiin estettyä, mutta itse prosessin ylläpitämisestä tuli työläämpää. Jatkoehdotuksissa ehdotetaan korjauksia tähän prosessiin ja organisaatioon yleensä. Lopuksi todetaan, että vanhaa järjestelmää ei kannata korjata liian työläästi ja ongelmiin päätyminen voidaan alkujaan välttää poistamalla juurisyynä toiminut resurssipula.This thesis describes a database-centric legacy system. The system wasn’t originally under version control at all and while version control was introduced later, it was backup-minded in nature. Business logic of the systesm was largely coded in database procedures, functions and triggers. Deployments of the system were done by copying previously deployed databases and over time the system’s version history was blurred or entirely forgotten. Problems caused by this are identified and their harmfulness is described. The problems are significant and cause harm different ways depending on the point of view. Programmers find that their work becomes more difficult and less appealing when they are wasting time figuring out the state of different environments, end up doing extra work because of forgotten features and the state of the software code in general deteriorates. Project management will find specification and planning more difficult for the same reasons and businesswise all wasted time ends up costing money. After identifying the problems solutions are looked from the software engineering theory. Cases where similar problems have been solved are especially looked for. It can be said, that much less is written about version controlling databases than on version control in general. The biggest challenge when version controlling databases is extracting the business logic from the database into version controllable scripts. The key part in various solutions is using tools to make this part easier. Methods that would make database version control as easy as version control in general cannot be found, though. Next a set of actions is introduced to improve the state of the described system. The actions aim at helping to avoid overlapping work, make the version history more clear and improve level of the software code in general. Workload of the actions is estimated using the planning poker method and the most cost effective ones are selected to be implemented. Implementation and effectiveness of these actions are evaluated. Some of the actions were implemented differently than planned, some weren’t implemented at all and some non-planned actions were implemented. It could be acknowledged that overlapping development work could be prevented and version history became clearer, but maintaining the process created more workload overhead. Next changes to this process and organization in general are suggested. Finally, it is pointed out that not too much time should be spent fixing a legacy system and the root cause of problems can be avoided altogether by allocating more resources to the development

    Cholesky-hajotelma

    No full text
    Tässä työssä esitellään Cholesky-hajotelma ja tarkastellaan hajotelman laskennallista tehokkuutta. Cholesky-hajotelmassa matriisi hajotetaan siten, että alkuperäinen hajotettu matriisi voidaan lausua hajotelmalla saadun yläkolmiomatriisin ja sen transpoosin tulona. Hajotelman avulla pystytään ratkaisemaan lineaarisia yhtälöryhmiä, joiden kerroinmatriisit ovat reaalisia, symmetrisisiä ja positiivisesti definiittejä. Työssä esitetään ensin tarvittavia määritelmiä ja lauseita Cholesky-hajotelman kannalta.Tämän jälkeen todistetaan hajotelman olemassaolo reaalisille, symmetrisille ja positiivisesti definiiteille matriiseille. Lisäksi esitellään perusteellisesti yksi tapa määrittää matriisille Cholesky-hajotelma. Tavalle johdetun algoritmin tehokkuutta sekä laskenta-aikoja tarkastellaan, ja saatuja tuloksia vertaillaan yleisesti tunnettuun LU-hajotelmaan. Vertailussa päädytään tulokseen, jossa Cholesky-hajotelma on tehokkuudeltaan optimaalisempi vaihtoehto. Lukijan oletetaan omaavan perustiedot ja käsitteet matriisilaskennasta

    Life cycle information needs of the investment asset

    No full text
    Työssä tutkittiin toimeksiantajayrityksen sisäisten sidosryhmien investointihyödykkeen elinkaaren aikaisia tietotarpeita. Tutkimusaineisto kerättiin haastattelemalla sisäisiä sidosryhmiä. Jokaisesta sidosryhmästä haastateltiin yhtä edustajaa. Aineistonkeruumenetelmänä tutkimuksessa käytettiin teemahaastattelua. Kerätty aineisto pelkistettiin tärkeimpien tietotarpeiden löytämiseksi. Analyysissa havaittiin, että sisäisillä sidosryhmillä on yhteinen käsitys investointihyödykkeen elinkaaren vaiheista ja että sidosryhmillä on investointihyödykkeen elinkaaren vaiheissa yhteisiä ja erillisiä tietotarpeita. Aineiston analyysin perusteella tärkeimmät jatkokehitystä vaativat tietotarpeet ovat käyttöomaisuusrekisterin ylläpidon kehittäminen sekä investointihyödykkeen jälkilaskennan kehittäminen. Aineiston perustella tehtiin • malli investointihyödykkeen elinkaaren aikaisten tietojen tallentamiseksi käyttöomaisuusrekisteriin • malli järjestelmällisen jälkilaskennan tekemiseksi investointihyödykkeille • malli investointihyödykkeen elinkaaren aikaisen tiedon johtamiseksi niin, että tieto on ajantasaista ja kaikkien sidosryhmien käytettävissä. Tutkimuksen tulokset eivät ole yleistettävissä, sillä tutkittavana oli toimeksiantajan sisäisten sidosryhmien väliset tietotarpeet. Sisäisten sidosryhmien tietotarpeita ei ole tutkittu aiemmin, joten tutkimustuloksia ei pystytä vertaamaan aikaisempiin tuloksiin.The thesis examined the investment asset life cycle information needs of the client’s internal stakeholders. The research data was collected by interviewing internal stakeholders. One representative from each stakeholder was interviewed. Thematic interview was used as the data collection method in the research. The collected data was reduced to find the most important information needs. The analysis found that the internal stakeholders have a common understanding of the life cycle of an investment asset and that the stakeholders have common and separate information needs in the investment asset life cycle stages. Based on the analysis of the research data, the most important information needs that require further development are the updating of the fixed assets register and the development of post-accounting of the investment asset. Based on the research data, models were developed for • updating investment asset life cycle information into the fixed asset register • making systematic post-accounting on investment assets • managing the life cycle information of an investment asset so that the information is up to date and available to all stakeholders. The research results cannot be generalized, as the subject of the research was the information needs of the client’s internal stakeholders. The information needs of the client’s internal stakeholders have not been researched before and the research results cannot, therefore, be compared to previous ones

    Wood-fiber reinforced bio-polymer composites as alternative materials for industrial applications

    Full text link
    Wood-fiber reinforced bio-polymer composite (WFRBC) emerges as a promising material for many industrial applications due to its attractive properties. This work aims to evaluate the thermomechanical performance of WFRBCs, their benefits as alternative materials towards oil-based composites, current challenges, and potential applications within the automotive and construction industry. This thesis is divided into four sections. The first covers the state-of-the-art of composites from raw material, fiber surface modification and processing technologies’ point of view. In sequence, the second section discusses the importance and potential of switching traditional composites for bio-based composites within the automotive and construction industry, as well as their relevance related to WFRBCs. The third section includes the state-of-the-art of thermomechanical properties analysis by standardized testing methods. Lastly, bio-composites application cases found in the literature were selected, for performance evaluation mainly based on thermomechanical properties. The main benefits of bio-composites for replacement of traditional composites mainly made of synthetic reinforcements and polypropylene (PP) matrix were investigated. The composite performance analysis was performed focusing on its mechanical properties (tensile strength, tensile stiffness, flexural strength and impact strength) as well as the composite thermal stability. From the performance evaluation of the WFRBCs considered in this work and their potential to replace traditional composites, promising results that confirm the possibility of switching traditional oil-based composites to this class of bio-composites were found. In this context, WFRBCs have shown competitive and, in some cases, even better mechanical properties in comparison with glass fiber PP composites that are extensively used in the automotive and construction industry

    Attention-Augmented Multilinear Networks For Time-series Classification

    Full text link
    Time-series analysis has long been a challenging problem and has been studied extensively over the past decades. In fact, several phenomena possess the dynamic nature of time, with related data collected and expressed in the form of time-series data. While the current development of hardware and software infrastructures provides us a tremendous amount of data to build and validate our models, the noisy and stochastic nature observed in many data modalities still prevent us from having definite solutions. This is especially true for chaotic systems such as the stock market in which the involvement of actors with different goals in the feedback loop leads to complex behaviors. In this thesis, the author proposes a neural network layer design that incorporates the intuitive idea of bilinear mapping to multivariate time-series, as well as an attention module that enables the layer to automatically calculate and focus on important temporal instances. The contribution of the new design is two-fold. Firstly, the proposed layer is highly interpretable thanks to its ability to quantify the contribution of different instances encoding temporal information. In the post-training and inference phase, the attention quantities can be visualized to highlight the time instances of interest, opening up the opportunity for further analysis. Secondly, the new layer design requires both lower memory and fewer computations compared to the popular attention-based Long-Short-Term-Memory design, which is the state-of-the-art solution. In order to validate the proposed architecture, the author has conducted experiments on the problem of stock mid-price movement prediction using information available in Limit Order Book. In the algorithmic trading regime, an automated forecasting system is required to be both accurate and efficient since the market operates on nanosecond resolution. Our experimental results demonstrate that the proposed architecture establishes new state-of-the-art forecasting performances in the problem of interest while running much faster than previously proposed solutions

    Optimization and short-term scheduling of heat storage operation

    Full text link
    Uusiutuvien energianlähteiden kasvava käyttö energiamarkkinoilla on johtanut tarpee-seen parantaa sähkön ja lämmön yhteistuotannon (CHP) kannattavuutta sen kilpailu-kyvyn ylläpitämiseksi. Pohjoismaisten sähkömarkkinoiden siirtyminen tuntikohtaiseen kysynnän ja tarjonnan määrittämään sähkönhintaan korosti lämpökuorman seuraami-sen ongelmia CHP-tuotannossa. Samaan aikaan säätilasta riippuvat sähköntuotantota-vat ovat voimistaneet vuorokauden sisäisiä sähkönhintavaihteluja entisestään. Tässä työssä CHP-tuotannon kannattavuutta yritetään parantaa kaukolämpöakun (KL-akku) käyttöä suunnittelevalla optimointimallilla. Optimointimallin tavoitefunktiolla pyritään minimoimaan kaukolämmöntuotantoon vaadittavat tuotantokustannukset ja maksimoimaan sähköntuotannon kannattavuutta. Jotta tehtävällä optimointimallilla voidaan ohjata KL-akkua automaattisesti kaikissa CHP-tuotannon normaaleissa tuo-tantotilanteissa, CHP-tuotanto prosessirajoitteineen mallinnetaan mahdollisimman tarkasti. Tämän vuoksi optimointimallista tehdään MILP-malli (eng. Mixed Integer Linear Programming), jolla tarkasteltavaa epälineaarista ja aikajatkuvaa systeemiä mallinnetaan osittaislinearisoinnin ja aikadiskretoinnin avulla pitäen optimointion-gelma samalla lineaarisena. Jotta optimointimallia voidaan käyttää ohjaamaan KL-akkua jatkuvaluonteisessa CHP-tuotannossa, optimointimalliin sovelletaan liukuvan aikaikkunan menetelmää. Optimointimallin tulos on seuraavan vuorokauden KL-akun käyttösuunnitelma, jolla CHP-tuotannon käyttökustannus saadaan mahdollisimman pieneksi. Optimointimallia voidaan käyttää sekä automaattiseen KL-akun ohjaukseen että tuottamaan tietoa KL-akun investointipäätöksiin. Optimointimallin soveltuvuutta tutkimusongelmaan tutkittiin vertailemalla sen suun-nittelemaa KL-akun käyttöä Vapo Oy:n Forssan voimalaitoksen toteutuneeseen KL-akun käyttöön vuoden ajalta. Optimointimallin vakioparametrit asetettiin kuvaamaan Forssan CHP-tuotantoa ja sisään syötettävinä parametreina käytettiin oikeassa tuotan-nonsuunnittelussa käytettyjä tietoja. Optimointimallin todettiin soveltuvan KL-akun käytön lyhyen aikavälin suunnitteluun ja parantavan CHP-tuotannon kannattavuutta 2.3 % KL-akun ympärivuotisella aktiivisella käytöllä. Lisäksi systeemin tarkemman mallinnuksen avulla pystyttiin arvioimaan käytännön prosessirajoitteiden vaikutuksia optimoinnilla saavutettaviin tuloksiin käyttökustannuksien pienentämisessä

    Exploring the User Needs and Experience of the University Guidance Robot

    Full text link
    During the orientation week, new students face different challenges that are hectic. International students are especially confused about the new education system and come across many difficulties to overcome these challenges. There are too many information, which can be overwhelming. Not only for internationals, but for Finnish students also face information management issues. Although there are tutors assigned to help and take care of them, the tutors are not available at all times. Thus, we decided to design an interactive university guidance robot that could help the students whenever needed with relevant information. Our aim was to understand the users’ expectations and design the guidance robot to provide relevant information. There were also latent user needs and these can vary according to different culture. Thus, we addressed the needs according to Finnish, Chinese and Indian culture and aim to design the robot according to the needs of the target users. In the second phase, we conducted trials with new students to understand the experience of the participants. Moreover, we tried find out what was the preferred tasks among the students. We used Pepper robot as the platform for guidance robot. According to our research, the new students found the robot useful and it successfully addressed the needs of the participants. Moreover, the university guidance robot evoked experiences like nurture, fellowship, natural/humanlike and playfulness. In this thesis, we report how we collected the users’ expectation, analyzed the data to gather design implications, implemented functionalities in the university guidance robot and performed trials

    Quicksortin, insertion sortin ja heap sortin toteutustapojen vertailu

    Full text link
    Järjestysalgoritmeilla on merkittävä rooli tietotekniikassa, koska monet algoritmit tarvitsevat syötteitään järjestyksessä tai algoritmien tarvitsee järjestää tietoja suorituksensa aikana. Tässä työssä tutkitaan kolmea eri järjestysalgoritmia. Tutkittavat järjestysalgoritmit ovat quicksort, insertion sort ja heap sort. Työn tavoitteena on selvittää mitkä ovat näiden kolmen järjestysalgoritmin suurimpia eroja algoritmien toteutustasolla. Työ on toteutettu suurimmaksi osaksi kirjallisuustutkimuksena. Kirjallisuustutkimus esittelee jokaisen algoritmin toiminnan ja toteutuksen. Algoritmien asymptoottisen suoritusajan vertailussa on käytetty laadullista tutkimusta, kun on laskettu algoritmien suorittamien operaatioiden määriä parhaimmassa, keskimääräisessä ja pahimmassa tapauksessa. Tutkimuksessa selvisi, että algoritmien toimintalogiikat eroavat toisistaan huomattavasti. Siinä missä quicksort ja insertion sort lajittelevat saamansa syötteen, heap sort luo syötteestä uuden tietorakenteen (maksimi- tai minimikeon) ja järjestää sen. Vaikka quicksortin ja heap sortin toimintalogiikat eroavat suuresti toisistaan, ovat ne molemmat epävakaita algoritmeja ja insertion sort on vakaa algoritmi. Heap sortin asymptoottinen suoritusaika on aina nlogn ja quicksortin ja insertion sortin asymptoottinen suoritusaika riippuu siitä, onko kyseessä paras, keskimääräinen vai pahin tapaus

    3,734

    full texts

    4,987

    metadata records
    Updated in last 30 days.
    TUT DPub
    Access Repository Dashboard
    Do you manage Open Research Online? Become a CORE Member to access insider analytics, issue reports and manage access to outputs from your repository in the CORE Repository Dashboard! 👇