Eoin WoodsImperial College London | Imperial · Department of Computing
Eoin Woods
BSc MSc PhD CEng CITP FBCS MIET
About
40
Publications
34,264
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
907
Citations
Introduction
Academic visitor at Imperial College. Former visiting postdoc researcher at UEL. Full time Chief Engineer for Endava. See http://uk.linkedin.com/in/eoinwoods
Additional affiliations
Education
September 2012 - December 2018
September 1992 - June 1995
September 1986 - June 1990
Publications
Publications (40)
The software architect’s role has changed in response to the changing demands of software engineering practice. Now, the Pragmatic Architect department is changing too. This installment looks back over the department’s history to see how it has changed and considers the topics it should cover in the future.
While technical debt has emerged as a formal concept relatively recently [2] we have had technical debt from the earliest days of software development, it has simply evolved in nature. So what can we learn from past types of technical debt to allow us to prepare for its future forms?
When we look back over recent software history, we can see five i...
Software sustainability has been described as the capacity of software systems to endure over time. While a consensus on what software sustainability means is still emerging, an increasing focus on green and technical sustainability has caused researchers and software companies to propose that the use of flexible and open software architectures can...
As part of our software architecture research and practice we have found that a common difficulty for new architects is knowing where to focus their effort to maximise their effectiveness. This led us to wonder whether successful experienced architects have reusable heuristics or guidelines that they follow to help them prioritise their work. To in...
Optimizing the energy consumption of today's Internet-scale systems will require a radical approach that considers the whole system. To address system-level energy efficiency, software architects can follow three simple design principles. A case study illustrates the possible savings.
Should the people performing a system’s architecture work also develop some of the system’s production code? Involving architects in carefully selected implementation tasks, such as testing, refactoring, or architectural spikes, can yield positive returns on investment for both the architects and their teams.
As software systems have evolved, so has software architecture, with practices growing to meet each era's new challenges. The next phase of evolution--intelligent connected systems--promises to be an exciting time for software architects.
Architecture principles epitomize architecture's function: to clearly define the necessary constraints on a system's design without prescriptively defining all the design details. A good set of principles can provide context and justification for design decisions and can foster team collaboration and communication.
Most software architecture books focus on building new systems. However, successful systems spend much more time running in their production environment than being initially developed. That's why the DevOps movement's recent emergence is so heartening. It emphasizes development and operations staff working together as early as possible-sharing tool...
Given environmentalism's rising tide and increasing energy prices and IT workloads, architects must determine whether they can continue designing systems without considering energy and power efficiency.
Difficulties frequently arise when agile development teams and software architects work together. By adopting practices aligned with the 'agile manifesto,' software architects can work constructively with agile teams and significantly contribute to a project's success.
The metaphor 'architecting in the gaps' can help software development teams clearly understand the software architect's role and how architecture contributes to a system's overall efficiency.
This column discusses architectural descriptions and the process of representing and communicating designs and how UML is useful when creating architectural descriptions.
Many types of architects work in the software industry, but when we consider the breadth of their work and their primary expertise, we find that they can be organized into three major groups: enterprise architects, application architects, and infrastructure architects. Knowing which group an architect falls into helps in understanding their experti...
A previous study, run by some of the authors in collaboration with practitioners, has emphasized the need to improve architectural languages in order to (i) make them simple and intuitive enough to communicate effectively with project stakeholders, and (ii) enable formality and rigour to allow analysis and other automated tasks. Although a multitud...
An organisation that had developed a large information system wanted to embark on a programme that would involve large-scale evolution of it. As a precursor to this, it was decided to create a comprehensive architectural description to capture and understand the system's design. This undertaking faced a number of challenges, including a low general...
An organisation that had developed a large Information System wanted to embark on a programme of significant evolution for the system. As a precursor to this, it was decided to create a comprehensive architectural description. This undertaking faced a number of challenges, including a low general awareness of software modelling and software archite...
The architect takes a high-profile role in many IT departments today. In fact, it can be quite difficult in some organizations to find a senior member of IT technical staff whose job title does not include the word "architect." However there is little consensus in the academic community or amongst practitioners as to the responsibilities of the man...
Software Systems Architecture, Second Edition is a highly regarded, practitioner-oriented guide to designing and implementing effective architectures for information systems. It is both a readily accessible introduction to software architecture and an invaluable handbook of well-established best practices.
[Note: we do not have the full text to sh...
Historically a system’s requirements and its architectural design have been viewed as having a simple relationship where the requirements drove the architecture and the architecture was designed in order to meet the requirements. In contrast, our experience is that a much more dynamic relationship can be achieved between these key activities within...
This paper summarizes the workshop on Architecture-Based Testing and System Validation which was organized in conjunction with the 9th Working IEEE/IFIP Conference on Software Architecture. The main goal of the workshop was to bring together researchers and practitioners both from the architecture design and software testing community to enable arc...
Scenario based architectural assessment is a well-established approach for assessing architectural designs. However scenario-based methods are not always usable in an industrial context, where in our experience, they can be perceived as complicated and expensive to use. In this paper we explore why this may be the case and define a simpler techniqu...
The authors of this issue's "Point/Counterpoint" department debate the merits of UML as a useful tool. Eoin Woods and David Emery, in "Is UML Sufficient for Describing Architectures?", posit that although widely used, UML has some serious limitations as an architecture description language, while Bran Selic, in "UML 2: Designed for Architects," sta...
The authors of this issue's" Point/Counterpoint" department debate the merits of UML as a useful tool. Eoin Woods and David Emery, in "Is UML Sufficient for Describing Architectures?", posit that although widely used, UML has some serious limitations as an architecture description language, while Bran Selic, in "UML 2: Designed for Architects," sta...
This paper proposes a research challenge to narrow the gap between the architecture and implementation of a software system. We discuss the situation today, where little of a system's architecture and design is directly represented in the source code of its implementation and explore why this is a problem and the benefits that might flow from narro...
A common requirement when describing the architecture of a software system is the ability to define the environment of a system, in terms of its external dependencies. In a view-based architectural description approach this need is met by adding a Context view to the architectural description and ideally defining a corresponding Context viewpoint t...
This short position paper briefly reviews the state of practice in architectural description for information systems, and asks why purpose designed architecture description languages are not more widely used in this domain. It then attempts to answer the question, from the author's perspective, by reviewing the needs that an information systems arc...
A crucial aspect of the software architects role is to ensure that a system based on their architecture will exhibit the quality properties (performance, security, availability and so on) that are important to their stakeholders. A proven approach to help guide an architect through the process of designing an architecture is to use architectural v...
This short document reports the content and results of the "Architecture Description Languages in Practice" working group held on 9th and 10th November 2005 at the WICSA 5 conference, in Pittsburgh, Pennsylvania, USA.
There has recently been an increase in interest, among information systems architecture practitioners, in using viewpoints for architectural defini- tion and description. This has been caused by a number of factors including the publication of IEEE standard 1471 and the increasing adoption of RUP (and its "4+1" viewpoint set). This short experience...
This article describes the rigorous application of formal methods of software development to a system software development project within a conventional industrial software development environment. This project applied formal methods to a small part (one subsystem) of the development of a release of a system software product. The formal methods VDM...
The use of formality in software development enables formal manipulation at the symbolic level and hence can yield new perspectives on the design which can be submitted to inspection and interactive or automatic analysis. We describe the experience of an industrial pilot project which undertook a formal development using VDM and B and employed a nu...
This paper reports on the experience gained in the MaFMeth project, which undertook a formal development with tool support for several parts of the life cycle from requirements capture through to C code generation. We explore the hypotheses that formal methods enable the early detection of faults in design by examining the development process in th...
FME'96, Third International Symposium of Formal Methods Europe 1051