Tuesday 21 April 2015

Define Software Architecture

In the following lines I will provide some definitions , however I need to express that there is no globally accepted definition in the world of architecture. Different organisations and individuals tend to have their own definition. In any case this should give you an idea of the concepts.
  
To provide a definition of Software Architecture , I need to give you and understanding of a few terms:
  •  Enterprise Architecture : describes the business structures and the processes that connect them. This maybe supported by computer systems. It is about flow of information and activities that concerns different groups to achieve a business goal.
  • Systems Architecture : describes elements and interactions of a system including hardware and software pieces. A system's architect deals with elements of the system and their contribution towards the systems's  goal.
Enterprise and Systems Architecture provide a context (requirements and constraints) for software architecture.

What is Software Architecture?

"The software architecture of a program or computing system is the structure or structures of the system, which comprise the software elements, the externally visible properties of those elements, and the relationships among them." Bass, L.;Clements, P. & Kazman,  R. Software Architecture in Practice
There are a few facts embedded in this definition:

  1. Software Architecture is an abstraction of a system. Defines elements and how they relate to each other. Hides the details of elements internals.
  2. "externally visible properties" refers to those assumptions that one element can make about  another element: services it provides, performance, handle faults,.. .
  3. Systems can and do have many structures. Relationship among those structures can be runtime or non-runtime.
  4. Every system has an architecture. though it may or may not do what you want if you don't explicitly develop one.
  5. Box-and-line drawings alone are not architectures: they are just a starting point.
Update: It's worth mentioning that the border for these three roles is fuzzy. meaning that 
they can negotiate trade-offs(, well ideally). the following figure tries to visualise this overlapping between different levels of architecture.




No comments:

Post a Comment