3,360 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
Climate Change and Critical Agrarian Studies
Climate change is perhaps the greatest threat to humanity today and plays out as a cruel engine of myriad forms of injustice, violence and destruction. The effects of climate change from human-made emissions of greenhouse gases are devastating and accelerating; yet are uncertain and uneven both in terms of geography and socio-economic impacts. Emerging from the dynamics of capitalism since the industrial revolution — as well as industrialisation under state-led socialism — the consequences of climate change are especially profound for the countryside and its inhabitants. The book interrogates the narratives and strategies that frame climate change and examines the institutionalised responses in agrarian settings, highlighting what exclusions and inclusions result. It explores how different people — in relation to class and other co-constituted axes of social difference such as gender, race, ethnicity, age and occupation — are affected by climate change, as well as the climate adaptation and mitigation responses being implemented in rural areas. The book in turn explores how climate change – and the responses to it - affect processes of social differentiation, trajectories of accumulation and in turn agrarian politics. Finally, the book examines what strategies are required to confront climate change, and the underlying political-economic dynamics that cause it, reflecting on what this means for agrarian struggles across the world. The 26 chapters in this volume explore how the relationship between capitalism and climate change plays out in the rural world and, in particular, the way agrarian struggles connect with the huge challenge of climate change. Through a huge variety of case studies alongside more conceptual chapters, the book makes the often-missing connection between climate change and critical agrarian studies. The book argues that making the connection between climate and agrarian justice is crucial
Software Design Change Artifacts Generation through Software Architectural Change Detection and Categorisation
Software is solely designed, implemented, tested, and inspected by expert people, unlike other engineering projects where they are mostly implemented by workers (non-experts) after designing by engineers. Researchers and practitioners have linked software bugs, security holes, problematic integration of changes, complex-to-understand codebase, unwarranted mental pressure, and so on in software development and maintenance to inconsistent and complex design and a lack of ways to easily understand what is going on and what to plan in a software system. The unavailability of proper information and insights needed by the development teams to make good decisions makes these challenges worse. Therefore, software design documents and other insightful information extraction are essential to reduce the above mentioned anomalies. Moreover, architectural design artifacts extraction is required to create the developer’s profile to be available to the market for many crucial scenarios. To that end, architectural change detection, categorization, and change description generation are crucial because they are the primary artifacts to trace other software artifacts.
However, it is not feasible for humans to analyze all the changes for a single release for detecting change and impact because it is time-consuming, laborious, costly, and inconsistent. In this thesis, we conduct six studies considering the mentioned challenges to automate the architectural change information extraction and document generation that could potentially assist the development and maintenance teams. In particular, (1) we detect architectural changes using lightweight techniques leveraging textual and codebase properties, (2) categorize them considering intelligent perspectives, and (3) generate design change documents by exploiting precise contexts of components’ relations and change purposes which were previously unexplored. Our experiment using 4000+ architectural change samples and 200+ design change documents suggests that our proposed approaches are promising in accuracy and scalability to deploy frequently. Our proposed change detection approach can detect up to 100% of the architectural change instances (and is very scalable). On the other hand, our proposed change classifier’s F1 score is 70%, which is promising given the challenges. Finally, our proposed system can produce descriptive design change artifacts with 75% significance. Since most of our studies are foundational, our approaches and prepared datasets can be used as baselines for advancing research in design change information extraction and documentation
WasmWalker: Path-based Code Representations for Improved WebAssembly Program Analysis
WebAssembly, or Wasm, is a low-level binary language that enables execution of near-native-performance code in web browsers. Wasm has proven to be useful in applications including gaming, audio and video processing, and cloud computing, providing a high-performance, low-overhead alternative to JavaScript in web development. The fast and widespread adoption of WebAssembly by all major browsers has created an opportunity for analysis tools that support this new technology.
In this study, we performed an empirical analysis on the root-to-leaf paths of the abstract syntax trees in the WebAssembly Text format of a large dataset of WebAssembly binary files compiled from over 4,000 source packages in the Ubuntu 18.04 repositories. After refining the collected paths, the initial number of over 800,000 paths was reduced to only 3,352 unique paths that appeared across all of the binary files.
With this insight, we propose two novel code representations for WebAssembly binaries. These novel representations serve not only to generate fixed-size code embeddings but also to supply additional information to sequence-to-sequence models. Ultimately, our approach seeks to help program analysis models uncover new properties from Wasm binaries, expanding our understanding of their potential. We evaluated our new code representation on two applications: (i) method name prediction and (ii) recovering precise return types. Our results demonstrate the superiority of our novel technique over previous methods. More specifically, our new method resulted in 5.36% (11.31%) improvement in Top-1 (Top-5) accuracy in method name prediction and 8.02% (7.92%) improvement in recovering precise return types, compared to the previous state-of-the-art technique, SnowWhite
Exploration of technical debt in start-ups
Context: Software start-ups are young companies aiming to build and market
software-intensive products fast with little resources. Aiming to accelerate
time-to-market, start-ups often opt for ad-hoc engineering practices, make
shortcuts in product engineering, and accumulate technical debt. Objective: In
this paper we explore to what extent precedents, dimensions and outcomes
associated with technical debt are prevalent in start-ups. Method: We apply a
case survey method to identify aspects of technical debt and contextual
information characterizing the engineering context in start-ups. Results: By
analyzing responses from 86 start-up cases we found that start-ups accumulate
most technical debt in the testing dimension, despite attempts to automate
testing. Furthermore, we found that start-up team size and experience is a
leading precedent for accumulating technical debt: larger teams face more
challenges in keeping the debt under control. Conclusions: This study
highlights the necessity to monitor levels of technical debt and to
preemptively introduce practices to keep the debt under control. Adding more
people to an already difficult to maintain product could amplify other
precedents, such as resource shortages, communication issues and negatively
affect decisions pertaining to the use of good engineering practices.Comment: ICSE-SEIP '18: Proceedings of the 40th International Conference on
Software Engineering: Software Engineering in Practic
Flavonol Glucosylation: A Structural Investigation of the Flavonol Specific 3-O Glucosyltransferase Cp3GT
Flavonoid glycosyltransferases (GTs), enzymes integral to plant ecological responses and human pharmacology, necessitate rigorous structural elucidation to decipher their mechanistic function and substrate specificity, particularly given their role in the biotransformation of diverse pharmacological agents and natural products. This investigation delved into a comprehensive exploration of the flavonol 3-O GT from Citrus paradisi (Cp3GT), scrutinizing the impact of a c-terminal c-myc/6x histidine tag on its enzymatic activity and substrate specificity, and successfully achieving its purification to apparent homogeneity. This established a strong foundation for potential future crystallographic and other structure/function analyses. Through the strategic implementation of site-directed mutagenesis, a thrombin cleavage site was incorporated proximal to the tag, followed by cloning in Pichia pastoris, methanol-induced expression, and cobalt-affinity chromatography for initial purification stages. Notably, the recombinant tags did not exhibit a discernible influence on Cp3GT kinetics, substrate preference, pH optima, or metal interactions, maintaining its specificity towards flavonols at the 3-OH position and favoring glucosylation of quercetin and kaempferol. Subsequent purification steps, including MonoQ anion exchange and size-exclusion chromatography, yielded Cp3GT with ≥95% homogeneity. In silico molecular models of Cp3GT and its truncated variants, Cp3GTΔ80 and Cp3GTΔ10, were constructed using D-I-TASSER and COFACTOR to assess binding interactions with quercetin and kaempferol. Results indicated minimal interference of c-myc/6x-his tags with the native Cp3GT structure. This study not only lays a foundation for impending crystallographic studies, aiming to solidify the understanding of Cp3GT\u27s stringent 3-O flavonol specificity, but also accentuates the potential of microbial expression platforms and plant metabolic engineering in producing beneficial compounds. To this end, a thorough review of four pivotal classes of plant secondary metabolites, flavonoids, alkaloids, betalains, and glucosinolates, was conducted. This will open avenues for further research and applications in biotechnological, medical, and agricultural domains
Software Product Line Engineering via Software Transplantation
For companies producing related products, a Software Product Line (SPL) is a
software reuse method that improves time-to-market and software quality,
achieving substantial cost reductions.These benefits do not come for free. It
often takes years to re-architect and re-engineer a codebase to support SPL
and, once adopted, it must be maintained. Current SPL practice relies on a
collection of tools, tailored for different reengineering phases, whose output
developers must coordinate and integrate. We present Foundry, a general
automated approach for leveraging software transplantation to speed conversion
to and maintenance of SPL. Foundry facilitates feature extraction and
migration. It can efficiently, repeatedly, transplant a sequence of features,
implemented in multiple files. We used Foundry to create two valid product
lines that integrate features from three real-world systems in an automated
way. Moreover, we conducted an experiment comparing Foundry's feature migration
with manual effort. We show that Foundry automatically migrated features across
codebases 4.8 times faster, on average, than the average time a group of SPL
experts took to accomplish the task
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
Who Made This Copy? An Empirical Analysis of Code Clone Authorship
Code clones are code snippets that are identical or similar to other snippets
within the same or different files. They are often created through
copy-and-paste practices during development and maintenance activities. Since
code clones may require consistent updates and coherent management, they
present a challenging issue in software maintenance. Therefore, many studies
have been conducted to find various types of clones with accuracy, scalability,
or performance. However, the exploration of the nature of code clones has been
limited. Even the fundamental question of whether code snippets in the same
clone set were written by the same author or different authors has not been
thoroughly investigated.
In this paper, we investigate the characteristics of code clones with a focus
on authorship. We analyzed the authorship of code clones at the line-level
granularity for Java files in 153 Apache projects stored on GitHub and
addressed three research questions.
Based on these research questions, we found that there are a substantial
number of clone lines across all projects (an average of 18.5\% for all
projects). Furthermore, authors who contribute to many non-clone lines also
contribute to many clone lines. Additionally, we found that one-third of clone
sets are primarily contributed to by multiple leading authors.
These results confirm our intuitive understanding of clone characteristics,
although no previous publications have provided empirical validation data from
multiple projects. As the results could assist in designing better clone
management techniques, we will explore the implications of developing an
effective clone management tool.Comment: An extended version of the 17th International Workshop on Software
Clones IWSC 2023 in Bogota, Colombi
Modern meat: the next generation of meat from cells
Modern Meat is the first textbook on cultivated meat, with contributions from over 100 experts within the cultivated meat community.
The Sections of Modern Meat comprise 5 broad categories of cultivated meat: Context, Impact, Science, Society, and World.
The 19 chapters of Modern Meat, spread across these 5 sections, provide detailed entries on cultivated meat. They extensively tour a range of topics including the impact of cultivated meat on humans and animals, the bioprocess of cultivated meat production, how cultivated meat may become a food option in Space and on Mars, and how cultivated meat may impact the economy, culture, and tradition of Asia
- …