Biyernes, Marso 15, 2013

1.2 Steps in Program Planning and Development






1.2
            Steps in Program Planning and Development
           
            Programming is a problem-solving activity. A person with good problem solving skills will tend to be good programmers. To develop this skill, programmers practice the following steps:
           
            1. problem
            analysis
            2.
            setting up an algorithm
            3. coding
            4. encoding
            5.
            running, testing, and debugging
            6. documentation
             
             
             
             
           
              
              
              
              
              
              
              
              
              
              
              3
             Chapter 1
            1.2.1 Problem
            Analysis
           
            If we are to use the computer as a problem-solving tool then we must have a good analysis of the problem given. Here are some suggested steps on how to go about analyzing a certain problem for computer application:
           
            1.
            Review the problem carefully and understand what you are asked to do.
            2.
            Determine what information is given (input) and what result must be produced (output).
            3.
            Assign names to each input and output item.
            4.
            Determine the manner of processing that must be done on the input data to come up with the desired output (i.e., determine what formulas are needed to manipulate the given data).
           
             Example.  
            Given the scores for the two departmental quizzes, two machine projects, final exam, and teacher's evaluation, write a program that will compute for the final grade based on the following computation:
           
           
           
            50% Average of 2 departmental quizzes
           
            +
            15% Average of 2 machine projects
            +
            30%
            Final
            exam
            +
            5%
            Teacher's
            evaluation
           
            --------------------------------------------------------
           
           
            Quiz No. 1
            - Qz1
            Final Grade - FG
           
            Quiz No. 2
            - Qz2
           
            Mach. Proj. 1
            - Mp1
           
            Mach. Proj. 2
            - Mp1
           
            Final Exam
            - FE
           
            Teacher's Eval. - TE
            Qz1+Qz2 Mp1+Mp2
            FG = 50% x ------------ + 15% x ----------- + 30% x FE + 5% x TE
           
            2
            2
           
           
           
            1.2.2 Setting Up an Algorithm
           
            After the problem has been clearly defined, a list or sequence of steps that will solve the given problem must be formulated. This sequence of steps is called an algorithm.
           
           
            An algorithm can be described in many ways. A natural language such as Filipino, English, or Chinese can be used but we must be very careful that the 4
             Introduction to Computer Programming
            algorithm be organized in a logical and clear manner. Graphical forms or notations such as flowcharts can be used, an improvement of the former, but is more sophisticated. It is important to note that in whatsoever manner an algorithm is written, it remains to be NOT executable simply because it cannot be entirely understood by the computer.
           
           
            To cite an example, let us use the final grade problem. A possible algorithm written in English that will solve the problem would be:
           
            1.
            Get Qz1 and Qz2 scores.
            2.
            Get Mp1 and Mp2 scores.
            3.
            Get FE score.
            4.
            Get TE score.
            5. Calculate
           
            Qz1+Qz2
           
            Mp1+Mp2
            FG = 50% x ------------ + 15% x ----------- + 30% x FE + 5% x TE
           
           
            2 2
            6.
            Display the final grade FG.
           
           
           
            An algorithm may also be viewed as a recipe. The manner in which the series of steps in a recipe is written is similar to creating an algorithm. But, it should be noted that an algorithm is more than a recipe. An algorithm has to be exact. An example statement in a recipe would be “add salt to taste”. In an algorithm, this is not acceptable because the statement is subjective and not quantifiable. Everything should be definite.
           
           
            1.2.3 Coding
           
            After having set up the algorithm, the next step is to convert this into a list of instructions in a code or language that the computer can understand and execute. This process is called coding.
           
           
           
           
           
           
           
           
           
           
           
           
           
              
              
           
              
              
              
              
              
              
              
              
              
              
              5
             Chapter 1
             Example.  
           
           
           
           
           
           
             Algorithm
              Program
           
            main()
           
            {
            float fQ1, fQ2;
           
            float fMP1, fMP2;
           
            float fFE, fTE, fFG;
           
           
            Get Qz1 and Qz2 scores.
            scanf("%f",
            &fQ1);
           
            scanf("%f",
            &fQ2);
           
           
           
            Get Mp1 and Mp2 scores.
            scanf("%f",
            &fMP1);
           
            scanf("%f",
            &fMP2);
           
           
           
           
            scanf("%f", &fFE);
            Get FE score.
            scanf("%f",
            &fTE);
            Get TE score.
           
           
            fFG = 0.50 * ((fQ1 +
            Calculate FG.
            fQ2)/2) + 0.15 *
           
            ((fMP1 + fMP2)/2) +
           
            0.3 * fFE + 0.05 *
           
            fTE;
           
           
           
            Display the final grade
            printf("FG = %.2f",
            FG.
            fFG);
           
            }
           
           
            The list of instructions that will implement the algorithm can be understood by the computer simply because "it is written in the vocabulary of the programming language and conforms to the grammatical rules of the language."[LEES90] This list of instructions understood by the computer is now called a program.
           
           
            In the example above, we converted our algorithm for computing the final grade to a C program. The scanf statements ask for input from the user while the printf statement displays the output.
           
           
            1.2.4 Encoding
           
            The process of entering the program through a computer terminal directly into computer memory is called encoding.
           
           
            1.2.5 Running, Testing, and Debugging
           
            The fifth step in program development would be to execute or run the program. The program is executed or run on different input data. Testing is the art of creating 6
             Introduction to Computer Programming
            different sets of sample data upon which the program will be run. The programmer must submit the program to as many combinations of test data as possible to anticipate and correct any error that might come out before releasing the program to users. The process of executing a program with test input data and checking the output results against the requirements is referred to as desk checking [PRAT96].
           
           
            Errors that come out during program execution are termed as bugs. Computer programmers use terms as bug-ridden and buggy to describe a program which is poorly written thus containing a lot of errors. The art of correcting these errors is called debugging.
           
           
            These bugs or errors can be classified
            into two groups: 1. syntactical or logical errors;
             Did you know that...
            and 2. compile or run-time errors.
           
           
            The term bug dates back
              Syntactical
             errors result from failure to
            to an old story about a group of
            follow the syntax of the language. Syntax refers
            programmers who couldn't
            to the grammatical rules of the language
            figure out what was wrong with
            defining its legal constructs. Examples of which
            their programs, until they
            are unrecognized instructions, missing
            opened up the computer and
            punctuation marks and misspelled names.
            found a moth trapped inside
           
            [REGE87]
              Logical
             errors are hard to identify.
            What is erroneous here are the outputs seen
            onscreen which did not conform to or match the
            expected results. Such errors arise during the
            formulation of algorithm or in the coding of the program that implements the algorithm due to the wrong analysis or perhaps wrong approach of the programmer as he tackles the problem given.
              
              
              Compile-time
             errors halt the compilation of the program. Compilation means translating the program codes into a form that the physical computing machine can understand. Program codes are translated completely so long as their syntax is correct.
            Once a syntax error is encountered during compilation, this is considered to be a compile-time error.
           
           
            Errors that appear during program execution are called run-time errors. Once a program starts running, it means that the program is already free of syntax errors and compilation has successfully finished. However, it may still have logical errors that may cause the abnormal termination of the program. An example would be dividing a certain number by zero. Another would be the program executing in an endless loop wherein the only way to stop it is to manually stop the execution of the program.
           
           
           
           
              
              
              
              
              
              
              
              
              
              
              7
             Chapter 1
            1.2.6 Documentation
           
            There are three basic types of documentation. The most common type of documentation is the user’s manual. Software usually comes with a user’s manual and it contains information on the software and hardware requirements, installation procedures, and step-by-step instructions on how to use the system. This type of documentation is used by the user of the program.
           
           
            In the process of making sure that the program is error-free, running correctly and efficiently, documentation of the program must be done. The purpose of which is to maintain the relevance and validity of the program. For the next two types of documentation, the process must be continuous. Programs in real-world applications will likely be used for a number of years and will probably require some modification as time passes. Especially in large programs developed for complex projects, there will usually be obscure bugs that do not become apparent until after the program has been placed in use.[LEES90] Such modifications made due to further discovering errors while the program is in use must be documented well. Ten years after the program has been written, someone may want to update it and the first thing he'll do is to look at the documentation of the program to become aware of the details of the program. Good documentation reduces program maintenance efforts and major problem reconstruction. These are the objectives of creating the technical manual and internal documentation.
           
           
            The technical manual is a printed copy of the information regarding how the program was designed and how it was created. Issues involved in choosing the data type or data structure, as well as the algorithm for the solution, are also included. On the other hand, the internal documentation has the same information but these are stored within the program themselves, through the use of comments.
           
             8