CREATED BY: AARYAN JHA
System Analysis & Design (SAD) - BCA 3rd Sem (Tribhuvan University) - Exam
Preparation Guide
Unit 1: System Development Fundamentals
1. Define System. Explain components of system including its characteristics.
System Definition: A system is a set of interrelated components that work together
to achieve a common objective. It transforms inputs into outputs.
Components of a System:
o Inputs: Resources (data, materials, energy) entered into the system.
o Outputs: The results or products generated by the system.
o Processor: The part of the system that transforms inputs into outputs.
o Control: The mechanism that guides the system to achieve its goals.
o Feedback: Information about the output that is used to adjust the input or
process.
o Boundaries: Delineate the system from its environment.
o Environment: Everything outside the system that interacts with it.
Characteristics of a System:
o Organization: Components are arranged in a specific way.
o Interdependence: Components rely on each other.
o Integration: Components work together seamlessly.
o Central Objective: All components contribute to a shared goal.
o Inputs and Outputs: Systems take inputs and produce outputs.
o Feedback: Essential for control and adjustment.
o Flexibility: Ability to adapt to changes.
o Ease of Use: User-friendly.
2. Define CASE tool. Explain different types of CASE tools that can be used in different
phases of SDLC.
CASE Tool Definition: Computer-Aided Software Engineering (CASE) tools are
software applications that automate and support various activities of the software
development life cycle (SDLC). They aim to improve productivity, quality, and
maintainability of software.
Types of CASE Tools (and SDLC Phases):
o Upper CASE Tools (Front-End CASE): Support early phases (planning,
analysis, design).
Examples: Data flow diagram (DFD) tools, Entity-Relationship
Diagram (ERD) tools, data dictionary tools, project management
tools, requirement gathering tools.
SDLC Phases: Planning, Analysis, Logical Design.
o Lower CASE Tools (Back-End CASE): Support later phases
(implementation, testing, maintenance).
CREATED BY: AARYAN JHA
Examples: Code generators, debuggers, testing tools, version control
systems, configuration management tools.
SDLC Phases: Physical Design, Implementation, Testing,
Maintenance.
o Integrated CASE (I-CASE) Tools: Combine functionalities of both upper
and lower CASE tools, providing support across the entire SDLC.
3. Explain what is system and what are its characteristics in detail.
(Already covered in point 1.)
4. Discuss the modern approach of System Analysis and Design.
The "modern approach" often refers to a more agile, object-oriented, and user-
centric approach compared to the traditional rigid waterfall model. Key aspects
include:
o Iterative and Incremental Development: Instead of a single, long cycle,
development happens in smaller, repeating cycles, delivering working
software frequently.
o User Involvement: Strong emphasis on continuous user feedback and
involvement throughout the process.
o Flexibility and Adaptability: Ability to respond to changing requirements.
o Object-Oriented Approach: Modeling systems using objects, classes,
inheritance, and polymorphism (discussed further below).
o Component-Based Development: Reusing pre-built software components.
o Rapid Application Development (RAD): Focus on rapid prototyping and
iterative development (discussed further below).
o Agile Methodologies: Embracing principles like collaboration, self-
organizing teams, and continuous delivery.
5. Explain the Systems Development Life Cycle (SDLC) and its traditional waterfall model.
SDLC Definition: A conceptual framework that describes the stages involved in an
information system development project from an initial feasibility study to
maintenance and eventual retirement. It provides a structured approach to building
and maintaining systems.
Phases of SDLC (General):
1. Planning: Defining scope, feasibility, and project plan.
2. Analysis: Understanding and documenting user requirements.
3. Design: Translating requirements into a detailed system blueprint
(architecture, database, interfaces).
4. Implementation: Coding, testing, and installing the system.
5. Maintenance: Ongoing support, enhancements, and bug fixing.
Traditional Waterfall Model: A linear, sequential approach where each phase must
be completed and signed off before the next phase begins.
CREATED BY: AARYAN JHA
o Phases: Requirements -> Design -> Implementation -> Verification ->
Maintenance.
o Pros: Simple, easy to manage for well-defined projects, clear deliverables.
o Cons: Inflexible, difficult to accommodate changes, customer sees working
product only at the end, high risk if requirements are misunderstood early
on.
6. Describe various approaches for improving development (e.g., Rapid Application
Development, Agile Methodologies, Extreme Programming, Object-Oriented Analysis and
Design).
Rapid Application Development (RAD):
o Concept: Emphasizes rapid prototyping and iterative delivery with
continuous user involvement. Focuses on speed and quick delivery.
o Phases (often): Requirements Planning, User Design, Construction, Cutover.
o Key features: Small, dedicated teams, reusable components, time-boxing,
prototyping.
o Pros: Faster development, high user satisfaction, early feedback.
o Cons: Requires highly skilled developers, less suitable for complex or large-
scale systems, risk of sacrificing quality for speed.
Agile Methodologies:
o Concept: A group of iterative and incremental development methods that
promote adaptive planning, evolutionary development, early delivery, and
continuous improvement. It encourages rapid and flexible response to
change.
o Principles (from Agile Manifesto): Individuals and interactions over
processes and tools; working software over comprehensive documentation;
customer collaboration over contract negotiation; responding to change over
following a plan.
o Examples: Scrum, Kanban, Extreme Programming (XP).
Extreme Programming (XP):
o Concept: An agile software development framework that aims to produce
higher quality software and improve responsiveness to changing customer
requirements.
o Core Practices: Pair programming, test-driven development (TDD),
continuous integration, small releases, simple design, refactoring, collective
code ownership, on-site customer.
o Pros: High-quality code, increased collaboration, adaptable to changes.
o Cons: Requires significant developer discipline, challenging for large teams.
Object-Oriented Analysis and Design (OOAD):
o Concept: A software engineering approach that models a system as a group
of interacting objects. It focuses on identifying objects, their attributes, and
their behaviors.
o Key Concepts:
Object: An instance of a class.
Class: A blueprint for creating objects.
CREATED BY: AARYAN JHA
Encapsulation: Bundling data and methods that operate on the data
within a single unit (class).
Inheritance: A mechanism where one class can acquire properties and
behaviors of another class.
Polymorphism: The ability of an object to take on many forms.
Abstraction: Hiding complex implementation details and showing
only essential features.
o Phases (simplified): Object-Oriented Analysis (identifying objects and
classes), Object-Oriented Design (designing class relationships, interfaces),
Object-Oriented Programming (implementing the design).
o Pros: Reusability, maintainability, flexibility, easier to understand complex
systems.
o Cons: Can be more complex to learn initially, overhead for small systems.
7. What is Service-Oriented Architecture (SOA)?
Definition: An architectural style where an application is built by combining loosely
coupled, interoperable services. Each service performs a specific business function
and can be accessed independently.
Key Principles:
o Loose Coupling: Services are independent and changes in one service don't
necessarily affect others.
o Interoperability: Services can communicate with each other regardless of
platform or programming language.
o Reusability: Services can be reused in different applications.
o Discoverability: Services can be easily found and accessed.
Benefits: Increased flexibility, scalability, reusability, reduced development time.
Example: A customer service application might use a "customer lookup" service, a
"order processing" service, and a "payment gateway" service, all independently
developed and integrated.
8. Explain the concept of System Acquisition and Reuse in software origins.
System Acquisition: The process of obtaining or procuring a new information
system. This can be done through:
o In-house Development: Building the system from scratch within the
organization.
o Purchasing Off-the-Shelf Software (Commercial-Off-The-Shelf - COTS):
Buying ready-made software packages.
o Outsourcing: Hiring external vendors to develop or manage the system.
o Cloud-based Solutions (SaaS): Subscribing to software as a service.
Software Reuse: The process of using existing software components, modules, or
systems in the development of new software. This aims to reduce development cost
and time, and improve quality.
o Types of Reuse:
CREATED BY: AARYAN JHA
Component Reuse: Reusing pre-built software components (e.g.,
libraries, frameworks).
Application System Reuse: Reusing entire existing applications or
large parts of them.
Design Pattern Reuse: Reusing proven solutions to common design
problems.
Code Reuse: Copying and pasting code (least recommended).
o Benefits: Increased productivity, reduced costs, higher quality, faster time to
market.
o Challenges: Finding suitable components, understanding and adapting
existing components, intellectual property issues.
9. Discuss the key aspects of managing Information Systems Projects, including
representing and scheduling project plans.
Key Aspects of Project Management:
o Scope Management: Defining and controlling what is and isn't included in
the project.
o Time Management: Estimating, scheduling, and controlling project activities
and their durations.
o Cost Management: Planning, estimating, budgeting, and controlling project
costs.
o Quality Management: Ensuring the project meets specified quality
standards.
o Resource Management: Identifying, acquiring, and managing the resources
(people, equipment, materials) needed for the project.
o Risk Management: Identifying, assessing, and mitigating potential risks.
o Communication Management: Planning, executing, and monitoring project
communications.
o Stakeholder Management: Identifying and managing the expectations and
involvement of all stakeholders.
o Integration Management: Coordinating all project management processes.
Representing and Scheduling Project Plans:
o Work Breakdown Structure (WBS): A hierarchical decomposition of the
total scope of work to be carried out by the project team to accomplish
project objectives and create the required deliverables. It breaks down tasks
into smaller, manageable units.
o Gantt Charts: Horizontal bar charts that illustrate a project schedule. They
show the start and end dates of activities, dependencies, and progress.
o PERT (Program Evaluation and Review Technique) Charts / Network
Diagrams: Flowchart-like diagrams that show the sequence of tasks and
dependencies. They highlight the critical path (the longest path through the
network, determining the minimum project completion time).
o Critical Path Method (CPM): A technique used with PERT charts to identify
the longest sequence of tasks that must be completed on time for the project
to finish on schedule.
CREATED BY: AARYAN JHA
o Resource Allocation: Assigning resources to tasks based on availability and
skill sets.
o Project Management Software: Tools like Microsoft Project, Jira, Asana,
Trello are used to create, manage, and track project plans, schedules, and
resources.
Unit 2: Planning
1. Elaborate on the steps in feasibility of analysis.
Feasibility Analysis Definition: The process of evaluating the practicality and
viability of a proposed system or project. It determines whether a project is worth
investing in.
Steps/Types of Feasibility:
o Technical Feasibility:
Questions: Is the proposed system technically possible with current or
available technology? Does the organization have the necessary
technical expertise? Can the system be integrated with existing
systems?
Assessment: Reviewing hardware, software, network requirements,
and technical skills.
o Economic Feasibility (Cost-Benefit Analysis):
Questions: Is the proposed system financially viable? Will the benefits
outweigh the costs?
Assessment: Estimating development costs, operational costs, and
quantifiable (tangible) and non-quantifiable (intangible) benefits.
Techniques like Payback Period, ROI, NPV are used here.
o Operational Feasibility:
Questions: Will the proposed system be effectively used and accepted
by users? Does it fit with the organization's current operations,
culture, and policies?
Assessment: User surveys, interviews, assessing organizational
structure and resistance to change.
o Schedule Feasibility:
Questions: Can the system be developed and implemented within the
given timeframe? Are the deadlines realistic?
Assessment: Reviewing project timelines, resource availability, and
potential delays.
o Legal & Ethical Feasibility:
Questions: Does the proposed system comply with all applicable laws,
regulations (e.g., data privacy, intellectual property), and ethical
guidelines?
Assessment: Consulting legal experts, reviewing compliance
requirements.
CREATED BY: AARYAN JHA
2. Define information system planning. How is top-down planning approach different from
bottom-up planning approach? Explain.
Information System Planning (ISP) Definition: The process of identifying and
prioritizing information system projects that align with the organization's strategic
business goals. It's about deciding what IS projects to undertake and how they will
support the overall business strategy.
Top-Down Planning Approach:
o Concept: Starts with the organization's overall strategic goals and objectives,
then identifies the information systems needed to support those goals. It flows
from higher-level business strategy down to specific IS projects.
o Process: Business strategy -> Enterprise architecture -> Information
architecture -> Application portfolio -> Specific IS projects.
o Pros: Ensures alignment with business objectives, better resource allocation,
avoids redundant systems, strategic focus.
o Cons: Can be slow, rigid, and may miss operational-level needs.
Bottom-Up Planning Approach:
o Concept: Starts with identifying existing operational problems or
opportunities at lower levels of the organization and then proposes IS
solutions for them. These individual solutions are then aggregated.
o Process: Identify operational problems/opportunities -> Propose local IS
solutions -> Aggregate solutions (sometimes).
o Pros: Faster in addressing immediate needs, generates quick wins, high user
involvement at operational level.
o Cons: May lead to fragmented or redundant systems, lacks strategic
alignment, "stovepipe" systems (systems that don't communicate well).
3. Explain the process of identifying and selecting Systems Development Projects.
Identification: Projects can originate from various sources:
o Business Needs: Problems or opportunities identified by business units (e.g.,
declining sales, new market opportunities).
o Technological Advancements: New technologies offering better solutions.
o User Requests: Specific requests from users for new features or
improvements.
o Strategic Planning: Projects identified through corporate or information
systems planning.
o Competitive Landscape: Need to match or surpass competitors.
o Government Regulations: Compliance requirements.
Selection Process:
1. Project Initiation Request/Proposal: Formal document outlining the
problem, objectives, and high-level requirements.
2. Feasibility Study: (As explained above) Assess technical, economic,
operational, schedule, legal/ethical feasibility.
CREATED BY: AARYAN JHA
3. Project Prioritization: Ranking projects based on strategic alignment,
benefits, costs, risks, and resource availability. This often involves a steering
committee or IS department.
4. Resource Allocation: Assigning resources (budget, personnel) to selected
projects.
5. Project Approval: Formal approval to proceed with the project.
4. Describe the process of initiating and planning IS Development Projects.
Initiating Phase:
o Forming the Project Team: Appointing a project manager and core team
members.
o Defining Project Scope (Preliminary): Clearly articulating what the project
will and will not deliver.
o Identifying Project Stakeholders: Recognizing all individuals or groups
affected by or involved in the project.
o Developing a Project Charter: A formal document that authorizes the
project and gives the project manager the authority to apply organizational
resources to project activities. It usually includes project objectives, scope,
stakeholders, and high-level deliverables.
Planning Phase:
o Developing the Project Plan: A comprehensive document detailing how the
project will be executed, monitored, and controlled. This includes:
Detailed Scope Definition: Breaking down the high-level scope into
specific deliverables.
Work Breakdown Structure (WBS): Decomposing deliverables into
smaller tasks.
Activity Sequencing: Defining the order of tasks and dependencies.
Activity Duration Estimation: Estimating the time required for each
task.
Schedule Development: Creating a project schedule (e.g., Gantt chart,
PERT chart).
Resource Planning: Identifying and acquiring necessary resources.
Cost Estimation and Budgeting: Estimating costs and allocating
funds.
Risk Planning: Identifying potential risks and planning mitigation
strategies.
Communication Plan: Defining how information will be shared
among stakeholders.
Quality Plan: Defining quality standards and how they will be met.
o Establishing Baselines: Freezing the scope, schedule, and cost plans as
benchmarks for measuring project performance.
o Getting Project Approval: Formal sign-off on the detailed project plan.
5. Discuss the different types of project feasibility (e.g., economic, technical, operational,
schedule, legal and ethical).
CREATED BY: AARYAN JHA
(Already covered in point 1 of Unit 2.)
6. What is a Baseline Project Plan, and how is it built and reviewed?
Baseline Project Plan Definition: A key deliverable from the project planning phase.
It is a comprehensive and integrated set of project plans that serves as a formal,
accepted reference point for project performance measurement and control. It
typically includes the scope, schedule, and cost baselines.
How it is Built:
1. Scope Baseline: Developed from the detailed scope statement and the Work
Breakdown Structure (WBS). It defines what will be delivered.
2. Schedule Baseline: Derived from the activity list, durations, and sequence,
typically represented by a Gantt chart or network diagram with defined start
and end dates for tasks and the overall project.
3. Cost Baseline: Developed from the estimated costs for all project activities,
consolidated into a budget.
4. Resource Baseline: Outlines the resources (human, material, equipment)
allocated to the project.
5. Quality Baseline: Specifies the quality standards and metrics.
o These individual baselines are integrated to form the overall Baseline Project
Plan.
How it is Reviewed:
1. Internal Team Review: The project team reviews the plan for completeness,
consistency, and feasibility.
2. Stakeholder Review: Key stakeholders (users, management, technical
experts) review the plan to ensure it meets their needs and expectations.
3. Formal Approval: The plan is formally presented to the project sponsor
and/or steering committee for approval and sign-off. Once approved, it
becomes the baseline against which actual project performance is measured.
4. Change Control: Any subsequent changes to the baseline must go through a
formal change control process.
7. Explain Corporate and Information Systems Planning.
Corporate Planning (Strategic Planning):
o Focus: Long-term vision and direction for the entire organization.
o Process: Defines the organization's mission, vision, values, strategic goals,
and overall business strategies (e.g., market expansion, product
diversification).
o Output: Corporate strategic plan.
o Time Horizon: Typically 3-5 years or more.
Information Systems Planning (ISP):
o Focus: How information systems will support and enable the corporate
strategic plan.
CREATED BY: AARYAN JHA
o Process: Identifies the information needs of the organization to achieve its
strategic goals, analyzes existing IT infrastructure, and develops an IS
strategy and portfolio of IS projects.
o Output: Information systems strategic plan, IS project portfolio.
o Relationship to Corporate Planning: ISP is a subset of corporate planning; it
ensures that IT investments are aligned with and contribute directly to the
overall business strategy. It translates business goals into specific IS
requirements and initiatives. Without proper corporate planning, IS
planning can lead to misaligned or inefficient IT investments.
Numerical Focus:
For exam preparation, you need to understand the formulas and be able to calculate these
values.
1. Economics Feasibility:
This primarily involves Cost-Benefit Analysis. You compare the total costs of a
project (development, operational) with its total benefits (tangible and intangible).
Tangible Benefits: Measurable in monetary terms (e.g., reduced labor costs,
increased sales revenue, decreased inventory).
Intangible Benefits: Not easily quantifiable but still valuable (e.g., improved
customer service, better decision-making, enhanced brand image, increased
employee morale).
2. Pert Chart / Network Diagram:
Purpose: To visualize project tasks, their dependencies, and the critical path.
Key elements:
o Nodes: Represent events or milestones (start/end of a task).
o Arrows: Represent activities (tasks) with their duration.
o Earliest Start Time (EST): The earliest time an activity can begin.
o Earliest Finish Time (EFT): EST + duration.
o Latest Start Time (LST): The latest time an activity can begin without
delaying the project.
o Latest Finish Time (LFT): LST + duration.
o Slack/Float: The amount of time an activity can be delayed without delaying
the project (LST - EST or LFT - EFT).
o Critical Path: The sequence of activities that has zero slack. It is the longest
path through the network, and any delay on this path will delay the entire
project.
Calculation: You'll need to be able to draw a PERT chart given activities and
durations, calculate EST, EFT, LST, LFT for each activity, determine slack, and
identify the critical path.
CREATED BY: AARYAN JHA
3. Payback Period:
Definition: The amount of time it takes for a project's cumulative cash inflows
(benefits) to equal its initial investment (costs).
Formula:
o For uniform cash inflows:
Payback Period=Annual Cash InflowInitial Investment
o For non-uniform cash inflows: Calculate cumulative cash inflows until they
cover the initial investment. The year this occurs is the payback year, and for
a fractional year, it's calculated as
Previous Year’s Unrecovered Cost/Cash Inflow in Current Year.
Significance: Measures how quickly an investment will be recouped. Shorter
payback periods are generally preferred.
4. Net Present Value (NPV):
Definition: A capital budgeting technique that calculates the present value of all
cash inflows and outflows associated with a project, discounted at a specific rate
(cost of capital or discount rate).
Formula: NPV=∑t=0n(1+r)tCFt Where:
o CFt = Net cash flow at time t
o r = Discount rate (cost of capital)
o t = Time period
o n = Total number of periods
Decision Rule:
o If NPV > 0: Project is acceptable (it generates more value than its cost).
o If NPV < 0: Project is not acceptable.
o If NPV = 0: Project just breaks even.
Significance: Considers the time value of money, providing a more accurate
assessment of profitability than simple payback or ROI.
5. Return on Investment (ROI):
Definition: A performance measure used to evaluate the efficiency of an investment
or compare the efficiency of a number of different investments. It directly measures
the amount of return on a particular investment, relative to the investment's cost.
Formula: ROI=Total Costs(Total Benefits−Total Costs)×100%
o Alternatively: ROI=Cost of InvestmentNet Profit×100%
Significance: A simple and widely used metric to assess the profitability of an
investment. Higher ROI indicates a more profitable investment.
Unit 3: Analysis
1. Why is it difficult to determine user requirements? Illustrate the key strategies for
eliciting information about user requirements.
CREATED BY: AARYAN JHA
Difficulties in Determining User Requirements:
o Users don't know what they want: Users may have a vague idea or struggle
to articulate their actual needs.
o Users know what they want but can't express it: They might lack technical
vocabulary or a clear way to communicate complex processes.
o Users change their minds: Requirements evolve over time due to business
changes, market shifts, or new insights.
o Ambiguity and Inconsistency: Requirements can be vague, contradictory, or
open to multiple interpretations.
o Conflicting Requirements: Different user groups may have opposing needs
or priorities.
o Politics and Influence: Stakeholders may try to push their own agendas.
o Implicit Requirements: Some requirements are assumed rather than
explicitly stated.
o Scope Creep: Uncontrolled expansion of project scope due to new or
changing requirements.
Key Strategies for Eliciting Information (Requirements Gathering Techniques):
o Interviewing: One-on-one or group conversations with stakeholders to gather
detailed information.
Pros: Deep understanding, flexible, allows for follow-up questions.
Cons: Time-consuming, subjective, potential for bias.
o Questionnaires/Surveys: Distributing structured sets of questions to a large
number of users.
Pros: Efficient for large groups, quantifiable data, anonymous
responses possible.
Cons: Limited depth, no immediate clarification, low response rates.
o Observation: Watching users perform their tasks in their natural
environment.
Pros: Objective, uncovers implicit requirements, reveals actual
workflow.
Cons: Users may behave differently when observed (Hawthorne
effect), time-consuming, difficult to observe rare events.
o Document Analysis: Reviewing existing documents (forms, reports, manuals,
procedures, business rules) to understand current processes and data.
Pros: Provides historical context, uncovers official policies, cost-
effective.
Cons: Documents may be outdated, incomplete, or inaccurate.
o Joint Application Design (JAD): (See next point) Facilitated group sessions.
o Prototyping: Building a working model of the system to gather feedback
from users.
Pros: Early user feedback, clarifies requirements, reduces
misunderstandings.
Cons: Users might expect the prototype to be the final product, can be
time-consuming to build.
o Use Cases: Describing how users interact with the system to achieve a goal.
CREATED BY: AARYAN JHA
o User Stories: Short, simple descriptions of a feature from the perspective of
the user.
2. Define JAD? List out different contemporary requirements determining techniques and
explain them in a comprehensive way.
Joint Application Design (JAD):
o Definition: A structured approach for collecting information from users and
other stakeholders. It involves a series of intensive, facilitated workshops
(JAD sessions) where key users, analysts, and designers meet together to
define and design the system.
o Key Elements: Facilitator, scribe, users, analysts, management, a structured
agenda, visual aids.
o Pros: Accelerates development, high user involvement, reduces
miscommunication, builds consensus.
o Cons: Requires significant commitment from participants, can be expensive,
depends heavily on the facilitator's skill.
Contemporary Requirements Determining Techniques (beyond traditional):
o Joint Application Design (JAD): (Explained above) Focuses on collaborative
workshops.
o Agile User Stories:
Concept: Short, simple descriptions of a feature told from the
perspective of the person who desires the new capability, usually
following the format: "As a
Pros: User-centric, encourages conversation, flexible, easy to
prioritize.
Cons: Can lack detail for complex features, relies on ongoing
collaboration.
o Prototyping: (Explained above) Building quick, preliminary versions of the
system.
o Use Cases:
Concept: A description of a set of sequences of actions, including
variants, that a system performs to yield an observable result of value
to an actor. They describe how an actor (user or external system)
interacts with the system to achieve a goal.
Elements: Actor, goal, preconditions, postconditions, main flow,
alternate flows, exceptions.
Pros: Focuses on user goals, clarifies system boundaries, helps identify
functionality.
Cons: Can be time-consuming to write, doesn't detail internal system
logic.
o Business Process Modeling Notation (BPMN):
Concept: A standardized graphical notation for representing business
processes. It helps understand and document current workflows and
design improved ones.
CREATED BY: AARYAN JHA
Pros: Clear visual representation, widely understood, aids process
improvement.
Cons: Can be complex for very detailed processes.
o Contextual Inquiry:
Concept: An ethnographic, user-centered design method where
designers observe users in their natural environment while they
perform tasks, asking questions in context.
Pros: Deep understanding of user behavior and environment,
uncovers unstated needs.
Cons: Time-consuming, intrusive for users, requires skilled observers.
3. Explain various traditional methods for determining system requirements (e.g.,
interviewing, questionnaires, observation, document analysis).
(Already extensively covered in point 1 of Unit 3, "Key Strategies for Eliciting
Information.")
4. Describe the process of Process Modeling and the mechanics of Data Flow Diagramming
(DFD).
Process Modeling:
o Concept: A technique used to graphically represent the flow of data through
a system, showing how processes transform inputs into outputs. It focuses on
what the system does.
o Purpose: To understand, analyze, and document the current (as-is) system
and design the proposed (to-be) system. It helps identify redundancies,
bottlenecks, and opportunities for improvement.
Mechanics of Data Flow Diagramming (DFD):
o Definition: A graphical representation of the "flow" of data through an
information system. It shows how data is input to, processed by, and output
from the system.
o Components/Symbols (Yourdon/DeMarco or Gane/Sarson notation):
Process (Transformation):
Symbol: Circle (Yourdon/DeMarco) or rounded rectangle
(Gane/Sarson).
Description: Represents work or actions performed on data to
transform it. (e.g., "Process Order," "Calculate Grade").
Data Flow:
Symbol: Arrow.
Description: Represents data moving between components.
Labeled with the name of the data (e.g., "Customer Order,"
"Payment Details").
Data Store:
Symbol: Two parallel lines or an open-ended rectangle.
Description: Represents a place where data is held or stored
(e.g., "Customer File," "Product Database").
CREATED BY: AARYAN JHA
External Entity (Source/Sink):
Symbol: Rectangle.
Description: Represents an external person, organization, or
system that is outside the boundary of the system but interacts
with it by providing or receiving data (e.g., "Customer,"
"Bank," "Supplier").
o DFD Levels:
Context Diagram (Level 0 DFD):
Purpose: Shows the entire system as a single process, its
interactions with external entities, and the major data flows in
and out. It defines the system boundary.
Characteristics: One process, multiple external entities, major
data flows.
Level 0 DFD:
Purpose: Decomposes the single process from the context
diagram into its major high-level processes. Shows the main
functions of the system and how data flows between them and
external entities/data stores.
Characteristics: 3-7 main processes, data stores appear,
external entities remain.
Level 1 DFD (and subsequent levels):
Purpose: Further decomposes a single process from Level 0 (or
previous level) into more detailed sub-processes. This continues
until processes are elementary (cannot be further meaningfully
broken down).
Characteristics: Details one parent process, shows its sub-
processes, detailed data flows, data stores.
o Balancing DFDs: Ensures that data flows into and out of a parent process are
consistent with the data flows into and out of its decomposed child processes.
5. What is the purpose of Requirements Management Tools?
Requirements Management Tools: Software applications designed to help
organizations manage the entire lifecycle of software requirements.
Purpose/Benefits:
o Centralized Repository: Stores all requirements in one place, ensuring a
single source of truth.
o Traceability: Links requirements to design elements, code, test cases, and
other artifacts, showing the impact of changes.
o Version Control: Manages changes to requirements, tracks history, and
allows rollback.
o Collaboration: Facilitates communication and collaboration among
stakeholders.
o Prioritization: Helps in ranking requirements based on business value, risk,
or dependencies.
o Baselining: Allows for formal approval and freezing of a set of requirements.
CREATED BY: AARYAN JHA
o Impact Analysis: Helps assess the impact of a proposed change to a
requirement.
o Reporting: Generates reports on requirements status, coverage, and changes.
o Reduces Errors and Rework: By ensuring clear, consistent, and managed
requirements.
Examples: Jira, Azure DevOps, IBM DOORS, Jama Connect.
6. How are requirements determined using Agile Methodologies?
Agile methodologies (like Scrum, Kanban, XP) have a distinct approach to
requirements compared to traditional methods:
o Iterative and Incremental: Requirements are not fully defined upfront.
Instead, they are elaborated and refined iteratively over multiple short cycles
(sprints/iterations).
o User Stories: The primary form of requirements. (As a
o Product Backlog: A prioritized, dynamic list of all desired features,
functionalities, and improvements for the product, expressed as user stories.
It's continuously refined.
o Backlog Refinement/Grooming: Ongoing meetings where the team and
product owner review, discuss, estimate, and break down backlog items,
adding detail just in time.
o Collaboration and Communication: Heavy emphasis on direct
communication between the development team and the Product Owner
(representing the customer/stakeholders). Face-to-face conversations are
preferred over extensive documentation.
o Just-in-Time (JIT) Elaboration: Requirements are detailed just before they
are needed for development in a sprint, allowing for flexibility and
adaptation.
o Customer Collaboration: The customer (Product Owner) is an integral part
of the team and provides continuous feedback.
o Working Software over Comprehensive Documentation: While some
documentation exists (user stories, acceptance criteria), the focus is on
delivering functional software.
o Acceptance Criteria: Specific conditions that must be met for a user story to
be considered "done." These help clarify what "done" means and guide
testing.
o "INVEST" Principles for User Stories: Independent, Negotiable, Valuable,
Estimable, Small, Testable.
7. Define data modeling. Explain logical data model in detail.
Data Modeling Definition: The process of creating a visual representation or
blueprint of an organization's data. It defines the data elements, their attributes,
and the relationships between them. The goal is to organize data consistently and
clearly.
Logical Data Model (LDM):
CREATED BY: AARYAN JHA
o Concept: A conceptual representation of data that focuses on the what of the
data, rather than the how it is stored or implemented. It describes the data
elements, their attributes, and the relationships between them in a
technology-independent way. It's built after requirements analysis.
o Purpose: To clearly define the data structure and relationships required to
support business processes and information needs, without getting bogged
down in database specific details. It serves as a bridge between business
requirements and physical database design.
o Key Components:
Entities: Represent significant business objects or concepts about
which data is collected (e.g., Customer, Product, Order).
Attributes: Properties or characteristics that describe an entity (e.g.,
for Customer: CustomerID, Name, Address, Phone).
Relationships: Associations between two or more entities (e.g., a
Customer places an Order, a Product is part of an Order).
Cardinality: Describes the number of instances of one entity
associated with the number of instances of another entity (e.g.,
One-to-One (1:1), One-to-Many (1:M), Many-to-Many (M:N)).
Modality (Optionality): Indicates whether an instance of an
entity is required or optional in a relationship (e.g., A customer
may place an order, or must place an order).
Primary Keys: Unique identifiers for each instance within an entity.
Foreign Keys: Attributes in one entity that refer to the primary key in
another entity, establishing a relationship.
o Diagrammatic Representation: Typically uses Entity-Relationship Diagrams
(ERDs) to depict entities, attributes, and relationships.
o Abstraction Level: Higher than a physical data model, lower than a
conceptual data model. It's still database-agnostic.
8. Explain Conceptual Data Modeling and its importance.
Conceptual Data Model (CDM):
o Definition: The highest level of data modeling. It represents the data
structure of a system from the business perspective, independent of any
technology or specific database implementation. It defines the major entities,
their key attributes, and the relationships between them to capture the core
business concepts.
o Purpose:
To facilitate communication between business stakeholders and
technical teams by providing a shared, high-level understanding of
the data.
To define the scope of data requirements for the system.
To identify the most critical business concepts and their relationships.
To serve as the foundation for the logical data model.
o Key Components:
Entities: Major business objects (e.g., Student, Course, Instructor).
CREATED BY: AARYAN JHA
Key Attributes (often only identifiers): The most important properties
that distinguish entities (e.g., Student ID, Course Code).
Relationships: How entities are associated, often with cardinalities
(e.g., a Student enrolls in Courses).
o Diagrammatic Representation: Often uses a simplified ERD or class
diagram-like notation.
o Importance:
Business Understanding: Ensures all stakeholders agree on the
meaning and relationships of core business data.
Foundation for Design: Provides a solid base for building more
detailed logical and physical data models.
Reduced Ambiguity: Helps resolve misunderstandings about data
early in the project.
Scope Definition: Clearly outlines what data is relevant to the system.
Facilitates Communication: Acts as a common language between
business users and technical developers.
9. Discuss the process of gathering information for Conceptual Data Modeling.
Information for Conceptual Data Modeling is primarily gathered during the
requirements analysis phase through various elicitation techniques:
1. Interviews: Talking to business users, subject matter experts (SMEs), and
managers to understand the key business entities, their properties, and how
they relate. Ask questions like: "What are the most important things in your
business?" "What information do you need to keep track of about X?"
"How does Y relate to Z?"
2. Document Analysis: Reviewing existing reports, forms, databases,
spreadsheets, and business documents. These often contain entity names,
attributes, and implicit relationships. Look for nouns (potential entities),
adjectives (potential attributes), and verbs (potential relationships).
3. Observation: Observing actual business processes can reveal data elements
and relationships that might not be explicitly stated.
4. JAD Sessions: Facilitated workshops are excellent for collaborative
identification of entities and relationships, resolving ambiguities, and gaining
consensus from multiple stakeholders simultaneously.
5. Prototyping/Mock-ups: If forms or reports are prototyped, they implicitly
define entities and attributes that need to be captured.
6. Business Process Analysis: Understanding the "as-is" and "to-be" business
processes helps identify the data required to support those processes.
7. Reverse Engineering Existing Systems: If there's an old system, analyzing its
database schema can provide a starting point for identifying entities and
relationships, though this should be validated against current business needs.
10. Introduce Entity-Relationship (E-R) Modeling, including components like entities,
attributes, and relationships.
CREATED BY: AARYAN JHA
Entity-Relationship (E-R) Modeling:
o Definition: A high-level data modeling technique used to represent the
conceptual structure of a database or information system. It describes data
as entities (things) and relationships (associations) between those entities.
o Purpose: To visually represent the logical structure of a database, facilitating
communication between database designers, developers, and users.
o Components:
Entity:
Definition: A person, place, object, event, or concept about
which data is collected and stored. It represents a "thing" that
can be uniquely identified.
Symbol: Rectangle.
Examples: Student, Course, Department, Order, Product.
Attribute:
Definition: A property or characteristic of an entity. It
describes the entity.
Symbol: Oval.
Types of Attributes:
Simple Attribute: Cannot be divided (e.g., Name, Age).
Composite Attribute: Can be divided into smaller sub-
parts (e.g., Address (Street, City, Zip)).
Single-Valued Attribute: Has only one value for an
entity instance (e.g., StudentID).
Multi-Valued Attribute: Can have multiple values for
an entity instance (e.g., Phone Number (a person can
have multiple)).
Derived Attribute: Can be calculated or derived from
other attributes (e.g., Age from DateOfBirth).
Key Attribute (Primary Key): An attribute or set of
attributes that uniquely identifies an instance of an
entity (e.g., StudentID). Underlined in ERD.
Example (for Student entity): StudentID, Name, DateOfBirth,
Address, Phone.
Relationship:
Definition: An association or link between two or more entities.
It describes how entities interact or are connected.
Symbol: Diamond (connecting entities with lines).
Types of Relationships (based on Cardinality):
One-to-One (1:1): One instance of entity A is associated
with one instance of entity B, and vice-versa (e.g., A
Person is married to one Spouse).
One-to-Many (1:M): One instance of entity A is
associated with many instances of entity B, but one
instance of B is associated with only one instance of A
(e.g., A Department has many Employees, but an
Employee belongs to one Department).
CREATED BY: AARYAN JHA
Many-to-Many (M:N): Many instances of entity A are
associated with many instances of entity B, and vice-
versa (e.g., A Student enrolls in many Courses, and a
Course is enrolled by many Students).
Cardinality (Min/Max): Often represented using Crow's Foot
notation or (min, max) notation next to the entities on the
relationship line (e.g., (1,1) for exactly one, (0,N) for zero to
many).
Modality (Optionality): Whether a relationship instance is
mandatory (must exist) or optional.
Example: Student -- enrolls in -- Course
11. Explain how to represent Super-types and Sub-types in E-R models.
Super-type (Generalization) and Sub-type (Specialization):
o Concept: Used to model "is a" relationships where a general entity type
(super-type) can have specialized sub-entity types that inherit its properties
but also have their own unique attributes and relationships.
o Purpose: To reduce redundancy, improve clarity, and model complex
hierarchies.
o Representation (often using a triangle/circle and connecting lines):
A super-type entity (e.g., EMPLOYEE) is placed above.
Sub-type entities (e.g., FULL_TIME_EMPLOYEE,
PART_TIME_EMPLOYEE, CONTRACTOR) are placed below.
A triangle or circle symbol (often with an 'E' for exclusive or 'O' for
overlapping) is used to connect the super-type to the sub-types.
Lines connect the super-type to the triangle, and lines connect the
triangle to each sub-type.
Discriminator/Type Attribute: An attribute in the super-type that
determines which sub-type an instance belongs to (e.g., EmployeeType in
EMPLOYEE).
o Types of Specialization:
Disjoint (Exclusive): An instance of the super-type can belong to only
one of the sub-types (e.g., an EMPLOYEE is either FULL_TIME or
PART_TIME, not both). Represented by a 'd' or solid line from the
super-type to the circle.
Overlapping: An instance of the super-type can belong to multiple
sub-types simultaneously (e.g., a PERSON can be a STUDENT and an
EMPLOYEE). Represented by an 'o' or dashed line from the super-type
to the circle.
o Completeness Constraints:
Total Specialization: Every instance of the super-type must belong to
at least one sub-type (double line from super-type to the circle).
Partial Specialization: An instance of the super-type may not belong to
any of the sub-types (single line from super-type to the circle).
o Example:
CREATED BY: AARYAN JHA
Super-type: VEHICLE (attributes: VehicleID, Make, Model, Year)
Sub-types: CAR (attributes: NumberOfDoors, TrunkSize),
MOTORCYCLE (attributes: HelmetType, EngineSize), TRUCK
(attributes: CargoCapacity, AxleType)
A VEHICLE can be a CAR, MOTORCYCLE, or TRUCK. These sub-types
inherit VehicleID, Make, Model, Year from VEHICLE but have their own
specific attributes.
12. What are Business Rules and their role in data modeling?
Business Rules Definition: Precise statements that describe, constrain, or control
aspects of the business. They define or constrain some aspect of the business, and
they assert business structure or control or influence the behavior of the business.
Characteristics: Atomic, clear, unambiguous, precise, understandable, executable,
consistent.
Types of Business Rules:
o Structural Assertions: Define the relationships and cardinality between
entities (e.g., "A customer can place one or more orders, but an order must
be placed by exactly one customer." -> 1:M relationship).
o Action Assertions: Define permissible actions, derivations, or computations
(e.g., "An employee cannot be assigned to more than 5 projects." "Total
price is quantity times unit price.").
Role in Data Modeling:
o Identify Entities and Attributes: Rules often mention the "things" (entities)
and their "properties" (attributes) that need to be captured.
o Determine Relationships and Cardinality: Many business rules directly
translate into the relationships and their cardinalities (1:1, 1:M, M:N)
between entities. For example, "A department employs many employees"
defines a 1:M relationship.
o Define Constraints: Business rules define data integrity constraints, such as:
Mandatory/Optional Attributes: "Customer Name must not be null."
Value Domains: "Age must be between 18 and 65."
Uniqueness: "Employee ID must be unique."
Referential Integrity: Ensuring that relationships between tables are
maintained (e.g., "An order cannot exist without a valid customer").
o Ensure Data Quality and Consistency: By embedding business rules into the
data model, the database is designed to enforce these rules, preventing
invalid data entry and ensuring data integrity.
o Communication: Business rules are a vital communication tool between
business users and data modelers, ensuring the model accurately reflects
business policies.
13. Discuss the role of Packaged Conceptual Data Models/Database Patterns.
Packaged Conceptual Data Models (PCMDs) / Database Patterns:
CREATED BY: AARYAN JHA
o Concept: Pre-designed, reusable data models or schema patterns for
common business domains or organizational functions. They are generalized
models that capture best practices and common data structures for specific
industries or applications.
o Examples: Models for e-commerce, banking, healthcare, human resources,
accounting, etc. They might include entities like Customer, Product, Order,
Invoice, Employee, Patient, etc., with predefined attributes and relationships.
Role/Benefits:
o Accelerated Development: Provides a head start in data modeling, reducing
the time and effort required to design a new database from scratch.
o Best Practices: Incorporates industry best practices and proven solutions for
common data challenges.
o Improved Quality: Reduces the risk of errors, inconsistencies, and omissions
by using a pre-validated structure.
o Standardization: Promotes consistency in data definitions and structures
across different projects or systems within an organization.
o Reduced Cost: Saves resources by leveraging existing knowledge and
designs.
o Easier Communication: Provides a common vocabulary and understanding
of data for stakeholders familiar with the industry.
o Training and Education: Can serve as a learning tool for new data modelers.
Limitations: May require customization to fit specific organizational needs; not a
"one-size-fits-all" solution.
Numerical/Diagrammatic Problem Types (from Unit 3):
1. Data Flow Diagramming (DFD): Draw Context Diagram, Level-0 and Level-1 DFDs.
This is a practical skill. You need to be able to:
o Identify external entities, processes, data stores, and data flows from a given
scenario or description.
o Draw the Context Diagram (one central process representing the entire
system, external entities, and major data flows).
o Decompose the Context Diagram into a Level-0 DFD (3-7 main processes,
data stores, external entities).
o Decompose a specific process from Level-0 into a Level-1 DFD (more
detailed sub-processes, detailed data flows, data stores).
o Ensure DFD Balancing between levels (input/output flows remain
consistent).
o Use appropriate notation (Yourdon/DeMarco or Gane/Sarson, as specified or
commonly used in your curriculum).
2. Decision Tables/Trees: Represent business rules using Decision Tables and Decision
Trees.
CREATED BY: AARYAN JHA
Purpose: To represent complex business logic and decision-making processes in a
clear, unambiguous, and structured way.
Decision Table:
o Structure: A tabular representation that lists conditions, actions, and rules
for when certain actions should be taken based on combinations of
conditions.
o Components:
Conditions: Factors that influence the decision (e.g., Customer Type,
Order Amount).
Condition States/Values: Possible values for each condition (e.g.,
"New", "Existing", ">$100", "<$100").
Actions: The outcomes or actions to be taken (e.g., "Apply Discount",
"Process Order", "Send Error Message").
Rules: Columns that combine condition states to determine which
actions apply.
o Example (Simple Loan Approval): | Rule | Credit Score > 700 | Income >
$50k | Approved | Reject | Refer | |---|---|---|---|---|---| | 1 | Y | Y | X | | | | 2 | Y | N
||X|||3|N|Y||X|||4|N|N|||X|
Decision Tree:
o Structure: A graphical representation that uses branches to show the flow of
decision-making based on a series of conditions.
o Components:
Nodes: Represent decisions (conditions) or outcomes (actions).
Branches: Represent the possible values or states for each condition.
o Example (Simple Loan Approval):
Start
-> Credit Score > 700?
-> Yes: Income > $50k?
-> Yes: Approved
-> No: Reject
-> No: Income > $50k?
-> Yes: Reject
-> No: Refer
Choosing Between Them:
o Decision Tables: Good for complex logic with many conditions and rules,
easy to check for completeness and consistency.
o Decision Trees: Good for sequential decisions, easier for users to follow the
logic flow.
Unit 4: Design
1. What is the difference between a 2NF and 3NF?
CREATED BY: AARYAN JHA
This refers to Database Normalization, a process of organizing the columns
(attributes) and tables (relations) of a relational database to minimize data
redundancy and improve data integrity.
First Normal Form (1NF):
o A table is in 1NF if it meets these conditions:
1. Each column contains atomic (indivisible) values.
2. There are no repeating groups of columns (each cell has a single
value).
3. Each row is unique (has a primary key).
Second Normal Form (2NF):
o A table is in 2NF if it is in 1NF AND all non-key attributes are fully
functionally dependent on the primary key.
o Full Functional Dependency: A non-key attribute must depend on the entire
primary key, not just a part of it (this is only relevant for tables with
composite primary keys).
o Problem it solves: Eliminates partial dependencies.
o Example:
OrderDetails (OrderID, ProductID, ProductName, Quantity, Price)
Composite PK: (OrderID, ProductID)
Problem: ProductName and Price depend only on ProductID (part of the
PK), not OrderID.
To 2NF: Break into two tables:
OrderDetails (OrderID, ProductID, Quantity)
Products (ProductID, ProductName, Price)
Third Normal Form (3NF):
o A table is in 3NF if it is in 2NF AND there are no transitive dependencies.
o Transitive Dependency: A non-key attribute depends on another non-key
attribute, which in turn depends on the primary key (PK -> Non-key1 ->
Non-key2).
o Problem it solves: Eliminates transitive dependencies.
o Example:
Employee (EmployeeID, EmployeeName, DepartmentID, DepartmentName,
DepartmentLocation)
PK: EmployeeID
Problem: DepartmentName and DepartmentLocation depend on
DepartmentID, and DepartmentID depends on EmployeeID. So,
DepartmentName and DepartmentLocation are transitively dependent on
EmployeeID via DepartmentID.
To 3NF: Break into two tables:
Employee (EmployeeID, EmployeeName, DepartmentID)
Department (DepartmentID, DepartmentName, DepartmentLocation)
2. How can you transform E-R Diagram into relation? Explain with suitable examples.
This is the process of mapping a conceptual or logical ERD into a set of relational
database tables.
General Rules:
CREATED BY: AARYAN JHA
1. Strong Entities: Each strong entity type becomes a separate relation (table).
The entity's primary key becomes the table's primary key. Simple attributes
become columns. Composite attributes are broken into individual columns.
Multi-valued attributes require a new table.
Example: STUDENT (StudentID, Name, Address, DoB)
2. Weak Entities: A weak entity type becomes a separate relation. Its primary
key is a composite of its own partial identifier and the primary key of its
identifying strong entity (which becomes a foreign key).
Example: If DEPENDENT is weak on EMPLOYEE, then DEPENDENT
(EmpID (FK), DepName (PK), Relationship)
3. One-to-One (1:1) Relationships:
Option A: Combine the two entities into a single relation (if
participation is mandatory for both).
Option B: Place the primary key of one entity as a foreign key in the
other entity's relation. Choose the mandatory side to place the FK on
the optional side, or either if both are mandatory/optional.
Example: EMPLOYEE (1:1) PARKING_SPACE
EMPLOYEE (EmpID, Name, SpaceID (FK))
PARKING_SPACE (SpaceID, Location)
4. One-to-Many (1:M) Relationships:
The primary key of the "one" side entity is placed as a foreign key in
the "many" side entity's relation.
Example: DEPARTMENT (1:M) EMPLOYEE
DEPARTMENT (DeptID, DeptName)
EMPLOYEE (EmpID, Name, DeptID (FK))
5. Many-to-Many (M:N) Relationships:
Create a new, intermediary relation (associative entity/junction table)
for the M:N relationship. This new relation will have a composite
primary key consisting of the primary keys of both participating
entities (which also serve as foreign keys to their respective tables).
Any attributes of the relationship itself are also added to this new
table.
Example: STUDENT (M:N) COURSE (relationship ENROLLS_IN with
attribute Grade)
STUDENT (StudentID, Name)
COURSE (CourseID, Title)
ENROLLMENT (StudentID (FK, PK), CourseID (FK, PK), Grade)
6. Multi-valued Attributes: Create a new relation for the multi-valued
attribute. The primary key of this new relation is a composite of the primary
key of the original entity and the multi-valued attribute itself.
Example: EMPLOYEE with multi-valued attribute Skill
EMPLOYEE (EmpID, Name)
EMPLOYEE_SKILL (EmpID (FK, PK), Skill (PK))
7. Super-type/Sub-type (Generalization/Specialization): Several mapping
options:
Option 1 (Separate Tables for Each): Create a table for the super-type
and separate tables for each sub-type. The primary key of the super-
type table is inherited by the sub-type tables as both PK and FK.
CREATED BY: AARYAN JHA
Option 2 (One Table per Sub-type): If disjoint and total, only create
tables for sub-types. Each sub-type table contains all attributes of the
super-type plus its own. (Less common for generalization hierarchies).
Option 3 (Single Table with Nulls): Create one large table for the
super-type and all sub-type attributes. Use a "type" column to
indicate the sub-type. Sub-type specific attributes will be null for
instances not belonging to that sub-type. (Simple but can lead to many
nulls and complex queries).
3. Define Database Design. Explain the Relational Database Model.
Database Design Definition: The process of creating a detailed data model for a
database, including entities, attributes, relationships, data types, constraints, and
optimization strategies. It involves translating conceptual data requirements into a
physical database schema that can be implemented using a Database Management
System (DBMS).
Relational Database Model:
o Concept: The most widely used database model, introduced by E.F. Codd. It
organizes data into one or more tables (called relations) of columns and rows.
Each row represents a record, and each column represents an attribute.
o Key Principles/Components:
Relation (Table): A collection of data organized into rows and
columns. Each table represents an entity type.
Tuple (Row/Record): A single record in a table, representing an
instance of an entity.
Attribute (Column/Field): A characteristic or property of the entity
represented by the table. Each column has a unique name within the
table.
Domain: The set of permissible values for an attribute.
Schema: The logical structure of the database, defining tables,
columns, data types, and constraints.
Keys:
Primary Key (PK): A column or set of columns whose values
uniquely identify each row in a table. (e.g., StudentID).
Foreign Key (FK): A column or set of columns in one table that
refers to the primary key in another table. It establishes a link
between tables and enforces referential integrity. (e.g., DeptID
in Employee table referring to DeptID in Department table).
Candidate Key: Any attribute or set of attributes that can
uniquely identify a row in a table. The primary key is chosen
from the candidate keys.
Relationships: Established through foreign keys, linking data between
tables.
Integrity Constraints: Rules to maintain the accuracy and consistency
of data:
CREATED BY: AARYAN JHA
Entity Integrity: Primary key values cannot be null and must
be unique.
Referential Integrity: Foreign key values must either match a
primary key value in the referenced table or be null.
Normalization: (As discussed above) A process used to minimize data
redundancy and improve data integrity by structuring tables
according to normalization forms (1NF, 2NF, 3NF, BCNF).
o Advantages: Simplicity, flexibility, data independence, referential integrity
support, powerful query language (SQL).
4. Explain the concept of Normalization (1NF, 2NF, 3NF, BCNF) and its importance in
database design.
Normalization: (Detailed explanation of 1NF, 2NF, 3NF provided in point 1 of Unit
4).
Boyce-Codd Normal Form (BCNF):
o A table is in BCNF if it is in 3NF AND every determinant is a candidate key.
o Determinant: An attribute or set of attributes that uniquely determines the
value of another attribute in a table.
o Difference from 3NF: BCNF is a stricter form of 3NF. While 3NF addresses
transitive dependencies on the primary key, BCNF addresses dependencies
where a non-key attribute determines a part of the candidate key (which 3NF
might miss if the determinant is not the full primary key). This occurs rarely,
usually with overlapping composite candidate keys.
o Importance: Eliminates all non-trivial functional dependencies where the
determinant is not a superkey.
Importance of Normalization in Database Design:
o Reduces Data Redundancy: Avoids storing the same data multiple times,
saving storage space.
o Improves Data Integrity: Ensures data consistency and accuracy. Changes
need to be made in only one place, reducing the risk of update anomalies,
insertion anomalies, and deletion anomalies.
Update Anomaly: Changing data in one place requires changes in
multiple places, leading to potential inconsistencies if not all instances
are updated.
Insertion Anomaly: Cannot insert certain data until other data is
present (e.g., cannot add a department until an employee is assigned
to it if department details are stored only with employees).
Deletion Anomaly: Deleting a row inadvertently removes other crucial
information (e.g., deleting the last employee in a department also
deletes department details).
o Faster Queries: Reduced redundancy can lead to smaller tables, which can
improve query performance for certain types of queries.
o Easier Maintenance: Simpler to manage and update the database due to
logical organization.
CREATED BY: AARYAN JHA
o Better Data Understanding: Clearer structure helps users and developers
understand the data.
o Flexibility: Easier to extend the database schema with new attributes or
entities.
5. Describe the process of merging relations and designing physical files and databases.
Merging Relations (View Integration):
o Concept: The process of combining multiple normalized relations (tables)
that might have originated from different user views or subsystems into a
single, cohesive logical database design. This is often done after individual
parts of the system have been analyzed and normalized separately.
o Process Steps:
1. Consolidate Entities/Tables: Identify common entities and merge their
schemas, resolving any naming conflicts (synonyms/homonyms).
2. Combine Attributes: Merge attributes, ensuring data types and
domains are consistent.
3. Integrate Primary and Foreign Keys: Ensure proper foreign key
relationships are established across merged tables.
4. Resolve Conflicts:
Synonyms: Different names for the same attribute (e.g.,
"Cust_Name" and "CustomerName"). Choose a consistent
name.
Homonyms: Same name for different attributes (e.g.,
"Address" referring to customer address in one view, and
supplier address in another). Rename to be unique (e.g.,
"CustomerAddress", "SupplierAddress").
Structural Conflicts: Different data types for the same
attribute, or different primary keys for the "same" entity in
different views. Requires careful resolution.
Dependency Conflicts: When functional dependencies from
different views contradict.
5. Re-normalize: After merging, re-evaluate the combined schema for
potential unnormalized forms and apply normalization (up to 3NF or
BCNF) to ensure integrity and reduce redundancy in the integrated
model.
Designing Physical Files and Databases:
o Concept: The process of translating the logical database design (normalized
relations) into the actual physical storage structure within a specific
Database Management System (DBMS). This involves making decisions
about how data will be stored, indexed, and accessed for optimal
performance.
o Key Decisions/Steps:
CREATED BY: AARYAN JHA
1. Choose a DBMS: Select the appropriate database system (e.g.,
MySQL, PostgreSQL, Oracle, SQL Server, MongoDB) based on
requirements, cost, scalability, etc.
2. Map to Physical Schema:
Tables: Logical relations become physical tables.
Columns: Attributes become columns with specific DBMS data
types (VARCHAR, INT, DATE, etc.).
Keys: Primary and foreign keys are explicitly defined with
constraints.
3. Indexing:
Purpose: Create indexes on columns frequently used in
WHERE clauses, JOIN conditions, or ORDER BY clauses to
speed up data retrieval.
Decision: Identify suitable columns for indexing (primary keys,
foreign keys, frequently searched attributes).
4. Data Volume and Growth Estimates: Plan for storage capacity, future
growth, and potential partitioning strategies for large tables.
5. File Organization: Decide how data will be physically stored on disk
(e.g., heap file, clustered index, hash file).
6. Data Integrity and Constraints: Implement all referential integrity,
entity integrity, and domain constraints defined in the logical model
using SQL DDL (Data Definition Language).
7. Security and Access Control: Define user roles, permissions, and
security measures.
8. Performance Tuning: Monitor and optimize queries, adjust indexes,
and possibly denormalize strategically for performance in specific
cases (though denormalization should be a careful, conscious decision
after normalization).
9. Backup and Recovery: Plan for backup strategies and disaster
recovery.
6. Discuss the considerations for designing fields and physical tables.
Considerations for Designing Fields (Columns/Attributes):
o Data Type: Choose the most appropriate data type (e.g., CHAR, VARCHAR,
INT, DECIMAL, DATE, BOOLEAN) to conserve space and ensure data
integrity.
o Field Size (Length): Define appropriate maximum lengths for character
fields to optimize storage and performance.
o Null Values: Decide whether a field can accept null values (optional) or must
always contain a value (mandatory).
o Default Values: Specify default values if applicable.
o Data Integrity Rules (Constraints):
Domain Constraints: Restrict the range of possible values (e.g.,
CHECK (Age >= 18)).
CREATED BY: AARYAN JHA
Uniqueness Constraints: Ensure no duplicate values (e.g., UNIQUE
(Email)).
o Naming Conventions: Use clear, consistent, and meaningful names for fields.
o Atomic vs. Composite: Ensure fields are atomic for 1NF (e.g., store first
name and last name separately if they are often used independently).
o Derived vs. Stored: Decide whether to store a derived attribute (e.g., Age) or
calculate it on the fly. Storing derived attributes increases redundancy but
can improve read performance.
Considerations for Designing Physical Tables:
o Normalization Level: Decide on the appropriate level of normalization
(typically 3NF or BCNF for transactional systems; controlled
denormalization might be used for reporting/data warehousing).
o Primary Key Selection: Choose a primary key that is unique, stable (doesn't
change), and efficient (short, numeric if possible).
o Foreign Key Implementation: Correctly define foreign key relationships to
enforce referential integrity.
o Indexing Strategy:
Identify fields frequently used in WHERE clauses, JOINs, ORDER
BY, and GROUP BY for indexing.
Consider the trade-off: indexes speed up reads but slow down writes
(inserts, updates, deletes) and consume storage.
Clustered vs. Non-clustered indexes.
o Data Volume and Performance:
Partitioning: For very large tables, consider partitioning data into
smaller, more manageable segments to improve performance and
manageability.
Horizontal Partitioning (Sharding): Distributing rows across multiple
tables/servers.
Vertical Partitioning: Distributing columns across multiple tables.
Denormalization: Deliberately introducing redundancy (e.g.,
combining tables, duplicating data) to improve the performance of
specific queries, but this sacrifices some update efficiency and
integrity.
o Security: Define table-level and column-level access permissions.
o Storage Parameters: Specific DBMS settings for table storage (e.g., block
size, tablespace).
o Backup and Recovery: Consider how the physical design impacts backup
and recovery procedures.
7. What are the various types of menu design which can be adopted to meet the system
complexity and usability?
Menu Design: The process of creating user interface menus that allow users to
navigate a system and access its functions effectively. Good menu design is crucial
for usability.
Factors to Consider (System Complexity & Usability):
CREATED BY: AARYAN JHA
o System Complexity: A complex system with many functions needs a well-
structured menu system.
o User Sophistication: Novice users need simpler, clearer menus; expert users
might prefer faster access methods.
o Frequency of Use: Frequently used functions should be easily accessible.
o Screen Space: Limited screen real estate affects menu choice.
Various Types of Menu Design:
1. Simple Linear Menus:
Description: A list of options presented one after another.
Use: Very simple systems, command-line interfaces, or a sequence of
steps.
Pros: Easy to understand for simple tasks.
Cons: Not scalable for complex systems, requires many steps for deep
navigation.
2. Tree/Hierarchical Menus (Nested Menus):
Description: Options are organized into categories and subcategories,
forming a tree structure. Users navigate down through levels.
Use: Most common for complex applications with many functions.
Pros: Scalable, logical organization, users can learn the structure.
Cons: Can lead to "deep" navigation, requiring many clicks; users
can get lost.
3. Pop-up Menus (Contextual Menus):
Description: Appear dynamically when the user right-clicks an object
or performs a specific action. Options are relevant to the selected
object/context.
Use: Providing quick access to actions related to a specific item.
Pros: Space-saving, highly contextual, efficient for experts.
Cons: Hidden from view until invoked, discoverability issues for
novices.
4. Pull-down Menus (Dropdown Menus):
Description: A menu bar across the top of the screen (e.g., File, Edit,
View) with options that "pull down" when clicked.
Use: Standard in GUI applications for major functions.
Pros: Space-efficient on screen, familiar to users, logically grouped.
Cons: Requires a click to open, can hide options until activated.
5. Iconic Menus (Toolbars/Ribbons):
Description: A collection of graphical icons representing functions.
Often combined with text labels (e.g., a disk icon for "Save"). Ribbons
group related icons into tabs.
Use: Frequent actions, visual learners, modern applications.
Pros: Quick access for frequent tasks, self-explanatory (if icons are
well-designed), space-efficient once learned.
Cons: Icons can be ambiguous, requires learning for new users, can
take up significant screen space (ribbons).
6. Button Menus:
CREATED BY: AARYAN JHA
Description: A set of large buttons displayed directly on the screen,
each representing a function.
Use: Kiosks, touch-screen interfaces, simple applications, start
screens.
Pros: Easy to see and click, good for touch interfaces.
Cons: Not scalable for many options, consumes a lot of screen space.
7. Tabbed Menus:
Description: Organize content into different panes, with tabs to switch
between them. Each tab presents a distinct set of options or
information related to a category.
Use: Property windows, settings dialogs, multi-faceted data entry
forms.
Pros: Organizes large amounts of related information, intuitive
navigation.
Cons: All content isn't visible at once, can be confusing if too many
tabs.
8. Mega Menus:
Description: Large, multi-column dropdown panels that appear on
hover or click, often containing multiple levels of navigation, graphics,
and even content.
Use: Large websites with extensive navigation structures (e-
commerce).
Pros: Provides a quick overview of many options, reduces clicks,
visually rich.
Cons: Can be overwhelming, consumes large screen area, challenging
to design effectively.
Key Principles for Good Menu Design:
o Consistency: Use consistent terminology, organization, and visual style.
o Clarity: Labels should be unambiguous and easily understood.
o Logical Grouping: Group related functions together.
o Shortcuts/Accelerators: Provide keyboard shortcuts for frequent actions.
o Feedback: Indicate selected items or disable unavailable options.
o Usability Testing: Test menus with real users to identify problems.
Explain the principles of designing effective Forms and Reports.
Effective forms and reports are crucial for user interaction and information delivery. Their
design principles aim for clarity, efficiency, and usability.
Principles of Designing Effective Forms:
Forms are used for data input. Good form design aims to make data entry efficient,
accurate, and user-friendly.
CREATED BY: AARYAN JHA
Understand the User and Task: Design forms for the target audience and the
specific tasks they need to accomplish. Consider their level of experience, frequency
of use, and the environment.
Logical Flow and Grouping:
o Organize fields in a logical sequence that matches the user's thought process
or the real-world flow of information.
o Group related fields together using visual cues like spacing, borders, or
section headings.
Clear and Concise Labels:
o Use meaningful, unambiguous, and consistent labels for all fields.
o Position labels close to their corresponding input fields (e.g., above or to the
left).
Minimize Keystrokes and Clicks:
o Provide default values where appropriate.
o Use input controls that minimize typing (e.g., dropdowns, radio buttons,
checkboxes instead of text fields for limited options).
o Allow tabbing order to follow the logical flow.
Provide Clear Instructions and Guidance:
o Offer clear instructions on how to complete the form, especially for complex
fields.
o Use placeholder text (but don't rely solely on it).
o Provide immediate feedback for invalid entries.
Error Prevention and Handling:
o Design forms to prevent errors where possible (e.g., input masks, validation
rules).
o When errors occur, provide clear, concise, and helpful error messages that
indicate what is wrong and how to fix it.
o Retain valid user input after an error to avoid re-entry.
Visual Aesthetics and Layout:
o Use appropriate font sizes, colors, and contrast for readability.
o Maintain a clean and uncluttered layout with sufficient white space.
o Align fields and labels consistently.
Provide Completion Cues and Confirmation:
o Clearly indicate when the form is complete (e.g., a "Submit" button).
o Provide confirmation messages after successful submission.
Principles of Designing Effective Reports:
Reports are used for data output. Good report design aims to present information clearly,
concisely, and in a way that supports decision-making.
Understand the Audience and Purpose:
o Tailor the report's content, format, and level of detail to the specific users
(e.g., management, operations, customers) and the decisions they need to
make.
o What questions should this report answer?
CREATED BY: AARYAN JHA
Clarity and Conciseness:
o Present information simply and directly. Avoid jargon where possible.
o Use clear headings, subheadings, and labels.
o Summarize key information, allowing users to drill down for details if
needed.
Relevance and Timeliness:
o Include only necessary information. Omit extraneous data.
o Ensure the data is up-to-date and reflects the current state of affairs.
Appropriate Formatting and Visualization:
o Use tables, charts, and graphs effectively to highlight trends, patterns, and
anomalies.
o Ensure graphs are clearly labeled and easy to interpret.
o Use consistent formatting (fonts, colors, spacing).
Effective Use of Highlighting:
o Use bolding, italics, different colors, or shading judiciously to draw attention
to important data points, totals, or exceptions.
Consistency:
o Maintain consistency in layout, terminology, and data presentation across
different reports within a system.
Accuracy and Reliability:
o Ensure the data presented is accurate and derived from reliable sources.
Include disclaimers if data is based on estimates.
Interactivity (for digital reports):
o Allow users to filter, sort, drill down, or customize the report view where
beneficial.
Distribution and Accessibility:
o Consider how the report will be distributed (print, web, email) and ensure it
is accessible in the chosen format.
2. How do you assess the Usability of forms and reports?
Assessing usability involves evaluating how easy, efficient, and satisfying forms and reports
are to use. This can be done through various methods, both qualitative and quantitative.
Methods to Assess Usability:
1. User Testing / Usability Testing:
o Description: Recruit actual or representative users to perform specific tasks
using the forms and reports. Observe their behavior, record their
interactions, and note any difficulties or errors.
o How it assesses:
Efficiency: How quickly and accurately users complete tasks.
Effectiveness: Whether users can achieve their goals with the
form/report.
CREATED BY: AARYAN JHA
Satisfaction: User feedback (verbal comments, questionnaires).
Error Rate: Frequency and types of errors made.
Learnability: How easily new users learn to use them.
o Techniques: Think-aloud protocols (users verbalize their thoughts), eye-
tracking, screen recording, post-task questionnaires.
2. Surveys and Questionnaires:
o Description: Distribute structured questionnaires to a larger group of users
to gather their perceptions and opinions on ease of use, satisfaction, clarity,
and effectiveness.
o How it assesses: Quantifiable data on user satisfaction, perceived ease of use,
specific pain points. Can be scaled for a larger audience.
3. Interviews and Focus Groups:
o Description: Conduct one-on-one interviews or facilitated group discussions
with users to gain in-depth qualitative feedback on their experiences,
preferences, and suggestions for improvement.
o How it assesses: Provides rich, qualitative insights into user mental models,
unmet needs, and reasons behind observed behaviors.
4. Heuristic Evaluation:
o Description: Expert evaluators (usability specialists, designers) assess forms
and reports against a set of established usability principles or heuristics (e.g.,
Nielsen's 10 Usability Heuristics). They identify violations and severity.
o How it assesses: Identifies potential usability problems early in the design
process, based on expert knowledge. It's a quick and cost-effective method.
5. Cognitive Walkthroughs:
o Description: Evaluators "walk through" a specific task step-by-step, from a
user's perspective, trying to identify problems users might encounter at each
step. They answer questions like "Will the user know what to do next?" and
"Will the user understand the feedback?"
o How it assesses: Focuses on learnability and discoverability for new users,
highlighting potential points of confusion.
6. Analytics and Logging (for digital systems):
o Description: Collect usage data (e.g., field completion rates, time spent on a
form, navigation paths taken in a report, common error messages triggered).
o How it assesses: Provides objective, quantitative data on actual user behavior
and system performance. Helps identify common drop-off points or
frequently accessed information.
7. A/B Testing:
o Description: Present different versions of a form or report to different user
groups and compare their performance metrics (e.g., conversion rates, task
completion time).
o How it assesses: Provides empirical evidence for which design performs
better.
Key Usability Metrics/Criteria for Forms and Reports:
Task Completion Rate: Percentage of users who successfully complete a task.
CREATED BY: AARYAN JHA
Time on Task: How long it takes users to complete a specific task.
Error Rate: Number of errors made by users per task or per form/report.
Subjective Satisfaction: User ratings on satisfaction, ease of use, and visual appeal.
Number of Clicks/Keystrokes: Efficiency metric for form completion.
Information Retrieval Time: How quickly users can find specific information in a
report.
3. Discuss various Interaction Methods and Devices for designing interfaces and dialogues.
Interaction methods and devices are the ways users communicate with a system and the
physical or virtual tools they use to do so. The choice depends on the application, user, and
environment.
Interaction Methods:
These describe how users engage with the system's interface.
1. Command Language Interface (CLI):
o Description: Users type commands using a specific syntax to instruct the
system.
o Devices: Keyboard.
o Pros: Powerful, precise, efficient for expert users, low resource consumption.
o Cons: High learning curve, error-prone, no visual feedback.
o Example: Unix/Linux shell, MS-DOS prompt.
2. Menu-Based Interface:
o Description: Users select options from a list of predefined choices. Can be
hierarchical, pull-down, pop-up, or button-based.
o Devices: Keyboard (arrow keys, hotkeys), mouse (clicks), touchscreens.
o Pros: Easy to learn, reduces errors, no memorization needed.
o Cons: Can be slow for expert users (too many clicks), can lead to deep
navigation.
o Example: Most modern GUI applications, website navigation.
3. Form-Fill Interface:
o Description: Users enter data into designated fields on a pre-formatted
screen (a "form").
o Devices: Keyboard for text entry, mouse/touch for selecting fields or controls.
o Pros: Intuitive for data entry, guides user, efficient for structured data.
o Cons: Can be tedious for large amounts of data, requires careful design to
prevent errors.
o Example: Online registration forms, data entry screens in business
applications.
4. Query Language Interface:
o Description: Users formulate queries (e.g., using SQL) to retrieve specific
information from a database.
CREATED BY: AARYAN JHA
o Devices: Keyboard.
o Pros: Powerful for data retrieval, flexible.
o Cons: Requires knowledge of the query language, complex syntax.
o Example: SQL interfaces for databases, search engines (simple query
languages).
5. Natural Language Interface:
o Description: Users interact with the system using everyday human language
(spoken or typed).
o Devices: Microphone, keyboard.
o Pros: Highly intuitive, no learning curve for commands.
o Cons: Difficult to implement, prone to ambiguity, requires advanced AI.
o Example: Siri, Google Assistant, ChatGPT.
6. Direct Manipulation Interface (WIMP - Windows, Icons, Menus, Pointers):
o Description: Users interact directly with graphical representations of objects
on the screen. Actions are performed by dragging, dropping, clicking, or
resizing.
o Devices: Mouse, trackpad, joystick, touchscreen.
o Pros: Intuitive, easy to learn, immediate visual feedback, engaging.
o Cons: Can be slower for precise numerical input, requires graphical display,
sometimes limited to what can be visually represented.
o Example: Desktop operating systems (Windows, macOS), drawing software,
games.
Interaction Devices:
These are the hardware tools users employ to interact with the system.
1. Keyboard:
o Primary Use: Text and numerical input, command entry, navigation
(shortcuts).
o Variations: QWERTY, Dvorak, ergonomic, compact, virtual.
o Strengths: Fast for text entry, precise for discrete commands.
o Weaknesses: Requires typing skill, not ideal for spatial input.
2. Mouse:
o Primary Use: Pointing, selecting, dragging, clicking, scrolling in GUI
environments.
o Variations: Optical, laser, trackball, wireless.
o Strengths: Intuitive for spatial manipulation, fast for selection.
o Weaknesses: Requires flat surface, can cause repetitive strain injury (RSI).
3. Touchscreen:
o Primary Use: Direct manipulation, tapping, swiping, pinching, zooming
(multi-touch gestures).
o Variations: Resistive, capacitive.
o Strengths: Highly intuitive, no external pointing device needed, good for
mobile.
CREATED BY: AARYAN JHA
o Weaknesses: Finger occlusion, precision issues for small targets, "gorilla
arm" (fatigue), smudges.
4. Trackpad/Touchpad:
o Primary Use: Similar to a mouse, but integrated into laptops. Uses finger
gestures for pointing and clicking.
o Strengths: Portable, no extra device needed.
o Weaknesses: Can be less precise than a mouse for detailed work.
5. Joystick/Game Controllers:
o Primary Use: Navigating in virtual environments, gaming, controlling
machinery.
o Strengths: Intuitive for continuous control, precise for certain movements.
o Weaknesses: Not ideal for text entry or general desktop use.
6. Stylus/Light Pen:
o Primary Use: Drawing, writing, precise selection on touchscreens or graphics
tablets.
o Strengths: High precision, mimics pen-on-paper interaction.
o Weaknesses: Can be slow for large selections, requires fine motor skills.
7. Microphone/Voice Recognition:
o Primary Use: Voice commands, dictation, natural language interaction.
o Strengths: Hands-free, fast for dictation, accessible for users with motor
impairments.
o Weaknesses: Accuracy issues, background noise, privacy concerns, requires
clear speech.
8. Eye-Tracking Devices:
o Primary Use: Gaze control, hands-free interaction, accessibility for disabled
users, research.
o Strengths: Extremely fast selection, completely hands-free.
o Weaknesses: Expensive, can be tiring, requires calibration.
9. Gesture Recognition Devices (e.g., Kinect, Leap Motion):
o Primary Use: Controlling systems through body movements or hand
gestures.
o Strengths: Immersive, natural for certain applications.
o Weaknesses: Requires open space, can be tiring, accuracy issues.
4. Explain principles for designing Interfaces and Dialogues in Graphical Environments.
Graphical User Interfaces (GUIs) are dominant in modern software. Designing effective
GUIs and their interaction dialogues (sequences of interaction) is critical for user
satisfaction.
General Principles for GUI Design:
1. Consistency:
CREATED BY: AARYAN JHA
o Internal Consistency: Use the same terminology, commands, and visual
elements throughout the application (e.g., "Save" button always looks and
acts the same).
o External Consistency: Adhere to platform-specific guidelines (e.g., Windows
apps should follow Windows UI guidelines, macOS apps should follow
macOS guidelines) to leverage users' existing knowledge.
o Benefits: Reduces learning time, improves predictability, fosters a sense of
control.
2. Feedback and Communication:
o Immediate Feedback: Inform users that their action has been registered (e.g.,
button press animation, cursor change).
o Status Information: Show progress for long operations (e.g., progress bars,
"loading..." messages).
o Error Messages: Provide clear, constructive, and polite error messages that
explain the problem and suggest a solution.
o Benefits: Reassures users, prevents frustration, helps in troubleshooting.
3. User Control and Freedom:
o Undo/Redo: Allow users to easily undo and redo actions, promoting
exploration without fear of irreversible mistakes.
o Exit Options: Provide clear ways to exit the system, cancel operations, or go
back to previous states.
o Customization: Allow users to personalize aspects of the interface (e.g.,
themes, toolbar layout) if it enhances productivity.
o Benefits: Empowers users, reduces anxiety, makes the system feel responsive.
4. Error Prevention and Recovery:
o Prevent Errors: Design interfaces to make it difficult for users to make
mistakes (e.g., disable invalid options, provide sensible defaults).
o Easy Recovery: When errors occur, make it easy for users to recover from
them (e.g., clear error messages, auto-saving, robust undo functionality).
o Confirmation Dialogs (Judiciously): Use confirmation dialogs for destructive
actions only (e.g., "Are you sure you want to delete...?"). Overuse leads to
"dialog fatigue."
o Benefits: Reduces user frustration, improves data integrity.
5. Clarity and Simplicity:
o Avoid Clutter: Keep interfaces clean and uncluttered. Use white space
effectively.
o Visibility: Make important elements visible and discoverable.
o Plain Language: Use understandable language, avoid jargon.
o Directness: Focus on direct manipulation where possible.
o Benefits: Reduces cognitive load, makes learning easier, improves efficiency.
6. Flexibility and Efficiency of Use:
o Accelerators/Shortcuts: Provide keyboard shortcuts, hotkeys, or aliases for
frequent actions for expert users.
o Personalization: Allow users to adapt the interface to their specific needs and
frequency of use.
CREATED BY: AARYAN JHA
o Benefits: Caters to both novice and expert users, improving overall
productivity.
7. Aesthetics and Minimalist Design:
o Visual Appeal: An aesthetically pleasing interface is more engaging and
pleasant to use.
o Minimize Extraneous Information: Avoid unnecessary visual elements or
information that distracts from the core task.
o Benefits: Enhances user satisfaction, creates a positive impression.
Principles for Designing Dialogues (Interaction Sequences):
Dialogues refer to the step-by-step conversations or sequences of interactions between the
user and the system to achieve a goal.
1. Initiate and Terminate Clearly:
o Users should always know when a dialogue starts and when it ends.
o Provide clear "Start" and "End" points or actions (e.g., opening/closing a
wizard, submitting a form).
2. Simple and Natural Dialogue:
o The flow of interaction should mimic a natural conversation or task flow.
o Avoid unnecessary steps or jumping between unrelated screens.
3. Provide Context:
o Ensure users always know where they are in the dialogue and what step they
are on.
o Use breadcrumbs, step indicators (e.g., "Step 2 of 5"), or consistent headings.
4. Keep Users Informed:
o Provide feedback at each step of the dialogue.
o Confirm actions taken (e.g., "Your settings have been saved").
5. Allow Interruptions and Recovery:
o Users should be able to pause a dialogue, save progress, or cancel it
gracefully without losing all work.
6. Error Handling within Dialogue:
o Validate input at each step if possible, and provide immediate error feedback
relevant to that step.
o Allow users to correct errors easily within the current step before
proceeding.
7. Consistent Navigation:
o Use consistent navigation controls (e.g., "Next," "Back," "Cancel" buttons)
in the same locations within dialogue boxes or wizards.
8. Avoid Modality (Judiciously):
o Avoid modal dialogues (which block interaction with the rest of the
application) unless absolutely necessary (e.g., for critical errors or saving
unsaved work). Prefer non-modal interactions where possible.
9. Minimize Memory Load:
o Don't force users to remember information from previous steps. Display
relevant information from earlier steps if needed.
CREATED BY: AARYAN JHA
o Provide clear defaults where possible.
By applying these principles, designers can create interfaces and dialogues in graphical
environments that are intuitive, efficient, and enjoyable for users.
Numerical/Diagrammatic Problem Types (Remaining from Unit 4)
1. Normalization: Convert given table to 2NF/3NF by identifying functional dependencies.
This is a practical skill. You will be given a table with data and/or a list of functional
dependencies (e.g., A -> B, BC -> D).
Steps:
1. Identify the Primary Key(s): Determine the minimal set of attributes that
uniquely identifies each row.
2. Check for 1NF: Ensure no repeating groups or multi-valued attributes, and
all values are atomic. If not, break them out.
3. Check for 2NF:
If the PK is simple (single attribute), the table is automatically in 2NF.
If the PK is composite (multiple attributes), check for partial
dependencies. If a non-key attribute depends on only part of the
composite PK, move that attribute and its determinant to a new table.
4. Check for 3NF:
Check for transitive dependencies. If a non-key attribute depends on
another non-key attribute (which in turn depends on the PK), move
these attributes to a new table.
5. Check for BCNF (Optional, but good to know): If any determinant is not a
candidate key, then further decompose.
Example (revisiting from Unit 4):
o Table: COURSE_ENROLLMENT (StudentID, CourseID, StudentName, CourseTitle,
InstructorName, InstructorOffice)
o PK: (StudentID, CourseID)
o Functional Dependencies:
StudentID -> StudentName (Partial dependency on PK)
CourseID -> CourseTitle, InstructorName, InstructorOffice (Partial
dependency on PK)
(Transitive dependency via CourseID,
InstructorName -> InstructorOffice
but within a partial dependency context)
o To 2NF:
ENROLLMENT (StudentID, CourseID)
STUDENT (StudentID, StudentName)
COURSE_DETAILS (CourseID, CourseTitle, InstructorName, InstructorOffice)
o To 3NF (from COURSE_DETAILS):
COURSE_DETAILS still has InstructorName -> InstructorOffice (transitive
dependency where InstructorName is a non-key attribute determining
another non-key attribute).
COURSE (CourseID, CourseTitle, InstructorName)
INSTRUCTOR (InstructorName, InstructorOffice)
CREATED BY: AARYAN JHA
o Final 3NF tables:
ENROLLMENT (StudentID, CourseID)
STUDENT (StudentID, StudentName)
COURSE (CourseID, CourseTitle, InstructorName (FK))
INSTRUCTOR (InstructorName (PK), InstructorOffice)
2. E-R to Relational Transformation: Transform E-R diagrams into relational schemas.
This is a practical skill. You will be given an ERD (with entities, attributes,
relationships, and cardinalities) and asked to convert it into a set of normalized
relational tables.
Steps: Follow the rules for mapping ERD components to relations as explained
extensively in Unit 4, point 2.
o Strong Entities -> Tables (PK)
o Weak Entities -> Tables (Composite PK of partial + identifying entity's PK)
o 1:1 Relationships -> FK in one table or merge
o 1:M Relationships -> FK on "many" side
o M:N Relationships -> New junction table with composite PK (FKs)
o Multi-valued Attributes -> New table with composite PK (FK + attribute)
o Super-type/Sub-type -> Various options (typically super-type table + sub-
type tables with inherited PK/FK)
Example: (Imagine an ERD with Customer (1,N) places (1,1) Order (1,N) contains (0,N)
Product)
o Customer -> CUSTOMER (CustomerID, CName, CAddress)
o Order -> ORDER (OrderID, OrderDate, CustomerID (FK))
o Product -> PRODUCT (ProductID, PName, Price)
o contains (M:N between Order and Product) -> ORDER_ITEM (OrderID (FK,PK),
ProductID (FK,PK), Quantity, LineTotal)
Unit 5: Implementation and Maintenance
1. Distinguish between system and user documentation and determine which types of
documentation are necessary for a given information system.
System Documentation (Technical Documentation):
o Purpose: Describes the system from a technical perspective, used by
developers, maintenance staff, and system administrators. It focuses on how
the system is built and how it operates.
o Contents:
Requirements Specifications: Detailed functional and non-functional
requirements.
Design Documents: Architecture diagrams, database schemas (ERDs,
table designs), DFDs, UI/UX designs, module specifications,
algorithms.
CREATED BY: AARYAN JHA
Source Code Documentation: Comments within code, API
documentation.
Test Plans and Results: Test cases, test execution logs, defect reports.
Installation and Configuration Guides: Steps for setting up the
system.
System Administration Manuals: Instructions for system operators
(backups, recovery, performance tuning).
Maintenance Manuals: Guidelines for troubleshooting, bug fixing,
and enhancements.
o When necessary: Essential for any system, especially for long-term
maintenance, future enhancements, and transferring knowledge to new team
members.
User Documentation (User Manuals, Guides):
o Purpose: Describes the system from the user's perspective, enabling end-
users to effectively use the system. It focuses on what the system does and
how to achieve specific tasks.
o Contents:
User Manuals/Guides: Step-by-step instructions for using features,
common tasks, explanations of screens and reports.
Tutorials: Guided exercises for learning specific functionalities.
FAQs (Frequently Asked Questions): Answers to common user
queries.
Help Files: Context-sensitive online help.
Troubleshooting Guides: Simple solutions to common user problems.
Quick Reference Guides/Cheat Sheets: Summaries of key functions.
o When necessary: Crucial for any system that interacts with end-users to
minimize training costs, improve user adoption, and reduce support calls.
Determining Necessity:
o Complexity of the System: More complex systems require more detailed
documentation.
o Target Audience: Highly technical users need different documentation than
non-technical end-users.
o Regulatory Requirements: Some industries have mandatory documentation
standards.
o Future Maintenance Needs: Systems with long lifespans or anticipated
changes require robust system documentation.
o Budget and Time Constraints: Documentation is often scaled based on
available resources, but essential parts should never be skipped.
2. Explain and contrast four types of maintenance (corrective, adaptive, perfective,
preventive).
Software Maintenance: The process of modifying a software product after delivery
to correct faults, improve performance or other attributes, or adapt the product to a
modified environment.
Types of Maintenance:
CREATED BY: AARYAN JHA
1. Corrective Maintenance:
Purpose: To fix bugs, errors, or defects discovered after the system
has been implemented. These are often reported by users as system
failures or unexpected behavior.
Example: A bug causing incorrect calculations, a system crash when a
specific input is given, a broken link on a webpage.
Contrast: Reactive, addresses immediate problems.
2. Adaptive Maintenance:
Purpose: To modify the system to cope with changes in the external
environment or operating platform. The core functionality of the
system doesn't change, but its surroundings do.
Example: Updating the system to work with a new operating system
version, a change in tax laws, new hardware, a change in external API
specifications.
Contrast: Reactive to environmental changes, ensures compatibility.
3. Perfective Maintenance:
Purpose: To improve the system's performance, maintainability, or
usability based on user feedback or ongoing analysis. It involves
enhancements, optimizations, or restructuring code without changing
its core functionality.
Example: Optimizing a slow query, redesigning a confusing user
interface, refactoring code for better readability, adding minor non-
functional features.
Contrast: Proactive, improves existing functionality/quality.
4. Preventive Maintenance:
Purpose: To anticipate and prevent future problems, reduce the
likelihood of system failure, or extend the system's useful life. It
involves making changes to a system to prevent errors from occurring
later.
Example: Code refactoring for future readability, updating libraries
to avoid known vulnerabilities, performing routine database
defragmentation, adding logging mechanisms for better error
detection.
Contrast: Highly proactive, focuses on future stability and reducing
long-term costs.
3. Define System Implementation.
System Implementation Definition: The phase in the Systems Development Life
Cycle (SDLC) where the designed system is actually built, tested, installed, and put
into operation. It's the transition from design specifications to a live, working
system.
Key Activities:
o Coding and Programming
o Software Testing (Unit, Integration, System, Acceptance)
o Data Conversion and Migration
CREATED BY: AARYAN JHA
o Installation and Deployment
o User Training
o System Documentation (as-built)
o Cutover/Go-Live Strategy
4. Explain different types of Software Application Testing (e.g., unit, integration, system,
acceptance).
Software Testing: The process of evaluating a software product to find defects,
verify that it meets specified requirements, and determine its quality.
Types of Testing:
1. Unit Testing:
Purpose: To test individual components or modules of the software in
isolation to ensure they function correctly according to their design.
Done by developers.
Focus: Smallest testable parts of the application (functions, methods,
classes).
Example: Testing a single function that calculates tax, verifying a
specific login method works as expected.
2. Integration Testing:
Purpose: To test the interfaces and interactions between integrated
modules or components. Ensures that different parts of the system
work together correctly.
Focus: How modules interact and pass data between them.
Example: Testing if the "add to cart" module correctly interacts with
the "inventory" module and the "pricing" module.
3. System Testing:
Purpose: To test the complete and integrated software system against
the specified requirements. It evaluates the system's compliance with
functional and non-functional requirements (e.g., performance,
security, usability).
Focus: The entire system as a whole, from end-to-end.
Example: Testing the entire e-commerce flow from user registration,
Browse, adding to cart, checkout, payment, and order confirmation.
Performance testing under load. Security vulnerability scanning.
4. Acceptance Testing (User Acceptance Testing - UAT):
Purpose: To verify that the system meets the business needs and
requirements of the end-users and stakeholders, and is acceptable for
deployment. Done by end-users or client representatives.
Focus: Business requirements and user workflows, ensuring the
system solves the original business problem.
Example: Key users perform typical daily tasks, follow business
processes, and confirm that the system functions as expected from
their perspective. Often uses real-world data.
Sign-off: Successful UAT typically leads to formal sign-off by the
client, indicating readiness for production.
CREATED BY: AARYAN JHA
5. Discuss the process of Installation and Documenting the System.
Installation Process:
1. Preparation:
Hardware/Software Requirements: Ensure target environment meets
system specifications.
Pre-installation Checks: Verify necessary prerequisites (OS,
databases, network configurations, dependencies).
Data Migration Plan: Strategy for converting and loading existing
data into the new system.
2. Deployment Strategy (Cutover): Decide how to transition from the old
system to the new.
Direct Cutover (Plunge): Old system is immediately replaced by the
new. High risk, low cost. Suitable for non-critical systems or when old
system is completely obsolete.
Parallel Adoption: New and old systems run simultaneously for a
period. Low risk, high cost. Best for critical systems where downtime
is unacceptable.
Phased/Staged Adoption: New system introduced in stages or
modules. Medium risk/cost. Allows learning and adjustments in
smaller increments.
Pilot Adoption: New system introduced to a small group of users or
one organizational unit first. Medium risk/cost. Provides a testbed for
learning before wider rollout.
3. Execution:
Software Installation: Deploying application code, libraries, and
configurations.
Database Installation/Setup: Creating databases, schemas, and
loading initial data.
Network Configuration: Setting up firewalls, proxies, and network
access.
Security Setup: User accounts, permissions, authentication.
Data Migration: Executing scripts or tools to transfer existing data.
4. Verification:
Post-Installation Checks: Confirm all components are running.
Smoke Testing: Perform basic tests to ensure critical functions work.
User Acceptance Testing (UAT): Conduct final testing in the
production environment.
Documenting the System (during Implementation):
o While some documentation (requirements, design) is done earlier,
"documenting the system" in this phase typically refers to "as-built"
documentation and updating previous documents.
1. Updating System Documentation:
As-Built Design Documents: Reflect any changes made during coding
and testing that deviate from the initial design.
CREATED BY: AARYAN JHA
Configuration Management: Documenting specific versions of
software, libraries, and configurations deployed.
Installation & Deployment Guides: Detailed, step-by-step instructions
for future installations or recoveries.
Troubleshooting Guides: Based on issues encountered during
installation and testing.
2. Creating User Documentation:
User Manuals: Comprehensive guides for end-users on how to operate
the system's features.
Online Help: Context-sensitive help integrated into the application.
Training Materials: Handouts, presentations, and exercises for user
training.
3. Operational Documentation:
System Administration Manual: For IT staff, covering daily
operations, backups, performance monitoring, security.
Recovery Procedures: Steps to restore the system in case of failure.
Support Contacts/Escalation Procedures: For problem resolution.
6. Explain the importance of Training and Supporting Users.
Training Users:
o Purpose: To educate end-users on how to effectively use the new system to
perform their job functions.
o Importance:
Increased User Adoption: Users are more likely to embrace the new
system if they feel competent and comfortable using it.
Improved Productivity: Trained users can quickly perform tasks,
reducing errors and improving efficiency.
Reduced Resistance to Change: Training can alleviate fear and
anxiety associated with new systems.
Fewer Support Calls: Well-trained users make fewer mistakes and
can resolve minor issues themselves, reducing the burden on support
staff.
Higher Return on Investment (ROI): Maximizes the value derived
from the new system by ensuring it's used to its full potential.
o Methods: Classroom training, online tutorials, one-on-one coaching,
workshops, self-paced modules.
Supporting Users:
o Purpose: To provide ongoing assistance to users after the system has gone
live, addressing their questions, resolving issues, and providing continuous
guidance.
o Importance:
Ensures Continued Productivity: Users can get help when they
encounter problems, preventing workflow disruption.
Builds User Confidence: Knowing support is available encourages
users to experiment and use the system more fully.
CREATED BY: AARYAN JHA
Identifies System Issues: User support often acts as the first line of
defense in identifying bugs, usability issues, or areas for improvement.
Enhances User Satisfaction: A responsive support system leads to
higher user satisfaction.
Facilitates System Evolution: User feedback collected through
support channels can inform future system enhancements.
o Methods: Help desk, online FAQs, knowledge bases, user forums, dedicated
support staff, system champions.
7. Discuss Organizational Issues in Systems Implementation.
Organizational Issues: Challenges related to people, culture, structure, and
processes during system implementation, often leading to project failure if not
managed well.
1. Resistance to Change:
Causes: Fear of the unknown, loss of control, perceived job insecurity,
loss of familiar routines, lack of understanding of benefits.
Impact: Reduced productivity, non-cooperation, sabotage, project
delays.
Mitigation: Early and continuous user involvement, clear
communication, comprehensive training, visible management support,
incentives.
2. Lack of Top Management Support:
Impact: Insufficient resources, low priority for the project, lack of
enforcement for new processes, skepticism among lower-level
employees.
Mitigation: Secure executive sponsorship, regular project updates to
management, demonstrating ROI.
3. Inadequate User Involvement:
Impact: System doesn't meet actual user needs, low user adoption,
design flaws, user dissatisfaction.
Mitigation: Active participation in requirements gathering (JAD,
prototyping), user acceptance testing (UAT), user representatives on
the project team.
4. Poor Communication:
Impact: Misunderstandings, conflicting expectations, lack of
awareness, rumors.
Mitigation: Clear communication plan, regular newsletters, town
halls, open-door policy, dedicated communication channels.
5. Organizational Culture Mismatch:
Impact: New system clashes with existing work habits, values, or
power structures.
Mitigation: Assess culture early, tailor implementation strategy,
identify and address cultural barriers.
6. Training Deficiencies:
CREATED BY: AARYAN JHA
Impact: Users unable to use the system effectively, increased errors,
high support calls, frustration.
Mitigation: Comprehensive training programs, varied training
methods, post-training support.
7. Data Quality Issues:
Impact: New system fails due to bad data from the old system, loss of
trust in the new system.
Mitigation: Data cleansing, data migration planning, robust data
validation in the new system.
8. Staffing and Skill Gaps:
Impact: Lack of internal expertise to manage, operate, or support the
new system.
Mitigation: Hire new staff, external consultants, upskill existing
employees through training.
8. Explain the process of Maintaining Information Systems and Conducting Systems
Maintenance.
Maintaining Information Systems (Overall Process):
o Definition: The continuous process of keeping an information system
functional, relevant, and efficient throughout its operational life. It's an
ongoing cycle that ensures the system continues to meet evolving business
needs.
o Process:
1. Request for Change/Problem Identification: Users or system
administrators identify issues (bugs), new requirements, or
opportunities for improvement.
2. Impact Analysis: Assess the impact of the proposed change on the
system, other systems, users, and resources.
3. Prioritization: Rank changes based on severity, urgency, business
value, and available resources.
4. Change Control: Formal process for approving, documenting, and
managing changes to the system. Prevents unauthorized or
uncontrolled modifications.
5. Design Modification: Update design documents to reflect the proposed
changes.
6. Coding and Testing: Implement the changes, thoroughly test the
modified components and their integration.
7. Documentation Update: Update all relevant system and user
documentation.
8. Deployment: Install the updated system into the production
environment.
9. Review and Monitoring: Monitor the system's performance and
stability after the changes. Gather feedback.
10. Retirement (eventual): Eventually, a system reaches the end of its
useful life and is replaced by a new system.
CREATED BY: AARYAN JHA
Conducting Systems Maintenance (Practical Aspects):
o Dedicated Maintenance Team: Often a separate team or part of the
development team is allocated for maintenance tasks.
o Help Desk/Support System: A formal process for users to report issues and
request changes.
o Version Control System: Essential for managing code changes and reverting
to previous versions if needed.
o Maintenance Management Tools: Software for tracking issues, change
requests, and work assignments.
o Service Level Agreements (SLAs): Define performance targets and
responsibilities for maintenance.
o Budget Allocation: Dedicated funds for ongoing maintenance activities.
o Knowledge Management: Maintaining a central repository of system
knowledge for the maintenance team.
9. Why do software projects often fail?
Software project failures are unfortunately common. Here are key reasons:
1. Poor Requirements Management:
Incomplete, ambiguous, or constantly changing requirements.
Lack of user involvement in requirements gathering.
Inability to manage scope creep.
2. Inadequate Planning and Estimation:
Unrealistic schedules and budgets.
Underestimation of complexity and effort.
Poor risk management.
3. Lack of Management Support/Sponsorship:
Project not aligned with business strategy.
Insufficient resources (time, money, people).
Lack of clear decision-making authority.
4. Poor Communication:
Between stakeholders, developers, and users.
Misunderstandings, delayed information.
5. Inadequate User Involvement/Resistance to Change:
Users not adopting the system.
Lack of understanding of user needs, leading to a system that isn't
useful.
Fear or opposition to the new system.
6. Technical Challenges:
Inadequate technical skills or expertise within the team.
Use of unproven or unsuitable technology.
Integration issues with existing systems.
Poor architecture or design.
7. Lack of Testing/Quality Assurance:
Bugs and defects not caught early, leading to costly fixes later.
System not meeting quality standards.
CREATED BY: AARYAN JHA
8. Poor Project Management:
Ineffective leadership, planning, monitoring, and control.
Lack of defined roles and responsibilities.
Failure to adapt to changes.
9. Organizational Culture:
Resistance to new processes, lack of collaboration.
Siloed departments unwilling to share information.
10. Vendor Issues (for outsourced projects):
Poor vendor selection.
Contractual disputes, lack of oversight.