Software architecture provides architectural layouts of a software means it describes what are basic structure of software and its different views, all views has different components, these components interacts with each other and communicates with each other, software architecture inrease localization of components.For ex architectuer of office building, architect plans that how many rooms there,how many cabines there,how many toilets there,plumbing of building describes where pipes goes from place to other,electrician of building ensures where wires goes,how many switches there,where is main switch, from these example all these person work or plan individually or in localize manner but this all work in architecture of building for making building workable and they al are componnent of building different views and describes its locally, so the software architecture defines same thing, the different views and there components, in software these componnents are hardware,database,interfaces,data structure,protocols etc.

Software architecture definition

By IEEE

Software architecture is “the structure of the components of a program/system,their interrelationships, and principles and guidelines governing their design and

evolution over time.”

Importance of software architecture

Software architecture plays an important roles in software development, it is initial phase of software design and provides communication details between different component of the system, how components passes message to each other for performing a tasks,software architecture provide a way to make decision which component is required, any component is not working properly either it is remove or make changes that it works properly again, software architecture provide how integration of component is done so that they achieve a task.Software architecture also provide reuseability of components so that cost and time is saved.

Software architecture attributes

Attributes of software architecture describes what are the properties of software architecture which makes its good architecture for developing better software.









Performance

Performance is the key attribute of any software,software architecture defines different component which perform there task efficiently so the performance of the system improves.

Security

Security of any system is important, aoftware architecture define different component or layers of security that implement in the software that provide good security, layers of security ensures there are different layers for security, for ex in software system there may be login ssytem,firewall,bioinformatic systems.

Availability

Some software are such system that run 24 hour and whole year, so software architecture such that it provide components that are always avaulable, for ex in online transaction processing payment made anytime in a day through credit card so the software is available anytime as it needed.

Maintainability

Software architecture provide such structure of component that are maintainable,software architecture provide such mechanism that increase locality between component, good software architecture provide maintainable componmnnent that operate for long period of time and decrease cost of software ssytem.

Software architecture design

Software architecture design involves following process

Sub system model

Software architecture design starts with sub system modeling by indentifying or dividing the system into individual sub system, these sub system either perform a particular operation, group of operation or an complex operation of software system, these sub system communicate with each other for completion of an task.









Sub division of sub sysstem

In this model all sub system is divided into small small component or modules, these component perform small small function of the sub system or different module work together to complete a task.

Difference between a sub system and module is sub system is individual system and exosts alone to perform a task but module is dependent on sub system and cannot complete a task without the help of whole sub system.

Control model

After identifying sub system and its modules , next modeling is control, it describes what tasks or function are performed by sib system and when so a flow is created and controlled,control also describes in whuch sequence tasks are performed so the sequence is checked and see its work in sequence so the control is maintained.