Académique Documents
Professionnel Documents
Culture Documents
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.
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
https://www.tutorialspoint.com/programming_methodologies/programming_methodologies_quick_guide.htm 1/27
7/11/2019 Programming Methodologies Quick Guide
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.
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.
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
The following illustration shows an example of how you can follow modular approach to
create different modules while developing a payroll processing program.
https://www.tutorialspoint.com/programming_methodologies/programming_methodologies_quick_guide.htm 2/27
7/11/2019 Programming Methodologies Quick Guide
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.
https://www.tutorialspoint.com/programming_methodologies/programming_methodologies_quick_guide.htm 3/27
7/11/2019 Programming Methodologies Quick Guide
Requirement gathering
Problem definition
System design
Implementation
Testing
Documentation
Maintenance
The first two steps assist the team in understanding the problem, the most crucial first
step towards getting a solution. 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
https://www.tutorialspoint.com/programming_methodologies/programming_methodologies_quick_guide.htm 4/27
7/11/2019 Programming Methodologies Quick Guide
the business area for which the solution is being developed. Some key questions that help
in understanding a business include −
Interviews
Questionnaires
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 −
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 −
Often, 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. Correctly defining the problem is also crucial for
getting to the 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. It is an important tool to assist the system analyst in identifying a
solution to the problem. It depicts the components of the system visually.
https://www.tutorialspoint.com/programming_methodologies/programming_methodologies_quick_guide.htm 6/27
7/11/2019 Programming Methodologies Quick Guide
Pseudocode
After the system is designed, it is handed over to the project manager for implementation,
i.e. coding. The actual coding of a program is done in a programming language, which can
be understood only by programmers who are trained in that language. However, 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.
Here is an example of a pseudocode in C++. The programmer just needs to translate each
statement into C++ syntax to get the program code.
https://www.tutorialspoint.com/programming_methodologies/programming_methodologies_quick_guide.htm 7/27
7/11/2019 Programming Methodologies Quick Guide
System analysts try to identify all major mathematical operations while identifying the
unique solution to problem at hand.
https://www.tutorialspoint.com/programming_methodologies/programming_methodologies_quick_guide.htm 8/27
7/11/2019 Programming Methodologies Quick Guide
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.
Modules are smaller and have lower level of complexity so they are easy to
understand
If data is the most important element of the system, create modules that handle
related data.
If service provided by the system is diverse, break down the system into functional
modules.
If all else fails, break down the system into logical modules as per your
understanding of the system during requirement gathering phase.
For coding, each module has to be again broken down into smaller modules for ease of
programming. This can again be done using the three tips shared above, combined with
specific programming rules. For example, for an object oriented programming language
like C++ and Java, each class with its data and methods could form a single module.
Step-by-Step Solution
To implement the modules, process flow of each module must be described in step by step
fashion. The step by step solution can be developed using algorithms or pseudocodes.
Providing step by step solution offers these advantages −
Anyone reading the solution can understand both problem and solution.
Micro-level details like identifier names, operations required, etc. get worked out
automatically
Control Structures
As you can see in the above example, it is not necessary that a program logic runs
sequentially. In programming language, control structures take decisions about
program flow based on given parameters. They are very important elements of any
software and must be identified before any coding begins.
Algorithms and pseudocodes help analysts and programmers in identifying where control
structures are required.
https://www.tutorialspoint.com/programming_methodologies/programming_methodologies_quick_guide.htm 10/27
7/11/2019 Programming Methodologies Quick Guide
Selection control structures are used when program sequence depends upon the answer to
a specific question. For example, a program has many options for the user. The statement
to be executed next will depend on the option chosen. For example, switch statement,
case statement.
As you can see in the image above, both selection and decision structures are
implemented similarly in a flowchart. Selection control is nothing but a series of decision
statements taken sequentially.
Here are some examples from programs to show how these statements work −
https://www.tutorialspoint.com/programming_methodologies/programming_methodologies_quick_guide.htm 11/27
7/11/2019 Programming Methodologies Quick Guide
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 −
Assists in debugging
Example Algorithms
Let us first take an example of a real-life situation for creating algorithm. Here is the
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. Let us now create an algorithm to check whether a number is positive or negative.
Flowchart Elements
https://www.tutorialspoint.com/programming_methodologies/programming_methodologies_quick_guide.htm 13/27
7/11/2019 Programming Methodologies Quick Guide
Flowchart Symbols
Here is a chart for some of the common symbols used in drawing flowcharts.
Flowchart can have only one start and one stop symbol
Example Flowcharts
Here is the flowchart for going to the market to purchase a pen.
https://www.tutorialspoint.com/programming_methodologies/programming_methodologies_quick_guide.htm 15/27
7/11/2019 Programming Methodologies Quick Guide
Clarity of Expressions
Expression in a program is a sequence of operators and operands to do an arithmetic or
logical computation. Here are some examples of valid expressions −
Unambiguous Result
Evaluation of the expression must give one clear cut result. For example, unary operators
should be used with caution.
https://www.tutorialspoint.com/programming_methodologies/programming_methodologies_quick_guide.htm 16/27
7/11/2019 Programming Methodologies Quick Guide
Simplicity of Instructions
It’s not just for computers that you need to write clear instructions. Any one reading the
program later (even you yourself!!) should be able to understand what the instruction is
trying to achieve. It is very common for programmers not to get a hang of their own
programs when they revisit it after some time has passed. This indicates that maintenance
and modification of such programs would be quite difficult.
Writing simple instructions helps in avoiding this problem. Here are some tips to write
simple instructions −
Avoid clever instructions − Clever instructions might not look that clever later if
no one is able to understand it properly.
One instruction per task − Trying to do more than one thing at a time
complicates instructions.
Use standards − Every language has its standards, follow them. Remember you
are not working alone on the project; follow project standards and guidelines for
coding.
Portable − The program or software should run on all computers of same type. By
same type we mean a software developed for personal computers should run on all
PCs. Or a software for written for tablets should run on all tablets having the right
specifications.
Efficient − A software that does the assigned tasks quickly is said to be efficient.
Code optimization and memory optimization are some of the ways of raising
program efficiency.
https://www.tutorialspoint.com/programming_methodologies/programming_methodologies_quick_guide.htm 17/27
7/11/2019 Programming Methodologies Quick Guide
Effective − The software should assist in solving the problem at hand. A software
that does that is said to be effective.
Reliable − The program should give the same output every time the same set of
inputs is given.
User friendly − Program interface, clickable links and icons, etc. should be user
friendly.
Look at line 10. It tells anyone reading the program that a student’s ID, name and roll
number are to be selected. The names of the variables make this self-explanatory. These
are some tips to create proper identifier names −
https://www.tutorialspoint.com/programming_methodologies/programming_methodologies_quick_guide.htm 18/27
7/11/2019 Programming Methodologies Quick Guide
Don’t give same name to two identifiers even if the language allows it
Don’t give same names to more than one identifier even if they have mutually
exclusive scope
Comments
In the image above, look at line 8. It tells the reader that the next few lines of code will
retrieve list of students whose report card is to be generated. This line is not part of the
code but given only to make the program more user friendly.
Such an expression that is not compiled but written as a note or explanation for the
programmer is called a comment. Look at the comments in the following program
segment. Comments start with //.
You should avoid adding superfluous comments as that may prove counterproductive by
breaking the flow of code while reading. Compiler may ignore comments and indentations
but the reader tends to read each one of them.
Indentation
Distance of text from left or right margin is called indent. In programs, indentation is used
to separate logically separated blocks of code. Here’s an example of indented program
segment:
https://www.tutorialspoint.com/programming_methodologies/programming_methodologies_quick_guide.htm 19/27
7/11/2019 Programming Methodologies Quick Guide
As you can see, indented program is more understandable. Flow of control from for loop
to if and back to for is very clear. Indentation is especially useful in case of control
structures.
Inserting blank spaces or lines is also part of indentation. Here are some situations where
you can and should use indentation −
Blank lines between logical or functional blocks of code within the program
Syntax Errors
Syntax errors are the grammatical errors in a program. Every language has its own set of
rules, like creating identifiers, writing expressions, etc. for writing programs. When these
rules are violated, the errors are called syntax errors. Many modern integrated
development environments can identify the syntax errors as you type your program.
Else, it will be shown when you compile the program. Let us take an example −
https://www.tutorialspoint.com/programming_methodologies/programming_methodologies_quick_guide.htm 20/27
7/11/2019 Programming Methodologies Quick Guide
In this program, the variable prod has not been declared, which is thrown up by the
compiler.
Semantic Errors
Semantic errors are also called logical errors. The statement has no syntax errors, so it
will compile and run correctly. However, it will not give the desired output as the logic is
not correct. Let us take an example.
https://www.tutorialspoint.com/programming_methodologies/programming_methodologies_quick_guide.htm 21/27
7/11/2019 Programming Methodologies Quick Guide
Look at line 13. Here programmer wants to check if the divisor is 0, to avoid division by 0.
However, instead of using the comparing operator ==, assignment operator = has been
used. Now every time the “if expression” will evaluate to true and program will give output
as “You cannot divide by 0”. Definitely not what was intended!!
Logical errors cannot be detected by any program; they have to be identified by the
programmer herself when the desired output is not achieved.
Runtime Errors
Runtime errors are errors that occur while executing the program. This implies that the
program has no syntax errors. Some of the most common run time errors your program
may encounter are −
Infinite loop
Division by '0'
Code Optimization
Any method by which code is modified to improve its quality and efficiency is called code
optimization. Code quality determines life span of code. If the code can be used and
maintained for a long period of time, carried over from product to product, its quality is
deemed to be high and it has a longer life. On the contrary, if a piece of code can be used
and maintained only for short durations, say till a version is valid, it is deemed to be of low
quality and has a short life.
Evidence based optimization (EBO) − Here automated tools are used to find
out performance bottlenecks and then relevant portions optimize accordingly.
Every programming language has its own set of code optimization tools. For
example, PMD, FindBug and Clover are used to optimize Java code.
Code is optimized for execution time and memory consumption because time is scarce and
memory expensive. There has to be a balance between the two. If time optimization
https://www.tutorialspoint.com/programming_methodologies/programming_methodologies_quick_guide.htm 22/27
7/11/2019 Programming Methodologies Quick Guide
increases load on memory or memory optimization makes the code slower, purpose of
optimization will be lost.
Memory Optimization
As you know, data and instructions consume memory. When we say data, it also refers to
interim data that is the result of expressions. We also need to keep a track of how many
instructions are making up the program or the module we are trying to optimize. Here are
some tips for memory optimization −
Avoid declaring global variables inside loops that are executed many times
Program Documentation
Any written text, illustrations or video that describe a software or program to its users is
called program or software document. User can be anyone from a programmer, system
analyst and administrator to end user. At various stages of development multiple
https://www.tutorialspoint.com/programming_methodologies/programming_methodologies_quick_guide.htm 23/27
7/11/2019 Programming Methodologies Quick Guide
Any outdated document should be phased out after due recording of the phase out
Advantages of Documentation
These are some of the advantages of providing program documentation −
Maintenance is easier
Programmers other than the developer can understand all aspects of software
Ensures knowledge de-centralization, cutting costs and effort if people leave the
system abruptly
Example Documents
A software can have many types of documents associated with it. Some of the important
ones include −
User manual − It describes instructions and procedures for end users to use the
different features of the software.
Operational manual − It lists and describes all the operations being carried out
and their inter-dependencies.
https://www.tutorialspoint.com/programming_methodologies/programming_methodologies_quick_guide.htm 24/27
7/11/2019 Programming Methodologies Quick Guide
Testing Document − It records test plan, test cases, validation plan, verification
plan, test results, etc. Testing is one phase of software development that needs
intensive documentation.
List of Known Bugs − Every software has bugs or errors that cannot be removed
because either they were discovered very late or are harmless or will take more
effort and time than necessary to rectify. These bugs are listed with program
documentation so that they may be removed at a later date. Also they help the
users, implementers and maintenance people if the bug is activated.
Program Maintenance
Program maintenance is the process of modifying a software or program after delivery
to achieve any of these outcomes −
Correct errors
Improve performance
Add functionalities
Despite the common perception that maintenance is required to fix errors that come up
after the software goes live, in reality most of the maintenance work involves adding minor
or major capabilities to existing modules. For example, some new data is added to a
report, a new field added to entry forms, code to be modified to incorporate changed
government laws, etc.
Types of Maintenance
Maintenance activities can be categorized under four headings −
https://www.tutorialspoint.com/programming_methodologies/programming_methodologies_quick_guide.htm 25/27
7/11/2019 Programming Methodologies Quick Guide
Maintenance Tools
Software developers and programmers use many tools to assist them in software
maintenance. Here are some of the most widely used −
Program slicer − selects a part of the program that would be affected by the
change
Data flow analyzer − tracks all possible flows of data in the software
Advertisements
https://www.tutorialspoint.com/programming_methodologies/programming_methodologies_quick_guide.htm 26/27
7/11/2019 Programming Methodologies Quick Guide
https://www.tutorialspoint.com/programming_methodologies/programming_methodologies_quick_guide.htm 27/27