Software Architecture: Developing Knowledge, Skills, and Experiences

Software Architecture: Developing Knowledge, Skills, and Experiences

Perla Velasco-Elizondo
DOI: 10.4018/978-1-6684-3702-5.ch002
OnDemand:
(Individual Chapters)
Available
$33.75
List Price: $37.50
10% Discount:-$3.75
TOTAL SAVINGS: $3.75

Abstract

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.
Chapter Preview
Top

Introduction

What is software architecture? To say it simple: software architecture is about making the design decisions that you want to get right early in the development of a software system, because future changes are costly. Today, software architecture development is necessary as never before; no organization begins a complex software system without a suitable software architecture.

Within the context of the software life cycle (Sommerville, 2011), software architecture is an artifact produced during the design phase. A software architect, or the software architecture design team, is responsible for defining software architecture. Being a good software architect is not an easy matter (Rehman et al., 2018), (Shahbazian, Lee & Medvidovic, 2018). The author considers that, it not only requires deep technical competency which comes from practicing software architecture design in industry; but also a very good understanding of the theoretical foundations of software architecture gained from doing software architecture research.

Dr. Velasco-Elizondo finds the topic of software architecture fascinating. This chapter describes some of the significant research, education and, coaching activities she has undertaken during her professional trajectory path to develop knowledge, skills and experiences on this topic. She hopes that this material helps to encourage readers and, particularly, other women to get involved in science, technology and engineering.

This chapter will cover the following sections:

  • Getting it right: software architecture foundations. This section describes how software architecture foundations are conceived and an example of why preserving them in practice is not always straightforward. It will discuss how to tackle this shortcoming with the proposal of exogenous connectors.

  • Practicing it right: software architecture methods. In this section, the notion of software architecture lifecycle is introduced. Relevant methods for software architecture development are then briefly discussed within the context of this lifecycle, as well as some limitations related to the difficulty of adopting these methods in practice. Finally, an explanation of why and how technology has to be considered as a first-class design concept in order to tackle one of these limitations will be given.

  • Automating technology selection. This section presents a software tool, recently developed, which uses information retrieval, natural language processing and sematic web techniques to address the problem of automating NoSQL database technologies search.

  • Software architecture education. This section describes two educational projects Dr. Velasco-Elizondo has led to promote knowledge and practical experiences on software architecture design and development.

  • Hands on. Dr. Velasco-Elizondo has had the opportunity to work, as a coach, with practicing software architects and developers helping them to deploy software architecture practices and methods. In this section some of these works will be described.

Top

Getting It Right: Software Architecture Foundations

Software architecture has always existed as part of the discipline of Software Engineering. This section describes how software architecture foundations are conceived and gives an example of why preserving them in practice is not always straightforward. The proposed use of exogenous connectors to tackle this shortcoming is also included.

Complete Chapter List

Search this Book:
Reset