Open In App

Software Design Process – Software Engineering

Last Updated : 15 Mar, 2024
Like Article

The design phase of software development deals with transforming the customer requirements as described in the SRS documents into a form implementable using a programming language. The software design process can be divided into the following three levels or phases of design:

  1. Interface Design
  2. Architectural Design
  3. Detailed Design

Elements of a System

  1. Architecture: This is the conceptual model that defines the structure, behavior, and views of a system. We can use flowcharts to represent and illustrate the architecture.
  2. Modules: These are components that handle one specific task in a system. A combination of the modules makes up the system.
  3. Components: This provides a particular function or group of related functions. They are made up of modules.
  4. Interfaces: This is the shared boundary across which the components of a system exchange information and relate.
  5. Data: This is the management of the information and data flow.

Software Design Process

Interface Design

Interface design is the specification of the interaction between a system and its environment. This phase proceeds at a high level of abstraction with respect to the inner workings of the system i.e, during interface design, the internal of the systems are completely ignored, and the system is treated as a black box. Attention is focused on the dialogue between the target system and the users, devices, and other systems with which it interacts. The design problem statement produced during the problem analysis step should identify the people, other systems, and devices which are collectively called agents.

Interface design should include the following details:

  1. Precise description of events in the environment, or messages from agents to which the system must respond.
  2. Precise description of the events or messages that the system must produce.
  3. Specification of the data, and the formats of the data coming into and going out of the system.
  4. Specification of the ordering and timing relationships between incoming events or messages, and outgoing events or outputs.

Architectural Design

Architectural design is the specification of the major components of a system, their responsibilities, properties, interfaces, and the relationships and interactions between them. In architectural design, the overall structure of the system is chosen, but the internal details of major components are ignored. Issues in architectural design includes:

  1. Gross decomposition of the systems into major components.
  2. Allocation of functional responsibilities to components.
  3. Component Interfaces.
  4. Component scaling and performance properties, resource consumption properties, reliability properties, and so forth.
  5. Communication and interaction between components.

The architectural design adds important details ignored during the interface design. Design of the internals of the major components is ignored until the last phase of the design.

Detailed Design

Detailed design is the specification of the internal elements of all major system components, their properties, relationships, processing, and often their algorithms and the data structures. The detailed design may include:

  1. Decomposition of major system components into program units.
  2. Allocation of functional responsibilities to units.
  3. User interfaces.
  4. Unit states and state changes.
  5. Data and control interaction between units.
  6. Data packaging and implementation, including issues of scope and visibility of program elements.
  7. Algorithms and data structures.

Previous Article
Next Article

Similar Reads

Difference between Software Engineering process and Conventional Engineering Process
Software Engineering Process and Conventional Engineering Process, both are processes related to computers and development. In this article, we will see the similarities as well as differences between both, that is Software Engineering Process and the Conventional Engineering Process. Table of Content Software Engineering ProcessConventional Engine
4 min read
Requirements Engineering Process in Software Engineering
Requirements Engineering is the process of identifying, eliciting, analyzing, specifying, validating, and managing the needs and expectations of stakeholders for a software system. Table of Content What is Requirements Engineering?Requirements Engineering ProcessTools Involved in Requirement EngineeringAdvantages of Requirements Engineering Process
12 min read
Introduction to Software Engineering - Software Engineering
Software is a program or set of programs containing instructions that provide desired functionality. Engineering is the process of designing and building something that serves a particular purpose and finds a cost-effective solution to problems. Table of Content What is Software Engineering?Key Principles of Software EngineeringMain Attributes of S
8 min read
Difference between Good Design and Bad Design in Software Engineering
The term design is used in two ways. While used as verb, it means - the design process and used as noun, it means- the result of design process. Design is a meaningful engineering representation of something that is to be built. The result of a design process is called as design model or the design of the system. Design for computer software is as
2 min read
Difference Between Technical Design and Conceptual Design in Software Engineering
What is Software Design?Software design is a process to convert the user requirements into client requirements user interface form, that helps the software developer in coding and implementation. The software design deals with portraying the client's requirement which is described in Software Requirement Specification (SRS) document into a user int
3 min read
Overview of Software Release Process in Software Engineering
Software Release Process :Software release process is also known as Release Management Cycle in which it performs a cycle for developing, testing, deploying, supporting new versions of software basically for Agile development. It includes modifying, managing, organizing, programming, regulating the software application of different platforms. This
3 min read
Software Process Framework - Software Engineering
Software Process Framework is an abstraction of the software development process. This article focuses on discussing the Software Process Framework. What is a Software Process Framework?Software Process Framework details the steps and chronological order of a process. Since it serves as a foundation for them, it is utilized in most applications. Ta
3 min read
Difference between Software Engineering and Computer Engineering
1. Software engineering: Software Engineering refers to the study of software which tell us about how Software is formed and about the processes involved in the formation of Software. It is basically known as Software Engineering because it applies the principles of Engineering in order to create software. Thus it is called Software Engineering and
6 min read
Evolution of Software Engineering : From an Art To Engineering Discipline
Software Engineering is a systematic and cost-effective technique for Software Development. It is an engineering approach to develop Software. For example: If someone wants to travel from Punjab to Delhi. There are two approaches one can follow to achieve the same result: The normal approach is just to go out and catch the bus/train that is availab
13 min read
Reverse Engineering - Software Engineering
Software Reverse Engineering is a process of recovering the design, requirement specifications, and functions of a product from an analysis of its code. It builds a program database and generates information from this. This article focuses on discussing reverse engineering in detail. What is Reverse Engineering?Reverse engineering can extract desig
6 min read
Article Tags :