Towards Non-Invasive Collecting of Software Analytics Data
Suonsyrjä, Sampo (2015)
Suonsyrjä, Sampo
2015
Tietojohtamisen koulutusohjelma
Talouden ja rakentamisen tiedekunta - Faculty of Business and Built Environment
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2015-02-04
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tty-201501291021
https://urn.fi/URN:NBN:fi:tty-201501291021
Tiivistelmä
The development of new methods and technologies in software engineering has radically changed not only software itself but also the way software is developed. These new approaches, such as Agile practices, promise to produce software, which suits its users better than before by increasing communication with users.
Software analytics has this same goal of making better software, but by increasing the amount of real usage data in decision making. However, traditional methods for collecting data regarding how users use software systems cannot usually produce that data in such quantities that are required by new methods such as A/B testing. In this sense, interviews, observation, and questionnaires can gather valuable qualitative data, but more sophisticated new methods are needed to assist in collecting especially quantitative software operation data.
In this thesis, the use of Aspect-Oriented Programming was studied for gathering software operation data. Design science was used as the research strategy, and as its outcome a tool for collecting software operation data was developed using AspectJ language. For evaluation, this tool was used to collect data from a demo application of the Vaadin Framework.
Aspect-orientation allowed the tool to be developed in isolation from the demo application. This way, no alterations to the demo application’s source code were needed, which again allowed its evolution without compromising its compatibility with the collecting tool. The Vaadin Framework provided the collecting tool with abundant contextual data, which can be used for evaluating user behaviors. The developed tool can be reused with other Vaadin Framework applications, and it provides Vaadin a starting point for creating an additional analytics feature for their framework. Ohjelmistotuotannossa käytettyjen menetelmien ja teknologioiden kehittyminen on johtanut paitsi uudenlaisiin ohjelmistoihin myös kokonaan erilaisiin tapoihin kehittää ohjelmistoja. Näiden uudenlaisten suuntausten – kuten ketterien menetelmien – yhtenä lähtökohtana on parantaa kommunikaatiota käyttäjien ja kehittäjien välillä, minkä tulisi johtaa käyttäjille paremmin sopiviin ohjelmistoihin.
Ohjelmistoanalytiikka pyrkii vastaavasti tekemään ohjelmistotuotannon päätöksenteosta datalähtöisempää keräämällä tietoja siitä, miten aidot käyttäjät käyttävät ohjelmistoja, ja analysoimalla näitä tietoja jatkokehitystä varten. Perinteiset tavat kerätä tällaisia tietoja eivät hitautensa takia vastaa enää kaikkiin nykypäivän vaatimuksiin sillä esimerkiksi A/B-testaamisen toteuttamisessa suuri määrä kvantitatiivista tietoa on arvossaan toisella tavalla kuin mitä on kerättävissä esimerkiksi observoimalla ohjelmiston käyttöä. Uusia menetelmiä myös käyttödatan keräämiseen onkin siis etsittävä jatkuvasti.
Tässä työssä tutkittiin aspektiohjelmoinnin käyttöä ohjelmistojen käyttödatan keräämisessä. Tutkimusstrategiaksi valittiin design science, jossa tieteellisten kirjallisuuskatsausten pohjalta kehitettiin AspectJ-kielellä työkalu ohjelmistojen käyttödatan keräämiseen. Tämä keräystyökalu liitettiin Vaadin-sovelluskehyksellä kehitettyyn demo-sovellukseen, minkä yhteydessä keräystyökalun ja ylipäätään aspektiohjelmoinnin mahdollisuuksia arvioitiin käyttödatan keräämisessä.
Aspektiohjelmointi mahdollisti keräystyökalun kehittämisen erillään demo-sovelluksesta, jonka lähdekoodiin ei jouduttu tekemään muutoksia. Tämä taas mahdollisti demo-sovelluksen kehittymisen ilman kommunikaatiota keräystyökalun kehittäjään ja silti yhteensopivuuden jatkumisen demo-sovelluksen ja keräystyökalun välillä. Vaadin-sovelluskehys tarjosi ylipäätään paljon mahdollisuuksia käyttötietojen keräämiseen, mitä voidaan hyödyntää arvioitaessa sillä kehitettyjen sovellusten käyttäjien käyttäytymistä. Keräystyökalua voidaan käyttää uudelleen muiden Vaadin-sovelluskehyksellä kehitettyjen sovellusten kanssa, ja se tarjoaa samalla myös yhden mahdollisen lähtökohdan kehittää analytiikkaominaisuuksia ylipäätään Vaadin-sovelluskehykseen.
Software analytics has this same goal of making better software, but by increasing the amount of real usage data in decision making. However, traditional methods for collecting data regarding how users use software systems cannot usually produce that data in such quantities that are required by new methods such as A/B testing. In this sense, interviews, observation, and questionnaires can gather valuable qualitative data, but more sophisticated new methods are needed to assist in collecting especially quantitative software operation data.
In this thesis, the use of Aspect-Oriented Programming was studied for gathering software operation data. Design science was used as the research strategy, and as its outcome a tool for collecting software operation data was developed using AspectJ language. For evaluation, this tool was used to collect data from a demo application of the Vaadin Framework.
Aspect-orientation allowed the tool to be developed in isolation from the demo application. This way, no alterations to the demo application’s source code were needed, which again allowed its evolution without compromising its compatibility with the collecting tool. The Vaadin Framework provided the collecting tool with abundant contextual data, which can be used for evaluating user behaviors. The developed tool can be reused with other Vaadin Framework applications, and it provides Vaadin a starting point for creating an additional analytics feature for their framework.
Ohjelmistoanalytiikka pyrkii vastaavasti tekemään ohjelmistotuotannon päätöksenteosta datalähtöisempää keräämällä tietoja siitä, miten aidot käyttäjät käyttävät ohjelmistoja, ja analysoimalla näitä tietoja jatkokehitystä varten. Perinteiset tavat kerätä tällaisia tietoja eivät hitautensa takia vastaa enää kaikkiin nykypäivän vaatimuksiin sillä esimerkiksi A/B-testaamisen toteuttamisessa suuri määrä kvantitatiivista tietoa on arvossaan toisella tavalla kuin mitä on kerättävissä esimerkiksi observoimalla ohjelmiston käyttöä. Uusia menetelmiä myös käyttödatan keräämiseen onkin siis etsittävä jatkuvasti.
Tässä työssä tutkittiin aspektiohjelmoinnin käyttöä ohjelmistojen käyttödatan keräämisessä. Tutkimusstrategiaksi valittiin design science, jossa tieteellisten kirjallisuuskatsausten pohjalta kehitettiin AspectJ-kielellä työkalu ohjelmistojen käyttödatan keräämiseen. Tämä keräystyökalu liitettiin Vaadin-sovelluskehyksellä kehitettyyn demo-sovellukseen, minkä yhteydessä keräystyökalun ja ylipäätään aspektiohjelmoinnin mahdollisuuksia arvioitiin käyttödatan keräämisessä.
Aspektiohjelmointi mahdollisti keräystyökalun kehittämisen erillään demo-sovelluksesta, jonka lähdekoodiin ei jouduttu tekemään muutoksia. Tämä taas mahdollisti demo-sovelluksen kehittymisen ilman kommunikaatiota keräystyökalun kehittäjään ja silti yhteensopivuuden jatkumisen demo-sovelluksen ja keräystyökalun välillä. Vaadin-sovelluskehys tarjosi ylipäätään paljon mahdollisuuksia käyttötietojen keräämiseen, mitä voidaan hyödyntää arvioitaessa sillä kehitettyjen sovellusten käyttäjien käyttäytymistä. Keräystyökalua voidaan käyttää uudelleen muiden Vaadin-sovelluskehyksellä kehitettyjen sovellusten kanssa, ja se tarjoaa samalla myös yhden mahdollisen lähtökohdan kehittää analytiikkaominaisuuksia ylipäätään Vaadin-sovelluskehykseen.