Skip to main content
Top

2016 | Book

Software Architecture in Action

Designing and Executing Architectural Models with SysADL Grounded on the OMG SysML Standard

insite
SEARCH

About this book

This book presents a systematic model-based approach for software architecture according to three complementary viewpoints: structure, behavior, and execution. It covers a unified modeling approach and consolidates theory and practice with well-established learning outcomes.

The authors cover the fundamentals of software architecture description and presents SysADL, a specialization of the OMG Standard Systems Modeling Language (SysML) with the aim of bringing together the expressive power of an Architecture Description Language (ADL) with a standard notation, widely accepted by industry and compliant with the ISO/IEC/IEEE 42010 Standard on Architecture Description in Systems and Software Engineering.

The book is clearly structured in four parts:

The first part focuses on the fundamentals of software architecture, exploring the concepts and constructs for modeling software architecture from differing viewpoints. Each chapter covers a specific viewpoint illustrated with examples of a real system. The second part focuses on how to design software architecture for achieving quality attributes. Each chapter covers a specific quality attribute and presents well-defined approaches to achieve it. Each architectural case study is illustrated with different examples drawn from a real-life system.The third part shows readers how to apply software architecture style to design architectures that meet the quality attributes. Each chapter covers a specific architectural style and gives insights on how to describe substyles. Each style is illustrated by variants and examples of a real-life system.The fourth part presents how to textually represent software architecture models to complement visual notation, including different examples.

Software Architecture in Action is designed for teaching the required modeling techniques to both undergraduate and graduate students, giving them the practical techniques and tools needed to design the architecture of software-intensive systems. Similarly, this book will appeal to software development architects, designers, programmers and project managers too.

Table of Contents

Frontmatter

Fundamentals

Frontmatter
Chapter 1. Introduction to Software Architecture
Abstract
In this chapter, we introduce the concept of software architecture and the SysADL architectural framework for describing, analyzing, and executing software architectures. We present the motivation for defining SysADL and describe the organization of the book for putting software architecture in action with SysADL. We introduce a running example to illustrate software architectures in action along the chapters of this book.
Flavio Oquendo, Jair Leite, Thaís Batista
Chapter 2. Viewpoints for Describing Software Architectures
Abstract
In this chapter we present the architectural framework provided by SysADL. We define software architecture and the fundamental notion of software architecture description according to the ISO/IEC Standard 42010 “Systems and Software Engineering—Architecture description.” We present, in detail, the concepts underlying the architecture description in terms of viewpoints and views.
Flavio Oquendo, Jair Leite, Thaís Batista
Chapter 3. Eliciting Requirements of Software Architectures
Abstract
In this chapter, we present the SysADL constructs for expressing requirements and decisions related to software architectures. We explain the concepts of requirements (the needs from stakeholders) on one hand, and decisions (the choices of the architect on how requirements will be satisfied by the architecture) on the other. We present, in detail, each of the requirement constructs and illustrate their use by applying them to our running example.
Flavio Oquendo, Jair Leite, Thaís Batista
Chapter 4. Specifying the Structure of Software Architectures
Abstract
In this chapter, we present the structural viewpoint provided by SysADL. We explain the SysADL constructs that enable the description of structural views. We also present, in details, the concepts underlying each of these constructs and how each one is applied to specify the different views comprising the architectural structure. Finally, we illustrate each definition and how to use it with our running example.
Flavio Oquendo, Jair Leite, Thaís Batista
Chapter 5. Specifying Behavior of Software Architectures
Abstract
In this chapter, we present the behavioral viewpoint provided by SysADL. We explain the SysADL constructs that enable the description of behavioral views. We present in details the concepts underlying each of these constructs and how each one is applied to specify the different views comprising the architectural behavior. We illustrate each definition and use of behavioral elements with our running example.
Flavio Oquendo, Jair Leite, Thaís Batista
Chapter 6. Specifying Executable Software Architectures
Abstract
In this chapter we present the executable viewpoint provided by SysADL. We explain the SysADL constructs that enable the description of the executable view. We describe, in details, the concepts underlying each of these constructs and how each one is applied. We illustrate each definition and how to use it with our running example.
Flavio Oquendo, Jair Leite, Thaís Batista
Chapter 7. Executing Software Architectures
Abstract
In this chapter, we present the execution semantics of architecture descriptions expressed with SysADL. We explain the SysADL constructs that enable execution as described from the different viewpoints and how the user observes this execution for validating the described architectures. In particular, we explain the operational semantics of each behavioral construct, specified in terms of transition rules where the premise declares the state before the execution and the conclusion, the state after the execution.
Flavio Oquendo, Jair Leite, Thaís Batista

Quality-Based Architectures

Frontmatter
Chapter 8. Introduction to Quality-Based Architectures
Abstract
Part I introduced the modelling of requirements and presented how to describe a software architecture to meet functional requirements. In Part II, we will present how to design a software architecture with SysADL to satisfy nonfunctional requirements known as quality attributes.
Flavio Oquendo, Jair Leite, Thaís Batista
Chapter 9. Designing Modifiability in Software Architectures
Abstract
In this chapter, we present modifiability as an architectural quality and how to express modifiability in software architecture. We explain how to analyse architecture to evaluate its modifiability and how to apply tactics to improve modifiability.
Flavio Oquendo, Jair Leite, Thaís Batista
Chapter 10. Designing Scalability in Software Architectures
Abstract
In this chapter we present scalability as an architectural quality and how to express scalability in software architecture. We explain how to analyze an architecture to evaluate its scalability and how to apply tactics to improve scalability.
Flavio Oquendo, Jair Leite, Thaís Batista
Chapter 11. Designing Fault Tolerance in Software Architectures
Abstract
In this chapter, we present fault tolerance as an architectural quality and how to express fault tolerance in software architecture. We explain how to analyze an architecture to evaluate its fault tolerance and how to apply tactics to improve fault tolerance.
Flavio Oquendo, Jair Leite, Thaís Batista

Style-Based Architectures

Frontmatter
Chapter 12. Introduction to Style-Based Architectures
Abstract
Part I presented how to describe a software architecture with SysADL to meet functional requirements. Part II presented how to design a software architecture with SysADL to satisfy nonfunctional requirements known as quality attributes. In this, we introduce the concept of architectural style and how a software architecture can be designed in conformance to a style. In particular, we present how to design a software architecture style with SysADL that can be used in an architecture design process for supporting architecture description.
Flavio Oquendo, Jair Leite, Thaís Batista
Chapter 13. Pipe-Filter Architectural Style
Abstract
In this chapter, we present and explain the Pipe-Filter architectural style and how to specify it in SysADL. We specify the style using the structural and behavioral viewpoints. We also present the pipeline architectural style as a substyle of Pipe-Filter. Finally, we illustrate the Pipe-Filter style and how to use it with our running example.
Flavio Oquendo, Jair Leite, Thaís Batista
Chapter 14. Client Server Architectural Style
Abstract
In this chapter, we present and explain the client–server architectural style and how to specify it in SysADL. We specify the style using the structural and behavioral viewpoints. Finally, we illustrate the client–server style and how to use it with our running example.
Flavio Oquendo, Jair Leite, Thaís Batista
Chapter 15. Feedback Control Loop Architectural Style
Abstract
In this chapter, we present and explain the Feedback Control Loop architectural style and how to specify it in SysADL. We specify the style using the structural and behavioral viewpoints. Finally, we illustrate the Feedback Control Loop style and how to use it with our running example.
Flavio Oquendo, Jair Leite, Thaís Batista
Chapter 16. Blackboard Architectural Style
Abstract
In this chapter, we present and explain the Blackboard architectural style and how to specify it in SysADL. We specify the style using the structural and behavioral views. Finally, we illustrate the Blackboard style and how to use it with our running example.
Flavio Oquendo, Jair Leite, Thaís Batista

Textual Description of Architectures

Frontmatter
Chapter 17. Textually Representing Software Architectures
Abstract
In this chapter we present the textual notation of SysADL. We describe the SysADL constructs (structural, behavioral, and executable) in the textual notation. We describe, in details, the concepts underlying each of these constructs and how each one is applied to textually describe the architecture.
Flavio Oquendo, Jair Leite, Thaís Batista
Backmatter
Metadata
Title
Software Architecture in Action
Authors
Flavio Oquendo
Jair Leite
Thaís Batista
Copyright Year
2016
Electronic ISBN
978-3-319-44339-3
Print ISBN
978-3-319-44337-9
DOI
https://doi.org/10.1007/978-3-319-44339-3

Premium Partner