2,122 research outputs found
On the real world practice of Behaviour Driven Development
Surveys of industry practice over the last decade suggest that Behaviour Driven Development is a popular Agile practice. For example, 19% of respondents to the 14th State of Agile annual survey reported using BDD, placing it in the top 13 practices reported. As well as potential benefits, the adoption of BDD necessarily involves an additional cost of writing and maintaining Gherkin features and scenarios, and (if used for acceptance testing,) the associated step functions. Yet there is a lack of published literature exploring how BDD is used in practice and the challenges experienced by real world software development efforts. This gap is significant because without understanding current real world practice, it is hard to identify opportunities to address and mitigate challenges. In order to address this research gap concerning the challenges of using BDD, this thesis reports on a research project which explored: (a) the challenges of applying agile and undertaking requirements engineering in a real world context; (b) the challenges of applying BDD specifically and (c) the application of BDD in open-source projects to understand challenges in this different context.
For this purpose, we progressively conducted two case studies, two series of interviews, four iterations of action research, and an empirical study. The first case study was conducted in an avionics company to discover the challenges of using an agile process in a large scale safety critical project environment. Since requirements management was found to be one of the biggest challenges during the case study, we decided to investigate BDD because of its reputation for requirements management. The second case study was conducted in the company with an aim to discover the challenges of using BDD in real life. The case study was complemented with an empirical study of the practice of BDD in open source projects, taking a study sample from the GitHub open source collaboration site.
As a result of this Ph.D research, we were able to discover: (i) challenges of using an agile process in a large scale safety-critical organisation, (ii) current state of BDD in practice, (iii) technical limitations of Gherkin (i.e., the language for writing requirements in BDD), (iv) challenges of using BDD in a real project, (v) bad smells in the Gherkin specifications of open source projects on GitHub. We also presented a brief comparison between the theoretical description of BDD and BDD in practice. This research, therefore, presents the results of lessons learned from BDD in practice, and serves as a guide for software practitioners planning on using BDD in their projects
Synergi: A Mixed-Initiative System for Scholarly Synthesis and Sensemaking
Efficiently reviewing scholarly literature and synthesizing prior art are
crucial for scientific progress. Yet, the growing scale of publications and the
burden of knowledge make synthesis of research threads more challenging than
ever. While significant research has been devoted to helping scholars interact
with individual papers, building research threads scattered across multiple
papers remains a challenge. Most top-down synthesis (and LLMs) make it
difficult to personalize and iterate on the output, while bottom-up synthesis
is costly in time and effort. Here, we explore a new design space of
mixed-initiative workflows. In doing so we develop a novel computational
pipeline, Synergi, that ties together user input of relevant seed threads with
citation graphs and LLMs, to expand and structure them, respectively. Synergi
allows scholars to start with an entire threads-and-subthreads structure
generated from papers relevant to their interests, and to iterate and customize
on it as they wish. In our evaluation, we find that Synergi helps scholars
efficiently make sense of relevant threads, broaden their perspectives, and
increases their curiosity. We discuss future design implications for
thread-based, mixed-initiative scholarly synthesis support tools.Comment: ACM UIST'2
Examining the Impact of Game-Based Learning on Student Engagement and Performance in an Introductory Computer Programming Course at the University of the Southern Caribbean (USC)
At the University of the Southern Caribbean (USC) students often struggle with learning programming. Because of this struggle, they often become disengaged with the programming courses, with some transferring to other degree programmes or withdrawing from the programme. While several strategies have been used to ensure that students can problem- solve, design, and develop coded solutions, it has not been enough to alleviate the issues. Game- based learning (GBL) emerged as a possible strategy that can potentially help students develop these skills while keeping them engaged with the course content. Implementing such a strategy within the department requires evidence that it can be an effective technique for teaching and learning programming. Therefore, the aim of this study is to evaluate the impact of GBL on student engagement and overall performance in an introductory programming course. The research was designed as a deductive exploratory single case study research strategy and method. It approaches the aims and objectives from a pragmatic perspective, and as a result, uses a mixed methodological approach to data collection and analysis. The findings show that while GBL does not alleviate the common negative reactions to learning programming, it does provide a learning environment engaging enough for students to overlook these. This results in students having an enhanced perception of the knowledge and improved performance. In implementing GBL in other programming courses, some features that are potentially the most impactful on students learning are immediate feedback, freedom to fail, user interface, code without limitations, and a visual representation of progress
Fully-Automated Packaging Structure Recognition of Standardized Logistics Assets on Images
Innerhalb einer logistischen Lieferkette müssen vielfältige Transportgüter an zahlreichen Knotenpunkten bearbeitet, wiedererkannt und kontrolliert werden. Dabei ist oft ein großer manueller Aufwand erforderlich, um die Paketidentität oder auch die Packstruktur zu erkennen oder zu verifizieren. Solche Schritte sind notwendig, um beispielsweise eine Lieferung auf ihre Vollständigkeit hin zu überprüfen. Wir untersuchen die Konzeption und Implementierung eines Verfahrens zur vollständigen Automatisierung der Erkennung der Packstruktur logistischer Sendungen. Ziel dieses
Verfahrens ist es, basierend auf einem einzigen Farbbild, eine oder mehrere Transporteinheiten akkurat zu lokalisieren und relevante Charakteristika, wie beispielsweise die Gesamtzahl oder die Anordnung der enthaltenen Packstücke, zu erkennen. Wir stellen eine aus mehreren Komponenten bestehende Bildverarbeitungs-Pipeline vor, die diese Aufgabe der Packstrukturerkennung lösen soll.
Unsere erste Implementierung des Verfahrens verwendet mehrere Deep Learning Modelle, genauer gesagt Convolutional Neural Networks zur Instanzsegmentierung, sowie Bildverarbeitungsmethoden und heuristische Komponenten. Wir verwenden einen eigenen Datensatz von Echtbildern aus einer Logistik-Umgebung für Training und Evaluation unseres Verfahrens. Wir zeigen, dass unsere Lösung in der Lage ist, die korrekte Packstruktur in etwa 85% der Testfälle unseres Datensatzes zu erkennen, und sogar eine höhere Genauigkeit erzielt wird, wenn nur die meist vorkommenden Packstücktypen betrachtet werden.
Für eine ausgewählte Bilderkennungs-Komponente unseres Algorithmus vergleichen wir das Potenzial der Verwendung weniger rechenintensiver, eigens designter Bildverarbeitungsmethoden mit den zuvor implementierten Deep Learning Verfahren. Aus dieser Untersuchung schlussfolgern wir die bessere Eignung der lernenden Verfahren, welche wir auf deren sehr gute Fähigkeit zur Generalisierung zurückführen.
Außerdem formulieren wir das Problem der Objekt-Lokalisierung in Bildern anhand selbst gewählter Merkmalspunkte, wie beispielsweise Eckpunkte logistischer Transporteinheiten. Ziel hiervon ist es, Objekte präziser zu lokalisieren, als dies insbesondere im Vergleich zur Verwendung herkömmlicher umgebender Rechtecke möglich ist, während gleichzeitig die Objektform durch bekanntes Vorwissen zur Objektgeometrie forciert wird. Wir stellen ein spezifisches Deep Learning Modell vor, welches die beschriebene Aufgabe löst im Fall von Objekten, welche durch vier Eckpunkte beschrieben
werden können. Das dabei entwickelte Modell mit Namen TetraPackNet wird evaluiert mittels allgemeiner und anwendungsbezogener Metriken. Wir belegen die Anwendbarkeit der Lösung im Falle unserer Bilderkennungs-Pipeline und argumentieren die Relevanz für andere Anwendungsfälle, wie beispielweise Kennzeichenerkennung
A systematic literature review on source code similarity measurement and clone detection: techniques, applications, and challenges
Measuring and evaluating source code similarity is a fundamental software
engineering activity that embraces a broad range of applications, including but
not limited to code recommendation, duplicate code, plagiarism, malware, and
smell detection. This paper proposes a systematic literature review and
meta-analysis on code similarity measurement and evaluation techniques to shed
light on the existing approaches and their characteristics in different
applications. We initially found over 10000 articles by querying four digital
libraries and ended up with 136 primary studies in the field. The studies were
classified according to their methodology, programming languages, datasets,
tools, and applications. A deep investigation reveals 80 software tools,
working with eight different techniques on five application domains. Nearly 49%
of the tools work on Java programs and 37% support C and C++, while there is no
support for many programming languages. A noteworthy point was the existence of
12 datasets related to source code similarity measurement and duplicate codes,
of which only eight datasets were publicly accessible. The lack of reliable
datasets, empirical evaluations, hybrid methods, and focuses on multi-paradigm
languages are the main challenges in the field. Emerging applications of code
similarity measurement concentrate on the development phase in addition to the
maintenance.Comment: 49 pages, 10 figures, 6 table
Evaluation Methodologies in Software Protection Research
Man-at-the-end (MATE) attackers have full control over the system on which
the attacked software runs, and try to break the confidentiality or integrity
of assets embedded in the software. Both companies and malware authors want to
prevent such attacks. This has driven an arms race between attackers and
defenders, resulting in a plethora of different protection and analysis
methods. However, it remains difficult to measure the strength of protections
because MATE attackers can reach their goals in many different ways and a
universally accepted evaluation methodology does not exist. This survey
systematically reviews the evaluation methodologies of papers on obfuscation, a
major class of protections against MATE attacks. For 572 papers, we collected
113 aspects of their evaluation methodologies, ranging from sample set types
and sizes, over sample treatment, to performed measurements. We provide
detailed insights into how the academic state of the art evaluates both the
protections and analyses thereon. In summary, there is a clear need for better
evaluation methodologies. We identify nine challenges for software protection
evaluations, which represent threats to the validity, reproducibility, and
interpretation of research results in the context of MATE attacks
Chatbots for Modelling, Modelling of Chatbots
Tesis Doctoral inĂ©dita leĂda en la Universidad AutĂłnoma de Madrid, Escuela PolitĂ©cnica Superior, Departamento de IngenierĂa Informática. Fecha de Lectura: 28-03-202
ML-based data-entry automation and data anomaly detection to support data quality assurance
Data playsacentralroleinmodernsoftwaresystems,whichare
very oftenpoweredbymachinelearning(ML)andusedincriticaldo-
mains ofourdailylives,suchasfinance,health,andtransportation.
However,theeffectivenessofML-intensivesoftwareapplicationshighly
depends onthequalityofthedata.Dataqualityisaffectedbydata
anomalies; dataentryerrorsareoneofthemainsourcesofanomalies.
The goalofthisthesisistodevelopapproachestoensuredataquality
by preventingdataentryerrorsduringtheform-fillingprocessandby
checking theofflinedatasavedindatabases.
The maincontributionsofthisthesisare:
1. LAFF, anapproachtoautomaticallysuggestpossiblevaluesofcat-
egorical fieldsindataentryforms.
2. LACQUER, anapproachtoautomaticallyrelaxthecompleteness
requirementofdataentryformsbydecidingwhenafieldshould
be optionalbasedonthefilledfieldsandhistoricalinputinstances.
3. LAFF-AD, anapproachtoautomaticallydetectdataanomaliesin
categorical columnsinofflinedatasets.
LAFF andLACQUERfocusmainlyonpreventingdataentryerrors
during theform-fillingprocess.Bothapproachescanbeintegratedinto
data entryapplicationsasefficientandeffectivestrategiestoassistthe
user duringtheform-fillingprocess.LAFF-ADcanbeusedofflineon
existing suspiciousdatatoeffectivelydetectanomaliesincategorical
data.
In addition,weperformedanextensiveevaluationofthethreeap-
proaches,assessingtheireffectivenessandefficiency,usingreal-world
datasets
Reflective Artificial Intelligence
As Artificial Intelligence (AI) technology advances, we increasingly delegate mental tasks to machines. However, today's AI systems usually do these tasks with an unusual imbalance of insight and understanding: new, deeper insights are present, yet many important qualities that a human mind would have previously brought to the activity are utterly absent. Therefore, it is crucial to ask which features of minds have we replicated, which are missing, and if that matters. One core feature that humans bring to tasks, when dealing with the ambiguity, emergent knowledge, and social context presented by the world, is reflection. Yet this capability is completely missing from current mainstream AI. In this paper we ask what reflective AI might look like. Then, drawing on notions of reflection in complex systems, cognitive science, and agents, we sketch an architecture for reflective AI agents, and highlight ways forward
Large Language Models for Software Engineering: Survey and Open Problems
This paper provides a survey of the emerging area of Large Language Models
(LLMs) for Software Engineering (SE). It also sets out open research challenges
for the application of LLMs to technical problems faced by software engineers.
LLMs' emergent properties bring novelty and creativity with applications right
across the spectrum of Software Engineering activities including coding,
design, requirements, repair, refactoring, performance improvement,
documentation and analytics. However, these very same emergent properties also
pose significant technical challenges; we need techniques that can reliably
weed out incorrect solutions, such as hallucinations. Our survey reveals the
pivotal role that hybrid techniques (traditional SE plus LLMs) have to play in
the development and deployment of reliable, efficient and effective LLM-based
SE
- …