Program Design
Week 03
ITE1123 – Fundamentals
Unit Code: Subject of
Programming
name
Dr. Thilina Thanthriwatta
(Lecturer Name)
ITE1123 Program
Lecture Design
Name:
Dr. Thilina Thanthriwatta
Color Coding
• RED: - Very important points
• BLUE: - Need to be highlighted but not as important
• GREEN: - Used for terminology (terms)
• PURPLE: - Off topic but necessary
Unit Code: Subject
name
(Lecturer Name)
Lecture Name:
Learning Outcomes
▪ After completing this lesson, you will be able to design a
computer program.
▪ From this lesson, you will be able to:
▪ Define the concepts of program analysis
▪ Explain how to gather requirements
▪ Compare different strategies for problem-solving
▪ Draw flowcharts and write pseudocodes
Unit Code: Subject
name
(Lecturer Name)
Lecture Name:
Program Design
▪ What are the steps that a computer programmer should
execute before starting coding?
▪ Key Steps:
▪ Problem analysis
▪ Modular Design
▪ Algorithm Design
Unit Code: Subject
name
(Lecturer Name)
Lecture Name:
Problem Analysis
▪ What is the problem that your software is intended to
solve?
▪ Requirements gathering (requirements elicitation) and
problem defining are the first two steps of software
development process, in general.
▪ Understanding the problem Unit Code: Subject
▪ What exactly needs to be solved name
▪ What are the desired outcomes?
▪ What are the other constraints (e.g., budget, time)? (Lecturer Name)
Lecture Name:
Requirements Gathering
▪ Different types of requirements:
▪ Functional requirements
▪ Non-functional requirements
▪ Functional requirements:
▪ What are the specific tasks that your software should perform?
▪ Describe the functions and features of the software.
▪ Describe how the users interact with the system.
▪ E.g., “The system should display how the population of each Unit Code: Subject
district has changed over the last 20 years”. name
(Lecturer Name)
Lecture Name:
Requirements Gathering
▪ Non-functional requirements:
▪ How should the system perform?
▪ Consider different quality attributes such as performance,
security, scalability, etc.
▪ E.g., the system should be able to handle at most 1000 users
simultaneously without degrading response.
▪ Your software should meet both functional and non-
functional requirements.
▪ However, functional requirements are mandatory. Unit Code: Subject
name
▪ You will study the steps of the software process models (Lecturer Name)
including requirements gathering in detail in the
modules related to software engineering. Lecture Name:
Techniques for Requirement Gathering
▪ Interviews
▪ One-on-One
▪ Group
▪ Surveys and Questionnaires
▪ Gap Analysis
Unit Code: Subject
▪ Prototyping with feedback loops name
(Lecturer Name)
▪ Brainstorming Lecture Name:
SMART Framework
▪ SMART Framework is to set and evaluate
requirements/goals/objectives
▪ SMART
▪ Specific
▪ Measurable
▪ Achievable
▪ Relevant
▪ Time-bound Unit Code: Subject
name
▪ Improving focus and efficiency while reducing (Lecturer Name)
ambiguity.
Lecture Name:
Strategies to solve problems
▪ Top-Down Approach
▪ Decomposition/Modular approach
▪ The problem is broken down into smaller modules/units.
▪ Each module can be further broken down.
▪ Make complex solutions simple
▪ However, this may lead to implementation delay. Unit Code: Subject
name
(Lecturer Name)
Lecture Name:
Strategies to solve problems
▪ Bottom-up approach
▪ Composition approach
▪ Designs start with the smallest, individual component and
integrate to build a complex model.
▪ Depends on reusable components
▪ Reusability is one of the key advantages.
Unit Code: Subject
▪ However, integration may not be easier. name
(Lecturer Name)
Lecture Name:
How to Devise the Solution?
▪ Before coding (implementation), you need to devise a
proper design.
▪ There is a possibility of devising multiple designs and
then selecting the best one later.
▪ Process modeling techniques:
▪ Flowcharts Unit Code: Subject
▪ Pseudocode name
(Lecturer Name)
Lecture Name:
Flowcharts
▪ A flowchart is a visual representation of a process/workflow.
▪ It represents the logical steps of a computer program.
▪ Elements of a flowchart:
Terminator/Terminal: Represent the start
and end of a process
Process
Unit Code: Subject
Decision name
(Lecturer Name)
Inputs & Outputs
Lecture Name:
Flow arrow
Guidelines for Flowcharts
▪ Use standard symbols
▪ Usually, the flow should be depicted from top to bottom
or left to right.
▪ Use descriptive labels for each step
Unit Code: Subject
▪ Try to avoid crossed lines name
(Lecturer Name)
Lecture Name:
An Example
▪ Draw a flowchart to depict the process for finding odd
and even numbers.
Start
Input a
number: N
No
N%2==0
Unit Code: Subject
name
Yes
(Lecturer Name)
Display Even Display Odd
Lecture Name:
End
Pseudocode
▪ An informal way of writing your program.
▪ You do not need to worry about syntax and semantics.
▪ Language-agnostic
▪ Pseudocode should be:
▪ Simple
▪ Readable
▪ Compatible with the structure of your program.
Unit Code: Subject
▪ Elements of pseudocode: name
▪ Inputs and outputs
(Lecturer Name)
▪ A finite number of steps
• These steps should be clearly defined. Lecture Name:
▪ Conditions – decision making
▪ Loops – repeated actions
An Example
▪ Write a pseudocode to check a given number is odd or
even number.
BEGIN
INPUT N
IF N MOD 2 is equal to 0
OUTPUT “Even”
ELSE
OUTPUT “Odd”
END
Unit Code: Subject
name
(Lecturer Name)
Lecture Name:
End of Lesson
▪ In the next lesson, we will focus on variables and data
types in Python.
Unit Code: Subject
name
(Lecturer Name)
Lecture Name: