scispace - formally typeset
Open AccessBook

Software Architecture: Foundations, Theory, and Practice

Reads0
Chats0
TLDR
This tutorial affords the participant an extensive treatment of the field of software architecture, its foundation, principles, and elements, including those mentioned above, and looks at emerging and likely future trends in this field.
Abstract
Software architecture has become a centerpiece subject for software engineers, both researchers and practitioners alike. At the heart of every software system is its software architecture, i.e., "the set of principal design decisions about the system". Architecture permeates all major facets of a software system, for principal design decisions may potentially be made at any time during a system's lifetime, and potentially by any stakeholder. Such decisions encompass structural concerns, such as the system's high-level building blocks---components, connectors, and configurations; the system's deployment; the system's non-functional properties; and the system's evolution patterns, including runtime adaptation. Software architectures found particularly useful for families of systems---product lines---are often codified into architectural patterns, architectural styles, and reusable, parameterized reference architectures. This tutorial affords the participant an extensive treatment of the field of software architecture, its foundation, principles, and elements, including those mentioned above. Additionally, the tutorial introduces the participants to the state-of-the-art as well as the state-of-the-practice in software architecture, and looks at emerging and likely future trends in this field. The discussion is illustrated with numerous real-world examples. One example given prominent treatment is the architecture of the World Wide Web and its underlying architectural style, REpresentational State Transfer (REST).

read more

Citations
More filters
Journal ArticleDOI

A distributed, architecture-centric approach to computing accurate recommendations from very large and sparse datasets

TL;DR: This work introduces a novel architecture model that supports scalable, distributed suggestions from multiple independent nodes, and proposes a novel algorithm that generates a more optimal recommender input, which is the reason for a considerable accuracy improvement.
Proceedings ArticleDOI

The Blockchain as a Software Connector

TL;DR: This paper provides rationales to support the architectural decision on whether to employ a decentralized blockchain as opposed to other software solutions, like traditional shared data storage and explores specific implications of using the blockchain as a software connector including design trade-offs regarding quality attributes.
Proceedings ArticleDOI

Software traceability with topic modeling

TL;DR: An automated technique that combines traceability with a machine learning technique known as topic modeling is proposed that automatically records traceability links during the software development process and learns a probabilistic topic model over artifacts.
Journal ArticleDOI

Enabling high-level application development for the Internet of Things

TL;DR: In this article, a development methodology that separates IoT application development into different concerns and provides a conceptual framework to develop an application, and a development framework that implements the development methodology to support actions of stakeholders.
Proceedings ArticleDOI

Identifying Architectural Bad Smells

TL;DR: This paper defines architectural smells and differentiate them from related concepts, such as architectural antipatterns and code smells, and describes four representative architectural smells the authors encountered in the context of reverse-engineering eighteen grid technologies and refactoring one large industrial system.
Related Papers (5)