• No results found

7 Avslutande diskussion 7.1 Sammanfattning

7.3 Framtida arbete

De undersökningar som utförts i detta arbete kan fungera som en grund för vidare forskning inom segmentet visualisering. Det finns även flera olika aspekter att ha i åtanke som t.ex. ökad mängd data, annan form av mätning och en annan typ av undersökning.

För att sätta projektet i ett större sammanhang finns möjligheten att diskutera hur ett företag skulle kunna använda detta projekt för att vidareutveckla det till en fullständig applikation som uppfyller ett syfte på arbetsmarknaden.

Gränsen på mängden data i de testfall som utfördes i denna undersökning begränsades till max 15 MB data och max 20 företag visualiserade samtidigt. Eftersom mätningarna tydligt visade att Python blev segare när datamängden och antalet företag ökade och att React i det stora hela blev snabbare när datamängden och antalet företag ökade vore det intressant att utföra test i en ännu större skala. Om mätningarna visar att Python ökar exponentiellt i renderingstider när mängden data blir större bör det rimligtvis finnas en gräns där Python helt enkelt kraschar. Att se hur React hanterar den datamängd som Python inte klarar av att hantera vore intressant för en framtida undersökning eftersom det stärker tesen än mer om att React hanterar större och mer samtidig data bättre än Python.

I detta arbete blev maxgränsen 15 MB eftersom PyCharms IDE (Integrated Development Environment), utvecklingsmiljön för Python, fick stora problem vid hanteringen av för stora datamängder. Däremot hade Visual Studio Code, utvecklingsmiljön för React, inga problem alls med en ökad mängd data. Därför vore det intressant att jämföra de båda utvecklingsmiljöerna för att se om valet av IDE har en stor påverkan på hantering av större mängder data.

Vid nedladdningen av React-miljön måste även Node.js laddas ned för att utvecklingsmiljön ska fungera. I React-miljön går det använda JSX som står för JavaScript XML som används för att skriva HTML i React. Det underlättar skapandeprocessen men eftersom applikationen bygger på Node.js kan resultatet från mätningarna bli påverkade. För att kringgå detta kan React användas utan Node.js och därmed även utan JSX. Detta kan leda till en mer precis mätning på bara React i sig men att utveckla i React utan JSX är betydligt svårare än att utveckla med JSX.

Från pilotstudien till experimentet ändrades mätscriptet för React. Anledningen var för att det fanns misstankar kring att mätscriptet för React inte mätte på renderingstiden överhuvudtaget då alla mätningar som utfördes var väldigt snabba med en oerhört liten standardavvikelse oavsett mängden data. Men det är fortfarande oklart exakt vad som är den bästa mätningen för just React-applikationen och av denna anledning togs beslutet att använda samma mätscript i alla testfall. Detta är något som bör undersökas vidare för att ta död på alla former av misstankar kring opålitliga mätningar.

En tanke som hela tiden fanns under skapandeprocessen var att utnyttja de knappar som skapades för att välja mängden data att visa i diagrammen. Fördelen med knapparna är att de skapar interaktivitet vilket egentligen vore en mer logisk faktor att mäta i undersökningen eftersom det kan förse utvecklare med mätresultat som visar vilken form av programmering

som är mest lämplig att använda när det kommer till skapandet av interaktiva diagram som kräver en hög prestanda när den visualiserade data interageras med. Stasko et al. (2013) skriver i sin forskningsartikel att skapandet av interaktiva visualiseringar hjälper analytiker att söka, granska och bättre förstå innehållet i viktiga dokument.

Men att mäta på knapptryck gick inte att lösa i detta arbete och därför togs det ett beslut att mäta på omladdning av URLen med window.location.assign. För att undersöka renderingstiden av själva diagrammen och inte hela applikationen vore det fördelaktigt att skapa ett script som mäter på interaktionen med diagrammen. Däremot är det svårt att veta exakt hur det ska gå till i praktiken då storleken på JSON-filen fortfarande är lika stor oavsett hur mycket data användaren väljer att visa i diagrammet med hjälp av de integrerade knapparna.

I kapitel 7.2.3 om hållbarhet nämndes det att biblioteket Streamlit i Python saknar flexibilitet när det kommer till design vilket begränsar friheten i skapandet av applikationen. Det finns dock en möjlighet att arbeta sig runt det problemet genom att använda ramverket Dash som används för att skapa webbapplikationer. Dash används specifikt för att skapa analysapplikationer vilket vore perfekt för detta arbete.

I ett framtida arbete vore det därför intressant att se hur en webbapplikation skapad i Dash ser ut samt hur mycket lättare/svårare det är att arbeta med Dash jämfört med Streamlit. Eftersom visualisering handlar om att förenkla tolkningen av data för människor vore det logiskt sett en bra idé att utföra en annan form av undersökning. I detta arbetes undersökning har det utförts mätningar på renderingstider för att se om klientbaserad programmering är snabbare än serverbaserad programmering när det kommer till visualisering av stora mängder data. Men det vore intressant att utföra en alternativ metod i form av en användarstudie för att se hur mycket lättare det är att tolka data som är visualiserad jämfört med tolkning av vanlig rådata.

Exempelvis hade flertalet olika människor kunnat genomgå en studie där tolkningen av datan är i fokus. Helt enkelt för att se hur stor skillnad det blir för människor att förstå den data som visualiseras jämfört med den data som inte visualiseras. I kapitel 7.2.2 om samhällsnytta och risker togs en liknande jämförelse upp kring visualiseringen av dödsfall/antalet smittade i Covid-19 och hur svårt det är att se samband och trender i datan när den inte är visualiserad.

Ett problem i detta arbete är att mängden data som visualiseras i linjediagramen inte är särskilt verklighetstrogna då det i mätningarna på 15 MB fördelat på 20 olika företag visade data från år 2000-2111. Ännu värre blir det när endast ett företag står för 15 MB data. Då visas data från år 2000-2770. Poängen med detta är att det inte finns något företag på exempelvis stockholmsbörsen som har en börshistorik beståendes av 770 år.

Anledningen till varför så orimligt många år visualiseras är för att mängden data per objekt i JSON-arrayen är minimal. För att göra detta mer verkligt måste varje objekt i JSON-arrayen bestå av mer data. I de JSON-filer som består av 20 företag blir skillnaden i antalet år väldigt stor (111 år jämfört med 770 år). Det är ett steg i rätt riktning men tillslut blir även antalet företag i samma linjediagram ohållbart eftersom det inte längre går urskilja vad som är vad. En potentiell lösning på detta är att använda så kallade candlesticks istället för vanliga linjer för att visualisera datan. Candlesticks används inom teknisk analys av värdepapper för att förutse marknadsrörelser. Anledningen till varför candlesticks vore mer applicerbart än linjediagram för att skapa mer verklighetstrogna diagram är för att varje candlestick innehåller mer data. En candlestick består av öppningskurs, lägsta kurs, högsta kurs och

stängningskurs vilket innebär att mer data kan kopplas till varje objekt i JSON-arrayen eftersom ytterligare data blir nästlad i varje objekt. Detta leder till en mer kompakt data som blir mer verklighetstrogen men även svårare för applikationerna att hantera eftersom mer data behandlas samtidigt.

I kapitel 7.2.1 om etik och risker nämns det att all data som används i detta arbete är fiktiv med syftet att försöka efterlikna ett så verkligt scenario som möjligt. Här finns möjligheten att använda finansiella APIer för att ta fram relevant data. Frågan är bara om APIet får användas hur som helst. Detta är självklart något som måste undersökas innan användning av APIet kan börja. Fördelen med ett fullfjädrat API är att det finns så mycket redan färdigställd data som kan appliceras utefter bästa förmåga i de applikationer som skapats i arbetet. Tanken med att använda ett API är för att skapa en mer verklighetstrogen applikation som ett större företag skulle kunna arbeta vidare på för att exempelvis skapa en plattform där går att analysera företag både aktiekursmässigt men även fundamentalt genom att titta på bolagsspecifika siffror som även de går att visualisera och jämföra med andra företag. Med andra ord funkar inte detta med påhittad data. För att kunna slå sig in på marknaden och konkurrera med liknande företag om marknadsandelar måste programmet/applikationen som skapas uppfylla ett verkligt syfte och det gör det först när verklig data från idag existerande företag används.

Referenser

Avanza.se. 2021. Tillgänglig på Internet: https://www.avanza.se/start [Hämtad 20 April 2021].

BEATA, Giorgia; PEREGO, Gianpaolo; CIVALLERI, Bartolomeo. CRYSPLOT: A new tool to visualize physical and chemical properties of molecules, polymers, surfaces, and crystalline solids. Journal of computational chemistry, 2019, 40.26: 2329-2338. Cai, J.-Y., Nerurkar, A. & Wu, M.-Y. (1998). Making benchmarks uncheatable. Proceedings of

the IEEE International Computer Performance and Dependability Symposium 1998. DOI: 10.1109/IPDS.1998.707724.

CAI, Xing; LANGTANGEN, Hans Petter; MOE, Halvard. On the performance of the Python programming language for serial and parallel scientific computations. Scientific Programming, 2005, 13.1: 31-56.

Csvjson.com. 2021. CSVJSON - CSVJSON. Tillgänglig på Internet: https://csvjson.com/ [Hämtad 10 April 2021].

FARZAT, Fabio; BARROS, Marcio Oliveira; TRAVASSOS, Guilherme H. Evolving JavaScript code to reduce load time. IEEE Transactions on Software Engineering, 2019.

Foxinfotech.in. 2021. Tillgänglig på Internet:

https://www.foxinfotech.in/2020/03/javascript-increment-date-by-1-day-examples. html [Hämtad 07 April 2021].

Gackenheimer, C. (2015). Introduction to React. Apress.

GitHub. 2021. a18viksa/Examensarbete. Tillgänglig på Internet: https://github.com/a18viksa/Examensarbete [Hämtad 24 May 2021].

Gizas, Andreas; Christodoulou, Sotiris; Papatheodorou, Theodore. Comparative evaluation of javascript frameworks. In: Proceedings of the 21st International Conference on

World Wide Web. 2012. p. 513-514.

Graziotin, Daniel; Abrahamsson, Pekka. Making sense out of a jungle of JavaScript frameworks. In: International Conference on Product Focused Software Process

Improvement. Springer, Berlin, Heidelberg, 2013. p. 334-337.

Hua, J., Huang, M. L., Wang, G., & Zreika, M. (2018). Applying data visualization techniques for stock relationship analysis. Filomat, 32 (5), pp. 1931 - 1936.

Jensen, Simon Holm; Møller, Anders; Thiemann, Peter. Type analysis for JavaScript. In:

International Static Analysis Symposium. Springer, Berlin, Heidelberg, 2009. p.

KUMAR, Anurag; SINGH, Ravi Kumar. Comparative analysis of angularjs and reactjs. International Journal of Latest Trends in Engineering and Technology, 2016, 7.4: 225-227.

L. Chen and H. Zhou, "Research and application of dynamic and interactive data visualization based on D3," 2016 International Conference on Audio, Language and Image Processing (ICALIP), Shanghai, 2016, pp. 150-155, doi: 10.1109/ICALIP.2016.7846608.

Lei, Kai; Ma, Yining; Tan, Zhi. Performance comparison and evaluation of web development technologies in php, python, and node. js. In: 2014 IEEE 17th international conference on computational science and engineering. IEEE, 2014. p. 661-668.

Nordnet.se. 2021. Ta makten över ditt sparande och få mer att leva för. Tillgänglig på Internet:https://www.nordnet.se/se [Hämtad 24 April 2021].

OZGUR, Ceyhun, et al. MatLab vs. Python vs. R. Journal of Data Science, 2017, 15.3: 355-371.

Pano, A., Graziotin, D. & Abrahamsson, P. Factors and actors leading to the adoption of a JavaScript framework. Empir Software Eng 23, 3503–3534 (2018).

Plotly.com. 2021. Line Charts. Tillgänglig på Internet:

https://plotly.com/javascript/line-charts/ [Hämtad 10 April 2021].

Plotly.com. 2021. React Plotly.js. Tillgänglig på Internet:https://plotly.com/javascript/react/

[Hämtad 10 April 2021].

Plotly.com. 2021. Line Charts. Tillgänglig på Internet:

https://plotly.com/python/line-charts/ [Hämtad 12 April 2021].

Plotly.com. 2021. Plotly Express. Tillgänglig på Internet:

https://plotly.com/python/plotly-express/ [Hämtad 12 April 2021].

Reactjs.org. 2021. React – A JavaScript library for building user interfaces. Tillgänglig på Internet: https://reactjs.org/ [Hämtad 09 April 2021].

Reactjs.org. 2021. Getting Started – React. Tillgänglig på Internet: https://reactjs.org/docs/getting-started.html [Hämtad 09 April 2021].

ROY, V. Billy Rakesh; DESSAI, Sanket; YADAV, SG Shiva Prasad. Design and development of ARM processor based web server. International Journal of Recent Trends in Engineering, 2009, 1.4: 94.

S. M. Ali, N. Gupta, G. K. Nayak and R. K. Lenka, "Big data visualization: Tools and challenges," 2016 2nd International Conference on Contemporary Computing and Informatics (IC3I), Noida, 2016, pp. 656-660, doi: 10.1109/IC3I.2016.7918044.

Sadiku, Matthew. Shadare, Adebowale. Musa, Sarhan. Akujuobi, Cajetan. Data visualization. International Journal of Engineering Research And Advanced Technology (IJERAT), 2016, 2.12: 11-16.

SHNEIDERMAN, Ben; PLAISANT, Catherine; HESSE, Bradford W. Improving healthcare with interactive visualization. Computer, 2013, 46.5: 58-66.

STANČIN, Igor; JOVIĆ, Alan. An overview and comparison of free Python libraries for data mining and big data analysis. In: 2019 42nd International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO). IEEE, 2019. p. 977-982.

STASKO, John; GÖRG, Carsten; LIU, Zhicheng. Jigsaw: supporting investigative analysis through interactive visualization. Information visualization, 2008, 7.2: 118-132. Streamlit.io. 2021. Streamlit • The fastest way to build and share data apps. Tillgänglig på

Internet: https://streamlit.io/ [Hämtad 12 April 2021].

Taneja, Sheetal; Gupta, Pratibha R. Python as a tool for web server application development. JIMS8I-International Journal of Information Communication and Computing Technology, 2014, 2.1: 77-83.

Taniarascia.com. 2021. React Tutorial: An Overview and Walkthrough. Tillgänglig på Internet: https://www.taniarascia.com/getting-started-with-react/ [Hämtad 05 April 2021].

Wohlin, C., Runeson, P., Höst, M., Ohlsson, M.C., Regnell, B. & Wesslén, A. (2012). Experimentation in Software Engineering. Berlin. Springer. doi:10.1007/978-3-642-29044-2.

XING, YongKang; HUANG, JiaPeng; LAI, YongYao. Research and analysis of the front-end frameworks and libraries in e-business development. In: Proceedings of the 2019 11th International Conference on Computer and Automation Engineering. 2019. p. 68-72.

Related documents