Software Architecture

Software Architecture

Software Architecture

Software Architecture

The software architecture of a system consists of defining the software components, their external properties, and their relationships with other software. The term also refers to documentation of the system’s software architecture.

The documentation of the software architecture facilitates: communication between stakeholders, records the initial decisions about the high-level project, and allows the reuse of the design of the components and standards between projects.

The discipline of software architecture is centered on the idea of ​​reducing complexity through abstraction and separation of interests. The glossary of the official website SOFTWARE ENGINEERING INSTITUTE (Institute of Software Engineering) describes that software architecture is the structure or structures of a system, with all elements of software seeing and having their properties seen by all other elements and relationships.

The term software architecture is used to refer to process and product.

  • Product - representation of the software structure;
  • Software engineering area that tries to produce software structures, aiming to reduce complexity.

The Software Architecture Process is generally composed of: Elaboration of the business model - involves analyzing cost, development time, market restrictions, interfaces with other systems, etc. Understanding the requirements: requirements survey and domain model; Creation or selection of an architecture: identification of the components and their interactions, the construction dependencies and technologies that support the implementation. Architecture representation and dissemination: to allow developers and testers to understand the architecture Implementation of the architecture, following its protocols and structures. Analysis and evaluation: verify the adequacy of the architecture, recording impacts, risks and difficulties, which will serve for the evolution of the architecture.

The Stakeholders involved

Participants (interested)

  • Requirements analyst - identifies the requirements;
  • Software architect - creates the architecture - can be a team with a leading architect;
  • Designer or Developer - implements the components;
  • Others: client / user, tester, project manager, programmer, secretaries, etc.

The Software Architect

The Role of the Software Architect represents the execution of the following activities: Be able to recognize common structures in already developed systems; Use knowledge of existing architectures to make design decisions on new systems; Be able to perform a formal description of the architecture of a system in order to analyze the properties of the system; Introduce the architecture to other people.


Deep understanding of the relevant domain and technologies; Master modeling techniques and development methodologies; Understand the business strategies of the institution where it operates; Know competitor products, processes and strategies.


• Specification of the software architecture and the bases for the system according to the client’s requirements; • Modeling; • Analysis of trade-offs and feasibility; • Prototyping, simulation and carrying out experiments; • Analysis of technological trends. Importance of Architecture

  • Architecture - abstraction that serves as a basis for creating mutual understanding, for communication between participants.
  • Its representation serves as a guide for the design of its implementation, testing and implantation of the system.


  • University of Waterloo (2006). A Very Brief History of Computer Science. Visitado em 2006-09-23.
  • IEEE Transactions on Software Engineering (2006). Introduction to the Special Issue on Software Architecture. Visitado em 2006-09-23.
  • SEI (2010). Glossary?. Visitado em 2010-01-31.
  • (2006). Intro to Software Quality Attributes. Visitado em 2006-09-23.
  • SEI (2006). Origins of Software Architecture Study. Visitado em 2006-09-25.
  • Garlan & Shaw (2006). An Introduction to Software Architecture. Visitado em 2006-09-25.
  • Clements, Paul. Documenting Software Architectures: Views and Beyond. 2 ed. Boston: Addison-Wesley, 2003. pp. 13-15 p. ISBN 0201703726

Please, follow our social networks:

Thank You and until the next one! 😉👍

Published on Jul 03, 2020 by Vinicius Moll

Share on / compartilhe: