System analysis and design SAD
System Analysis and Design (SAD) is a structured approach to solving problems and creating
efficient, effective systems, typically in the context of software engineering or information
systems development. It involves understanding the requirements of a system, planning its
design, and creating the necessary components for it to function properly. Here’s an overview of
the key aspects:
1. System Analysis
System analysis is the process of studying and understanding the requirements, structure, and
functionality of a system. It involves examining the current system (if any) and identifying the
problems, inefficiencies, or areas for improvement. The goal is to gather all necessary
information to design a better system.
Key steps in System Analysis:
• Requirement Gathering: Understanding what the system needs to do. This includes
functional and non-functional requirements (e.g., performance, security, usability).
• Feasibility Study: Assessing if the proposed system is technically, financially, and
operationally feasible.
• System Modeling: Creating visual representations of the system (e.g., flowcharts, Data
Flow Diagrams, UML diagrams).
• System Requirements Specification: Documenting the functional and technical
requirements of the system.
Techniques:
• Interviews and Surveys with users and stakeholders.
• Observation of current system usage.
• Document Analysis for reviewing existing reports and data.
• Prototyping to provide early, working models for user feedback.
2. System Design
System design is the phase where the detailed blueprint of the system is created based on the
findings from the analysis phase. This includes defining system components, data flow, and how
the system will operate.
Key Steps in System Design:
• High-Level Design (HLD): Defines the overall system architecture, including hardware,
software, databases, network components, and how they interact. This is typically done
using block diagrams or architecture diagrams.
• Low-Level Design (LLD): Focuses on detailed aspects, like database schemas, APIs,
user interface design, and other components.
• Prototyping: Sometimes, a working prototype is created to test the design and gather
user feedback before full implementation.
• Design Specification: Creating detailed documentation that outlines the design decisions,
system components, and interfaces.
Design Considerations:
• Scalability: The ability to handle growth in users, data, and transactions.
• Security: Ensuring data protection and system security.
• Performance: Optimizing for speed, responsiveness, and reliability.
• Usability: Designing an intuitive, easy-to-use interface.
• Maintainability: Creating a system that can be easily updated and modified in the future.
3. Implementation
This is the phase where the system design is translated into actual code or configurations. The
system is developed, tested, and deployed. This phase involves:
• Coding and developing the system.
• Unit testing and integration testing.
• Debugging and fixing errors.
4. System Testing and Validation
This phase checks if the system works as expected. It involves multiple levels of testing,
including:
• Unit Testing: Testing individual components or modules.
• Integration Testing: Testing how different components interact.
• System Testing: Testing the entire system for functionality, performance, and security.
• Acceptance Testing: Getting feedback from users to confirm the system meets their
needs.
5. Deployment
Once the system is fully developed and tested, it is deployed for use. This may involve:
• Training users.
• Setting up hardware/software.
• Installing the system in a live environment.
6. Maintenance
Once the system is live, ongoing support and maintenance are crucial. This involves:
• Bug fixing and troubleshooting.
• System updates and patches.
• Performance monitoring to ensure continued efficiency.
• User support for any issues or questions.
Key Tools and Methodologies in SAD:
• Structured Systems Analysis and Design Method (SSADM): A formalized
methodology that focuses on logical system design, using models like Data Flow
Diagrams (DFDs) and Entity-Relationship Diagrams (ERDs).
• Unified Modeling Language (UML): A standardized way to visualize system design
using various diagram types, such as class diagrams, use case diagrams, sequence
diagrams, and activity diagrams.
• Agile Methodology: A more flexible, iterative approach where requirements evolve and
development happens in small, manageable chunks. It’s often combined with frameworks
like Scrum or Kanban.