×

Structured Analysis and Design (SA/SD)

When the software systems keep getting bigger and more complex, you need a way to represent the model systematically. Structured Design and Structured Analysis, often referred to as SA/SD, is an excellent way to improve the quality of your System and reduce the risk of System failure.

SA/ SD is simply a diagrammatic way to showcase your complete System and help the client understand the entire design. After you get a whole idea of what the System is supposed to do, you should create a structured plan for the same. SA/SD also establishes all the needed documentation and management requirements, allowing easy access to look at and maintain the System.

Method of Structured Design

The primary method for Structured Design is to represent the System in the form of a network of different functions, where each of the parts means each section and performs a specified task.

This approach uses a variety of blocks and arrows to denote the relations between all the parts of your structure.

SA/SD is even used to denote the manufacturing procedure and the complex software systems.

In the late 1960s, Larry Constantine developed the technique of Structured design (SD), which usually focuses on building the modules and creating the module hierarchy to represent the idea for your IT System.

Module hierarchy can be created optimally by keeping the two basic rules in mind: Cohesion and Coupling. 

Cohesion deals with grouping functions with similar tasks in the same module, and Coupling determines the flow of information among the different modules in our design.

A sound module hierarchy is easily understandable and reduces the complexity of your final design of the System.

On the other hand, Structured Analysis (SA) is the process of interpreting the design of a System represented as DFDs of modules that was created using the structured methodology.

Structured Design and Structured Analysis are used together to focus on defining the system boundaries by using the graphical representation. SA/ SD are together known as SAD, which primarily deals with three points:

  • System
  • Process
  • Technology

The two major phases involved in the SAD approach are:

  1. Analysis Phase: This phase involves the different diagrams used for the representation and the data dictionary to identify the data.
  2. Design Phase: This phase includes the structure Chart and the pseudo-code for the easy understanding of the developer.

Let us discuss each of the elements involved in the SAD approach individually.

1. Design Phase:

  • Data Flow Diagram

This representation is used to define the flow of data in our final complete System, i.e. how the information would be passed from each module to the other. We can use the operators AND (&&) & OR (||) to represent more than one input or output at any stage. For example, one can use the OR operator in the output link of any module where the instance would lead to two different choice paths like on confirming an order; you would be given a choice to pay now or pay on delivery in an e-commerce system.

  • Data Dictionary

When some data cannot be represented in the form of Data Flow Diagrams, it is represented using a data dictionary.

A Data dictionary stores the data and has a relevant meaning for each data item.

A physical data dictionary can also be added to the System design for the data elements that flow between different processes and/ or entities.

We can also use the logical data dictionary for some types of data elements.

  • State Transition Diagram

This diagram is a lot similar to the dynamic model; in this type of representation, the state of our System transitions with the occurrence of each event. A state transition Diagram also states the amount of time that would be required by the function to execute and access the data once it has been triggered by an event. This model specifies all the states the System could have and which event would trigger which function.

  • ER Diagram 

Also known as Entity-Relation Diagram. This model is quite famous for designing the database in the form of entities and their relationships.

2. Analysis Phase:

  • Structure Chart

A structure Chart is created using the information retrieved from the data flow diagrams. This is primarily used to specify how the processes are allocated to the CPU.

The modules in the structure chart are arranged randomly, and any of the processes from the data flow diagram can be chosen as the central point. The complete formation of the Structure Chart only depends on what the analyst thinks and understands. Some of the main drawbacks of using the structure chart are that these are very hard to maintain, verify or amend. Checking the completeness and consistency of the structure chart is also a hassle.

  • Pseudo Code

This is basically an overview and simple idea of how the implementation of the System would look in a very informal manner just for the sake of the developer's understanding.

These were the two phases that we discussed in deep that are used in the SAD approach for System Design.


Related Topics

Halstead's Software Metrics

Halstead’s software science metrics According to Halstead’s software metrics, a program is the implementation of an algorithm. These steps are considered as a number of tokens, and tokens are classified as...

6 minutes read.

Project Management Tools

Project Management Tools Risk and uncertainty increase in the size of the project, even when the project is developed according to the prescribed methods. We use project management tools to manage project management systems properly...

3 minutes read.

Agile Model in Software Engineering

The Agile method acquires the features of the iterative or incremental process model. More focus on process adaptability and customer satisfaction through the timely delivery of working software. The agile method split the...

2 minutes read.

RAD Model in Software Engineering

RAD Model is an incremental process model and was developed by IBM in the 1980s and described in the book of James Martin entitled Rapid Application Development. Hence, user involvement is essential from...

3 minutes read.

Project management activities

Project management activities Software project management involves many activities, including project planning, software product scope, cost estimation in various terms, scheduling of tasks and events, and resource management. Project management activities may include: Project PlanningScope ManagementProject...

2 minutes read.

Caching in System Design

While surfing the web, you have usually wondered why the sites you have visited once load faster than the new ones. You would have also noticed how the texts and labels...

10 minutes read.

Project Management

Project Management What is a software project? The project is a set of tasks that need to be completed to reach a clear result. The project is also defined as the set of inputs...

2 minutes read.

Constructive Cost Model (COCOMO)

The constructive cost model (COCOMO) is one of the most widely used software cost estimation models. This model is developed by B.W.Boehm in 1981. COCOMO model is based on LOC, i.e., the number...

5 minutes read.

Software Configuration Management

Software Configuration Management The process of Software Configuration Management contains operations such as controlling, managing, and organizing the source-code, documents, and other essential components during the Software Development Life Cycle.SCM is essential for all project...

3 minutes read.

Online Library Management System ER Diagram in Software Engineering

Description of an ER Diagram The relationship between entity sets that are kept in a database is depicted in a diagram known as an entity relationship diagram, or ER Diagram. Alternatively,...

10 minutes read.

Software Quality Metrics

In a software project, the software is designed to build a source code, but from time to time or step by step, checking source code is required. Check whether the work...

4 minutes read.

Routing Requests through Load Balancers

Let us first understand what load balancers are Assume a system works with multiple machines or servers, and as the requests arrive, they need to be routed to any one of...

3 minutes read.

SDLC in Software Engineering

SDLC SDLC stands for the Software Development life cycle. It is a pictorial and diagrammatic representation of the software life cycle. A life cycle model represents all the techniques required to integrate software into the...

3 minutes read.

Waterfall Model in Software Engineering

The most popular model is the waterfall model. This model has five phases: Requirement analysis and specification DesignImplementation & unit testing Integration and system testing phaseOperation and maintenance These phases often occur one...

3 minutes read.

Incremental Model in Software Engineering

Incremental Model is a software development process where requirements are divided into several stand-alone software development modules. In this example, each module passes through the requirement, design, development, implementation, and testing phases. That subsequent...

2 minutes read.

Prototype Model in Software Engineering

The prototype creation model is a method of developing the software in which a prototype of software or app is constructed, tested, and then reworked as needed until an acceptable result is obtained...

4 minutes read.

Umbrella Activities in Software Engineering

The various stages of software engineering are tied to one another. Various software process models have different ways of expressing or making these processes available. To manage the development, quality,...

3 minutes read.

Netflix - System Design

System design questions are common in many technical rounds for huge tech companies like Amazon, Google Flipkart. Candidates get confused about how they should answer the system doesn't question in...

12 minutes read.

Iterative Model in Software Engineering

This model consists of the same phases as the waterfall model, but with fewer restrictions. Generally, the phases occur in the same order as in the waterfall model, but these may be conducted...

2 minutes read.

Overall Equipment Effectiveness

Overall Equipment Effectiveness (OEE) Overall equipment effectiveness is a software development metric used to diagnose a product or machinery's manufacturing productivity and effeteness. The term OEE was introduced by Seiichi Nakajima San...

4 minutes read.