630 likes | 640 Views
Learn the key terminology and steps involved in structured programming, including algorithm development, program coding, debugging, testing, installation, maintenance, and documentation.
E N D
CHAPTER 1 Introduction to Structured Programming
PROGRAMMING TERMINOLOGY • An activity consists of writing a program that will process the input data to produce the required output/document. INPUT DATA Input (Set of Instructions) Processing Output (Report)
PROGRAM • written using a programming language, eg. C, Java, C++, BASIC etc. • Before writing code, it is very important to plan the solution to the problem – solution algorithm
SOLUTION ALGORITHM • A sequence of logic steps/instructions to the computer/people to perform a specific task • It is like a recipe : Step by step guide, that need to be followed in the right sequence • Properties: • Steps must be defined precisely (in detail) and clearly • Process must have an end – finite steps • The correct solution to an identified problem
¢ ALGORITHM Example : At a Public Phone MAKE A CALL
ALGORITHM • Steps are in correct order, performed from top to bottom. • Steps can be made up of combination of all control structures (sequence, selection, iteration) • Indentation is very important to show different control structures
ALGORITHM • Give an example of an algorithm of a daily activity e.g. watching a TV programme. • TASK : Write a solution algorithm to add 2 numbers and show the result. 1. Get first number 2. Get second number 3. Add first number and second number, put the answer in sum 4. Display sum
ALGORITHM • TASK : Write a solution algorithm to find and display the average temperature. The maximum and minimumtemperature readings are accepted as integers. 1. Get min_temp 2. Get max_temp 3. Calculate average avg_temp = (min_temp + max_temp) / 2 4. Display avg_temp
GENERAL STEPS IN PROGRAM DEVELOPMENT • Define problem • Understand requirements • Determine input, output and processes • Outline solution • Break problem into smaller tasks or steps, draft solution • Develop outline to algorithm • Expand to precise steps – tasks and order • Test algorithm for correctness • Desk checking – walk through the logic of algorithm • Code the algorithm • Run on the computer • Using compiler and test data to check for errors • Document and maintain program
PROGRAM LIFE CYCLE • aka Software/Program development cycle • 9 Steps: • Problem specification • Problem analysis • Structured program design • Program coding • Program debugging • Program testing • Program installation • Program maintenance • Program documentation
(1) PROBLEM SPECIFICATION • Definition of problem by user to system analyst/programmer • This might include new user requirements • Need to be read carefully to understand completely the user requirements
(2) PROBLEM ANALYSIS • Includes : • Initialization • Giving specific/initial value to variables eg. Total = 0 • Input definition • Data to be fed into the computer – from keyboard/file • Output definition • layout of the output – screen/printer • Processing requirements • Solution algorithm/sequence of steps required to transform input to the required output • Processing controls • Validation checks on input for accurate processing • Program test plan • A range of test data to ensure the correctness of the program. This includes the calculation of expected result to verify the actual result produced.
(3) STRUCTURED PROG. DESIGN • Use of proper design techniques to illustrate the program specification in a systematic way • representing the tasks required in the program specification showing all input, processing and output requirements • Examples : • Top-down stepwise refinement method • Pseudocode • JSP
(4) PROGRAM CODING • Translation of design into programming language code e.g. C, C++, Pascal, QBasic • aka implementation
(5) PROGRAM DEBUGGING • The task of finding and removingerrors/bugs from the program. • 3 types of errors: • Syntax – error relating to the programming language used • Logical – error in programming logic • Run-time/execution – error during running/ execution of program
(6) PROGRAM TESTING • Is done using test data specified in the problem analysis. • Compiler is required to detect for Syntax and execution error, while specific test data to detect for logical error. • repeatedly done until program is running and producing the output as required • Less time required for testing if the program is well designed.
(7) PROGRAM INSTALLATION • Program is transferred to the user’s machine and made to work. • 3 strategies: • The new program may run concurrently with the old one or • it may completely replaced the old one or • It may phased in gradually
(8) PROGRAM MAINTENANCE • Once the program is installed and operated, it will be monitored for some time to ensure that program is error-free. • Corrections will have to be made to the affected program/part of the program.
(9) PROGRAM DOCUMENTATION • All processes in all stages during the system development must be documented/written down. • This documentation is vital for future reference/for future maintenance of the program.
CHARACTERISTICS OF A GOOD PROGRAM • Correctness – fulfilling user requirements • Reliability – it produces correct output and validates input data to avoid program crash • Portability – easily installed from one machine to another with minimal modification • Maintainability – easily followed and modified, not only to the programmer who wrote it • Readability – clearly documented • Use of resources – fast in processing, uses minimum storage space and able to run on existing hardware.
STRUCTURED PROGRAMMING • A programming methodology for constructing hierarchically ordered modular programs using standardised control structures • Structured programming helps to write effective, error-free programs – new/modified. • There are many ways to solve a problem, but some are more desirable than others. • Original concepts was first published in 1964 by Bohm and Jacopini. • Designing of programs using a Structure Theorem which eliminating the GOTO statement and established a structured framework for representing solution.
STRUCTURED PROGRAMMING • Structure theorem is based on 3 control structures – sequence, selection and iteration. • Structured programming incorporates the concepts of stepwise refinement method and modular design. • Modular design groups tasks which perform the same function together e.g. printing of report headings, calculation etc.
Structured Techniques • Some of the techniques for program design: • Structured English • Flowcharts • Top-down stepwise refinement method • Jackson Structured Programming method • Pseudocode etc.
Problem specification • A program is required to take in 2 numbers as integers, then calculate and display the sum.
Structured English A method of specifying unambiguous narrative used to define procedural logic. It lacks the precision of meaning and simplicity when programming. • Example : • Accept first integer and second integer • Add first integer and second integer and then put the result in sum • Display sum
START Get num1 & num2 Sum := num1 + num2 Display sum END Flow Chart Diagrams which show the sequence of steps to perform a specific programming task
Top-Down Stepwise Refinement Method a process of developing a program by performing a sequence of refinement steps. First general solution is outlined and then is broken down into more detailed steps • Uses basic control structures : • sequence structure • selective structure • iterative structure
Top-Down Stepwise Refinement Method • Initialization none • Input Definition num1, num2 • Output Definition Sum = 999 • Processing Requirements • Read num1, num2 • Calculate sum = num1 +num2 • Display sum • Processing Control • Numbers must be integer Example :
Calculate Sum Read num1 Read num2 Sum = num1 + num2 Print Sum Top-Down Stepwise Refinement Method Test Data and Expected Result STRUCTURED CHART
Jackson Structured Program (JSP) Method • Uses the same principle of control structures but concentrates on both data structures and program structures • Combine the input/output data structures to form a program structure, identify the condition and Actions involved, produce the pseudocode and implement the pseudocode
Jackson Structured Program (JSP) Method Input Data Output Sum num1 num2 INPUT DATA STRUCTURE OUTPUT DATA STRUCTURE
Jackson Structured Program (JSP) Method Calculate Sum num1 num2 Sum PROGRAM STRUCTURE
Jackson Structured Program (JSP) Method • List of Conditions • none • List of Actions • Input Action • Read num1 • Read num2 • Output Action • Print sum • Computation • Sum = num1 + num2
Jackson Structured Program (JSP) Method ALLOCATION OF ACTIONS Calculate Sum num1 num2 Sum 1 2 4,3
Pseudocodeaka Schematic Logic Represent the statements of algorithm in English which makes it easy to read and write and to convert it to the targeted programming language. Translation stage between the program structure diagram and the program code BEGIN PROCESS_SUM sequence READ num1, num2; sum = num1 + num2; WRITE sum; END PROCESS_SUM sequence Example :
Pseudocode properties • Understandable to user • Hierarchically structured and using indentation to show this structure • Similar structure to the targeted programming code • Comments are clearly marked
Pseudocode rules • Indentation • Control structures are clear • sequence steps are placed on separate lines, each is ended with a semicolon. Continuation lines are indented if more than one line is required. • Use of keywords to show • the structures e.g IF, THEN, ELSE, WHILE etc • The logic e.g. AND, OR, NOT • Keywords may be selected to be independent of the language descriptions
Pseudocode rules • Block of instructions are grouped together having meaningful name to describe the function (modularization) • Keywords and names of blocks are in capital letters, others are not • Comments are delimited with a beginning asterisks and ends with semicolon • Use of parenthesis to show precedence of operations to avoid ambiguities • Make the end of a structure clear using ENDIF, ENDDO etc
Problem specificationExample 1 A program is required to read three numbers, add them together and print their total
Problem analysis Using IPO Chart (Input-Process-Output Chart)
Problem analysis(step-wise refinement method) • Initialization none • Input Definition number1 , number2, number3 • Output Definition The sum is = 99999.9 • Processing Requirements • Read number1, number2, number3 • Calculate total total = number1 + number2 + number3 • Print total
Processing Controls none Test Data and Expected Results Problem analysis(step-wise refinement method)
Variables • Variables/objects in the problem and the processing steps/program are referenced by names. • Names must be unique and short (max 25 letters) but meaningful • Names are used to identify a particular storage area in the memory. • Good Examples : number, sum, average, min, max. • Bad Examples: a, b, c, m1, x2
Problem specificationExample 2 A program is required to read in the maximum and minimum temperatures on a particular day and calculate and print the average temperature