35,924 research outputs found
Towards a design-by-contract based approach for realizable connector-centric software architectures
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
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
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
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
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.
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
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
- âŠ