11 |
Chattbotar inom mjukvaruutvecklingFriström, Alex, Wallén, Daniel January 2023 (has links)
This work examines the utilization of chatbots in programming and their effects ondeveloper productivity, code quality, and problem-solving. The surge in AI technologyand the popularity of chatbots has been remarkable since the end of 2022, whenOpenAI introduced ChatGPT, capable of providing rapid and accurate responses toinquiries. This introduces novel opportunities for information accessibility withouthuman interactions.Previous research within this domain has explored the usability of earlier chatbots indesign-related professions, revealing a certain degree of utility. Now, with the advancementof AI, new prospects arise for investigating their utility. Emerging technologiesoften imbue functionalities that facilitate or simplify specific tasks. Therefore,the aim of this study is to explore and analyze how chatbots such as ChatGPTand GitHub Copilot can function as interactive aids to streamline programming andsystems development.Conducted as a qualitative study within the realms of programming and systems development,this work employs interviews as its primary methodology. Semi-structuredqualitative interviews are employed for data collection. To analyze the informationgathered from these interviews, a thematic analysis approach is adopted, facilitatingthe identification of commonalities and disparities in the responses.The findings of this study demonstrate that AI tools have proven to be effective andbeneficial in areas like information retrieval or fundamental programming tasks, yetexhibit limitations in advanced programming endeavors and complex problem-solving.The study encompasses respondents who have employed these tools in theirwork, possessing the expertise and experience to offer insights into developers' utilizationof these tools in software development.
|
12 |
Evolving Trends in the Adoption and Effectiveness of DEPENDABOT Security Pull RequestsJernestål, Jacob January 2024 (has links)
In the rapidly evolving software industry, bots have become integral to automating tasks and enhancing developer productivity and are revolutionizing the way security patches are implemented in software projects. Our study investigates the impact of DEPENDABOT on the speed and efficacy of security patching in GitHub Open Source Software projects, by studying merge times and factors that contribute to DEPENDABOT’s resolution of security issues in JavaScript projects. We use a dataset containing DEPENDABOT Security Pull Requests. Our study validates previous findings by collecting data from the GitHub API and publishing a dataset collected between 2021 and 2024. We face challenges with collecting features impacting merge times, but overcome them by prioritizing the top 3 features and 2 additional ones. We also investigate the factors behind not merging Pull Requests to identify the obstacles in adopting DEPENDABOT’s recommendations, by analysing Pull Request comments. We start performing sentiment analysis and topic modeling but switch to GitHub Copilot instead and continue investigating presence of factors impacting rapid merge times. Our results present a lower adoption rate of DEPENDABOT Security Pull Requests in JavaScript Open Source Software projects, specifically 13%, compared to those of the original study. 76% of Pull Requests are merged within 4 days, with a median decision time of 0,3 days. The main reason for not merging a DEPENDABOT Security Pull Requests is that another DEPENDABOT Security Pull Request supersedes it. Factors associated with faster merge are related to smaller changes and, controversially, disabling auto merge.
|
13 |
AnagnosisDamiani, Vincenzo 20 April 2016 (has links) (PDF)
In recent years many institutions holding papyri have put images of their collections online, while transcriptions previously published in print are now hosted in the Digital Corpus of Literary Papyri. Anagnosis aims to provide an intuitive and easy-to-use web interface between those images and related digitized texts. The main goal lies in automatic data processing and text-recognition accuracy: Through a dedicated OCR algorithm, letters on the image are identified with single boxes and thus linked to the transcription. A coordinates system of the glyphs on the image can then be transferred and applied to each new image uploaded for the same text section. Once all character boxes are generated, Anagnosis can extract a sample alphabet that users may rearrange to virtually restore lost parts of text directly on the image.
|
14 |
Mitigating CI/CD threats through an extended access control model / Motverka hot CI/CD-hot genom en utökad åtkomstkontrollmodellSiberov, Arvid January 2024 (has links)
Continuous integration and continuous deployment (CI/CD) are automated processes that form a vital part of the software development lifecycle. However, CI/CD entails unique security challenges, as demonstrated by cyber attacks in recent years. This thesis presents a method for diminishing the risks of CI/CD through the dynamic access control patterns of zero trust. The impact of the method is evaluated by threat modeling popular open-source CI/CD pipelines on GitHub using STRIDE and examining the effect on the found threats. This evaluation shows that a significant subset of the found threats are impacted by the method, which suggests that monitoring dynamic CI/CD attributes have the potential to improve the security of CI/CD systems. Furthermore, the current use of existing mitigations against threats by popular GitHub repositories is investigated. / En allt viktigare del av utveckling av mjukvara utgörs av så kallade CI/CDpipelines, vilka möjliggör kontinuerlig integration och leverans av mjukvara. Dessa medför stora förtjänster i utvecklingseffektivitet, men även unika säkerhetsutmaningar, vilket har poängterats av cyberattacker mot pipelines under senare år. Denna uppsats uppsats syftar till att minska riskerna i CI/CD-pipelines. Detta görs genom att presentera en ny modell för åtkomstkontroll i CI/CD-pipelines på webbplattformet GitHub. Modellens prestanda evalueras genom att undersöka dess effekt på pipeline-hot som hittas genom hotmodellering av populära projekt på GitHub. Evalueringen visar att en betydande delmängd av de funna hoten påverkas av modellen, vilket antyder att övervakning av dynamiska attribut i CI/CD-system kan förbättra säkerheten i dessa. Dessutom så undersöks hur existerande GitHub-projekt jobbar med lindringar av hot mot säkerheten i pipelines.
|
15 |
Bendruomeninių projektų kūrimo procesų tyrimas / Research of crowdsourcing base project development processesTamošaitis, Justas 26 August 2013 (has links)
Bendruomeninių paslaugų apibrėžimas dar nėra galutinai susiformavęs ir naudojami įvairūs jo variantai priklausomai nuo konteksto. Tačiau matoma galimybė panaudoti bendruomeninius resursus įvairiose srityse, įskaitant ir programinės įrangos projektų kūrimą. Viena iš svarbių projektų kūrimo sričių yra projektų valdymas. Siekiant apjungti projektų valdymą su bendruomeninėmis paslaugomis, darbe nagrinėjamas jų integracijos variantas. Aptariami naudojami programų kūrimo modeliai, apžvelgiami susiję sprendimai, jų teikiamas funkcionalumas. Darbe pateikiamas įgyvendintos projektų valdymo sistemos su integruotomis bendruomeninėmis paslaugomis aprašas, jos esminės savybės. Atliekamas eksperimentinis bendruomeninių projektų kūrimo savybių tyrimas, kurio metu tiriamas bendruomenės narių indėlis projekto maste, bei narių prisijungimo prie projekto tendencijos. / The definition of crowdsourcing is not yet fully formed and is used in various versions, depending on the context. However, there is the possibility crowdsourcing resources in various fields, including software development projects. One of the most important parts of projects is the project management. In order to combine project management with crowdsourcing, integration options are analyzed in the paper. Programming models, a review of decisions, they provided functionality is discussed in it. The paper provides implementation of the project management system with integrated crowdsourcing services and a description of its essential features. The experimental community project development process analysis is conducted to investigate the contribution size of community members and the trend of new members joining the projects.
|
16 |
Anagnosis: automatisierte Buchstabenverknüpfung von Transkript und PapyrusabbildungDamiani, Vincenzo January 2016 (has links)
In recent years many institutions holding papyri have put images of their collections online, while transcriptions previously published in print are now hosted in the Digital Corpus of Literary Papyri. Anagnosis aims to provide an intuitive and easy-to-use web interface between those images and related digitized texts. The main goal lies in automatic data processing and text-recognition accuracy: Through a dedicated OCR algorithm, letters on the image are identified with single boxes and thus linked to the transcription. A coordinates system of the glyphs on the image can then be transferred and applied to each new image uploaded for the same text section. Once all character boxes are generated, Anagnosis can extract a sample alphabet that users may rearrange to virtually restore lost parts of text directly on the image.
|
17 |
Problem Solving Using Automatically Generated Code / Problemlösning med automatiskt genererad kodCatir, Emir, Claesson, Robin January 2023 (has links)
Usage of natural language processing tools to generate code is increasing together with the advances in artificial intelligence. These tools could improve the efficiency of software development, if the generated code can be shown to be trustworthy enough to solve a given problem. This thesis examines what problems can be solved using automatically generated code such that the results can be trusted. A set of six problems were chosen to be used for testing two automatic code generators and the accuracy of their generated code. The problems were chosen to span a range from introductory programming assignments to complex problems with no known efficient algorithm. The problems also varied in how direct their descriptions were, with some describing exactly what should be done, while others described a real-world scenario with a desired result. The problems were used as prompts to the automatic code generators to generate code in three different programming languages. A testing framework was built that could execute the generated code, feed problem instances to the processes, and then verify the solutions that were outputted from them. The data from these tests were then used to calculate the accuracy of the generated code, based on how many of the problem instances were correctly solved. The experimental results show that most solutions to the problems either got all outputs correct, or had few or no correct outputs. Problems with direct explanations, or simple and well known algorithms, such as sorting, resulted in code with high accuracy. For problems that were wrapped in a scenario, the accuracy was the lowest. Hence, we believe that identifying the underlying problem before resorting to code generators should possibly increase the accuracy of the code. / Användningen av verktyg som bygger på språkteknologi för att generera kod har ökat i takt med framstegen inom artificiell intelligens. Dessa verktyg kan användas för att öka effektiviten inom mjukvaruutveckling, om den genererade koden kan visas tillförlitlig nog för att lösa ett givet problem. Denna avhandling utforskar vilka problem som kan lösas med automatiskt genererad kod på en nivå sådan att resultaten kan dömas tillförlitliga. En mängd på sex olika problem valdes för att testa två olika kodgenererande verktygs noggrannhet. De utvalda problemen valdes för att täcka ett stort span av programmeringsproblem. Från grundläggande programmeringsproblem till komplexa problem utan kända effektiva algoritmer. Problemen hade även olika nivåer av tydlighet i deras beskrivning. Vissa problem var tydligt formulerade med ett efterfrågat tillvägagångssätt, andra var mindre tydliga med sitt respektive förväntade resultat inbakat i problembeskrivningen. De utvalda kodgenererade verktygen uppmanades lösa problem enligt sex problembeskrivningar på tre olika programmeringsspråk. Ett ramverk byggdes som skapade probleminstanser, exekverade den genererade koden och verifierade den utmatade lösningen. Resultaten användes för att beräkna den genererade kodens noggrannhet, baserat på hur många av de givna instanserna som lösts korrekt. Resultaten från testerna visar att de flesta av de genererade lösningarna fick antingen alla eller inga instanser korrekt lösta. Problem med tydliga beskrivningar och enkla välkända algoritmer så som sortering, resulterade i kod med hög noggrannhet. För de mindre tydliga problemen, som resulterade i lägst noggrannhet, bör identifiering av det underliggande problemet öka kodens noggrannhet.
|
18 |
Can you Change the World with only 3 Commits? : Monitoring the Commit Behaviour of First Year Computer Science StudentsOsnes, Simon, Berg, Amanda January 2021 (has links)
Having the skill to work with Version Control Systems (VCS) is an important aspect of most software development projects in the industry. But students may lack the knowledge on how to use it. By applying requirements on first year students of the Computer Science programme at KTH, this thesis aims to examine if that is enough to improve their VCS behaviour. This can be examined by applying requirements and then examining the metadata from GitHub. The results from this thesis show that the students committed a bit more when requirements were applied, but that the best way to get the students to commit more is to give them the knowledge on how to have a good commit behaviour. This is in line with previous research in the same area. / Versionshanteringssystem är ett viktigt verktyg i de flesta mjukvaruprojekt. Därför är det också en nödvändig kunskap att kunna arbeta med dem. Trots det så kan många datateknikstudenter sakna dessa kunskaper i hur man använder versionshantering optimalt. Därför ämnar detta arbete att undersöka om det är möjligt att förbättra förstaårsstudenterna på civilingenjörsprogrammet med inriktning datateknik på KTHs commitvanor genom att ställa krav på dem om ett minst antal commits per vecka. Krav kan ställas och sen är det möjligt att använda metadatan från GitHub för att besvara frågeställningen. Resultaten från detta arbete visar att även om studenterna committade lite mer med bara kraven, så var det framförallt efter att de fått kunskaper om bra commitbeteenden som de också förbättrade sitt eget beteende. Detta stämmer väl överens med tidigare forskning på området.
|
19 |
Data mining historical insights for a software keyword from GitHub and Libraries.io; GraphQL / Datautvinning av historiska insikter för ett mjukvara nyckelord från GitHub och Libraries.io; GraphQLBodemar, Gustaf January 2022 (has links)
This paper explores an approach to extracting historical insights into a software keyword by data mining GitHub and Libraries.io. We test our method using the keyword GraphQL to see what insights we can gain. We managed to plot several timelines of how repositories and software libraries related to our keyword were created over time. We could also do a rudimentary analysis of how active said items were. We also extracted programing language data associated with each repository and library from GitHub and Libraries.io. With this data, we could, at worst, correlate which programming languages were associated with each item or, in the best case, predict what implementations of GraphQL they used. We found through our attempt many problems and caveats that needed to be dealt with but still concluded that extracting historical insights by data mining GitHub and Libraries.io is worthwhile.
|
20 |
Towards a Collaborative Learning Platform: The Use of GitHub in Computer Science and Software Engineering CoursesFeliciano, Joseph 31 August 2015 (has links)
Technical fields such as computer science and software engineering have placed an emphasis on collaboration and teamwork, and training students entering these fields is a challenge that educators and researchers have attempted to tackle. To develop students’ skills for these technical fields, some educators have integrated learning activities where students collaborate heavily and make contributions to each other’s learning, emulating the type of work students will perform in industry. Consequently, the learning tools that instructors use for their courses need to support these collaborative and contributive activities.
GitHub is a social coding tool that has seen rapid adoption in the software development field because of the open, collaborative workflow it encourages. This thesis explores the use of GitHub as a collaborative platform for computer science and software engineering education. GitHub provides users with opportunities to contribute to each other’s work through its transparency features, supports integrated discussions, and provides support for reusing and remixing work—opportunities which may be extended to education.
In this thesis, I investigate how GitHub’s unique features, such as ‘pull requests’ and commit histories, can be used to support learning and teaching. This work also explores the benefits and challenges that emerge from using GitHub in this context from both the instructor’s and the student’s perspectives. We found that GitHub afforded instructors with opportunities to encourage student participation by contributing to the course materials through the use of ‘pull requests’ and provided instructors with ways to reuse and share their course materials. As well, students gained experience with a tool and a workflow they expected to encounter in industry, and were provided ways to further engage in their learning by giving feedback to or further developing other students’ work. However, we found that instructors and students were challenged by GitHub’s lack of educational focus, as well as the implications of using GitHub’s open workflow on the public availability of student work.
Findings from this work determine the viability of GitHub as a tool for supporting computer science and software engineering education, and contribute to our understanding of what activities and benefits GitHub provides beyond traditional learning tools. The contributions of this work include a set of recommendations for instructors wishing to use GitHub to augment their courses, utilizing GitHub’s features to support educational activities such as student contributions to course materials and providing continuous feedback to students. / Graduate / 0984 / 0710 / noelf@uvic.ca
|
Page generated in 0.2043 seconds