Software Architecture What, Why & How ???
What is architecture ?
Architecture is arranging the blocks in modular, structured manner. Architecture is Art & architect is the artist.
Every thing required architecture, it is not a rocket science. Every one is architect in day to day life. In our house we are arranging our material, books, kitchen tools anything that we arrange in well manner is architecture. The shopkeeper arrange shop. Any thing arranged in modular & structured manner is architecture.
Architecture is an art, so in art we have patterns & styles. The styles & patterns are changed based on the context, domain, and problem.
As per the Wikipedia which defines software architecture as “the set of structures needed to reason about the system, which comprise software elements, relations among them, and properties of both.”
Good software architecture is describe the applied patterns, layers or tiers which are used to define the clear separation of concerns of your business.
Why it is required ?
Less Is More. The WhatsApp Architecture Facebook Bought For $19 Billion.
As stated by Microsoft, “The goal of architecture is to identify the requirements that affect the structure of the application. Good architecture reduces the business risks associated with building a technical solution.”
Architecture must be like switch, plug & play. Business is ivy it grows, just you need to manage. Good architecture is easy to understand & cheap to modify.
The success of business is depend on the architecture.
Benefits of architecture.
Benefits which we always curious about it. Without benefits there is no business.
Below are the benefits you will get if you fallow the architecture styles & patterns.
- High Productivity.
- Better maintainability.
- High adaptability.
- Makes It easier to reason about and manage change.
- Secure & Scalable.
- Deliver higher quality in lower cost.
Architecture defines set of rules and constraint that are specific to the system or project. Architecture enables the quality attribute of the system or we can say it defines the quality with every action.
How we design a good architecture ?
To become a expert we need to practice. Practice for perfection.
There are some important principles need to be consider while designing architecture.
- Common sense :- (What is it ?) is a basic ability to perceive, understand, and judge things.
- The system should be built to change instead of building to last.
- Learn from your past experience & current technology trends.
- There’s more way than one to do it. ( It is useful to find the optimise solution )
- Understand the end user context & business domain.
- Follow the Design patterns & styles.
- Follow coding best practices.
- Understand the business module, sub module, consider component & layers (tiers ) to abstract them & identify the key interfaces.
- Use iterative approach while designing architecture.
Software architecture & Software design are two different thing don’t mix them. Software architecture is skeleton while software design is meat.
Software architecture is more about the higher level & software design is more about there component, class or modules.
Software architecture patterns e.g MV* pattern & software design patterns e.g DAO, Factory.
Any software architecture has two key components.
- Architecture Patterns :- It defines the implementation strategies of the components.
2. Architecture Style :- It actually defines the components & connectors.
" Life is better when things are made for good. "
Software Architecture Category
There is lot more to explore in software architecture. Would like to hear your suggestion, inputs on this post.