89 research outputs found

    Cinders: The continuous integration and delivery architecture framework: Journal-first selected article - Extended abstract

    Get PDF
    This extended abstract summarizes an article, which has been published in Information and Software Technology and was selected for the Journal-First presentations at the International Conference on Software and System Process (ICSSP 2018)

    Improving Software Project Health Using Machine Learning

    Get PDF
    In recent years, systems that would previously live on different platforms have been integrated under a single umbrella. The increased use of GitHub, which offers pull-requests, issue trackingand version history, and its integration with other solutions such as Gerrit, or Travis, as well as theresponse from competitors, created development environments that favour agile methodologiesby increasingly automating non-coding tasks: automated build systems, automated issue triagingetc. In essence, source-code hosting platforms shifted to continuous integration/continuousdelivery (CI/CD) as a service. This facilitated a shift in development paradigms, adherents ofagile methodology can now adopt a CI/CD infrastructure more easily. This has also created large,publicly accessible sources of source-code together with related project artefacts: GHTorrent andsimilar datasets now offer programmatic access to the whole of GitHub. Project health encompasses traceability, documentation, adherence to coding conventions,tasks that reduce maintenance costs and increase accountability, but may not directly impactfeatures. Overfocus on health can slow velocity (new feature delivery) so the Agile Manifestosuggests developers should travel light — forgo tasks focused on a project health in favourof higher feature velocity. Obviously, injudiciously following this suggestion can undermine aproject’s chances for success. Simultaneously, this shift to CI/CD has allowed the proliferation of Natural Language orNatural Language and Formal Language textual artefacts that are programmatically accessible:GitHub and their competitors allow API access to their infrastructure to enable the creation ofCI/CD bots. This suggests that approaches from Natural Language Processing and MachineLearning are now feasible and indeed desirable. This thesis aims to (semi-)automate tasks forthis new paradigm and its attendant infrastructure by bringing to the foreground the relevant NLPand ML techniques. Under this umbrella, I focus on three synergistic tasks from this domain: (1) improving theissue-pull-request traceability, which can aid existing systems to automatically curate the issuebacklog as pull-requests are merged; (2) untangling commits in a version history, which canaid the beforementioned traceability task as well as improve the usability of determining a faultintroducing commit, or cherry-picking via tools such as git bisect; (3) mixed-text parsing, to allowbetter API mining and open new avenues for project-specific code-recommendation tools

    TCTracer: Establishing test-to-code traceability links using dynamic and static techniques

    Get PDF
    Test-to-code traceability links model the relationships between test artefacts and code artefacts. When utilised during the development process, these links help developers to keep test code in sync with tested code, reducing the rate of test failures and missed faults. Test-to-code traceability links can also help developers to maintain an accurate mental model of the system, reducing the risk of architectural degradation when making changes. However, establishing and maintaining these links manually places an extra burden on developers and is error-prone. This paper presents TCTracer, an approach and implementation for the automatic establishment of test-to-code traceability links. Unlike existing work, TCTracer operates at both the method level and the class level, allowing us to establish links between tests and functions, as well as between test classes and tested classes. We improve over existing techniques by combining an ensemble of new and existing techniques that utilise both dynamic and static information and exploiting a synergistic flow of information between the method and class levels. An evaluation of TCTracer using five large, well-studied open source systems demonstrates that, on average, we can establish test-to-function links with a mean average precision (MAP) of 85% and test-class-to-class links with an MAP of 92%

    Automated recommendation, reuse, and generation of unit tests for software systems

    Get PDF
    This thesis presents a body of work relating to the automated discovery, reuse, and generation of unit tests for software systems with the goal of improving the efficiency of the software engineering process and the quality of the produced software. We start with a novel approach to test-to-code traceability link establishment, called TCTracer, which utilises multilevel information and an ensemble of static and dynamic techniques to achieve state-of-the-art accuracy when establishing links between tests and tested functions and test classes and tested classes. This approach is utilised to provide test-to-code traceability links which facilitate multiple other parts of the work. We then move on to test reuse where we first define an abstract framework, called Rashid, for using connections between artefacts to identify new artefacts for reuse and utilise this framework in Relatest, an approach for producing test recommendations for new functions. Relatest instantiates Rashid by using TCTracer to establish connections between tests and functions and code similarity measures to establish connections between similar functions. This information is used to create lists of recommendations for new functions. We then present an investigation into the automated transplantation of tests which attempts to remove the manual effort required to transform Relatest recommendations and insert them into another project. Finally, we move on to test generation where we utilise neural networks to generate unit test code by learning from existing function-to-test pairs. The first approach, TestNMT, investigates using recurrent neural networks to generate whole JUnit tests and the second approach, ReAssert, utilises a transformer-based architecture to generate JUnit asserts. In total, this thesis addresses the problem by developing approaches for the discovery, reuse, and utilisation of existing functions and tests, including the establishment of relationships between these artefacts, developing mechanisms to aid automated test reuse and learning from existing tests to generate new tests

    A Model For Improving Ethics In Construction Materials And Products Supply Chain Using Blockchain

    Get PDF
    There are countless materials and products that make up a building, including cladding, glazing, roofing, floors, ceilings, systems, etc., and the hidden and fragmented structure of the supply chain makes it highly vulnerable to several forms of ethical breaches at different tiers. Consumers also are increasingly concerned about where the products they are buying come from, highlighting important areas of concern that include the ethical, environmental, and social issues. Whereas current research identifies digitalization as a key part of providing transparency and increasing fairness in supply chains, and blockchain technology is lauded as having the potential to deliver this. However, while there has been a growing emphasis on ethics in construction in recent years, and an increase in studies around blockchain, there remains a paucity of studies related to how blockchain may help to improve the environmental and social dimensions of ethics in construction supply chains. A gap that this study fills through a holistic triple bottom line (TBL) approach. To achieve this, the study aims to develop and validate a model for improving ethics in construction materials and products supply chains (CMPSC) following the TBL construct using blockchain technology. The study also explores the current state of ethics in the CMPSC and the implementations of blockchain for ethics and applies the learnings to develop a conceptual model to improve environmental, social and business ethics in the CMPSC using blockchain. The model was then refined and validated via a dual-phase validation protocol consisting of expert interviews and focus group discussions. A total of 30 participants participated in this study, this comprised of 16 construction industry supply chain professionals, 10 professionals in the ethics/ sustainability in construction and 4 blockchain technology experts. NVivo 12 was utilised to thematically analyse both the interviews and the focus group data. This approach was utilised to investigate the data from both a data-driven perspective (a perspective based on coding in an inductive way); and from the research question perspective (to check if the data is consistent with the research questions and if it provides sufficient information). The 30 interviews resulted in 4 high-level themes, 15 mid-level themes and 28 low-level themes, with the total number of codes within the themes being 721. The analysis of the focus group data resulted in 3 high-level themes and 10 mid-level themes, bringing the total number of codes within all themes to 74. Results from this study revealed that the effectiveness of current ethical measures in the CMPSC has been limited due to weak implementation and compliance, the inability of the government to play its role, and the outright denial of unethical practises within supply chains. Results also show that even though greater emphasis is placed on the business component of ethics while the environmental or social component may only receive as much attention if it can be monetised or if it is demanded; nonetheless, the current state of ethics in the CMPSC remains weak across the three dimensions examined. Further results show that while blockchain may help improve ethics in the CMPSC, in addition to the transparency and digitization that technology provides, the need for education and the upholding of personal ethical values by supply chain players are key to the success of both current and new ethical supply chain initiatives. Individuals must first be made ethically aware in order to act ethically; only then may the implementation of a technological tool prosper. The main contribution of this study to knowledge is the development of a model for improving ethics in the CMPSC within the TBL construct through blockchain technology. The model developed in this study provides practical clarity on how blockchain may be implemented within fragmented supply chains and a significant understanding of a socio-technical approach to addressing the issue of ethics within construction supply chains. It also has a vital role in helping the intended users and actors improve their knowledge of the technology and how blockchain can help to improve ethics in the CMPSC and also understand their roles and responsibilities on the network, thereby providing a framework and prerequisite guidance for the Blockchain-as-a-Service (BaaS) providers in the development of the computer model (blockchain network). The findings of this thesis demonstrate new insights and contribute to the existing body of knowledge by further advancing the discussion on the role of the blockchain in the construction industry

    The engineering of an object-oriented software development methodology

    Get PDF
    EThOS - Electronic Theses Online ServiceGBUnited Kingdo

    A framework to improve the architecture quality of software intensive systems

    Get PDF
    Over the past decade, the amount and complexity of software for almost any business sector has increased substantially. Unfortunately, the increased complexity of software in the systems to be built has often lead to a significant mismatch between the planned and the implemented products. One common problem is that system-wide quality attributes such as safety, reliability, performance, and modifiability are not sufficiently considered in software architecture design. Typically, they are addressed in an ad-hoc and unstructured fashion. Since rationales for architectural decisions are frequently missing, risks associated with those decisions can be neither identified, nor mitigated in a systematic way. Consequently, there is a high probability that the resulting software architecture fails to meet business goals and does not allow the building of an adequate system. This work presents QUADRAD, a framework for Quality-Driven Architecture Development. QUADRAD is capable of improving architecture quality for software-intensive systems in a systematic way. It supports the development of architectures that are optimized according to their essential quality requirements. Such architectures permit the building of systems that are better aligned to the principal market needs and business goals. QUADRAD is complemented by the Architecture Exploration Tool (AET), which supports architecture evaluations and helps in documenting the fundamental design decisions of an architecture. QUADRAD has been validated in three industrial projects. For each of these projects the architecture quality could be significantly increased. The results confirm the hypothesis of this work and demonstrate how critical problems in the transition from requirements to architecture design can be mitigated
    • …
    corecore