Software Architecture Definitions!


The software engineering community determine several definitions for software architecture. Although each one has specific characteristics, they actually mean the same thing. The Software Engineering Institute (SEI) has collected a large number of definitions of software architecture as can be seen here.

The ISO/IEC/IEEE 42010 was prepared by Joint Technical Committee ISO/IEC in cooperation with the Software and Systems Engineering Standards Committee of the Computer Society of the IEEE in order to addresses the creation, analysis and sustainment of architectures of systems through the use of architecture descriptions. More information here.

The term architecture refers to the rationale and the top-level decomposition of a system (or a set of systems) into its main components and the design process leading to that decomposition. In other words, the architecture of a software system is defined as computational components and the interactions among those components [1].

Another explanation of the concept is provided by the Software Engineering Institute (SEI), in which the architecture of a software program is defined as “a depiction of the system that aids in the understanding of how the system will behave”. Even further, the software architecture of a system can also be stated as “the set of principal design decisions made during its development and any subsequent evolution”, being the stakeholders responsible for determining which aspects are considered principle [2].

According to Bass et al. (2003), the term architecture refers to the structure of a system, consisting of software elements, externally visible properties, and the relationships among elements [3]. On the other hand, ISO/IEC/IEEE 42010 defines architecture as fundamental concepts or properties of a system in its environment embodied in its elements, relationships, and in the principles of its design and evolution.

We consider that Software Architecture is the discipline responsible for defining the system organization and its components, as well as its internal/external interactions. It also considers the priorities defined by the stakeholders.

software architecture mind map

The subject is broad, for this reason the figure above presents a simple mind map of the area. Moreover, George Fairbanks presents an introduction to software architecture in the video below. He also highlight the importance of the trade-off related with software architecture using real examples.

References

[1] M. Shaw, D. Garlan. Software architecture: perspectives on an emerging discipline. Prentice-Hall, Inc., Upper Saddle River, NJ, USA, 1996.

[2] R. N. Taylor, N. Medvidovic, E. M. Dashofy. Software Architecture: Foundations, Theory, and Practice, 1st Edition. Wiley, 2009.

[3] L. Bass, P. Clements, R. Kazman, Software Architecture in Practice. Addison-Wesley Longman Publishing Co., Inc, 2003.

Advertisements

About crescenciolima
Crescencio has graduated in Computer Science in Universidade Estadual do Sudoeste da Bahia (2000-2005) and has a master degree in Computer Science from Universidade Federal de Pernambuco (2009-2011). Currently he is a Computer Science Ph.D. student in Universidade Federal da Bahia (2014) and professor in Instituto Federal da Bahia, Brazil (2012).

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: