ArticlePDF Available

Feature-based rationale management system for supporting software architecture adaptation

Authors:

Abstract and Figures

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.
Content may be subject to copyright.
A preview of the PDF is not available
... Design rationale has been studied in different disciplines including engineering design in AI, human computer interaction and software engineering. Various surveys have been published that compare different systems that capture and use design rationale [25] [17]. These studies have shown that design rationale is considered important by practitioners, but it is rarely captured in practice. ...
... In our earlier work, we have provided a systematic approach for feature-based approach for adapting architectures. and the corresponding tool environment ArchiRationale for supporting software architecture adaptation [25]. The approach takes as input an existing architecture and captures the design rationale for adapting the architecture for a given quality concern. ...
... Each software architecture design is the result of a broad set of design decisions and their justifications, that is, the design rationale. 25 To capture and communicate these architecture decisions, a proper documentation of the software architecture is needed. The architecture documentation usually includes a set of architecture views that are developed on the basis of the corresponding architecture viewpoint. ...
... A feature diagram is a tree that is in particular used to model the commonality and variability of a specific domain or system. The feature diagram includes a root node representing the domain or system that includes features representing the essential characteristics or externally visible properties of the system (Tekinerdogan, Sozer, & Aksit, 2012). Features may have sub-features which can lead to a hierarchical tree. ...
Thesis
Full-text available
SUMMARY IoT (Internet of Things) enables anytime and anyplace connectivity for anything by linking the objects of the real world with the virtual world. In the near future, it is predicted that more than 50 billion of things will be connected to the internet. This will lead to many different IoT-based systems that will have a huge impact on the society. Often, these IoT systems will not be standalone but will be composed with other different systems to create additional value. Hence, with the heterogeneity and the integration of IoT-based systems with other IoT-based or non-IoT-based systems has become an important challenge. In this thesis, the main objective is to analyze, design and integrate IoT-based systems and to answer the following research questions: RQ1. What are the characteristic features of IoT systems? RQ2. How to design the architecture for an IoT-based system? RQ3. What are the identified obstacles of the data distribution (DDS) middleware? RQ4. What are the solution directions for the identified obstacles of DDS? RQ5. What are the approaches for integrating multiple IoT-based systems? RQ6. How to design a DDS-based IoT system? RQ7. How to derive feasible deployment alternatives for DDS-based systems? In order to answer these research questions, three different research methodologies were used: Systematic Literature Review, Design Science Research, and Case Study Research. In chapter 2, we have applied a feature driven domain analysis of IoT systems. We have presented the reference architecture for IoT and discussed the corresponding layers. Among these layers, we have focused on the session layer of the IoT. The protocols in this layer are related with the communication sessions of the IoT systems and hence determine the communication characteristics of the IoT systems. We have presented the common and variant features of the most commonly used session layer protocols, namely AMQP, CoAP, DDS, MQTT, and XMPP which are used for communication between M2M (machine-tomachine), M2S (machine-to-server), and S2S (server-to-server). Further, we have provided an evaluation framework to compare session layer communication protocols. Among these protocols, we focused on the DDS that is mainly used for M2M communication in Industrial Internet of Things (IIoT). In chapter 3, we have described an architecture design method for architecting IoT systems for the Farm Management Information Systems (FMIS) domain. Hereby, we have also developed a family feature diagram to represent the common and variant features of IoT-based FMIS. In order to illustrate our approach, we have performed a systematic case study approach including the IoT-based wheat and tomato production with IoT-based FMIS. The case study research showed that the approach was both effective and practical. In chapter 4, we have presented the method for designing integrated IoT systems. We showed that integration of IoT-based systems can be at different layers including session layer, cloud layer and application layer. Further we have shown that the integration is typically carried out based on well-defined patterns, that is, generic solutions structures for recurring problems. We have systematically compiled and structured the 15 different integration patterns which can be used in different combinations and likewise supporting the composition of different IoT systems. We have illustrated the use of example patterns in a smart city case study and have shown that the systematic structuring of the integration patterns is useful for integrating IoT systems. A systematic research methodology has been applied in chapter 5 to identify the current obstacles to adopt DDS and their solution directions. We have selected 34 primary studies among the 468 identified papers since the introduction of DDS in 2003. We identified 11 basic categories of problems including complexity of DDS configuration, performance prediction, measurement and optimization, implementing DDS, DDS integration over WAN, DDS using wireless networks and mobile computing, interoperability among DDS vendor implementations, data consistency in DDS, reliability in DDS, scalability in DDS, security, and integration with event-based systems. We have adopted feature diagrams to summarize and provide an overview of the identified problem and their solutions defined in the primary studies. DDS based architecture design for IoT systems is presented in chapter 6. DDS is considered to be a potential middleware for IoT because of its focus on event-driven communication in which quality of service is also explicitly defined. We provide a systematic approach to model the architecture for DDS-based IoT in which we adopted architecture viewpoints for modeling DDS, IoT and DDS-based IoT systems. We have integrated and represented the architecture models that can be used to model DDS-based IoT systems for various application domains. When designing DDS-based systems typically multiple different alternatives can be derived. Chapter 7 presents an approach for deriving feasible DDS configuration alternatives. For this we have provided a systematic approach for extending the DDS UML profile and developed an extensible tool framework Deploy-DDS to derive feasible deployment alternatives given the application model, the physical resources, and the execution configurations. The tool framework Deploy-DDS implements a set of predefined algorithms and can be easily extended with new algorithms to support the system architect. We have evaluated the approach and the tool framework for a relevant IoT case study on smart city engineering. Chapter 8 concludes the thesis by summarizing the contributions. - - - - - - - - - - - - Please note that it is a public thesis. You might download it from the below links: https://library.wur.nl/link/link_router/index/2711882 https://edepot.wur.nl/446106
Article
Full-text available
Smart farming adopts advanced technology and the corresponding principles to increase the amount of production and economic returns, often also with the goal to reduce the impact on the environment. One of the key elements of smart farming is the farm management information systems (FMISs) that supports the automation of data acquisition and processing, monitoring, planning, decision making, documenting, and managing the farm operations. An increased number of FMISs now adopt internet of things (IoT) technology to further optimize the targeted business goals. Obviously IoT systems in agriculture typically have different functional and quality requirements such as choice of communication protocols, the data processing capacity, the security level, safety level, and time performance. For developing an IoT-based FMIS, it is important to design the proper architecture that meets the corresponding requirements. To guide the architect in designing the IoT based farm management information system that meets the business objectives a systematic approach is provided. To this end a design-driven research approach is adopted in which feature-driven domain analysis is used to model the various smart farming requirements. Further, based on a FMIS and IoT reference architectures the steps and the modeling approaches for designing IoT-based FMIS architectures are described. The approach is illustrated using two case studies on smart farming in Turkey, one for smart wheat production in Konya, and the other for smart green houses in Antalya.
Article
Full-text available
There is growing recognition of the importance of documenting and managing background knowledge about architecture design decisions. However, there is little guidance on the types of information that form Architecture Design Knowledge (ADK), how to make implicitly described ADK explicit, and how such knowledge can be documented to improve architecture processes. We propose a framework that provides a support mechanism to capture and manage ADK. We analyze ze different approaches to capturing tacit and implicit design knowledge describe a process of extracting ADK from patterns and an effective way of documenting it. We also present a data model to characterize architecture design primitives used or generated during architecture design and evaluation. This data model can be tailored to implement repositories of ADK. We complete this chapter with open issues that architecture research must confront in order to successfully transfer technology for capturing design rationale to the industry.
Article
Documentation of design rationale acts as the collective memory for a system. A special case of design, and therefore of design rationale, is found by considering the set of design decisions that constitute a system's software architecture. This chapter discusses the special role of architecture in design and the kinds of rationale that are important to capture. We discuss capturing and structuring rationale using two different graphs (the causal graph and the structural graph) in order to facilitate its (possibly automated) recovery and use in question-answering later in the life cycle. The information collected in these structures can be used manually (especially in the case of documentation) or as the basis for an automatic search to determine the answers to common questions asked of architectural design rationale such as how a requirement has been satisfied and what are the implications of a proposed modification.
Article
Rationale is the justification behind decisions. It is captured and used in many different forms during software engineering. While it has not achieved widespread use in practice, several approaches have emerged and successfully been used in selected projects. The goal of this chapter is to review the current state-of-the art of rationale management approaches and tool support in software engineering, and map future research directions.
Article
A few representations have been used for capturing design rationale. To understand their scope and adequacy, we need to know how to evaluate them. In this article, we develop a framework for evaluating the expressive adequacy of design rationale representations. This framework is built by progressively differentiating the elements of design rationale that, when made explicit, support an increasing number of the design tasks. Using this framework, we present and assess DRL (Decision Representation Language), a language for representing rationales that we believe is the most expressive of the existing representations. We also use the framework to assess the expressiveness of other design rationale representations and compare them to DRL. We conclude by pointing out the need for articulating other dimensions along which to evaluate design rationale representations.
Book
A software architecture manifests the major early design decisions, which determine the system's development, deployment and evolution. Thus, making better architectural decisions is one of the large challenges in software engineering. Software architecture knowledge management is about capturing practical experience and translating it into generalized architectural knowledge, and using this knowledge in the communication with stakeholders during all phases of the software lifecycle. This book presents a concise description of knowledge management in the software architecture discipline. It explains the importance of sound knowledge management practices for improving software architecture processes and products, and makes clear the role of knowledge management in software architecture and software development processes. It presents many approaches that are in use in software companies today, approaches that have been used in other domains, and approaches under development in academia. After an initial introduction by the editors, the contributions are grouped in three parts on "Architecture Knowledge Management", "Strategies and Approaches for Managing Architectural Knowledge", and "Tools and Techniques for Managing Architectural Knowledge". The presentation aims at information technology and software engineering professionals, in particular software architects and software architecture researchers. For the industrial audience, the book gives a broad and concise understanding of the importance of knowledge management for improving software architecture process and building capabilities in designing and evaluating better architectures for their mission- and business-critical systems. For researchers, the book will help to understand the applications of various knowledge management approaches in an industrial setting and to identify research challenges and opportunities.
Article
The increasing size and complexity of software systems makes it hard to prevent or remove all possible faults. Faults that remain in the system can eventually lead to a system failure. Fault tolerance techniques are introduced for enabling systems to recover and continue operation when they are subject to faults. Many fault tolerance techniques are available but incorporating them in a system is not always trivial. We consider the following problems in designing a fault-tolerant system. First, existing reliability analysis techniques generally do not prioritize potential failures from the end-user perspective and accordingly do not identify sensitivity points of a system. Second, existing architecture styles are not well-suited for specifying, communicating and analyzing design decisions that are particularly related to the fault-tolerant aspects of a system. Third, there are no adequate analysis techniques that evaluate the impact of fault tolerance techniques on the functional decomposition of software architecture. Fourth, realizing a fault-tolerant design usually requires a substantial development and maintenance effort. To tackle the first problem, we propose a scenario-based software architecture reliability analysis method, called SARAH that benefits from mature reliability engineering techniques (i.e. FMEA, FTA) to provide an early reliability analysis of the software architecture design. SARAH evaluates potential failures from the end-user perspective to identify sensitive points of a system without requiring an implementation. As a new architectural style, we introduce Recovery Style for specifying fault-tolerant aspects of software architecture. Recovery Style is used for communicating and analyzing architectural design decisions and for supporting detailed design with respect to recovery. As a solution for the third problem, we propose a systematic method for optimizing the decomposition of software architecture for local recovery, which is an effective fault tolerance technique to attain high system availability. To support the method, we have developed an integrated set of tools that employ optimization techniques, state-based analytical models (i.e. CTMCs) and dynamic analysis on the system. The method enables the following: i ) modeling the design space of the possible decomposition alternatives, ii ) reducing the design space with respect to domain and stakeholder constraints and iii ) making the desired trade-off between availability and performance metrics. To reduce the development and maintenance effort, we propose a framework, FLORA that supports the decomposition and implementation of software architecture for local recovery. The framework provides reusable abstractions for defining recoverable units and for incorporating the necessary coordination and communication protocols for recovery.