Module 3 Notes
Module 3 Notes
A problem can be defined as an obstacle which makes it difficult to achieve a desired goal,
objective or purpose; while problem-solving is a systematic approach to defining the problem
and creating different solutions to correct the problem.
Objective #3: Describe the role of information in the solution of real-life problems
Identification of the information necessary for the solution of personal, commercial, scientific
and social problems.
Essential Information- Information becomes extremely important based on the purpose it will
serve or the problem that it will be used to solved. Information is also considered essential when
delivered in a timely manner, is factual and reliable.
Extraneous Information-
Cosmetic Information
Objective #4: Explain how information can be used to solve real-life problems
Criteria for rejecting or accepting a piece of information including:
● Bias- Bias is one way in which information may be rejected. Bias will occur as a result of
not utilizing valid or factual sources to retrieve information. Relying on one source is said
to be biased, as other means were not exploited to carry out further investigation or make
adequate comparison.
● Cultural context- Cultural context looks at the society in which persons live and how
their culture can affect their behaviour and their opportunities. Base on their background
or way of life, the provided solution may not be effective to solving their current
problem; but rather worsen it. Information being sources will be based on the values and
attitudes that matter to these persons and about how they formed.
● Refereed and unrefereed sources- Refereed sources are those are experts in their field
and their work have been reviewed by various experts who have the authority to fairly
judge their work. Unrefereed sources on the other hand, are those which did not receive
any peer or expert review or fair judging. As such, information from refereed sources are
normally considered to be unbiased and accurate to be used by others.
Objective #5: Analyse the role of information in fulfilling the goals of an individual or
organization
Capitalising on opportunities.
SDLC
CAPES NOTES
Objective #5: Explain the Various Stages of the System Development Life Cycle (SDLC),
System Development Life Cycle (SDLC) is a process used by the software industry to design,
develop and test high quality software. The SDLC aims to produce a high-quality software that
meets or exceeds customer expectations, reaches completion within times and cost estimates,
provide strong management controls over the projects, and maximize the productivity of the
systems staff. It consists of a detailed plan describing how to develop, maintain, replace and alter
1. Planning
2. Analysis
3. Design
4. Development
5. Testing
6. Implementation
7. Review/Maintenance
SDLC
STAGE 1-Planning
This is the first stage in the System Development Life Cycle (SDLC). The purpose of this stage
is to identify whether or not a new system is required. It is a preliminary plan (or feasibility
study) to find out the scope of the problem; define the problem and also to determine the
solutions to the problem. At this stage, steps are made to foresee the events to take place in
implementing a software.
Deliverables (Output of the stage)
o Problem Statement- Clearly identify the problem that exists
o Feasibility Report/ Risk Assessment (Interviews, Questionnaire, Observation,
review/investigation of printed material)
o Gantt Chart- is a project plan showing breakdown of tasks and timeline.
o Rapid Application Development (RAD)
STAGE 2- Analysis
The needs of the end users is analyzed to ensure that the new system can meet their expectations.
It involves detailed understanding of all important facts of the business area under investigation
or feasibility. This is one such aspect which is used to identify some underlying factors that
contributes to the problem. This requires data collection from a verity of sources such as
questionnaires, forms, interviews, study of existing documents. It can be involved the direct
observation in the organization and collected documents to understand the whole existing
system.
o Project Dictionary
STAGE 3- Design
In this process the primary object is to identify user requirements, specifications and to build a
system that satisfies these requirements. In other words, at this stage, describes how the intended
system will accomplish the task of solving business problems. Design of the system is mainly the
logical design that can be sketch on a paper or on a computer (prototype). It includes physical
STAGE 4- Development
This phase is where the real work begins; the start of productions. Development is a phase where
detailed design is used to actually construct and build the system. In this phase the system is
decided whether to buy commercial software or to develop new customized program with the
help of the programmers. The choice depends upon the cost of software and cost of
programming.
o Design Strategies
o User Interface
o Implementation Schedule
STAGE 5-Testing
Testing is a process of making sure that the program performs the intended task. Once the system
is designed it should be tested for validity, normally by Quality Assurance (QA) Professionals.
During this phase the system is used experimentally to ensure that software does not fail and it
will work according to its specification. It is tested with special test data.
STAGE 6- Implementation
Implementation is the process of converting from the old system to the new system. This phase
of development consists of installing hardware, programs, collecting data and organizing people
to interact with and run the system. In this phase user actually starts using the system therefore it
o Clerical Procedures
Objective #6: Discuss the tools used in the different Stages of the (SDLC)
implemented/ introduced.
Flow Charts- These refers to graphical representation, showing step by step process of
refers to a type of flowchart that illustrates how entities, such as people, objects or
concepts relate to each other within a system. ER diagrams are normally implemented to
design or debug relational databases. They use a defined set of symbols such as
Computer-aided software engineering (CASE) tools- CASE tools are set of software
application programs, which are used to automate SDLC activities. CASE tools are used
GANTT charts- GANTT chart is a horizontal bar chart, frequently used in project
coordinate, and track specific tasks in a project. A Gantt chart is constructed with a
horizontal axis representing the total time span of the project, broken down into
increments (for example, days, weeks, or months) and a vertical axis representing the
tasks that make up the project (for example: conduct research, choose software, install
software).
Data flow diagrams- A data flow diagram (DFD) maps out the flow of information for
any process or system. It uses defined symbols like rectangles, circles and arrows, plus
short text labels, to show data inputs, outputs, storage points and the routes between each
destination.
Pseudocode- Pseudocode is one of the tools that can be used to write a preliminary plan
normally represents how a hardware or software will look at the final stance.
process. Each model represents a process from a specific perspective. Process models
includes:
o Waterfall Model
o Iterative Model
o Spiral Model
o V-Model
Decision tables - A decision table is used to represent conditional logic by creating a list
of tasks depicting business level rules. Decision tables can be used when there is a
consistent number of conditions that must be evaluated and assigned a specific set of
Decision trees- A decision tree is a graph that uses a branching method to illustrate every
It's Important to note that the phases of the SDLC are not always linear and may overlap.
The System Development Life Cycle (SDLC) is a structured process used by software
engineers to design, develop, and test high-quality software systems. The stages of SDLC guide
the project from its initial concept to the maintenance of the finished product. Below is a
breakdown of each stage, its deliverables, and how software engineering fits into this framework:
1. Feasibility Study
Purpose: To evaluate whether the project is viable and worth pursuing in terms of
technical, economic, legal, operational, and schedule feasibility.
Deliverables:
o Feasibility Report: This report outlines the project's feasibility in various aspects,
including costs, benefits, and risks.
o System Proposal: A recommendation on whether the project should move
forward, with options and justifications.
2. System Analysis
Purpose: To gather and analyze business requirements, understand existing systems, and
determine the specific needs of the new system.
Activities:
o Interviews, surveys, and observations with stakeholders.
o Requirements analysis to define system functionality and features.
Deliverables:
o Requirements Specification Document (RSD): A detailed list of functional and
non-functional requirements.
o Use Case Diagrams: These diagrams show how different users will interact with
the system.
o Data Flow Diagrams (DFDs) or Entity-Relationship Diagrams (ERDs): These
represent the flow of data or the relationships between entities in the system.
3. System Design
Purpose: To design the system's architecture, databases, user interfaces, and any other
technical details needed to implement the solution.
Activities:
o High-level system design: Designing the overall system architecture.
o Detailed design: Developing detailed specifications for software components,
databases, and user interfaces.
Deliverables:
o System Design Document: Contains the architecture, database schemas, user
interface designs, and detailed technical specifications.
o Database Diagrams (e.g., ERD): Shows how data is structured in the system.
o User Interface Prototypes: Mock-ups or wireframes of how the system will look
to users.
o Project Plan: Detailed timeline, resources, and risk management strategies.
4. Development (Coding)
Purpose: To convert the design specifications into actual software by writing code for
various system components.
Activities:
o Coding and unit testing of individual modules.
o Integration of the modules into a unified system.
Deliverables:
o Source Code: The written software in programming languages.
o Test Scripts: Unit and integration testing scripts developed to test individual
components and their interactions.
5. System Testing
Purpose: To ensure the system works according to requirements and to identify and fix
any defects.
Activities:
o Unit testing, integration testing, system testing, and user acceptance testing
(UAT).
o Verification of whether the system meets user requirements.
Deliverables:
o Test Plan and Test Cases: Detailed plans outlining the testing strategy,
scenarios, expected results, and actual results.
o Bug Reports: Reports listing defects found during testing and their status.
6. Implementation
Purpose: To deploy the system into the actual environment where end-users will start
using it.
Activities:
o System installation and configuration.
o Data migration from old systems, if applicable.
o User training and support.
Deliverables:
o Conversion Plan: A strategy to switch from the old system to the new one (e.g.,
parallel, direct, phased, or pilot conversion).
o User Manuals: Documentation for end-users explaining how to operate the
system.
o Technical Manuals: Documentation for developers and system administrators on
maintaining and troubleshooting the system.
o Training Plans: Plans for training users and administrators.
7. Review (Maintenance)
Purpose: To monitor the system’s performance, address issues, and make necessary
improvements or upgrades.
Activities:
o Continuous monitoring of system performance.
o Fixing bugs or adding new features.
Deliverables:
o Maintenance Plans: A schedule for ongoing updates and fixes.
o Post-Implementation Review Report: A review of the project’s success, lessons
learned, and recommendations for future projects.
Software Engineering in SDLC:
Software engineering principles are applied throughout the SDLC to ensure the software is
reliable, efficient, scalable, and maintainable. These include:
Modularization: Breaking down the system into smaller, manageable components.
Documentation: Maintaining clear documentation for each phase to ensure traceability.
Version Control: Using tools like Git for code management.
Quality Assurance (QA): Incorporating testing, code reviews, and validation processes.
Each stage is essential for the overall success of the project, and the deliverables at each phase
ensure that the development stays on track and meets the business goals.
Here’s a clear and detailed explanation of the tools used in the different stages of the System Development Life
Cycle (SDLC) — including what each tool does and at which stage it’s commonly used:
🔹 Questionnaires
Example: A questionnaire asking staff how they currently record customer orders and what challenges they
face.
🔹 Interviews
Purpose: Gather detailed, qualitative data directly from users and stakeholders.
Example: Interviewing managers to find out what kind of reports they need from the new system.
🔹 Observation
Use: Identify workflow inefficiencies or issues users may not mention in interviews.
Example: Reviewing sales records, forms, and policy manuals to gather system requirements.
2. Design Stage
Purpose: Show how data entities relate to each other in the system.
Example: Drawing an ER diagram to show relationships among Students, Courses, and Enrollments in a
school database.
Purpose: Illustrate how data moves through the system and how processes transform data.
🔹 Process Models
Example: A model illustrating how data flows between billing, inventory, and payment systems.
🔹 Object Models
Purpose: Represent the system using objects (with attributes and methods).
Example: A Customer object with attributes (Name, Address) and methods (PlaceOrder, MakePayment).
Example: A decision table showing discount eligibility based on membership level and purchase amount.
Example: Tools like Visual Paradigm or Lucidchart for creating DFDs and ERDs automatically.
🔹 GANTT Charts
Example: A GANTT chart displaying start and end dates for each SDLC phase.
3. Development Stage
🔹 Flowcharts
Example: A flowchart showing the steps for validating user login information.
🔹 Pseudocode
Example: Writing code in Python, Java, C#, or JavaScript to build the system.
🔹 Prototypes
Use: Testing design ideas and collecting user reactions before full development.
Example: A simple interface mock-up for an online booking system shown to users for feedback.
Purpose: Monitor project progress and compare actual performance with planned timelines.
CAPES NOTES
Example
Imagine you work in a small stock control environment where goods are bought and sold
There are two job descriptions in our imaginary system: stock clerks and cashiers
An analyst has observed you and come up with the following diagram…
An entity.
A source
of data or
a
destination
for data.
A process
or task that
is
performed
by the
system.
A data
store, a
place
where data
is held
between
processes.
A data
flow.
DFD LEVELS
Context Level DFD’s
A context level DFD is the most basic form of DFD. It aims to show how the entire system
works at a glance. There is only one process in the system and all the data flows either into or out
of this process. Context level DFD’s demonstrates the interactions between the process and
external entities. They do not contain Data Stores.
When drawing Context Level DFD’s, we must first identify the process, all the external entities
and all the data flows. We must also state any assumptions we make about the system. It is
advised that we draw the process in the middle of the page. We then draw our external entities in
the corners and finally connect our entities to our process with the data flows.
Level 1 DFD’s
Level 1 DFD’s aim to give an overview of the full system. They look at the system in more
detail. Major processes are broken down into sub-processes. Level 1 DFD’s also identifies data
stores that are used by the major processes.
When constructing a Level 1 DFD, we must start by examining the Context Level DFD. We
must break up the single process into its sub-processes. We must then pick out the data stores
from the text we are given and include them in our DFD. Like the Context Level DFD’s, all
entities, data stores and processes must be labelled. We must also state any assumptions made
from the text.
CAPES NOTES
Properties including:
A general solution to the problem in a finite number of steps – There should be an exact
number of steps to be taken and has an end.
Clearly defined and unambiguous- Every instruction should be precisely described and
clearly specified.
Flow of control from one process to another- The instructions to be performed should
be performed from top to bottom/ in order.
Flowcharts-
Flowcharts refer to graphical or symbolic representation of an algorithm or process. It is
the diagrammatic representation of the step-by-step solution to a given problem. Each
step in the process is represented by a different symbol and contains a short description of
the process step. The flow chart symbols are linked together with arrows showing the
process flow direction. A flowchart typically shows the flow of data in a process,
detailing the operations/steps in a pictorial format which is easier to understand than
reading it in a textual format. A flowchart describes what operations (and in what
sequence) are required to solve a given problem.
Pseudocode-
Pseudocode is an artificial and informal language that helps programmers develops
algorithms. Pseudocode is an imitation computer program written using Mathematical
notations and English like statements, to describe the logics to solve a problem or carry
Algorithm & Programming
IF or IF-then-else statements. They allow decisions to be made, based on some condition that
evaluates to true. In the case of if-then-else, alternatives are executed if the condition is false.
a. If (A > B) then
Display A
b. If (age >= 50)
Print “Old”
Else
Print “Young”
Algorithm & Programming
Repetition or Loop structures allow statements to be repeated a fixed number of times or until
some condition evaluates to false. If the number of repetitions is known beforehand, the loop
structure is called a counted loop. For example,
c. Repeat 10 times:
Print “I am good-looking”
End-repeat
If the exact number of repetitions is unknown beforehand and is based upon some condition, then
the loop is called a conditional loop. For example,
d. While (price 0) do
Read price
Total = total + price
End-while
Programming paradigms
Programming paradigm refers to the fundamental style of computer programming. It serves as a
pattern or model for a programming language.
The main Paradigms are:
Programming Paradigms Description Programming Language
1. Imperative/ Algorithmic Commands show how the FORTRON
computation takes place, step by BASIC
step. C
2. Functional Control flow is expressed by Haskell Python
combining function calls, rather
Algorithm & Programming