3.3.13 Kategoriserad data
4.8 För-genererad kod och möjlighet till anpassning
Studien har kommit fram till att de egenskaper som genererar en automatisk uppstart såsom för-genererad kod till mestadels är positiv. När intervjudeltagarna fick frågan om denna egenskap så instämde samtliga att det var något positivt och menade att den för-genererade koden leder till en snabb uppstart och därmed gör att utvecklare jobbar mer tidseffektivt. Den negativa aspekt som har identifierats med för-genererad kod är att det kan påverka utvecklares kunskap då man inte alltid fullt förstår vad som sker bakom kulisserna. Två deltagare av intervjun sade att detta kan leda till minskad förståelse av systemet vilket i sin tur kan resultera i problem då användaren ska utföra en felsökning. De positiva aspekter som deltagarna nämnde var att
för-genererad kod leder till snabb konfiguration och uppstart. Vilket kan bekräftas av artikeln “Will Software Developers Ride Ruby on Rails to Success?”[32] där det bland annat skrivs att med hjälp av Ruby on rails funktioner så kunde ett projekt
konfigureras på 10% av den vanliga tiden det brukade ta.
Möjligheten att anpassa hur mycket för-genererad kod eller hur mycket
konfigurations-hjälp man vill få så bör det finnas möjlighet att välja detta utifrån kunskapsnivå. Studiens respondenter höll med om att man exempelvis ska få välja mycket, lite eller inget alls.
Genom att automatisera delar av utvecklingsprocessen med hjälp av för-genererad kod kan det bli enklare och mer pedagogiskt för en ny användare. Det kan även användas för att spara tid för erfarna utvecklare och på så vis undvika redundant kod eller arbetssätt. Det är dock viktigt att tillåta utvecklaren att själv konfigurera vad, om och när kod ska genereras, detta för att öka flexibiliteten.
6.0 Slutsats
Studiens skribenter är medvetna om att den data som genererats av enkäterna och intervjuerna inte är representativ för populationen av industrins utvecklare.
Enkäterna hade en bättre demografisk spridning och kan därför anses ha mindre bias i sina svar än de som genererats av intervjuerna då samtliga intervjudeltagare
arbetade inom samma organisation. Enkäterna bör anses saknas viss validitet då deltagarna inte var utvalda på förhand utan valdes slumpmässigt ur olika sociala kanaler för utvecklare.
Studien kan således inte dra några säkra slutsatser för de ställda forskningsfrågorna men anser att det finns viss signifikans i den data som genererats och den analys som genomförts. Det resultat som studien genererat går att återfinna i relaterad forskning och bör således besitta någon signifikans eller indikation. Resultaten bör således inte sorteras ut men bör inte betraktas som säkerställd data.
Forskningsfrågor
Då samtliga forskningsfrågor är orienterade kring positiva och negativa egenskaper i arkitekturer och ramverk kan nedanstående sammanfattning besvara samtliga forskningsfrågor:
● Hur anser utvecklare att arkitekturerna MVC, MVVM och Flux, samt ramverken Ruby on Rails och Redux bör överväga de aspekter studien granskar*?
● Utifrån de aspekter* som studien granskar, vad anser utvecklare vara positivt i de sätt som MVC, MVVM och Flux, samt ramverken Ruby on Rails och Redux behandlar sagd aspekt?
● Utifrån de aspekter* som studien granskar, vad anser utvecklare vara negativt i de sätt som MVC, MVVM och Flux, samt ramverken Ruby on Rails och Redux behandlar sagd aspekt?
*De aspekter som granskas innefattar: användarvänlighet, dataflöde, dokumentation,
gemenskap/popularitet, inlärningskurva, för-genererad kod, modularitet, testbarhet och hantering av data
Studien visar att utvecklare ansåg att arkitekturer och ramverk bör överväga
användbarhet och enkelhet. Resultatet indikerar att en arkitektur eller ett ramverk bör vara så enkelt som möjligt att använda. Utöver användarvänlighet visar resultatet att aspekter såsom enkelriktat dataflöde och dokumentation är att föredra över de andra aspekterna.
Studiens resultat indikerar att utvecklare mestadels känner till MVC, MVVM samt de liknande arkitekturerna inom MV-familjen. På grund av detta hade respondenterna många åsikter om MVC och MVVM men inte lika mycket åsikter om Flux, Redux samt Ruby on rails. Resultatet visade att utvecklare ansåg att MVC och MVVM hanterar användbarhet, enkelhet och modularitet på ett positivt vis genom att separera
ansvarsområden i moduler. Resterande aspekter som studien granskat nämndes inte i lika stor utsträckning. Studien visade att utvecklare ansåg dokumentation och
community bör betraktas som positivt då detta hjälper verktyget att få spridning och samtidigt skapa organiska forum där intressenter kan dela erfarenheter.
Utvecklarna menade att för-genererad kod kan vara negativt då en utvecklare inte riktigt förstår vad som sker i bakgrunden av applikationen. Men det finns även en positivt aspekt som hjälper nya utvecklare att komma igång eller erfarna utvecklare att etablera en grund tidseffektivt. Studien visar att MVC behandlar dataflöde på ett negativt sätt, då en applikation kan ha ett stort antal kontrollers som gör att koden blir svår att följa.
Skribenterna anser att de resurser som tilldelats studien varit för få för att kunna producera en välutförd, data-tung studie. Målet har därför varit att skapa en indikativ bild av forskningsområdet som kan ligga till grund för vidare forskning.
6.1 Rekommendationer
För vidare utforskning rekommenderar skribenterna att andra forskare undersöker flera arkitektur och ramverk, gärna utanför MV-familjen för att identifiera de
egenskaper som skiljer sig åt och vad utvecklare har för olika perspektiv på dessa egenskaper. Framtida studier bör även fokusera på att göra ett bättre urval och använda så pass mycket data att den kan representera den faktiska populationen av utvecklare bättre.
Det kan även vara intressant att jämföra kvantitativ data och mäta olika faktorer inom arkitekturer och ramverk. Exempelvis hur långt tid det tar att konfigurera ett
förutbestämt projekt med olika verktyg.
7.0 Referenser
[1] Github Rails documentation [online] Tillgänglig: https://github.com/rails/rails
[2] Github Redux documentation [online] Tillgänglig: https://github.com/reduxjs/redux
[3]Github Flux documentation [online] Tillgänglig:
https://facebook.github.io/flux/docs/in-depth-overview.html#content
[4] Briony J. Oates (2006) Researching information systems and computing London: SAGE Publications Ltd s.119
[5] Syeda Uzma Gardazi, Arshad Ali Shahid (2009) “Survey of software architecture
description and usage in software industry of Pakistan” [PDF] Hämtad: 2019-05-05
[6] Molich, R., and Nielsen, J. (1990). Improving a human-computer dialogue, Communications of the ACM 33 , 3 (March), 338-348.
[7]Nielsen, J., and Molich, R. (1990). Heuristic evaluation of user interfaces, Proc. ACM CHI'90 Conf. (Seattle, WA, 1-5 April), 249-256.
[8]Nielsen, J. (1994a). Enhancing the explanatory power of usability heuristics. Proc. ACM CHI'94 Conf. (Boston, MA, April 24-28), 152-158.
[9]Nielsen, J. (1994b). Heuristic evaluation. In Nielsen, J., and Mack, R.L. (Eds.), Usability Inspection Methods, John Wiley & Sons, New York, NY.
[10] A. Leff, J.T. Rayfield (2001) “Web-application development using the
Model/View/Controller design pattern“ [PDF] Hämtad: 2019-04-14.
[11] D.M. Selfa, M. Carrillo, M. Del Rocio Boone (2006) “A Database and Web
Application Based on MVC Architecture” [PDF] Hämtad: 2019-04-14.
[12] Sulabh Kumar “Observer pattern” [Online]
Tillgänglig:https://www.geeksforgeeks.org/observer-pattern-set-1-introduction/
[13] XiaoLong Li, DaLiang Chang, Hui Pen, XiaoYu Zhang, YuanXin Liu , YaXian Yao (2015) “Application of MVVM design pattern in MES” [PDF] Hämtad: 2019-05-01.
[14] Oates, B. (2006). “Interviews” in Researching information systems and computing. Los Angeles: Sage, 2006,
[15] Oates, B. (2006). “Surveys” in Researching information systems and computing. Los Angeles: Sage,2006,
[17] Terence Parr (2004) “Enforcing Strict Model-View Separation in Template Engines” [PDF] Hämtad: 2019-04-16.
[18] Anna Hedin (1997/2011) En liten lathund om kvalitativ metod med tonvikt på
intervju [PDF] Hämtad: 2019-04-10.
[19] S. Balaji, Dr.M.Sundararajan Murugaiyan (2012) “WATEERFALLVs V-MODEL Vs
AGILE: A COMPARATIVE STUDY ON SDLC” [PDF] Hämtad: 2019-05-12.
[20] React documentation [online] Tillgänglig: https://reactjs.org/
[21] Uml Tutorial [Online] Tillgänglig: https://www.tutorialspoint.com/uml/
[22] Briony J. Oates (2006) Researching information systems and computing London: SAGE Publications Ltd s.194
[23] Briony J. Oates (2006) Researching information systems and computing London: SAGE Publications Ltd s.112
[24]Emad Majidi, Mahdieh Alemi, Hasan Rashidi (2010) “Software Architecture: A
Survey and Classification” [PDF] Hämtad: 2019-05-21.
[25] Trygve Reenskaug (2007) “The original MVC reports” [PDF] Hämtad: 2019-05-21.
[26] React usage statistics [Online] Tillgänglig: https://trends.builtwith.com/javascript/React
[27] Rick Kazman, Len Bass, Gregory Abowd, Mike Webb (1994) “SAAM: A Method for
Analyzing the Properties of Software Architectures” [PDF] Hämtad: 2019-05-14.
[28] Artem Syromiatnikov, Danny Weyns (2014) “A Journey Through the Land of
Model-View-Design Patterns” [PDF] Hämtad: 2019-05-12.
[29] Thomas Berlage (1992) “Using taps to separate the User interface from the
application code” [PDF] Hämtad: 2019-04-16.
[30] Briony J. Oates (2006) Researching information systems and computing London: SAGE Publications Ltd s.149
[31] Len Bass, Paul Clements, Rick Kazman (2003) “Software architecture in practice” Addison-Wesley
[32]David Geer (2006) “Will Software Developers Ride Ruby on Rails to Success?” [PDF] Hämtad: 2019-05-22.
[33]Dr. Jesse Allisson (2011) “Distributed Performance Systems using HTML5 and
Rails” [PDF] Hämtad: 2019-05-22.
[34]Eelke Folmer, Jan Bosch (2005) “Case studies on Analyzing Software Architectures for Usability“ [PDF] Hämtad: 2019-05-22.
[35] Creswell, J.W, (2014) Research design: Qualitative, quantitative, and mixed method
approaches Sage Publications Inc
[36] Manisha Jailia, Ashok Kumar, Manisha Agarwal, Isha Sinha (2016) “Behavior of
MVC (Model View Controller) based Web Application developed in PHP and .NET framework” [PDF] Hämtad: 2019-07-15
[37] Briony J. Oates (2006) Researching information systems and computing London: SAGE Publications Ltd s.208