flickr photo by RHiNO NEAL https://flickr.com/photos/rhinoneal/8060238470 shared under a Creative Commons (BY-NC-ND) license

Software Architecture

Software architecture is the final phase of design of the software life cycle, is kind of weird because once you have a design, (read Software design), is natural to think that the next step is coding, but in software life-cycle, software architecture is needed after software design and before coding.

From this page Software Architecture…

defines a structured solution to meet all the technical and operational requirements, while optimizing the common quality attributes like performance and security.

Software Architecture in Practice (2nd edition), Bass, Clements, and Kazman from Microsoft says this about software architecture:

The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them. Architecture is concerned with the public side of interfaces; private details of elements—details having to do solely with internal implementation—are not architectural.

8060238470_be19d490ae_z
flickr photo by RHiNO NEAL https://flickr.com/photos/rhinoneal/8060238470 shared under a Creative Commons (BY-NC-ND) license

In other words, Software Architecture provides the relation between all the components, elements and requirements of a system as well as how they are related. It also involves a series of decision that have impact on quality, performance and maintainability.

I imagine the software design like a small model of a building, in software it can be represented in many ways, for example in the UML; and software architecture like the blueprints of a building, which will be difficult to relate it with software development. Both of them are inside the design step of software life-cycle and very important because they are like the pillars of the software, if they are not well structured the application will fall apart.

References:

https://www.tutorialspoint.com/software_architecture_design/introduction.htm

https://msdn.microsoft.com/en-us/library/ee658098.aspx

 

Advertisements

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 )

Google+ photo

You are commenting using your Google+ 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 )

w

Connecting to %s