Software Architecture is to describe system, system components, relationships with each other components, fundamental structure of system and describe process to create software structure with complete system development structure. It works as a blueprint of software structure and developing process. Software Architecture arranges components such as classes, methods, functions, process, modules, integration etc and in a developing structure way and it is a way to create flexible software system and how system will work.
Types of Architecture
One Tier Architecture:- In this architecture design “presentation, server and database” access come in single system and these process are handled by same machine and can be accessible by same machine.
Two Tier Architecture:- It is about client-server architecture. Presentation layer and Application layer works with Database Layer. In simple way, client system works to send request to server and server works to request send back to client.
Three Tier Architecture:- Client system works with presentation layer and application layer whereas server works with database layer. In other words, client system control presentation and application layer and server control database layer.
Software Architect Role:-
Software Architect should be experienced in technologies and technical approaches such as designing, development, domains, hosting, SDLC, third party integration, client-server integration process, database, quality attributes, release process etc.
Software Architect works on challenging role and it is high responsibility to design clear software system’s architecture. There are some pattern comes to design with clarity such as presentation layer where UI presentation is designed according to requirements, application layer where service structure is designed, business logic layer and data access layer.
There are some following methods to implement:
– Need to collect all business requirements and capture in requirements document. It helps to develop system architecture according to business requirements.
System Architecture Overview
– Design overview should be prepared in system architecture. Overview design is helpful to analysis about business flow.
System Architecture Goals
– System goals should be structured properly with required modules and expectation. System architecture goal is to identify clarity about requirements for developing required features.
System Design Architecture
– Should prepare complete system architecture with proper relationships among components.
Evaluate System Architecture
– Should review processes and execution practices. It helps to gain implementation practices process early.
System Quality Attributes
– Quality Attributes should be defined properly in system architecture. It helps to provide good quality.
– Architecture Documentation
– Architecture Documentation should be in detailed format. It helps to communicate within team according to defined responsibilities.
Simple Example: It is just an example and can be different according to requirements.
Note:- This is just basic information and challenges may be more according to requirements because software architecture development is a big responsibility and challenging job.