scholarly journals FEATURE-BASED RATIONALE MANAGEMENT SYSTEM FOR SUPPORTING SOFTWARE ARCHITECTURE ADAPTATION

Author(s):  
BEDIR TEKINERDOGAN ◽  
HASAN SOZER ◽  
MEHMET AKSIT

Each software architecture design is the result of a broad set of design decisions and their justifications, that is, the design rationale. Capturing the design rationale is important for a variety of reasons such as enhancing communication, reuse and maintenance. Unfortunately, it appears that there is still a lack of appropriate methods and tools for effectively capturing and managing the architecture design rationale. In this paper we present a feature-based rationale management approach and the corresponding tool environment ArchiRationale for supporting software architecture adaptation. The approach takes as input an existing architecture and captures the design rationale for adapting the architecture for a given quality concern. For this we define a feature model that includes the possible set of architectural tactics to realize the quality concern. The presented approach captures the rationale for deciding on feature selections and for selecting the corresponding architecture design alternatives. ArchiRationale customizes and integrates the Eclipse plugin tools XFeature, ArchStudio and XQuery to provide tool support for capturing, storing and accessing the design rationale. We illustrate the approach for adapting a software architecture for fault tolerance.

2009 ◽  
Vol 82 (8) ◽  
pp. 1195-1197 ◽  
Author(s):  
Muhammad Ali Babar ◽  
Patricia Lago

2022 ◽  
pp. 17-39
Author(s):  
Perla Velasco-Elizondo

What is software architecture? A clear and simple definition is that software architecture is about making important design decisions that you want to get right early in the development of a software system because, in the future, they are costly to change. Being a good software architect is not easy. It requires not only a deep technical competency from practicing software architecture design in industry, but also an excellent understanding of the theoretical foundations of software architecture are gained from doing software architecture research. This chapter describes some significant research, development, and education activities that the author has performed during her professional trajectory path to develop knowledge, skills, and experiences around this topic.


Author(s):  
Perla Velasco-Elizondo

What is software architecture? A clear and simple definition is that software architecture is about making important design decisions that you want to get right early in the development of a software system because, in the future, they are costly to change. Being a good software architect is not easy. It requires not only a deep technical competency from practicing software architecture design in industry, but also an excellent understanding of the theoretical foundations of software architecture are gained from doing software architecture research. This chapter describes some significant research, development, and education activities that the author has performed during her professional trajectory path to develop knowledge, skills, and experiences around this topic.


Author(s):  
JOHN GRUNDY ◽  
JOHN HOSKING

A good software architecture design is crucial in successfully realising an object-oriented analysis (OOA) specification with an object-oriented design (OOD) model that meets the specification's functional and non-functional requirements. Most CASE tools and software architecture design notations do not adequately support software architecture modelling and analysis, integration with OOA and OOD methods and tools, and high-level, dynamic architectural visualisations of running systems. We describe SoftArch, an environment that provides flexible software architecture modelling using a concept of successive refinement and an extensible architecture meta-model. SoftArch provides extensible analysis tools enabling developers to analyse their architecture model properties. Run-time visualisation of systems uses dynamic annotation and animation of high-level architectural modelling views. SoftArch is integrated with a component-based CASE tool and run-time monitoring tool, and has facilities for 3rd party tool integration through a common exchange format. This paper discusses the motivation for SoftArch, its modelling, analysis and dynamic visualisation capabilities, and its integration with various analysis, design and implementation tools.


2007 ◽  
Vol 16 (03n04) ◽  
pp. 413-437 ◽  
Author(s):  
RIK FARENHORST ◽  
PATRICIA LAGO ◽  
HANS VAN VLIET

Knowledge management plays an important role in the software architecting process. Recently, this role has become more apparent by a paradigm shift that views a software architecture as the set of architectural design decisions it embodies. This shift has sparked the discussion in both research and practice on how to best facilitate sharing of so-called architectural knowledge, and how tools can best be employed. In order to design successful tool support for architectural knowledge sharing it is important to take into account what software architecting really entails. In this paper, we define the main characteristics of architecting, based on observations in a large software development organization, and state-of-the-art literature in software architecture. Based on the defined characteristics, we determine how best practices known from knowledge management could be used to improve architectural knowledge sharing. This results in the definition of a set of desired properties of architectural knowledge sharing tools. Finally, we highlight the design and implementation of EAGLE, an architectural knowledge sharing portal that implements those properties.


Sign in / Sign up

Export Citation Format

Share Document