scispace - formally typeset
Open AccessProceedings ArticleDOI

Software Architecture as a Set of Architectural Design Decisions

TLDR
A new perspective on software architecture is presented, which views software architecture as a composition of a set of explicit design decisions, which makes architectural design decisions an explicit part of a software architecture.
Abstract
Software architectures have high costs for change, are complex, and erode during evolution We believe these problems are partially due to knowledge vaporization Currently, almost all the knowledge and information about the design decisions the architecture is based on are implicitly embedded in the architecture, but lack a first-class representation Consequently, knowledge about these design decisions disappears into the architecture, which leads to the aforementioned problems In this paper, a new perspective on software architecture is presented, which views software architecture as a composition of a set of explicit design decisions This perspective makes architectural design decisions an explicit part of a software architecture Consequently, knowledge vaporization is reduced, thereby alleviating some of the fundamental problems of software architecture

read more

Content maybe subject to copyright    Report

Citations
More filters
Journal Article

An overview of AspectJ

TL;DR: AspectJ as mentioned in this paper is a simple and practical aspect-oriented extension to Java with just a few new constructs, AspectJ provides support for modular implementation of a range of crosscutting concerns.
Journal ArticleDOI

Continuous software engineering: A roadmap and agenda

TL;DR: It is argued a similar continuity is required between business strategy and development, BizDev being the term the authors coin for this, and a number of continuous activities are identified which together are labelled as ‘Continuous * ’ (i.e. Continuous Star) which are presented as part of an overall roadmap for Continuous Software engineering.
Journal ArticleDOI

A comparative study of architecture knowledge management tools

TL;DR: Five architectural knowledge management tools and the support they provide in the architecture life-cycle are compared and their advantages, deficiencies, and conformance to the current architectural description standard are compared.
Journal ArticleDOI

Controlling software architecture erosion: A survey

TL;DR: This paper presents a survey of techniques and technologies proposed over the years either to prevent architecture erosion or to detect and restore architectures that have been eroded, and argues that no single strategy can address the problem of erosion.
Journal ArticleDOI

Using Patterns to Capture Architectural Decisions

TL;DR: Information is provided about a decision's rationale and consequences, architecture patterns can help architects better understand and more easily record their decisions, and how to document decisions.
References
More filters
Book

Design Patterns: Elements of Reusable Object-Oriented Software

TL;DR: The book is an introduction to the idea of design patterns in software engineering, and a catalog of twenty-three common patterns, which most experienced OOP designers will find out they've known about patterns all along.
Journal ArticleDOI

Aspect-oriented programming

TL;DR: This work proposes to use aspect-orientation to automate the calculation of statistics for database optimization and shows how nicely the update functionality can be modularized in an aspect and how easy it is to specify the exact places and the time when statistics updates should be performed to speed up complex queries.
Book ChapterDOI

Aspect-Oriented Programming

TL;DR: An analysis of why certain design decisions have been so difficult to clearly capture in actual code is presented, and the basis for a new programming technique, called aspect-oriented programming, that makes it possible to clearly express programs involving such aspects.
Proceedings ArticleDOI

Aspect-oriented programming

TL;DR: This tutorial shows how to use AOP to implement crosscutting conerns in a concise modular way and includes a description of their underlying model, in terms of which a wide range of AOP languages can be understood.
Journal Article

An overview of AspectJ

TL;DR: AspectJ as mentioned in this paper is a simple and practical aspect-oriented extension to Java with just a few new constructs, AspectJ provides support for modular implementation of a range of crosscutting concerns.