Results 1 -
7 of
7
Design Erosion: Problems Causes
, 2002
"... Design erosion is a common problem in software engineering. We have found that invariably, no matter how ambitious the intentions of the designers were, software designs tend to erode over time to the point that redesigning from scratch becomes a viable alternative compared to prolonging the life ..."
Abstract
-
Cited by 37 (9 self)
- Add to MetaCart
Design erosion is a common problem in software engineering. We have found that invariably, no matter how ambitious the intentions of the designers were, software designs tend to erode over time to the point that redesigning from scratch becomes a viable alternative compared to prolonging the life of the existing design. In this paper we illustrate how design erosion works by presenting the evolution of the design of a small software system. In our analysis of this example we show how design decisions accumalate and become invalid because of new requirements. Also it is argued that even an optimal strategy for designing the system (i.e. no compromises with respect to e.g. cost are made) does not lead to an optimal design because of unforseen requirement changes that invalidate design decisions that once were optimal.
Evaluation of Tool Support for Architectural Evolution
, 2004
"... Evolution of software architectures is, different from architectural design, an area that only few tools have covered. We claim this is due to the lack of support for an important concept of architectural evolution: the notion of architectural design decisions. The absence of ..."
Abstract
-
Cited by 8 (2 self)
- Add to MetaCart
Evolution of software architectures is, different from architectural design, an area that only few tools have covered. We claim this is due to the lack of support for an important concept of architectural evolution: the notion of architectural design decisions. The absence of
A Case Study in Incremental Architecture-Based Reengineering of a Legacy Application
- 5th Working IEEE/IFIP Conference on Software Architecture (WICSA-5
, 2005
"... Without rigorous software development and maintenance, software tends to lose its original architectural structure and become more difficult to understand and modify. ArchJava, a recently proposed implementation language which embeds a component-and-connector architectural specification within Java ..."
Abstract
-
Cited by 4 (1 self)
- Add to MetaCart
Without rigorous software development and maintenance, software tends to lose its original architectural structure and become more difficult to understand and modify. ArchJava, a recently proposed implementation language which embeds a component-and-connector architectural specification within Java implementation code, offers the promise of preventing the loss of architectural structure. We describe a case study in which we incrementally re-engineer an existing implementation with an eroded architecture to obtain an ArchJava implementation that more closely matches an idealized architecture. Building on results from similar case studies, we chose an application consisting of over 16,000 source lines of Java code and 80 classes that exhibited many characteristics of real-world legacy applications. We describe our process, some lessons learned, as well as some perceived limitations with the tools, techniques and languages we used. 1.
Software Deterioration And Maintainability - A Model Proposal
- In Proceedings of Second Conference on Software Engineering Research and Practise in Sweden (SERPS), Blekinge Institute of Technology Research Report 2002:10
, 2002
"... In this paper, we connect the notion of software maintainability with the problem of software deterioration. We propose a model that incorporates both of these aspects, which gives us a vocabulary and a more formal tool than before, and allows us to discuss how to maintain software so as not to make ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
In this paper, we connect the notion of software maintainability with the problem of software deterioration. We propose a model that incorporates both of these aspects, which gives us a vocabulary and a more formal tool than before, and allows us to discuss how to maintain software so as not to make it deteriorate.
A Declarative Meta-Programming Approach to Framework Documentation
- In Proceedings of the Workshop on Declarative Meta Programming to Support Software Development (ASE’02
, 2002
"... The documentation of software artifacts in general, and object-oriented frameworks in particular, has always been problematic. In this paper, we advocate the use of a declarative meta-programming environment to document software artifacts. In particular, we show how a significant and important pa ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
The documentation of software artifacts in general, and object-oriented frameworks in particular, has always been problematic. In this paper, we advocate the use of a declarative meta-programming environment to document software artifacts. In particular, we show how a significant and important part of the design of a framework can be adequately and concisely documented in such an environment, and how this allows us to use this documentation in an active way.
Architectural Design Support for Composition & Superimposition
"... The ever growing size and complexity of software systems is making it increasingly harder to built systems that both meet current and future requirements. During architecture design, a lot of important design decisions are taken. In this paper, we present an architecture design notation based on ..."
Abstract
- Add to MetaCart
The ever growing size and complexity of software systems is making it increasingly harder to built systems that both meet current and future requirements. During architecture design, a lot of important design decisions are taken. In this paper, we present an architecture design notation based on UML's activity diagrams. The notation allows for the specification of architecture fragments and supports composition of these fragments as well as superimposition of the fragments on each other. This notation allows us to make various compositions of architecture fragments (reflecting design decision alternatives) to adapt the architecture to new requirements. We have found that our notation is very suitable for modelling separate concerns at the architectural level and for creating.
Quality Improvement in Software Platform Development
"... fulfilment of the requirements for the degree of Licentiate in Engineering. Contact Information: ..."
Abstract
- Add to MetaCart
fulfilment of the requirements for the degree of Licentiate in Engineering. Contact Information:

