SAD PPt-1,2,3
SAD PPt-1,2,3
Shashemene
Campus
DEPARTMENTS Of BUSINESS
MANAGEMENT
SYTEM ANALYSIS AND
DESIGN
chapter one
SYSTEM: AN OVERVIEW
• "SAD" stands for System Analysis and Design.
• A system is a set of interrelated components or entities that work together
to achieve a common goal or purpose.
• A system is an organized collection of components that interact and
function together to perform a specific function or achieve a particular
goal. It can be defined by its boundaries, inputs, outputs, processes, and
interactions with its environment.
• System Analysis: Understand and specify in detail what a system should
do.
• System Design: Develop a blueprint for building the system.
• System Analysis and Design is a process used in information systems and
software engineering to analyze and design systems that meet specific
requirements.
IMPORTANCE O SAD IN BUMA
• System Analysis and Design (SAD) is crucial for the Business
Management department for several reasons:
Improves Decision-Making: Effective SAD helps in designing systems
that provide accurate and timely information, helping managers in making
informed decisions.
Increases Efficiency: By analysing current systems and designing new
ones, businesses can streamline processes, reduce redundancies, and
improve operational efficiency.
Supports Strategic Planning: SAD helps in aligning IT systems with
business goals, ensuring that technology supports the company’s strategic
objectives.
Enhances Competitive Advantage: Well-designed systems can give a
business a competitive edge by enabling faster response times, better
customer service, and more efficient operations.
Facilitates Innovation: Analysing and designing systems can uncover new
opportunities for innovation, helping the business adapt to changing market conditions
and customer needs.
Manages Risk: Effective SAD helps identify potential risks in systems and processes,
allowing businesses to implement controls and mitigate those risks.
Improves Communication: Clear system requirements and designs improve
communication between stakeholders, including business managers, IT staff, and end-
users, leading to better project outcomes.
Optimizes Resource Use: By understanding and designing efficient systems,
businesses can optimize the use of their resources, including time, money, and
personnel.
Ensures System Integration: SAD ensures that new systems integrate well with
existing ones, providing a cohesive technological environment that supports business
processes.
Supports Change Management: Proper analysis and design facilitate smoother
transitions during system upgrades or new implementations, reducing disruptions and
increasing acceptance among users.
In General SAD Key concepts :-
Feasibility Study: Determining if a project is viable.
Requirement Gathering: Collecting detailed user needs.
System Modelling: Using diagrams and models to represent the
system.
Design Specifications: Detailed blueprints for implementation.
Phases of System Development Life Cycle (SDLC):
Planning: Define objectives, scope, and risks.
Analysis: Gather requirements, define functions, and document.
Design: Develop architecture, choose technologies.
Implementation: Write code, integrate systems.
Testing: Verify the system meets requirements.
Deployment: Launch the system into production.
Maintenance: Ongoing support and updates.
• Inputs:
Components of a System
• Definition: Resources or elements that are put into the system to be processed.
• Examples:
• In a business information system, inputs could include raw data, user queries, or transaction details.
• In a manufacturing system, inputs might be raw materials, energy, and labor.
• Processes (Processing Mechanisms):
• Definition: The operations or activities that transform inputs into outputs.
• Examples:
• In a computer system, processing involves calculations, data analysis, or the execution of programs.
• In a service system, processing might include customer interactions, data handling, or service delivery
steps.
• Outputs:
• Definition: The results or products generated by the system after processing inputs.
• Examples:
• In an information system, outputs could be reports, documents, or actionable insights.
• In a manufacturing system, outputs are the finished goods or products.
• Feedback:
• Definition: Information about the output that is sent back into the system to help
maintain or improve performance.
• Examples:
• In a business system, feedback might include customer satisfaction ratings, sales reports, or error
logs.
• In a biological system, feedback could be the body's response to changes in the environment, like
shivering when cold.
• Control:
• Definition: Mechanisms that monitor and regulate the processes within the system to
ensure it operates as intended.
• Examples:
• In a computer system, control mechanisms could include error-checking routines, security
protocols, and system updates.
• In a production system, control might involve quality assurance processes and adherence to
operational standards.
Types of system
Closed Systems: Systems that operate with minimal
interaction with their environment.
• Examples: A sealed laboratory experiment or a computer
running in a standalone mode.
Open Systems: Systems that interact with their environment,
exchanging inputs and outputs with external elements.
• Examples: Ecosystems, economic systems, and
organizational systems.
• Information System (IS): A system that collects, processes,
stores, and disseminates information for decision-making,
coordination, and control.
• Key Components:
• Hardware: Physical devices like computers and networking
equipment.
• Software: Programs and applications that process data.
• Data: Raw facts and figures that are processed into information.
• People: Users and IT professionals who interact with the
system.
• Processes: Procedures and operations for data collection,
processing, and output generation.
Functions of Information Systems
• Data Processing: Converting data into meaningful information.
Verifying that the system meets all specified requirements and performs as expected.
5. Implementation and Maintenance:
Deploying the system into a live environment and providing ongoing support to address any
issues or changes.
Approaches to System Analysis and
Design
• Approaches to System Analysis and Design (SAD) are
methodologies and frameworks used to plan, analyze, design,
and implement information systems.
• These approaches guide the process of identifying system
requirements, designing the system structure, and ensuring that
the final product meets user needs.
1. Structured Analysis and Design
This approach emphasizes a top down, step-by-step process.
It focuses on dividing the system into smaller, manageable components and uses models
and diagrams to represent these components and Key Techniques are:-
Data Flow Diagrams (DFDs): Used to represent the flow of data through the system and
how input data is transformed into output.
Entity Relationship Diagrams (ERDs): Used to model the data and its relationships
within the system.
Structured English and Decision Tables: Used for specifying the logic of processes.
Advantages:
Clear, structured methodology that is easy to understand and communicate.
Focus on detailed documentation.
Disadvantages:
Can be rigid and inflexible, making it difficult to adapt to changes.
May not be suitable for systems with rapidly changing requirements.
2. Object-oriented Analysis and Design (OOAD)
• This approach views the system as a collection of interacting objects, where each object
represents a real-world entity with attributes (data) and behaviors (methods) and Key
Techniques are:-
Unified Modelling Language (UML): A standardized visual language used to model
object-oriented systems, including class diagrams, use case diagrams, sequence diagrams,
etc.
Encapsulation, Inheritance, and Polymorphism: Core principles of object-oriented
design that promote reusability and modularity.
Advantages:
Promotes reusability through the use of objects and classes.
Easier to manage complex systems by breaking them down into interacting objects.
Better alignment with modern programming languages like Java, C++, and Python.
Disadvantages:
• Can be complex and require a steep learning curve.
• May involve more upfront planning and design time.
3. Rapid Application Development (RAD)
• RAD focuses on quickly building and iterating prototypes to meet user needs.
• It emphasizes speed and user involvement, making it suitable for projects with tight deadlines and changing
requirements and Key Techniques are:-
1. Prototyping: Building working models of the system quickly to gather user feedback and refine the
system iteratively.
2. Joint Application Development (JAD): Involves collaboration between users and developers during the
design phase to ensure that the system meets user needs.
Advantages:
Faster development cycle, allowing for quicker delivery of functional systems.
High level of user involvement ensures that the system aligns with user expectations.
Disadvantages:
May result in less robust systems due to the focus on speed.
Not suitable for very large or complex systems that require thorough analysis and design.
4. Agile Methodology
• Agile is an iterative and incremental approach that emphasizes flexibility, collaboration, and
customer satisfaction.
• It promotes the delivery of small, working increments of the system and adapts to changes
throughout the development process and Key Techniques are:-
Scrum: A popular Agile framework that uses sprints (short development cycles) to deliver
incremental improvements.
Extreme Programming (XP): Focuses on technical excellence and customer satisfaction through
practices like pair programming, continuous integration, and test-driven development.
Advantages:
• High adaptability to changing requirements.
• Continuous user involvement ensures that the system evolves in line with user needs.
• Frequent delivery of working software provides immediate value.
Disadvantages:
• Can be challenging to manage for large projects without clear requirements.
• Requires strong collaboration and communication among team members.
5. Waterfall Model
• The Waterfall model is a linear, sequential approach where each phase of the system
development life cycle (SDLC) must be completed before moving on to the next. It is
one of the oldest and most traditional approaches to system development and Key
Techniques are:-
• Phases: Requirements gathering, system design, implementation, testing, deployment,
and maintenance.
• Documentation: Extensive documentation at each phase ensures that the system is well
documented and requirements are clearly understood.
Advantages:
• Simple and easy to understand and manage.
• Phases are well-defined, making it easy to track progress.
Disadvantages:
• Inflexible, making it difficult to accommodate changes once the project is underway.
• Late discovery of errors can be costly, as testing only occurs after the implementation
phase.
6. Spiral Model
• The Spiral model combines iterative development (as in Agile) with the systematic
aspects of the Waterfall model.
• It is particularly useful for large, complex, and high-risk projects and Key Techniques
are:-
• Iterations (Spirals): The project is divided into small segments, and each segment
undergoes planning, risk analysis, engineering, and evaluation in a spiral manner.
• Risk Management: A key focus of the Spiral model, where risks are identified and
mitigated in each iteration.
Advantages:
• Strong emphasis on risk assessment and management.
• Allows for iterative refinement of the system, accommodating changes and improving
accuracy over time.
Disadvantages:
• Can be complex and difficult to manage due to its iterative nature.
• Requires a high level of expertise in risk management.
7. V-Model (Verification and Validation Model)
• The V-Model is an extension of the Waterfall model that emphasizes validation and
verification at each stage of development.
• The development process is mapped in a V-shape, with the left side representing the
downward flow of development activities and the right side representing the upward
flow of testing activities and Key Techniques are:-
• Verification: Ensures that each phase’s output meets the requirements specified in the
previous phase.
• Validation: Ensures that the final product meets user needs and expectations.
Advantages:
• Strong emphasis on testing and quality assurance throughout the development process.
• Clear and well-defined stages, making it easy to track progress and identify issues early.
Disadvantages:
• Rigid and inflexible, making it difficult to accommodate changes.
• Not suitable for projects with unclear or evolving requirements.
• The choice of approach to System Analysis and Design
depends on various factors, including the size and
complexity of the project, the stability of the
requirements, the timeline, and the resources available.
• Each approach has its strengths and weaknesses, and
understanding these can help in selecting the most
appropriate methodology for a given project.
Approach to System Development
• Approaches to System Development are methodologies and
strategies used to plan, design, build, test, and deploy information
systems.
• Each approach offers a different way of organizing the work,
managing resources, and ensuring that the final system meets user
requirements.
• The choice of approach depends on factors like project size,
complexity, risk, timeline, and user involvement.
Software Engineering Process
• The software engineering process encompasses a set of principles,
methodologies, and practices used to design, develop, test, and maintain
software.
Key Phases:
1. Requirements Engineering:
Gathering and analysing user needs.
Documenting and validating requirements.
2. Design:
Architectural Design: Defines the system structure, modules, and their relationships.
Detailed Design: Focuses on the internal workings of modules, data structures, and
algorithms.
3. Implementation:
Translating design into code.
Integration of modules to form a complete system.
4. Testing:
1. Unit Testing: Testing individual components.
2. Integration Testing: Testing interactions between components.
3. System Testing: Testing the entire system against requirements.
4. Acceptance Testing: Validating the system with end-users.
5. Maintenance:
1. Corrective Maintenance: Fixing bugs discovered after deployment.
2. Adaptive Maintenance: Modifying the system to adapt to changes in the environment.
3. Perfective Maintenance: Enhancing system performance or functionality.
4. Preventive Maintenance: Making changes to prevent future problems.
Software Quality Assurance (SQA): Ensuring that software processes and
products meet quality standards.
Version Control: Managing changes to software artefacts over time.
Documentation: Creating comprehensive records of the software
development process, design decisions, and code.