ITFM - Module 3
ITFM - Module 3
MODULE – 3
System Analysis and Development
System Analysis and Development (SAD), also known as System Analysis and
Design (SAD), is a structured approach to developing and implementing high-
quality information systems. It involves analyzing a system's requirements,
designing its architecture, and then implementing and testing the solution.
Key Phases in System Analysis and Development:
Planning: This phase involves defining the project scope, goals, and objectives.
It includes feasibility studies to determine if the proposed system is practical and
beneficial.
Analysis: During this phase, the current system is studied, and requirements for
the new system are gathered from stakeholders. The focus is on understanding
user needs, processes, and constraints.
Design: Based on the gathered requirements, system designers create a blueprint
for the new system. This includes creating architectural diagrams, database
designs, user interface designs, etc.
Implementation: The actual coding or development of the system takes place in
this phase. Developers write code, integrate different components, and build the
system.
Testing: The system is thoroughly tested to identify and fix any defects or issues.
This includes functional testing, performance testing, security testing, etc.
Deployment: Once testing is successful, the system is deployed into the
production environment. Users are trained, and the system goes live.
Maintenance: After deployment, the system requires maintenance and support.
This phase involves fixing bugs, making enhancements, and ensuring the system
operates smoothly.
Methods and Techniques in SAD:
Structured Analysis and Design: This approach breaks down the system into
smaller, manageable parts to understand its functionalities.
Object-Oriented Analysis and Design (OOAD): Focuses on modeling the system
as a group of interacting objects, each with its own responsibilities.
Prototyping: Building an initial, scaled-down version of the system to gather
feedback and refine requirements.
Agile Methodologies: Iterative and incremental development methods that
promote flexibility and adaptability in responding to changes.
Unified Modeling Language (UML): A standardized modeling language used to
visualize the design of a system.
Tools used in SAD:
CASE (Computer-Aided Software Engineering) tools: Software tools used to
automate various stages of the system development process, such as diagramming
tools, code generators, etc.
System Analysis and Development is crucial in ensuring that information systems
meet the needs of users and organizations, improving efficiency, accuracy, and
overall performance. It involves a combination of technical expertise, analytical
thinking, and effective communication with stakeholders to deliver successful
systems.
Need for System Analysis
System Analysis is essential for various reasons, playing a crucial role in the
success of developing and implementing information systems. Here are some key
reasons highlighting the need for System Analysis:
1. Understanding User Requirements:
Gathering and Defining Needs: System Analysis helps in comprehensively
understanding and defining user requirements. It involves interaction with
stakeholders to gather, document, and analyze their needs and expectations from
the system.
2. Identifying Problems and Opportunities:
Problem Identification: It helps in identifying issues and inefficiencies within the
existing system. This process assists in recognizing opportunities for
improvement and innovation.
3. Designing Effective Solutions:
Designing Solutions: System Analysis aids in designing solutions that address the
identified needs and align with business objectives. It involves creating system
blueprints, architecture, and functionalities based on gathered requirements.
4. Cost-Effectiveness and Feasibility:
Feasibility Studies: It helps in conducting feasibility studies to evaluate the
practicality and viability of implementing a new system. This includes assessing
technical, economic, operational, and scheduling feasibility to ensure the project's
success.
5. Minimizing Risks:
Risk Assessment: System Analysis assists in identifying potential risks associated
with the development and implementation of a new system. This enables
proactive risk mitigation strategies to be put in place.
6. Enhancing Efficiency:
Optimizing Processes: By analyzing current processes, System Analysis aims to
streamline operations, eliminate redundancies, and enhance overall efficiency
within an organization.
7. Improving Decision-Making:
Informed Decision-Making: It provides valuable insights and data that enable
stakeholders to make informed decisions regarding the system's design,
development, and implementation.
8. Ensuring User Satisfaction:
User-Centric Approach: Understanding user requirements and involving
stakeholders in the analysis process ensures that the final system meets user
expectations, enhancing user satisfaction.
9. Facilitating Development and Implementation:
Guiding Development: System Analysis provides a clear roadmap and
requirements documentation that guide developers during system development
and implementation phases.
10. Adaptability and Future-Proofing:
Scalability and Flexibility: By considering future needs and potential changes,
System Analysis helps in designing systems that are adaptable and can
accommodate future enhancements or modifications.
In essence, System Analysis is critical for ensuring that information systems meet
the needs of users and organizations effectively. It helps in creating well-
designed, efficient, and cost-effective solutions that contribute to the overall
success and competitiveness of an organization.
Stages in System Analysis
Context diagrams, decision tables, and structured diagrams are essential tools
used in System Analysis and Design (SAD) methodologies like Structured
System Analysis and Design Method (SSADM) to depict and analyze different
aspects of a system. Let's explore each of these components:
Context Diagram:
Purpose: A context diagram is the highest level of data flow diagram (DFD) that
provides an overview of the entire system. It depicts the system as a single process
and shows interactions between the system and external entities.
Elements:
Main System: Represented as a single process.
External Entities: Displayed around the main system, showcasing interactions
(inputs/outputs) with the system.
Usage: It helps stakeholders understand the system's scope, boundary, and
connections with external entities without detailing internal processes.
Decision Table:
Purpose: A decision table is a structured representation of different conditions and
corresponding actions or outcomes within a system or a process.
Elements:
Conditions: Represents different criteria or factors.
Actions/Outcomes: Corresponding actions or results based on combinations of
conditions.
Usage: It is used to systematically define and analyze complex sets of conditions
and actions, aiding in decision-making processes within a system.
Structured Diagram:
Purpose: A structured diagram, in the context of SSADM or similar
methodologies, typically refers to diagrams used to illustrate structured systems
analysis or design, often incorporating various visual representations like DFDs,
data models, or process specifications.
Elements:
DFDs: Represent data flow between system components.
Data Models: Illustrate the structure of the system's data.
Process Specifications: Detail processes, inputs, outputs, and transformations.
Usage: It helps in representing and detailing different aspects of the system,
showing how data moves through processes and interacts within the system.
Relationships:
Context Diagram and Structured Diagram: The context diagram is often a part of
the structured diagram, providing an overview of the system within the larger
structured analysis or design.
Decision Table in Structured Analysis: Decision tables might be used within the
structured analysis phase to define rules, conditions, and actions related to various
aspects of the system's behavior.
These tools and diagrams serve different purposes within the System Analysis
and Design process. They aid in understanding, defining, and documenting
system requirements, processes, and interactions, facilitating effective
communication among stakeholders and ensuring a structured approach to system
development.
System Development Models
System development models, also known as Software Development Life Cycle
(SDLC) models, are frameworks used to structure, plan, and control the software
or system development process. These models provide a systematic approach to
create high-quality software by defining phases, activities, and deliverables
required in each stage of development. Here are some prominent system
development models:
1. Waterfall Model:
Sequential and Linear: Divided into distinct phases, with each phase flowing
downwards like a waterfall, making it easy to understand and manage.
Phases: Sequential phases include requirements gathering, design,
implementation, testing, deployment, and maintenance.
Advantages: Clear structure, easy to manage, and well-suited for projects with
stable requirements.
Disadvantages: Lack of flexibility to accommodate changes once a phase is
completed, potential for late issue detection, and long delivery times.
2. Agile Model:
Iterative and Incremental: Breaks the development process into smaller iterations
called sprints, focusing on continuous improvement and flexibility.
Adaptive Approach: Emphasizes collaboration, adaptability to changes, customer
feedback, and delivering working software in shorter cycles.
Advantages: Flexibility to accommodate changes, customer involvement
throughout the process, and early delivery of working software.
Disadvantages: Requires active customer involvement, may face challenges with
large teams or complex projects, and documentation might be limited.
3. Spiral Model:
Iterative and Risk-Driven: Combines elements of the waterfall model with
iterative development by repeatedly cycling through stages while addressing
risks.
Phases: Includes planning, risk analysis, engineering, and evaluation in a series
of loops or spirals.
Advantages: Emphasis on risk management, allows for early user feedback, and
accommodates changes during development.
Disadvantages: Complex to manage, can be time-consuming, and cost estimation
may be challenging.
4. V-Model (Verification and Validation Model):
Sequential and Corresponding Phases: Each development phase has a
corresponding testing phase, forming a V-shaped structure.
Phases: Requirements analysis, system design, detailed design, coding, testing,
and deployment.
Advantages: Emphasizes testing at each phase, ensures requirements traceability,
and supports early defect detection.
Disadvantages: Can be rigid like the waterfall model, limited flexibility for
changes, and issues may surface late in the development cycle.
5. Incremental Model:
Step-by-Step Development: Divides the project into smaller parts/modules and
develops them sequentially, integrating each module incrementally.
Phases: Each iteration adds new functionalities or features to the previous
version.
Advantages: Early partial deliveries, allows for easier testing and integration, and
easier to manage and test smaller modules.
Disadvantages: Requires careful planning and design, and potential for
integration issues if module interfaces are not well-defined.
6. RAD (Rapid Application Development):
Rapid Iterative Prototyping: Focuses on rapid prototyping and quick feedback
from users to refine and develop the system.
Phases: Requirements planning, user design, construction, and cutover.
Advantages: Faster development, user involvement throughout the process, and
adaptable to changes.
Disadvantages: Relies heavily on user involvement, might compromise on long-
term scalability and maintainability.
7. Hybrid Models:
Combination of Different Models: Organizations might use a mix of various
models to suit their specific project needs, known as hybrid or tailored models.
Tailoring to Project Requirements: Combining different aspects of multiple
models to address specific challenges or capitalize on their strengths.
Each system development model has its own set of strengths, weaknesses, and
suitability for different project types, sizes, and requirements. Organizations often
choose a model or adapt a hybrid approach based on the project's complexity,
timeline, budget, and stakeholder needs.
Prototype Model
The Prototype Model is an iterative development model where a prototype (a
preliminary version of a system or software) is built, evaluated, refined, and
improved in multiple iterations based on feedback and requirements. It's
primarily used when requirements are not well understood or are subject to
change. The Prototype Model aims to better understand user needs and
expectations by providing a working model early in the development process.
Roles and Responsibilities of System Analyst