35,924 research outputs found

    Towards a design-by-contract based approach for realizable connector-centric software architectures

    Get PDF
    Despite being a widely-used language for specifying software systems, UML remains less than ideal for software architectures. Architecture description languages (ADLs) were developed to provide more comprehensive support. However, so far the application of ADLs in practice has been impeded by at least one of the following problems: (i) advanced formal notations, (ii) lack of support for complex connectors, and (iii) potentially unrealizable designs. In this paper we propose a new ADL that is based on Design-by-Contract (DbC) for specifying software architectures. While DbC promotes a formal and precise way of specifying system behaviours, it is more familiar to practising developers, thus allowing for a more comfortable way of specifying architectures than using process algebras. Furthermore, by granting connectors a first-class status, our ADL allows designers to specify not only simple interaction mechanisms as connectors but also complex interaction protocols. Finally, in order to ensure that architectural designs are always realizable we eliminate potentially unrealizable constructs in connector specifications (the connector “glue”)

    What to Fix? Distinguishing between design and non-design rules in automated tools

    Full text link
    Technical debt---design shortcuts taken to optimize for delivery speed---is a critical part of long-term software costs. Consequently, automatically detecting technical debt is a high priority for software practitioners. Software quality tool vendors have responded to this need by positioning their tools to detect and manage technical debt. While these tools bundle a number of rules, it is hard for users to understand which rules identify design issues, as opposed to syntactic quality. This is important, since previous studies have revealed the most significant technical debt is related to design issues. Other research has focused on comparing these tools on open source projects, but these comparisons have not looked at whether the rules were relevant to design. We conducted an empirical study using a structured categorization approach, and manually classify 466 software quality rules from three industry tools---CAST, SonarQube, and NDepend. We found that most of these rules were easily labeled as either not design (55%) or design (19%). The remainder (26%) resulted in disagreements among the labelers. Our results are a first step in formalizing a definition of a design rule, in order to support automatic detection.Comment: Long version of accepted short paper at International Conference on Software Architecture 2017 (Gothenburg, SE

    Pattern languages in HCI: A critical review

    Get PDF
    This article presents a critical review of patterns and pattern languages in human-computer interaction (HCI). In recent years, patterns and pattern languages have received considerable attention in HCI for their potential as a means for developing and communicating information and knowledge to support good design. This review examines the background to patterns and pattern languages in HCI, and seeks to locate pattern languages in relation to other approaches to interaction design. The review explores four key issues: What is a pattern? What is a pattern language? How are patterns and pattern languages used? and How are values reflected in the pattern-based approach to design? Following on from the review, a future research agenda is proposed for patterns and pattern languages in HCI

    Technical Debt Prioritization: State of the Art. A Systematic Literature Review

    Get PDF
    Background. Software companies need to manage and refactor Technical Debt issues. Therefore, it is necessary to understand if and when refactoring Technical Debt should be prioritized with respect to developing features or fixing bugs. Objective. The goal of this study is to investigate the existing body of knowledge in software engineering to understand what Technical Debt prioritization approaches have been proposed in research and industry. Method. We conducted a Systematic Literature Review among 384 unique papers published until 2018, following a consolidated methodology applied in Software Engineering. We included 38 primary studies. Results. Different approaches have been proposed for Technical Debt prioritization, all having different goals and optimizing on different criteria. The proposed measures capture only a small part of the plethora of factors used to prioritize Technical Debt qualitatively in practice. We report an impact map of such factors. However, there is a lack of empirical and validated set of tools. Conclusion. We observed that technical Debt prioritization research is preliminary and there is no consensus on what are the important factors and how to measure them. Consequently, we cannot consider current research conclusive and in this paper, we outline different directions for necessary future investigations

    Software, architecture, and participatory design

    Get PDF
    Much work in software architecture has been inspired by work in physical architecture, in particular Alexander's work on `design patterns'. By contrast, Alexander's work is little-used in town planning and architecture. In this paper, we examine some of the reasons that this is so, describe some parallels and differences between the fields of physical and software architecture, and identify areas in which future collaboration may be fruitful. The notion of `participatory design' is important in software engineering and in urban regeneration, but the participatory mechanisms in each field are quite different

    An interdisciplinary study of information systems: Christopher Alexander and IS failure.

    Get PDF
    This paper describes work carried out at the University of York; its contents do not represent the views or opinions of BT. It provides an example of how insights into the field of IS can be gained by looking at it from the perspective of other academic disciplines. Based on the idea that physical and virtual office spaces exist to serve parallel organisational requirements, it is argued that designers of information systems (IS) should be able to learn from the experience of architects in order to improve their methods and redefine their objectives. Firstly, the work of Christopher Alexander is reviewed to show how his work on architectural patterns has been of value to the designers object-oriented systems. Secondly, similarities in the literature between notions of failure in architecture and IS design are identified. These are then examined through interviews with practitioners to establish the relevance of the approach. Finally, the area that Alexander described as ‘the quality without a name’ is highlighted as a topic for further research.Information Systems, Patterns, Virtual Office, Christopher Alexander

    Zero and low carbon buildings: A driver for change in working practices and the use of computer modelling and visualization

    Get PDF
    Buildings account for significant carbon dioxide emissions, both in construction and operation. Governments around the world are setting targets and legislating to reduce the carbon emissions related to the built environment. Challenges presented by increasingly rigorous standards for construction projects will mean a paradigm shift in how new buildings are designed and managed. This will lead to the need for computational modelling and visualization of buildings and their energy performance throughout the life-cycle of the building. This paper briefly outline how the UK government is planning to reduce carbon emissions for new buildings. It discusses the challenges faced by the architectural, construction and building management professions in adjusting to the proposed requirements for low or zero carbon buildings. It then outlines how software tools, including the use of visualization tools, could develop to support the designer, contractor and user
    • 

    corecore