Introduction of Software Design Process - Set 2 - GeeksforGeeks (2024)

Improve

Software Design is the process of transforming user requirements into a suitable form, which helps the programmer in software coding and implementation. During the software design phase, the design document is produced, based on the customer requirements as documented in the SRS document. Hence, this phase aims to transform the SRS document into a design document.

The following items are designed and documented during the design phase:

  1. Different modules are required.
  2. Control relationships among modules.
  3. Interface among different modules.
  4. Data structure among the different modules.
  5. Algorithms are required to be implemented among the individual modules.

Objectives of Software Design

  1. Correctness:A good design should be correct i.e., it should correctly implement all the functionalities of the system.
  2. Efficiency:A good software design should address the resources, time, and cost optimization issues.
  3. Flexibility:A good software design should have the ability to adapt and accommodate changes easily. It includes designing the software in a way, that allows for modifications, enhancements, and scalability without requiring significant rework or causing major disruptions to the existing functionality.
  4. Understandability:A good design should be easily understandable, it should be modular, and all the modules are arranged in layers.
  5. Completeness:The design should have all the components like data structures, modules, external interfaces, etc.
  6. Maintainability:A good software design aims to create a system that is easy to understand, modify, and maintain over time. This involves using modular and well-structured design principles e.g.,(employing appropriate naming conventions and providing clear documentation). Maintainability in Software and design also enables developers to fix bugs, enhance features, and adapt the software to changing requirements without excessive effort or introducing new issues.

Software Design Concepts

Concepts are defined as a principal idea or invention that comes into our mind or in thought to understand something. The software design concept simply means the idea or principle behind the design. It describes how you plan to solve the problem of designing software, and the logic, or thinking behind how you will design software. It allows the software engineer to create the model of the system software or product that is to be developed or built. The software design concept provides a supporting and essential structure or model for developing the right software. There are many concepts of software design and some of them are given below:

Introduction of Software Design Process - Set 2 - GeeksforGeeks (1)

Software Design Concepts

See Also
SDD

Points to be Considered While Designing Software

  1. Abstraction (Hide Irrelevant data): Abstraction simply means to hide the details to reduce complexity and increase efficiency or quality. Different levels of Abstraction are necessary and must be applied at each stage of the design process so that any error that is present can be removed to increase the efficiency of the software solution and to refine the software solution. The solution should be described in broad ways that cover a wide range of different things at a higher level of abstraction and a more detailed description of a solution of software should be given at the lower level of abstraction.
  2. Modularity (subdivide the system): Modularity simply means dividing the system or project into smaller parts to reduce the complexity of the system or project. In the same way, modularity in design means subdividing a system into smaller parts so that these parts can be created independently and then use these parts in different systems to perform different functions. It is necessary to divide the software into components known as modules because nowadays, there are different software available like Monolithic software that is hard to grasp for software engineers. So, modularity in design has now become a trend and is also important. If the system contains fewer components then it would mean the system is complex which requires a lot of effort (cost) but if we can divide the system into components then the cost would be small.
  3. Architecture (design a structure of something): Architecture simply means a technique to design a structure of something. Architecture in designing software is a concept that focuses on various elements and the data of the structure. These components interact with each other and use the data of the structure in architecture.
  4. Refinement (removes impurities): Refinement simply means to refine something to remove any impurities if present and increase the quality. The refinement concept of software design is a process of developing or presenting the software or system in a detailed manner which means elaborating a system or software. Refinement is very necessary to find out any error if present and then to reduce it.
  5. Pattern (a Repeated form): A pattern simply means a repeated form or design in which the same shape is repeated several times to form a pattern. The pattern in the design process means the repetition of a solution to a common recurring problem within a certain context.
  6. Information Hiding (Hide the Information): Information hiding simply means to hide the information so that it cannot be accessed by an unwanted party. In software design, information hiding is achieved by designing the modules in a manner that the information gathered or contained in one module is hidden and can’t be accessed by any other modules.
  7. Refactoring (Reconstruct something): Refactoring simply means reconstructing something in such a way that it does not affect the behavior of any other features. Refactoring in software design means reconstructing the design to reduce complexity and simplify it without impacting the behavior or its functions. Fowler has defined refactoring as “the process of changing a software system in a way that it won’t impact the behavior of the design and improves the internal structure”.

Different levels of Software Design

There are three different levels of software design. They are:

  1. Architectural Design:The architecture of a system can be viewed as the overall structure of the system and the way in which structure provides conceptual integrity of the system. The architectural design identifies the software as a system with many components interacting with each other. At this level, the designers get the idea of the proposed solution domain.
  2. Preliminary or high-level design:Here the problem is decomposed into a set of modules, the control relationship among various modules identified, and also the interfaces among various modules are identified. The outcome of this stage is called the program architecture. Design representation techniques used in this stage are structure chart and UML.
  3. Detailed design:Once the high-level design is complete, a detailed design is undertaken. In detailed design, each module is examined carefully to design the data structure and algorithms. The stage outcome is documented in the form of a module specification document.

Last Updated : 25 Feb, 2024

Like Article

Save Article

Previous

Understanding Technical Debt in Software Engineering

Next

Extended Function Point (EFP) Metrics

Share your thoughts in the comments

Please Login to comment...

Introduction of Software Design Process - Set 2 - GeeksforGeeks (2024)

FAQs

Introduction of Software Design Process - Set 2 - GeeksforGeeks? ›

Program Design Language (or PDL, for short) is a method for designing and documenting methods and procedures in software. It is related to pseudocode, but unlike pseudocode, it is written in plain language without any terms that could suggest the use of any programming language or library.

What is PDL in software engineering? ›

Program Design Language (or PDL, for short) is a method for designing and documenting methods and procedures in software. It is related to pseudocode, but unlike pseudocode, it is written in plain language without any terms that could suggest the use of any programming language or library.

What is the concept of software design? ›

Software design is the process of conceptualizing how a software system will work before it is implemented or modified. Software design also refers to the direct result of the design process – the concepts of how the software will work which consists of both design documentation and undocumented concepts.

What are the common activities in design process in software engineering? ›

The stages of software design process are:
  • Stage 1: Understanding project requirements.
  • Stage 2: Research and Analysis.
  • Stage 3: Design.
  • Stage 4: Prototyping.
  • Stage 5: Evaluation.

What is the design phase of software engineering? ›

The design phase of the Software Development Life Cycle (SDLC) is a critical step in developing the conceptual blueprint of a software project. This phase involves transforming the software requirements gathered during the Requirements Analysis phase into a structured design document.

Why is PDL useful in software engineering? ›

Like a flowchart, and unlike a program, PDL can be written with whatever level of detail is appropriate to the problem at hand. A designer can start with a few pages giving the general structure of his system and finish, if necessary, with even more precision than would exist in the corresponding program.

How do you write PDL? ›

Every PDL program description should start with a BEGIN statement and end with an END statement. The keywords in a PDL description should be highlighted (e.g., bold) to make the reading easier. The program statements should be indented and described between the PDL keywords.

What are the two types of software design? ›

Software design typically involves 2 levels of design – namely architectural and detailed design. The Architectural design specifies the basic components of the software system such as user interface, database, reporting module, etc. often using tools such as Data Flow Diagrams (DFD) and Entity-Relation Diagrams (ERD).

What is the main purpose of a software design document? ›

IEEE defines software design documentation as “a description of software created to facilitate analysis, planning, implementation, and decision-making”. In essence, a software design document (SDD) explains how a software product or a feature will be built to meet a set of technical requirements.

What are the 7 steps in design process? ›

Here is a comprehensive overview.
  • Define the Problem. Understanding a problem is the first step towards solving it. ...
  • Conduct Research. ...
  • Brainstorm & Conceptualize. ...
  • Create a Prototype. ...
  • Select & Finalize. ...
  • Product Analysis. ...
  • Improve Product Design. ...
  • Big Bolt Makes The Design Process Easier.
Feb 2, 2022

What is the overview of the design process? ›

Design process is a way of figuring out what you need to do, then doing it. Along the way you might solve one or more problems, try to achieve a goal, and/or create something specific. The first critical step to understanding the design process is that it's not about working the “right way” or “wrong way”.

What are the basic issues in software design? ›

  • 1 Requirements ambiguity. One of the biggest challenges in software design is dealing with unclear, incomplete, or inconsistent requirements from the stakeholders. ...
  • 2 Scalability issues. ...
  • 3 Security risks. ...
  • 4 Technology changes. ...
  • 5 User experience trade-offs. ...
  • 6 Here's what else to consider.
Sep 27, 2023

What are the characteristics of a good software design? ›

A well-crafted good software package consists of the following attributes, each with its unique specifics:
  • Usability.
  • Functionality.
  • Correctness.
  • Maintainability.
  • Reliability.
  • Flexibility.
  • Scalability.
  • Testability.

What is software design and implementation? ›

▪ Software design is a creative activity in which you identify software components and their relationships, based on a customer's requirements. ▪ Implementation is the process of realizing the design as a program.

What is software design and its levels? ›

Software design yields three levels of results: Architectural Design - The architectural design is the highest abstract version of the system. It identifies the software as a system with many components interacting with each other. At this level, the designers get the idea of proposed solution domain.

What is PDL in AI? ›

The Planning Domain Definition Language (PDDL) is an attempt to standardize Artificial Intelligence (AI) planning languages. It was first developed by Drew McDermott and his colleagues in 1998 mainly to make the 1998/2000 International Planning Competition (IPC) possible, and then evolved with each competition.

What is the full form of PDL in business? ›

Great Partner Development Leaders (PDL) Understand these 4 Points.

What does the acronym PDL stand for printer? ›

In digital printing, a page description language (PDL) is a computer language that describes the appearance of a printed page in a higher level than an actual output bitmap (or generally raster graphics).

What is an example of a page description language? ›

Here are a few examples of Page Description Languages: PS, EPS, AI, XPS, OXPS and PDF.

Top Articles
Latest Posts
Article information

Author: Virgilio Hermann JD

Last Updated:

Views: 5809

Rating: 4 / 5 (41 voted)

Reviews: 88% of readers found this page helpful

Author information

Name: Virgilio Hermann JD

Birthday: 1997-12-21

Address: 6946 Schoen Cove, Sipesshire, MO 55944

Phone: +3763365785260

Job: Accounting Engineer

Hobby: Web surfing, Rafting, Dowsing, Stand-up comedy, Ghost hunting, Swimming, Amateur radio

Introduction: My name is Virgilio Hermann JD, I am a fine, gifted, beautiful, encouraging, kind, talented, zealous person who loves writing and wants to share my knowledge and understanding with you.