EDUCBA

EDUCBA

MENUMENU
  • Free Tutorials
  • Free Courses
  • Certification Courses
  • 600+ Courses All in One Bundle
  • Login

Architectural Design in Software Engineering

By Swati TawdeSwati Tawde

Home » Software Development » Software Development Tutorials » Software Engineering Tutorial » Architectural Design in Software Engineering

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.

System properties of Architectural Design

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

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

  • 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.

Popular Course in this category
Sale
Software Testing Training (9 Courses, 2 Projects)9 Online Courses | 2 Hands-on Projects | 60+ Hours | Verifiable Certificate of Completion | Lifetime Access
4.5 (7,872 ratings)
Course Price

View Course

Related Courses
Cyber Security Training (10 Courses, 3 Projects)All in One Software Development Bundle (600+ Courses, 50+ projects)

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

All in One Software Development Bundle (600+ Courses, 50+ projects)

600+ Online Courses

50+ projects

3000+ Hours

Verifiable Certificates

Lifetime Access

Learn More

0 Shares
Share
Tweet
Share
Primary Sidebar
Software Engineering Tutorial
  • Basic
    • What is Software Engineering?
    • What is SDET
    • What Is SDLC
    • SDLC Methodologies
    • Software Classification
    • Software Design
    • Software Design Principles
    • Software Metrics
    • Utility Software Types
    • UI Design Tools
    • User Interface Design Principles
    • Architectural Design in Software Engineering
    • Software Configuration Management
    • Software Configuration Management Tools
    • What is Risk Management?
    • System Engineering
    • ES6 Features
    • Object oriented programming paradigm
    • CASE Tools
  • Models
    • Prototype Model
    • What is Spiral Model
    • Waterfall?Model
    • Prototyping Tools
    • Incremental Model
    • Iterative Model
    • RAD Model
    • Fish Model
    • What is Scrum Methodology?
    • RUP? Methodology
    • COCOMO Model
    • Big Bang Model
    • System Models
    • People Capability Maturity Model
    • Analysis Modeling
    • User Interface Design
    • Capability Maturity Model Integration
    • What is Agile Development?
    • Agile Process Model
    • Rational Unified Process
  • UML Daigram
    • StarUML
    • Architecture of UML
    • StarUML? Download
    • Types of UML Diagrams
    • UML Activity Diagram
    • UML Component?Diagram
    • UML Deployment Diagram
    • UML Diagram Softwares
    • UML Object?Diagram
    • UML Sequence Diagram
    • UML Use Case Diagram
    • State Diagram
    • Class Diagram
    • UML Dependency
    • UML Interaction Diagrams
    • Data Flow Diagrams
  • Advanced
    • Functional Point Analysis
    • Software Quality Control
    • Quality Assurance Tools
    • Prototype model advantages and disadvantages
    • UML Modelling Tools
    • Tomcat Server
    • Quality Software
    • UI Prototyping
    • Hybrid Model
    • Behavioral Model in Software Engineering
    • Flowchart symbols
    • Critical System
    • Legacy System
    • SOA Architecture
    • Software Quality Attributes
    • Software Maintenance
    • Software Cost Estimation
    • Software Inspection
    • Cohesion in Software Engineering
    • Coupling in Software Engineering
    • Component-based Software Engineering
    • Design Modeling in Software Engineering
    • Iterative Methodology
    • System Flow Diagram
    • Data Flow Architecture
    • SEICMM
    • Function Oriented Design
  • Interview Questions
    • Software Engineering Interview Questions
    • SDLC Interview Questions

Related Courses

Software Testing Course

Cyber Security Training

Software Development Course Training

Footer
About Us
  • Blog
  • Who is EDUCBA?
  • Sign Up
  • Live Classes
  • Corporate Training
  • Certificate from Top Institutions
  • Contact Us
  • Verifiable Certificate
  • Reviews
  • Terms and Conditions
  • Privacy Policy
  •  
Apps
  • iPhone & iPad
  • Android
Resources
  • Free Courses
  • Java Tutorials
  • Python Tutorials
  • All Tutorials
Certification Courses
  • All Courses
  • Software Development Course - All in One Bundle
  • Become a Python Developer
  • Java Course
  • Become a Selenium Automation Tester
  • Become an IoT Developer
  • ASP.NET Course
  • VB.NET Course
  • PHP Course

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

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

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

By signing up, you agree to our Terms of Use and Privacy Policy.

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

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

By signing up, you agree to our Terms of Use and Privacy Policy.

Let’s Get Started

By signing up, you agree to our Terms of Use and Privacy Policy.

Loading . . .
Quiz
Question:

Answer:

Quiz Result
Total QuestionsCorrect AnswersWrong AnswersPercentage

Explore 1000+ varieties of Mock tests View more

EDUCBA Login

Forgot Password?

By signing up, you agree to our Terms of Use and Privacy Policy.

This website or its third-party tools use cookies, which are necessary to its functioning and required to achieve the purposes illustrated in the cookie policy. By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to our Privacy Policy

EDUCBA

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

By signing up, you agree to our Terms of Use and Privacy Policy.

Special Offer - Software Testing Course Learn More