EDUCBA Logo

EDUCBA

MENUMENU
  • Explore
    • EDUCBA Pro
    • PRO Bundles
    • Featured Skills
    • New & Trending
    • Fresh Entries
    • Finance
    • Data Science
    • Programming and Dev
    • Excel
    • Marketing
    • HR
    • PDP
    • VFX and Design
    • Project Management
    • Exam Prep
    • All Courses
  • Blog
  • Enterprise
  • Free Courses
  • Log in
  • Sign Up
Home Software Development Software Development Tutorials Software Engineering Tutorial Architectural Design in Software Engineering
 

Architectural Design in Software Engineering

Swati Tawde
Article bySwati Tawde
EDUCBA
Reviewed byRavi Rathore

Updated April 11, 2023

Architectural Design in Software Engineering

 

 

Introduction to Architectural Design in Software Engineering

Architectural design in software engineering is about decomposing the system into interacting components. It is expressed as a block diagram defining an overview of the system structure, features of the components, and how these components communicate with each other to share data. It identifies the components that are necessary for developing a computer-based system and communication between them i.e. relationship between these components. It defines the structure and properties of the components that are involved in the system and also the interrelationships between these components. The architectural design process is about identifying the components i.e. subsystems that makeup the system and structure of the sub-system and they’re interrelationship. It is an early stage of the system design phase. It acts as a link between specification requirements and the design process.

Watch our Demo Courses and Videos

Valuation, Hadoop, Excel, Mobile Apps, Web Development & many more.

System properties of Architectural Design

In software engineering, during the architectural design process, some system properties are focused. Some of them are as follows

  • Security: The system is secured against malicious users by encryption or any other security measures. The architectural design process uses a layered architecture with critical assets in the innermost layers.
  • Performance: It is nothing but a meantime taken between request and response of the page. The performance of a system can be improved by avoiding critical operations and reducing communication between components. This is possible by using large components instead of small and fine-grained components.
  • Maintainability: Architectural design process uses easily modifiable and replaceable components. Consider the components in a manner so that it is easy to change them over time according to the new requirements and build the software with the flexibility to change or maintain.
  • Safety: Avoid critical functionalities in small components of the system.
  • Availability: Architectural design process includes redundant components and corresponding functions for handling the occurrence of any type of errors.

Decisions for Architectural Design

In software engineering, the architectural design process differs as the system differs depending upon the type of system being developed. But still, there are some common decisions that should be taken care of in any design process are as follows

  • How can the system be distributed across the network?
  • Which approach can be used to structure the system?
  • Is there a generic application architecture procedure that can be used which can act as a template for the proposed system that is being designed and developed?
  • Which architectural styles are suitable for the proposed system?
  • How can software architecture be documented?
  • How can the system be decomposed into modules?
  • What control strategy must be used to control the operation of the components in the system?
  • How can architectural design be analyzed?

Software Architectural Models

To document the architectural design process, architectural models are used

  1. Static type of architectural structural model represents the major system components.
  2. Dynamic type of architectural process model represents the process structure of the system.
  3. Distribution type of architectural model represents how the component is distributed across various computers.
  4. Interface type of architectural model represents the interface of the components.
  5. Relationships type of architectural model represent models such as data flow diagram to represent the component interrelationship.

Architectural design models are application domain-specific and the most common two types of domain-specific models are:

  1. Generic model: These models are abstractions derived from a number of real systems and encapsulated the characteristics of these systems. This type of model usually follows a bottom-up approach.
  2. Reference models: These models provide information regarding the class of the system. They are derived from the application domain rather than from existing systems. It usually follows the top-down approach. It provides a comparison between different Software architecture.

Advantages of Architectural Design in Software Engineering

  • Architectural design works as a tool for stakeholder communication. It is used as a support or roadmap in the discussion with system stakeholders
  • It is used for system analysis. Architectural design is used to analyze whether the system will be able to meet its non-functional requirements or not.
  • It facilitates large-scale re-use. The software architecture that is the output of the architectural design process can be reused across a range of the system.

Disadvantages of Architectural Design in Software Engineering

  • Architectural design re-use the components, the use of redundant components improves the availability but makes the security of the system difficult to handle.
  • Use of large components may improve the performance as large components include all the related properties and function into one component but it reduces the maintainability as it becomes difficult to modify and replace the large component. It involves a very tiresome task.
  • Avoiding critical features inside the small components leads to more communication among the components which in turn degrades the performance.

Conclusion

Architectural design is a very important phase and is a multi-step process which represents the data structures, program structure, interface characteristic, and procedural details. Here, in this article, we have discussed the architectural design process and its advantages and disadvantages.

Recommended Articles

This is a guide to Architectural Design in Software Engineering. Here we discuss the introduction and System properties of architectural design, Software architectural models, Advantages, disadvantages. You can also go through our other related articles to learn more –

  1. Cohesion in Software Engineering
  2. Software Engineering Interview Questions
  3. Data Science vs Software Engineering
  4. Requirement Engineering

Primary Sidebar

Footer

Follow us!
  • EDUCBA FacebookEDUCBA TwitterEDUCBA LinkedINEDUCBA Instagram
  • EDUCBA YoutubeEDUCBA CourseraEDUCBA Udemy
APPS
EDUCBA Android AppEDUCBA iOS App
Blog
  • Blog
  • Free Tutorials
  • About us
  • Contact us
  • Log in
Courses
  • Enterprise Solutions
  • Free Courses
  • Explore Programs
  • All Courses
  • All in One Bundles
  • Sign up
Email
  • [email protected]

ISO 10004:2018 & ISO 9001:2015 Certified

© 2025 - EDUCBA. ALL RIGHTS RESERVED. THE CERTIFICATION NAMES ARE THE TRADEMARKS OF THEIR RESPECTIVE OWNERS.

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you
Loading . . .
Quiz
Question:

Answer:

Quiz Result
Total QuestionsCorrect AnswersWrong AnswersPercentage

Explore 1000+ varieties of Mock tests View more

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

By continuing above step, you agree to our Terms of Use and Privacy Policy.
*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you

EDUCBA Login

Forgot Password?

🚀 Limited Time Offer! - 🎁 ENROLL NOW