• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 2
  • 2
  • Tagged with
  • 4
  • 3
  • 3
  • 2
  • 2
  • 2
  • 2
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
1

The impact of reactive programming on code complexity and readability: A Case Study

Holst, Gustaf, Gillberg, Alexander January 2020 (has links)
Reaktiv programmering är ett programmeringsparadigm som har utvecklats för att underlätta byggande av händelsedrivna reaktiva applikationer. Dess förespråkare hävdar att det kan leda till ökad kodkvalitet, men få studier har utförts för att underbygga dessa påståenden empiriskt. Denna studie syftade till att undersöka skillnaden i kodkomplexitet och kodläsbarhet mellan traditionell imperativ programmering och reaktiv programmering. En fallstudie utfördes där koden för ett befintligt öppen källkodsprojekt omstrukturerades, vilket resulterade i en imperativ version och en reaktiv version av samma kod. Verktyg för statisk källkodsanalys användes för att undersöka om några förändringar i kodläsbarhet och kodkomplexitet kunde upptäckas. Vidare diskuteras huruvida resultaten av den senaste teknikens läsbarhetsmätvärden ger en exakt förutsägelse av kodläsbarheten i reaktiva kodbaser, eller om kanske dessa mätvärden behöver modifieras för att göra dem tillämpliga på det reaktiva paradigmet. Våra resultat visar att läsbarheten påverkades negativt av reaktiv programmering när den mättes med senaste teknikens läsbarhetsmätvärden, men kodkomplexiteten minskades betydligt. / Reactive programming is a programming paradigm that has been proposed to facilitate building eventdriven reactive applications. It is claimed by its proponents to increase code quality, but few studies have been performed to substantiate these claims empirically. This study aimed to explore the difference in code complexity and code readability between traditional imperative programming and reactive programming. A case study was performed where the code of an existing open source project was restructured, resulting in an imperative version and a reactive version of the same code. Static analysis tools were used to investigate if any changes in code readability and code complexity could be detected. Furthermore, it is discussed whether the results of the state-of-the-art readability metrics give an accurate prediction of code readability in reactive code bases, or if perhaps these metrics need to be modified to make them applicable to the reactive paradigm. Our findings show that the readability was negatively affected by reactive programming when measured with state-of the-art readability metrics, however code complexity was decreased significantly
2

Repository Mining : Användbarheten av Repository Mining för effektivisering av mjukvaruutveckling

Engblom Sandin, John January 2022 (has links)
Mjukvaruföretag idag söker alltid nya metoder för att effektivisera sin utveckling och att förbättra sin produkt. Denna studie undersöker användbarheten av en sådan ny metod kallad repository mining. Inom mjukvaruutveckling är repository mining en metod av kodanalys som utförs för att få ut metadata från ett versionshanteringssystem. Processen utförs med hjälp av ett kodanalysverktyg som i denna studie är verktyget CodeScene. Målet med denna fallstudie är att undersöka vad det finns för användningsfall för repository mining i ett utvecklingssyfte. Studiens syfte är att få förståelse för vilka typer av metadata som är relevanta och vad för faktorer det finns som kan påverka eventuella resultat. Syftet är även att studera om hur repository mining kan hjälpa företag i deras arbete med att öka eller upprätthålla kvaliteten på deras system. Studien utförs i samband med företaget Sandvik Coromant och deras avdelning Machining Foresight för att analysera deras kodbas. Kodbasen analyseras med hjälp av kodanalysverktyget CodeScene för att utvinna metadata som sedan presenteras till utvecklare inom Machining Foresight. Sedan utförs en kvalitativ studie som består av intervjuer och gruppdiskussioner i syfte av att få utvecklarnas reflektioner och tankegångar angående användbarheten av repository mining. Resultatet visar på att det finns användningsfall hos repository mining men dessa kräver att vissa faktorer är bestämda. Första användningsfallet är en analys på ändring i kodkomplexitet som hjälper att förutspå framtida refaktoreringar. Det andra användningsfallet är en analys på författarskap inom systemet för att hitta möjliga platser känsliga för kunskapsförlust, därmed hjälpa i planering av kunskapsdelning. Detta är dock en fallstudie och dessa resultat ska inte användas för att dra generella slutsatser om repository mining i sin helhet. Resultaten ska endast tas som vägriktning och indikation för framtida studier.
3

Reducing Software Complexity in a Distributed Publish-Subscribe system using Multicast communication

Mekhitarian, Araxi January 2018 (has links)
Systems of distributed character are increasing in size and becoming more complex. Managing and adapting to constant changes of requirements is a challenge during the entire system development life cycle. While new functionalities are implemented, the software may change in design and may lead to poor software quality and increased system complexity. This thesis focuses on tackling the complexity issue in a distributed Electronic Warfare system used in military aircraft. The system consists of a server and several clients which acts as publishers or subscribers for different events sent in the system. The communication is based on unicast and uses a publish/subscribe pattern for the client nodes to register as publishers or subscribers to the server. The system is created to handle message passing in high rate and is sensitive for message delays. Due to this, the system is dependent on a reliable network structure with a continuous necessity for development. An implementation of a multicast prototype will be replacing the topic-specific unicast communication and the publish/subscribe registration process to the server. The system will be evaluated by a comparison of the old communication version with the new multicast implementation using software metrics. The result is to evaluate if the behavior and functionality of the distributed Electronic Warfare system change. / System av distribuerad karaktär ökar i storlek och blir alltmer komplex. Att hantera och anpassa sig till ständiga kravändringar är emellertid en utmaning under hela systemets utvecklingsprocess. Medan nya funktioner implementeras kan mjukvaran ändras i design vilket kan leda till dålig programkvalitet och ökad systemkomplexitet. Denna rapport fokuserar på att hantera komplexiteten i ett distribuerat telekrigföringssystem som används i militära flygplan. Systemet består av en server och flera klienter som publicerar och prenumererar för olika typer av meddelanden som skickas i systemet. Kommunikationen baseras på enkelsändning och använder ett publish/subscribe meddelandemönster där klienterna registrerar sig som publicerare eller prenumeranter till servern. Systemet är skapat för att kunna hantera höga meddelandehastigheter och har låg tolerans för meddelandeförseningar. På grund av detta är tillförlitlighet i nätverksstrukturen ett essentiellt kvalitetsattribut då nätverket är i behov av en ständig utveckling. En prototyp av multisändning kommer att implementeras och ersätta kommunikationen baserad på enkelsändning och publish/subscribe registreringsprocessen till servern. Systemet kommer att utvärderas genom en jämförelse av den gamla kommunikationsversionen av systemet med den nya multicast-implementeringen med hjälp av mjukvarukomplexitetsmätningar. Resultatet är att utvärdera om beteendet och funktionaliteten hos det distribuerade telekrigföringssystemet ändras.
4

Passive MVC och MVVM designmönster i Android : En jämförelse av kodkomplexitet mellan Passive MVC och MVVM / Passive MVC and MVVM design pattern in Android : A comparison of code complexity between Passive MVC and MVVM

Pettersson, Tom, Bulai, Tobias January 2016 (has links)
Det mobila operativsystemet Android är idag ett ganska dominerande operativsystem på den mobila marknaden dels på grund av sin öppenhet men också på grund av att tillgängligheten är stor i och med både billiga och dyra telefoner finns att tillgå. Men idag har Android inget fördefinierat designmönster vilket leder till att varje utvecklare får bestämma själv vad som ska användas, vilket ibland kan leda till onödigt komplex kod i applikationerna som sen blir svårtestad och svårhanterlig. Detta arbete ämnar jämföra två designmönster, Passive Model View Controller (PMVC) och Model View View-Model (MVVM), för att se vilket designmönster som blir minst komplext med hjälp av att räkna fram mätvärden med hjälp av Cyclomatic Complexity Number (CCN). Studien är gjord utifrån arbetssättet Design & Creation och ämnar bidra med: kunskap om vilket mönster man bör välja, samt om CCN kan peka ut vilka delar i en applikation som kommer att ta mer eller mindre lång tid att testa. Under studiens gång tog vi även fram skillnader på om man anväder sig av den så kallade Single Responsibilyt Principle (SRP) eller inte. Detta för att se om separerade vyer gör någon skillnad i applikationernas komplexitet. I slutändan så visar studien på att komplexiteten i små applikationer är väldigt likvärdig, men att man även på små applikationer kan se skillnad på hur komplex koden är men också att kodkomplexitet på metodnivå kan ge riktlinjer för testfall. / Today the mobile operating system Android has a firm grip on the mobile market due to its open source code and the availability due to the variety of phones available, from very cheap models to the high-end exclusive ones. However, Android currently has no defined design pattern which causes a bit of a problem during the initial stages of development because the developer has to make that decision before the initial development starts. This sometimes causes excessive complexity in the finished application, which then becomes difficult to test and manage. In this report we compare the two design patterns Passive Model View Controller (PMVC) and Model View View-Model (MVVM) to decide which one is the least complex. For this we used so called metrics to show the complexity of the finished applications. The metrics were calculated using the existing library of functions called Cyclomatic Complexity Numbers (CCN). The study is based on the workflow Design & creation and aim to contribute with: knowledge that will make it easier to choose design pattern when developing an Android application, and if you can with CCN point out which areas in an application will take more or less time to conduct tests on. During the study we also analyzed how big of an impact the Single Responsibility Principle (SRP) had on the complexity. This was part of the study so that we could see the difference of separated views versus non-separated views. The study shows us that the complexity in small applications is very similar, no matter which design pattern you're using. However, it also shows that there are certain parts of the applications that are diverse in their complexity and that code complexity on method-level can give directions to test cases.

Page generated in 0.0364 seconds