ITFM - Module 3

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 18

INFORMATION TECHNOLOGY FOR MANAGERS

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

System Analysis involves several stages that collectively contribute to


understanding, defining, and designing an information system. Here are the key
stages:
1. Identification of Objectives and Constraints:
Understanding Goals: This stage involves identifying and defining the primary
objectives and goals of the system being analyzed. Constraints, limitations, and
boundaries are also established.
2. Gathering Information:
Data Collection: Information gathering involves interacting with stakeholders,
conducting interviews, surveys, and studying existing documentation to collect
data about the current system, user needs, and requirements.
3. Feasibility Study:
Assessment of Feasibility: A feasibility study is conducted to evaluate the
viability of the proposed system. Technical, operational, economic, and schedule
feasibility are assessed to determine if the system is worth developing.
4. Defining Requirements:
Requirement Analysis: This stage involves analyzing and documenting gathered
information to define functional and non-functional requirements. It includes
creating use cases, user stories, and requirement specifications.
5. System Design:
Architectural Design: In this stage, the system's architecture and design are
planned based on the requirements identified earlier. It includes defining system
components, interfaces, databases, and algorithms.
6. Prototyping (if applicable):
Prototype Development: Sometimes, a prototype or a simplified version of the
system is created to demonstrate key features and gather feedback from
stakeholders before the full system development.
7. System Modeling:
Creating Models: System models (such as data flow diagrams, entity-relationship
diagrams, UML diagrams) are developed to represent system components,
processes, data flow, and interactions.
8. Validation and Verification:
Checking System Suitability: The developed system or system design is validated
and verified against the defined requirements to ensure that it meets the intended
objectives and functions correctly.
9. Documentation:
Preparing Documentation: Comprehensive documentation including system
specifications, user manuals, technical documents, and design documents are
created to aid in system development and future maintenance.
10. Communication and Presentation:
Presenting Findings: Analysis findings, requirements, designs, and
recommendations are communicated to stakeholders through reports,
presentations, or other suitable means for feedback and approval.
11. Review and Evaluation:
Assessing Progress: Regular reviews and evaluations are conducted to ensure that
the analysis process is on track, aligns with stakeholder expectations, and remains
adaptable to changes.
12. Finalizing System Proposal:
System Proposal Development: A comprehensive system proposal, including all
the findings, requirements, designs, and cost estimates, is created for approval
before moving forward with system development.
These stages are iterative and interconnected, allowing for refinement and
adjustments throughout the System Analysis process. Effective communication
with stakeholders, thorough documentation, and adherence to best practices are
crucial for successful system analysis outcomes.
Structured SAD and tools like DFD
Structured System Analysis and Design (SSAD) is a systematic approach used in
system analysis and design, focusing on breaking down a system into smaller,
manageable parts to understand its functionalities. It emphasizes the use of
structured techniques and graphical tools to represent system components, data
flow, processes, and interactions. One of the prominent tools used in SSAD is the
Data Flow Diagram (DFD).
Data Flow Diagram (DFD):
Purpose: DFDs visualize the flow of data within a system, illustrating how
information moves between processes, data stores, and external entities.
Elements: DFDs consist of various symbols:
Processes: Represent actions or transformations applied to data.
Data Flows: Represent the movement of data between components.
Data Stores: Represent where data is stored within the system.
External Entities: Represent sources or destinations of data outside the system
boundary.
Levels of DFDs: DFDs can be created at different levels of abstraction:
Context Diagram (Level 0): Provides an overview of the entire system, showing
external entities and the system boundary.
Level 1 DFD: Breaks down the context diagram into more detailed processes and
data flows.
Subsequent Levels: Further decomposition of processes and data flows for more
detailed understanding.
Advantages of DFDs and Structured SSAD:
Simplicity and Clarity: DFDs offer a simple and clear visual representation of
system processes and data flow, aiding in understanding system functionalities.
Structured Approach: SSAD promotes a systematic approach to analysis and
design, ensuring that each component and process is well-defined and
understood.
Ease of Communication: DFDs serve as a communication tool between
stakeholders, facilitating discussions about system requirements and
functionalities.
Hierarchical Decomposition: DFDs allow for hierarchical decomposition,
enabling a top-down exploration of the system's functionalities.
Identification of Redundancies and Inefficiencies: They help in identifying
redundancies, inefficiencies, and potential bottlenecks within the system.
Tools Used for DFD Creation:
Pen and Paper/Whiteboards: Initially, simple DFDs can be drawn manually
during brainstorming or early stages of analysis.
Computer-Aided Software Engineering (CASE) Tools: Software tools like
Microsoft Visio, Lucidchart, and various dedicated DFD drawing tools allow for
creating, editing, and sharing DFDs electronically.
Structured Analysis Tools: Some tools are specifically designed for structured
analysis, offering features tailored for creating DFDs and supporting SSAD
methodologies.
DFDs are an integral part of the SSAD methodology, providing a visual
representation that aids analysts and stakeholders in understanding and designing
complex systems in a structured manner.
Context Diagram Decision Table and Structured Diagram

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

The role of a System Analyst is crucial in the development and enhancement of


information systems within an organization. Their responsibilities encompass
various aspects of understanding, analyzing, and designing systems to meet
business needs. Here are the key roles and responsibilities of a System Analyst:
Roles:
Requirement Analyst:
Gather, analyze, and document user requirements by collaborating with
stakeholders to understand their needs.
Translate business requirements into technical specifications and system
functionalities.
System Designer:
Design system architecture, including data models, database structures, user
interfaces, and system workflows based on gathered requirements.
Create system models and diagrams (such as DFDs, UML diagrams) to visualize
system components and interactions.
Technical Liaison:
Bridge the gap between technical teams and business stakeholders by translating
business needs into technical solutions and vice versa.
Collaborate with developers, architects, and other IT professionals to ensure the
proposed system aligns with technical capabilities.
Problem Solver and Innovator:
Identify system issues, inefficiencies, or bottlenecks and propose innovative
solutions or enhancements.
Analyze current systems for potential improvements, upgrades, or technological
advancements.
Project Coordinator:
Act as a coordinator between different teams, managing project timelines,
milestones, and deliverables.
Ensure that project objectives are met within specified timelines and budgets.
Responsibilities:
Requirement Elicitation:
Engage with stakeholders to understand and document their needs, business
processes, and objectives.
Analysis and Documentation:
Analyze gathered requirements to identify system functionalities, data flow, and
user interactions.
Create detailed requirement specifications, use cases, user stories, and system
documentation.
System Design and Development Support:
Assist in system design by creating system models, interface designs, and
collaborating with development teams during the implementation phase.
Testing and Quality Assurance:
Participate in system testing, ensuring that the implemented system meets the
specified requirements and quality standards.
User Training and Support:
Conduct user training sessions and provide support during system
implementation to ensure users understand and adapt to the new system.
Continuous Improvement:
Continuously assess system performance, gather user feedback, and suggest
improvements or enhancements to optimize system functionalities.
Risk Management:
Identify potential risks associated with system implementation and propose risk
mitigation strategies.
Documentation and Communication:
Maintain accurate and up-to-date documentation related to system requirements,
designs, and changes.
Communicate effectively with stakeholders, presenting findings, progress
reports, and recommendations.
System Analysts play a vital role in the success of information system projects by
effectively bridging the gap between business needs and technical solutions. They
require a blend of technical expertise, analytical skills, communication abilities,
and a thorough understanding of both business and IT domains.
Roles and Responsibilities of Database Administrator
Database Administrators (DBAs) play a critical role in managing and maintaining
an organization's databases. They are responsible for ensuring the integrity,
security, availability, and performance of the databases that store crucial data for
the organization. Here are the key roles and responsibilities of a Database
Administrator:
Roles:
Database Designer:
Design and plan the structure of databases to ensure efficient data storage,
retrieval, and manipulation.
Create database schemas, tables, relationships, and optimize database
performance.
Database Implementer:
Install and configure database management systems (DBMS) and database
software.
Implement database security measures and access controls.
Data Custodian:
Ensure the integrity, consistency, and security of the data stored in databases.
Oversee data backups, disaster recovery planning, and implement data retention
policies.
Performance Tuner:
Monitor database performance, identify and resolve performance bottlenecks,
and optimize query execution.
Fine-tune indexing, caching, and other parameters to improve system
performance.
Security Administrator:
Manage database security by setting up user access controls, permissions, and
data encryption.
Implement and enforce security policies and protocols to protect sensitive data.
Troubleshooter and Problem Solver:
Troubleshoot database issues, diagnose and resolve database-related problems or
errors.
Perform root cause analysis and implement corrective measures to prevent
recurrence.
Capacity Planner:
Estimate future data storage needs, plan for database growth, and allocate
resources accordingly.
Scale databases and infrastructure to accommodate increasing data volumes and
user loads.
Responsibilities:
Database Installation and Configuration:
Install, configure, and upgrade database software and related tools, ensuring
proper setup and optimization.
Database Maintenance:
Perform routine maintenance tasks such as backups, recovery, database
reorganization, and patch installations.
Conduct regular health checks to ensure database integrity and reliability.
Data Security and Access Control:
Establish and enforce data security policies, manage user access permissions, and
implement encryption and authentication mechanisms.
Performance Monitoring and Optimization:
Monitor database performance metrics, analyze trends, and optimize query
execution for efficiency.
Fine-tune database parameters, indexes, and SQL queries to improve overall
performance.
Backup and Recovery Planning:
Develop and implement backup and disaster recovery plans to safeguard critical
data and ensure business continuity in case of failures or disasters.
Documentation and Reporting:
Maintain comprehensive documentation related to database schemas,
configurations, procedures, and security policies.
Generate reports on database performance, usage statistics, and security audits.
Collaboration and Communication:
Collaborate with developers, system administrators, and stakeholders to
understand database requirements and provide necessary support.
Communicate database-related updates, changes, and maintenance schedules to
relevant stakeholders.
Database Administrators are integral to maintaining the integrity, security, and
performance of an organization's data infrastructure. They require a combination
of technical expertise, problem-solving skills, attention to detail, and the ability
to adapt to evolving technologies and security challenges.
Roles and Responsibilities of Database Designer
The role of a Database Designer involves conceptualizing, planning, and
designing the structure and organization of databases to ensure efficient data
storage, retrieval, and management. Their responsibilities revolve around creating
robust database schemas and structures that align with an organization's needs.
Here are the key roles and responsibilities of a Database Designer:
Roles:
Database Architect:
Develop database architectures that accommodate current and future data
requirements, ensuring scalability, performance, and reliability.
Design data models, schemas, and frameworks that support the organization's
data management needs.
Data Modeler:
Create conceptual, logical, and physical data models based on business
requirements, ensuring data integrity and consistency.
Define relationships between data entities, attributes, and tables to facilitate
efficient data storage and retrieval.
Schema Designer:
Design database schemas, tables, indexes, views, and constraints to organize and
structure data effectively.
Normalize databases to reduce redundancy and maintain data consistency and
integrity.
Metadata Manager:
Manage metadata definitions and repositories, documenting data structures,
relationships, and definitions for easy reference and maintenance.
Ensure accurate and up-to-date metadata to support data governance and data
lineage.
Responsibilities:
Requirement Analysis:
Collaborate with stakeholders, business analysts, and users to gather and analyze
data requirements for designing databases.
Understand business processes and translate business requirements into data
models and database designs.
Data Modeling and Design:
Create conceptual, logical, and physical data models using tools like Entity-
Relationship Diagrams (ERDs), UML diagrams, or other modeling techniques.
Define database entities, attributes, relationships, and constraints to represent the
data structure accurately.
Normalization and Optimization:
Apply normalization techniques to eliminate data redundancy and improve
database performance.
Optimize database designs by fine-tuning indexing, partitioning, and other
strategies for efficient data retrieval and storage.
Documentation and Standards:
Maintain comprehensive documentation of database designs, schemas, data
dictionaries, and standards for easy reference and understanding.
Ensure adherence to industry best practices and data modeling standards while
designing databases.
Collaboration and Communication:
Collaborate with developers, database administrators, and other stakeholders to
ensure alignment between database designs and system requirements.
Communicate database design principles, guidelines, and recommendations to
relevant teams and stakeholders.
Quality Assurance and Validation:
Conduct reviews and validations of database designs to ensure they meet
specified requirements, standards, and performance criteria.
Perform quality checks to validate data integrity, consistency, and accuracy within
the designed databases.
Continuous Improvement:
Stay updated with emerging technologies, trends, and advancements in database
design to incorporate best practices and improve existing designs.
Database Designers play a pivotal role in creating efficient, scalable, and well-
organized databases that serve as the foundation for reliable data management
within organizations. They require a combination of analytical skills, domain
knowledge, proficiency in data modeling tools, and a deep understanding of
database management principles to excel in their role.

You might also like