0% found this document useful (0 votes)
45 views

ITE 1122 - Program Design and Introduction To Symbolic Design

This document provides an overview of program design and symbolic design methodologies. It discusses top-down and bottom-up approaches to breaking down problems. Key aspects covered include understanding the problem, identifying potential solutions through tools like flowcharting and pseudocode, applying modular techniques to divide the solution into smaller parts, and examples of flowchart and pseudocode elements.

Uploaded by

warunapriyanath3
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
45 views

ITE 1122 - Program Design and Introduction To Symbolic Design

This document provides an overview of program design and symbolic design methodologies. It discusses top-down and bottom-up approaches to breaking down problems. Key aspects covered include understanding the problem, identifying potential solutions through tools like flowcharting and pseudocode, applying modular techniques to divide the solution into smaller parts, and examples of flowchart and pseudocode elements.

Uploaded by

warunapriyanath3
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 14

Program design and introduction

to Symbolic Design
Agenda
Types of Programming Methodologies
Top-down or Modular Approach
Bottom-up Approach
Understanding the Problem
Identifying the Solution
Flowcharting
Pseudocode
Types of Programming Methodologies
 The approach to analyzing complex problems, planning for software development and controlling
the development process is called programming methodology

 Procedural Programming - Problem is broken down into procedures, or blocks of code that
perform one task each. All procedures taken together form the whole program. It is suitable only
for small programs that have low level of complexity
 Example − For a calculator program that does addition, subtraction, multiplication, division, square root and
comparison, each of these operations can be developed as separate procedures. In the main program each
procedure would be invoked on the basis of user’s choice.

 Object-oriented Programming - Here the solution revolves around entities or objects that are part
of problem. The solution deals with how to store data related to the entities, how the entities
behave and how they interact with each other to give a cohesive solution.
 Example − If we have to develop a payroll management system, we will have entities like employees, salary
structure, leave rules, etc. around which the solution must be built.
Types of Programming Methodologies
 Functional Programming - Here the problem, or the desired solution, is broken down into functional
units. Each unit performs its own task and is self-sufficient. These units are then stitched together to
form the complete solution.
 Example − A payroll processing can have functional units like employee data maintenance, basic salary
calculation, gross salary calculation, leave processing, loan repayment processing, etc.

 Logical Programming- Here the problem is broken down into logical units rather than functional units.
 Example: In a school management system, users have very defined roles like class teacher, subject teacher, lab
assistant, coordinator, academic in-charge, etc. So the software can be divided into units depending on user roles.
Each user can have different interface, permissions, etc.
Top-down or Modular Approach
 Software developers may choose one or a combination of
more than one of these methodologies to develop a
software.
 Note that in each of the methodologies discussed,
problem has to be broken down into smaller units. To do
this, developers use any of the following two approaches
 Top-down approach
 Bottom-up approach

 Top-down or Modular Approach - The problem is


broken down into smaller units, which may be further
broken down into even smaller units. Each unit is called
a module. Each module is a self-sufficient unit that has
everything necessary to perform its task.
Bottom-up Approach
 In bottom-up approach, system design starts
with the lowest level of components, which are
then interconnected to get higher level
components. This process continues till a
hierarchy of all system components is
generated. However, in real-life scenario it is
very difficult to know all lowest level
components at the outset. So bottoms up
approach is used only for very simple
problems.
Understanding the Problem
 The first two steps of typical software development process (Requirement gathering and Problem definition) assist the team in
understanding the problem

 Person responsible for gathering requirement, defining the problem and designing the system is called system analyst.

 Requirement Gathering
 Usually, clients or users are not able to clearly define their problems or requirements. They have a vague idea of what they want. So system
developers need to gather client requirements to understand the problem that needs to be resolved, or what needs to be delivered
 Detailed understanding of the problem is possible only by first understanding the business area for which the solution is being developed

 Some key questions that help in understanding a business include


 What is being done?
 How is it being done?
 What is the frequency of a task?
 What is the volume of decisions or transactions?
 What are the problems being encountered?

 Some techniques that help in gathering this information are


 Interviews
 Questionnaires
 Studying existing system documents
 Analyzing business data
Understanding the Problem
 System analysts needs to create clear and concise but thorough requirements document in order to identify
SMART – specific, measurable, agreed upon, realistic and time-based – requirements. A failure to do so
results in
 Incomplete problem definition
 Incorrect program goals
 Re-work to deliver required outcome to client
 Increased costs
 Delayed delivery

 Due to the depth of information required, requirement gathering is also known as detailed investigation.

 Problem Definition - After gathering requirements and analyzing them, problem statement must be stated
clearly. Problem definition should unambiguously state what problem or problems need to be solved.
Having a clear problem statement is necessary to
 Define project scope
 Keep the team focused
 Keep the project on track
 Validate that desired outcome was achieved at the end of project
Identifying the Solution
 Coding is supposed to be the most essential part of any software development process. However, coding is
just a part of the process and may actually take the minimum amount of time if the system is designed
correctly. Before the system can be designed, a solution must be identified for the problem at hand.

 The first thing to be noted about designing a system is that initially the system analyst may come up with
more than one solutions

 But the final solution or the product can be only one. In-depth analysis of data gathered during the
requirement gathering phase can help in coming to a unique solution.

 When faced with the problem of multiple solutions, analysts go for visual aids like flowcharts, data flow
diagrams, entity relationship diagrams, etc. to understand each solution in depth
 Flowcharting - Flowcharting is the process of illustrating workflows and data flows in a system through symbols and
diagrams.
 Data Flow Diagram - Data flow diagram or DFD is a graphical representation of data flow through a system or sub-
system.
 Pseudocode - before the actual coding occurs, the basic operating principles, work flows and data flows of the program
are written using a notation similar to the programming language to be used. Such a notation is called pseudocode.
Applying Modular Techniques
 A real-life problem is complex and big. If a monolithic solution is developed it poses these problems
 Difficult to write, test and implement one big program
 Modifications after the final product is delivered is close to impossible
 Maintenance of program very difficult
 One error can bring the whole system to a halt
 To overcome these problems, the solution should be divided into smaller parts called modules
 The technique of breaking down one big solution into smaller modules for ease of development,
implementation, modification and maintenance is called modular technique of programming or
software development.
 Advantages of Modular Programming
 Enables faster development as each module can be developed in parallel
 Modules can be re-used
 As each module is to be tested independently, testing is faster and more robust
 Debugging and maintenance of the whole program easier
 Modules are smaller and have lower level of complexity so they are easy to understand
Flowchart Elements

 Flowchart is a diagrammatic representation of


sequence of logical steps of a program.
Flowcharts use simple geometric shapes to depict
processes and arrows to show relationships and
process/data flow.

 Guidelines for Developing Flowcharts


 Flowchart can have only one start and one stop symbol
 On-page connectors are referenced using numbers
 Off-page connectors are referenced using alphabets
 General flow of processes is top to bottom or left to right
 Arrows should not cross each other
Example Flowcharts

flowchart for going to the market to purchase a


pen
flowchart to calculate the average of two
numbers
Pseudocode
 A finite set of steps that must be followed to solve any problem is called an algorithm.
Algorithm is generally developed before the actual coding is done. It is written using
English like language so that it is easily understandable even by non-programmers.
 Sometimes algorithms are written using pseudocodes, i.e. a language similar to the
programming language to be used
 Writing algorithm for solving a problem offers these advantages
 Promotes effective communication between team members
 Enables analysis of problem at hand
 Acts as blueprint for coding
 Assists in debugging
 Becomes part of software documentation for future reference during maintenance phase
 These are the characteristics of a good and correct algorithm
 Has a set of inputs
 Steps are uniquely defined
 Has finite number of steps
 Produces desired output
Example

Algorithm to check whether a number is positive or


negative.

Algorithm for going to the market to


purchase a pen.
Step 4 in this algorithm is in itself a
complete task and separate algorithm
can be written for it

You might also like