Structured Analysis and Structured Design (SA/SD) is a diagrammatic notation that is designed to help people understand the system. The basic goal of SA/SD is to improve quality and reduce the risk of system failure. It establishes concrete management specifications and documentation. It focuses on the solidity, pliability, and maintainability of the system.
Structured Analysis and Structured Design (SA/SD) is a software development method that was popular in the 1970s and 1980s. The method is based on the principle of structured programming, which emphasizes the importance of breaking down a software system into smaller, more manageable components.
In SA/SD, the software development process is divided into two phases: Structured Analysis and Structured Design. During the Structured Analysis phase, the problem to be solved is analyzed and the requirements are gathered. The Structured Design phase involves designing the system to meet the requirements that were gathered in the Structured Analysis phase.
Structured Analysis and Structured Design (SA/SD) is a traditional software development methodology that was popular in the 1980s and 1990s. It involves a series of techniques for designing and developing software systems in a structured and systematic way. Here are some key concepts of SA/SD:
- Functional Decomposition: SA/SD uses functional decomposition to break down a complex system into smaller, more manageable subsystems. This technique involves identifying the main functions of the system and breaking them down into smaller functions that can be implemented independently.
- Data Flow Diagrams (DFDs): SA/SD uses DFDs to model the flow of data through the system. DFDs are graphical representations of the system that show how data moves between the system’s various components.
- Data Dictionary: A data dictionary is a central repository that contains descriptions of all the data elements used in the system. It provides a clear and consistent definition of data elements, making it easier to understand how the system works.
- Structured Design: SA/SD uses structured design techniques to develop the system’s architecture and components. It involves identifying the major components of the system, designing the interfaces between them, and specifying the data structures and algorithms that will be used to implement the system.
- Modular Programming: SA/SD uses modular programming techniques to break down the system’s code into smaller, more manageable modules. This makes it easier to develop, test, and maintain the system.
Some advantages of SA/SD include its emphasis on structured design and documentation, which can help improve the clarity and maintainability of the system. However, SA/SD has some disadvantages, including its rigidity and inflexibility, which can make it difficult to adapt to changing business requirements or technological trends. Additionally, SA/SD may not be well-suited for complex, dynamic systems, which may require more agile development methodologies.
The following are the steps involved in the SA/SD process:
- Requirements gathering: The first step in the SA/SD process is to gather requirements from stakeholders, including users, customers, and business partners.
- Structured Analysis: During the Structured Analysis phase, the requirements are analyzed to identify the major components of the system, the relationships between those components, and the data flows within the system.
- Data Modeling: During this phase, a data model is created to represent the data used in the system and the relationships between data elements.
- Process Modeling: During this phase, the processes within the system are modeled using flowcharts and data flow diagrams.
- Input/Output Design: During this phase, the inputs and outputs of the system are designed, including the user interface and reports.
- Structured Design: During the Structured Design phase, the system is designed to meet the requirements gathered in the Structured Analysis phase. This may include selecting appropriate hardware and software platforms, designing databases, and defining data structures.
- Implementation and Testing: Once the design is complete, the system is implemented and tested.
SA/SD has been largely replaced by more modern software development methodologies, but its principles of structured analysis and design continue to influence current software development practices. The method is known for its focus on breaking down complex systems into smaller components, which makes it easier to understand and manage the system as a whole.
Basically, the approach of SA/SD is based on the Data Flow Diagram. It is easy to understand SA/SD but it focuses on well-defined system boundary whereas the JSD approach is too complex and does not have any graphical representation.
SA/SD is combined known as SAD and it mainly focuses on the following 3 points:
- System
- Process
- Technology
SA/SD involves 2 phases:
- Analysis Phase: It uses Data Flow Diagram, Data Dictionary, State Transition diagram and ER diagram.
- Design Phase: It uses Structure Chart and Pseudo Code.
1. Analysis Phase:
Analysis Phase involves data flow diagram, data dictionary, state transition diagram, and entity-relationship diagram.
- Data Flow Diagram:
In the data flow diagram, the model describes how the data flows through the system. We can incorporate the Boolean operators and & or link data flow when more than one data flow may be input or output from a process.For example, if we have to choose between two paths of a process we can add an operator or and if two data flows are necessary for a process we can add an operator. The input of the process “check-order” needs the credit information and order information whereas the output of the process would be a cash-order or a good-credit-order.
- Data Dictionary:
The content that is not described in the DFD is described in the data dictionary. It defines the data store and relevant meaning. A physical data dictionary for data elements that flow between processes, between entities, and between processes and entities may be included. This would also include descriptions of data elements that flow external to the data stores.A logical data dictionary may also be included for each such data element. All system names, whether they are names of entities, types, relations, attributes, or services, should be entered in the dictionary.
- State Transition Diagram:
State transition diagram is similar to the dynamic model. It specifies how much time the function will take to execute and data access triggered by events. It also describes all of the states that an object can have, the events under which an object changes state, the conditions that must be fulfilled before the transition will occur and the activities were undertaken during the life of an object.
- ER Diagram:
ER diagram specifies the relationship between data store. It is basically used in database design. It basically describes the relationship between different entities.
2. Design Phase:
Design Phase involves structure chart and pseudocode.
- Structure Chart:
It is created by the data flow diagram. Structure Chart specifies how DFS’s processes are grouped into tasks and allocated to the CPU. The structured chart does not show the working and internal structure of the processes or modules and does not show the relationship between data or data flows. Similar to other SASD tools, it is time and cost-independent and there is no error-checking technique associated with this tool. The modules of a structured chart are arranged arbitrarily and any process from a DFD can be chosen as the central transform depending on the analysts’ own perception. The structured chart is difficult to amend, verify, maintain, and check for completeness and consistency. - Pseudo Code: It is the actual implementation of the system. It is an informal way of programming that doesn’t require any specific programming language or technology.
Advantages of Structured Analysis and Structured Design (SA/SD):
- Clarity and Simplicity: The SA/SD method emphasizes breaking down complex systems into smaller, more manageable components, which makes the system easier to understand and manage.
- Better Communication: The SA/SD method provides a common language and framework for communicating the design of a system, which can improve communication between stakeholders and help ensure that the system meets their needs and expectations.
- Improved maintainability: The SA/SD method provides a clear, organized structure for a system, which can make it easier to maintain and update the system over time.
- Better Testability: The SA/SD method provides a clear definition of the inputs and outputs of a system, which makes it easier to test the system and ensure that it meets its requirements.
Disadvantages of Structured Analysis and Structured Design (SA/SD):
- Time-Consuming: The SA/SD method can be time-consuming, especially for large and complex systems, as it requires a significant amount of documentation and analysis.
- Inflexibility: Once a system has been designed using the SA/SD method, it can be difficult to make changes to the design, as the process is highly structured and documentation-intensive.
- Limited Iteration: The SA/SD method is not well-suited for iterative development, as it is designed to be completed in a single pass.