Application Architecture and Design

Application Architecture is the structure of the whole system which describes the important component/objects of a system, various interfaces and that how these interact with each other. It also defines how system will be accessible to external world and how it will integrate with other third party services. So it is a high level structuring of the system, which might not have the detailing at object level; but will describes various layers, what kind of components/objects these layers will have and how these different layers will interact with each other.

Now if we need detailing at next level i.e. objects and their relations then we should proceed for designing of the system. To understand the difference between architecture and design, consider the Architecture may define a layer where all request processor/handlers should resides. Further design can describes various kind of actual request processors based on system and business need.

Application Architecture consider following kind of aspects for an application:

  • Capability - Kind of capability an application needs
  • Availability - Level of system availability required during business operations 
  • Performance - Performance requirements
  • Security - Level of security required for the application
  • Scalability - How much can we scale the capabilities of system by adding more components
  • Extensibility - Easiness and readiness of a system for extensions in future
  • Manageability - Various required ways to manage the application
  • Flexibility - Level of flexibility required in the application, flexibility is like one system can use any logging API depending upon the configuration settings.
  • Maintainability - How easy is it to maintain an Application in future
  • Re-usability - A good application design is where various code components can be re-used as much as possible and hence decrease no of code and maintainability
  • Technology Requirements - Kind of technologies which would be useful for the application considering the operational and business requirements

Defining the Application Architecture is not a simple task, but need a good understanding of the business and operational requirements, the underlying most suited technologies stacks and the environment as well. Application Architecture is defined only after understanding the business requirements for which we are going to build the system. So Application Architect should be through with business motive and requirements in details. Only then she can be able to define a good Application Architecture, which can serve the business motive in future.

We also use other term like 'Software Architecture'. It is the structure of the system which is made of various software components, which further interacts with each other. It also describes there externally visible properties and their relations. It talks more in term of software frameworks and various design patterns. Once documented, it helps in communication between the stakeholders and helps everybody to understand the system at high level i.e. what we are going to make.

There are much more terms in Architecture field which can confuse us easily. So keep learning and let us focus on important aspects of architecture with further posts.

    People who read this post also read :


    Post a Comment