1,279 research outputs found

    On the real world practice of Behaviour Driven Development

    Get PDF
    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

    Software Design Change Artifacts Generation through Software Architectural Change Detection and Categorisation

    Get PDF
    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

    Advances and Applications of DSmT for Information Fusion. Collected Works, Volume 5

    Get PDF
    This ļ¬fth volume on Advances and Applications of DSmT for Information Fusion collects theoretical and applied contributions of researchers working in different ļ¬elds of applications and in mathematics, and is available in open-access. The collected contributions of this volume have either been published or presented after disseminating the fourth volume in 2015 in international conferences, seminars, workshops and journals, or they are new. The contributions of each part of this volume are chronologically ordered. First Part of this book presents some theoretical advances on DSmT, dealing mainly with modiļ¬ed Proportional Conļ¬‚ict Redistribution Rules (PCR) of combination with degree of intersection, coarsening techniques, interval calculus for PCR thanks to set inversion via interval analysis (SIVIA), rough set classiļ¬ers, canonical decomposition of dichotomous belief functions, fast PCR fusion, fast inter-criteria analysis with PCR, and improved PCR5 and PCR6 rules preserving the (quasi-)neutrality of (quasi-)vacuous belief assignment in the fusion of sources of evidence with their Matlab codes. Because more applications of DSmT have emerged in the past years since the apparition of the fourth book of DSmT in 2015, the second part of this volume is about selected applications of DSmT mainly in building change detection, object recognition, quality of data association in tracking, perception in robotics, risk assessment for torrent protection and multi-criteria decision-making, multi-modal image fusion, coarsening techniques, recommender system, levee characterization and assessment, human heading perception, trust assessment, robotics, biometrics, failure detection, GPS systems, inter-criteria analysis, group decision, human activity recognition, storm prediction, data association for autonomous vehicles, identiļ¬cation of maritime vessels, fusion of support vector machines (SVM), Silx-Furtif RUST code library for information fusion including PCR rules, and network for ship classiļ¬cation. Finally, the third part presents interesting contributions related to belief functions in general published or presented along the years since 2015. These contributions are related with decision-making under uncertainty, belief approximations, probability transformations, new distances between belief functions, non-classical multi-criteria decision-making problems with belief functions, generalization of Bayes theorem, image processing, data association, entropy and cross-entropy measures, fuzzy evidence numbers, negator of belief mass, human activity recognition, information fusion for breast cancer therapy, imbalanced data classiļ¬cation, and hybrid techniques mixing deep learning with belief functions as well

    Measuring the impact of COVID-19 on hospital care pathways

    Get PDF
    Care pathways in hospitals around the world reported significant disruption during the recent COVID-19 pandemic but measuring the actual impact is more problematic. Process mining can be useful for hospital management to measure the conformance of real-life care to what might be considered normal operations. In this study, we aim to demonstrate that process mining can be used to investigate process changes associated with complex disruptive events. We studied perturbations to accident and emergency (A &E) and maternity pathways in a UK public hospital during the COVID-19 pandemic. Co-incidentally the hospital had implemented a Command Centre approach for patient-flow management affording an opportunity to study both the planned improvement and the disruption due to the pandemic. Our study proposes and demonstrates a method for measuring and investigating the impact of such planned and unplanned disruptions affecting hospital care pathways. We found that during the pandemic, both A &E and maternity pathways had measurable reductions in the mean length of stay and a measurable drop in the percentage of pathways conforming to normative models. There were no distinctive patterns of monthly mean values of length of stay nor conformance throughout the phases of the installation of the hospitalā€™s new Command Centre approach. Due to a deficit in the available A &E data, the findings for A &E pathways could not be interpreted

    Rotor Fatigue Life Prediction and Design for Revolutionary Vertical Lift Concepts

    Get PDF
    Despite recent technological advancements, rotorcraft still lag behind their fixed-wing counterparts in the areas of flight safety and operating cost. Competition with fixed-wing aircraft is difficult for applications where vertical takeoff and landing (VTOL) capabilities are not required. Both must be addressed to ensure the continued competitiveness of vertical lift aircraft, especially in the context of new military and civilian rotorcraft programs such as Future Vertical Lift and urban air mobility, which will require orders-of-magnitude improvements in reliability, availability, maintainability, and cost (RAM-C) metrics. Lifecycle costs and accident rates are strongly driven by scheduled replacement or failure of flight-critical components. Rotor blades are life-limited to ensure that they are replaced before fatigue damage exceeds critical levels, but purchasing new blades is extremely costly. Despite aggressive component replacement times, fatigue failure of rotor blades continues to account for a significant proportion of inflight accidents. Fatigue damage in rotorcraft is unavoidable due to the physics of rotary-wing flight, but new engineering solutions to improve fatigue life in the rotor system could improve rotorcraft operating costs and flight safety simultaneously. Existing rotorcraft design methods treat fatigue life as a consequence, rather than a driver, of design. A literature review of rotorcraft design and fatigue design methods is conducted to identify the relevant strengths and weaknesses of traditional processes. In rotorcraft design, physics-based rotor design frameworks are focused primarily on fundamental performance analysis and do not consider secondary characteristics such as reliability or fatigue life. There is a missing link between comprehensive rotor design frameworks and conceptual design tools that prevents physics-based assessment of RAM-C metrics in the early design stages. Traditional fatigue design methods, such as the safe life methodology, which applies the Miner's rule fatigue life prediction model to rotorcraft components, are hindered by a lack of physics-based capabilities in the early design stages. An accurate fatigue life quantification may not be available until the design is frozen and prototypes are flying. These methods are strongly dependent on extrapolations built on historical fatigue data, and make use of deterministic safety factors based on organizational experience to ensure fatigue reliability, which can lead to over-engineering or unreliable predictions when applied to revolutionary vertical lift aircraft. A new preliminary fatigue design methodology is designed to address these concerns. This methodology is based on the traditional safe life methodology, but replaces several key elements with modern tools, techniques, and models. Three research questions are proposed to investigate, refine, and validate different elements of the methodology. The first research question addresses the need to derive physics-based fatigue load spectra more rapidly than modern comprehensive analysis tools allow. The second investigates the application of different probabilistic reliability solution methods to the fatigue life substantiation problem. The third question tests the ability of the preliminary fatigue design methodology to evaluate the relative impact of common preliminary fatigue design variables on the probability of fatigue failure of a conceptual helicopter's rotor blade. Hypotheses are formulated in response to each research question, and a series of experiments are designed to test those hypotheses. In the first experiment, a multi-disciplinary analysis (MDA) environment combining the rotorcraft performance code NDARC, the comprehensive code RCAS, and the beam analysis program VABS, is developed to provide accurate physics-based predictions of rotor blade stress in arbitrary flight conditions. A conceptual single main rotor transport helicopter based on the UH-60A Black Hawk is implemented within the MDA to serve as a test case. To account for the computational expense of the MDA, surrogate modeling techniques, such as response surface equations, artificial neural networks, and Gaussian process models are used to approximate the stress response across the flight envelope of the transport helicopter. The predictive power and learning rates of various surrogate modeling techniques are compared to determine which is the most suitable for predicting fatigue stress. Ultimately, shallow artificial neural networks are found the provide the best compromise between accuracy, training expense, and uncertainty quantification capabilities. Next, structural reliability solution methods are investigated as a means to produce high-reliability fatigue life estimates without requiring deterministic safety factors. The Miner's sum fatigue life prediction model is reformulated as a structural reliability problem. Analytical solutions (FORM and SORM), sampling solutions (Monte Carlo, quasi-Monte Carlo, Latin hypercube sampling, and directional simulation), and hybrid solutions importance sampling) are compared using a notional fatigue life problem. These results are validated using a realistic helicopter fatigue life problem \jnr{which incorporates the fatigue stress surrogate model and is based on a probabilistic definition of the mission spectrum to account for fleet-wide usage variations. Monte Carlo simulation is found to provide the best performance and accuracy when compared to the exact solution. Finally, the capabilities of the preliminary fatigue design methodology are demonstrated using a series of hypothetical fatigue design exercises. First, the methodology is used to predict the impact of rotor blade box spar web thickness on probability of fatigue failure. Modest increases in web thickness are found to reduce probability of failure, but larger increases cause structural instability of the rotor blade in certain flight regimes which increases the fatigue damage rate. Next, a similar study tests the impact of tail rotor cant angle. Positive tail rotor cant is found to improve fatigue life in cases where the center of gravity (CG) of the vehicle is strongly biased towards the tail, but is detrimental if the CG is closer to the main rotor hub station line. Last, the effect of design mission requirements like rate of climb and cruising airspeed is studied. The methodology is not sensitive enough to predict the subtle impact of changes to rate of climb, but does prove that a slower cruising airspeed will decrease probability of fatigue failure of the main rotor blade. The methodology is proven to be capable of quantifying the influence of \jnr{rotor blade design variables, vehicle layout and configuration, and certain design mission requirements}, paving the way for implementation in a rotorcraft design framework. This thesis ends with suggestions for future work to address the most significant limitations of this research, as well as descriptions of the tasks required to apply the methodology to conventional rotorcraft or conceptual revolutionary vertical lift aircraft.Ph.D

    Architecture-based Evolution of Dependable Software-intensive Systems

    Get PDF
    This cumulative habilitation thesis, proposes concepts for (i) modelling and analysing dependability based on architectural models of software-intensive systems early in development, (ii) decomposition and composition of modelling languages and analysis techniques to enable more flexibility in evolution, and (iii) bridging the divergent levels of abstraction between data of the operation phase, architectural models and source code of the development phase

    Understanding, Analysis, and Handling of Software Architecture Erosion

    Get PDF
    Architecture erosion occurs when a software system's implemented architecture diverges from the intended architecture over time. Studies show erosion impacts development, maintenance, and evolution since it accumulates imperceptibly. Identifying early symptoms like architectural smells enables managing erosion through refactoring. However, research lacks comprehensive understanding of erosion, unclear which symptoms are most common, and lacks detection methods. This thesis establishes an erosion landscape, investigates symptoms, and proposes identification approaches. A mapping study covers erosion definitions, symptoms, causes, and consequences. Key findings: 1) "Architecture erosion" is the most used term, with four perspectives on definitions and respective symptom types. 2) Technical and non-technical reasons contribute to erosion, negatively impacting quality attributes. Practitioners can advocate addressing erosion to prevent failures. 3) Detection and correction approaches are categorized, with consistency and evolution-based approaches commonly mentioned.An empirical study explores practitioner perspectives through communities, surveys, and interviews. Findings reveal associated practices like code review and tools identify symptoms, while collected measures address erosion during implementation. Studying code review comments analyzes erosion in practice. One study reveals architectural violations, duplicate functionality, and cyclic dependencies are most frequent. Symptoms decreased over time, indicating increased stability. Most were addressed after review. A second study explores violation symptoms in four projects, identifying 10 categories. Refactoring and removing code address most violations, while some are disregarded.Machine learning classifiers using pre-trained word embeddings identify violation symptoms from code reviews. Key findings: 1) SVM with word2vec achieved highest performance. 2) fastText embeddings worked well. 3) 200-dimensional embeddings outperformed 100/300-dimensional. 4) Ensemble classifier improved performance. 5) Practitioners found results valuable, confirming potential.An automated recommendation system identifies qualified reviewers for violations using similarity detection on file paths and comments. Experiments show common methods perform well, outperforming a baseline approach. Sampling techniques impact recommendation performance
    • ā€¦
    corecore