28 May 2020

ROLE OF SOFTWARE ARCHITECTURE IN APPLICATION DEVELOPMENT

The Software Architecture is the most useful architecture use in Software Development. It is the essential and structuring of a solution that fulfill the technical and operational requirement. Software architecture enhances qualities involving a sequence of decisions, such as security, performance and manageability. These decisions finally impact software quality, maintenance, performance and overall success.

Software Architecture is an organized framework used to conceptualize application elements, relationships and properties. This term also references software architecture documentation, which enables stakeholder communication while documenting early and high-level decisions regarding design and design component and pattern reuse for different projects. The software architecture process works through the abstraction and separation of these concerns to reduce complexity.

The functions performed by an application can be divided into three categories:

  1. User services (Presentation Layer) provides interactive user interface. Therefore, it is also called presentation layer.
  2. Business services (Application Layer) ensures that the back-end does not receive incorrect data.
  3. Data services (Database Layer) comprises data and the functions for manipulating the data.

Types of Software Architecture

  1. One-Tier Architecture
    • In one-tier architecture, a single executable file handles all functions relating to the user, business, and data service layers.
    • Single-tier applications are also called monolithic applications.
    One-tier Architecture (Raj Kumar SM, 2017)

    Figure 1: One-tier Architecture (Raj Kumar SM, 2017)

  2. Two-Tier tier Architecture
    • The two-tier architecture divides an application into the following two components:
      • Client: Implements the user interface
      • Server: Stores data
    • The business services layer may be implemented in one of the following ways:
      • By using fat client
      • By using fat server
      • By dividing the business services between the user services and the data services.
    Two-Tier Architecture (Raj Kumar SM, 2017)

    Figure 2: Two-Tier Architecture (Raj Kumar SM, 2017)

  3. Three-Tier tier Architecture
    • In three-tier architecture, all the three service layers reside separately, either on the same machine or on different machines.
    • The user interface interacts with the business logic.
    • The business logic validates the data sent by the interfaces and forwards it to the database if it conforms to the requirements.
    • The front-end only interacts with business logic, which, in turn, interacts with the database.
        Three-Tier Architecture (Raj Kumar SM, 2017)

        Figure 3: Three-Tier Architecture (Raj Kumar SM, 2017)

      • N-Tier tier Architecture
        • An n-tier application architecture is not restricted to a specific number of layers.
        • It has multiple servers handling business services.
        • The advantages of n-tier architecture are:
          • Extensibility
          • Resilience to change
          • Maintainability
          • Scalability
        • These applications serve organization-specific requirements. Therefore, most modern enterprise applications are based on the n-tier application architecture.
Conclusion

The Software Architecture exposes the construction of an application while hiding the implementation details. Architecture also efforts on how the elements and components inside a system interact with each other. Software Architecture of a system shows the system structure, and delivers a description of how it behaves. A system denotes the collection of components that achieve a specific function or set of functions. In other words, the software architecture provides a sturdy foundation on which software can be built.


Author –
R.N. Thakur
Program Coordinator - M.Sc. (ITM)
LBEF Campus