EE31331 PROGRAMMING METHODOLOGY AND SOFTWARE ENGINEERING PROGRAMMINGMETHDOLODGY AND SOFTWAREENGINEERING 港城市大 Copyrighto1998 Angus Wu
PROGRAMMING METHDOLODGY AND SOFTWARE ENGINEERING Copyright©1998 Angus Wu EE 31331 PROGRAMMING METHODOLOGY AND SOFTWARE ENGINEERING
INTRODUCTION WHY PROGRAMMING METHODOLOGY. WHAT IS THE PURPOSE OF STUDYING PROGRAMMING METHODOLOG Y. PROGRAMMINGMETHDOLODGY AND SOFTWAREENGINEERING 港城市大 Copyrighto1998 Angus Wu
PROGRAMMING METHDOLODGY AND SOFTWARE ENGINEERING Copyright©1998 Angus Wu INTRODUCTION WHY PROGRAMMING METHODOLOGY? WHAT IS THE PURPOSE OF STUDYING PROGRAMMING METHODOLOGY?
INTRODUCTION PROGRAMMING IS AN ARTP OR SOME SYSTEMATIC WAY FOR PROGRAMMING What is programming? Programming is the translation process/ transformation of a concept/algorithm/ conceptual operation/ human understandable idea into machine realization/operable code The objective is to have an effective, correct machine operable code to carry out the underlining process(the intended operations) MAJOR CONCERN: EFFICIENCY AND CORRECTNESS PROGRAM MINGMETHDOLODGY AND SOFTWAREENGINEERING 港城市大 Copyrighto1998 Angus Wu ol Hone Kone
PROGRAMMING METHDOLODGY AND SOFTWARE ENGINEERING Copyright©1998 Angus Wu INTRODUCTION PROGRAMMING IS AN ART? OR SOME SYSTEMATIC WAY FOR PROGRAMMING? What is programming? Programming is the translation process/ transformation of a concept/ algorithm/ conceptual operation/ human understandable idea into machine realization/operable code. The objective is to have an effective, correct machine operable code to carry out the underlining process (the intended operations). MAJOR CONCERN: EFFICIENCY AND CORRECTNESS
INTRODUCTION Objective of the course is to develop a programming methodology that will enable us to write small and medium-sized programs that are computational effective and correctly implementing the target operations a methodology is a collection of methods which works together Here, in programming methodology, we try to teach a careful and systematic approach to programming PROGRAM MINGMETHDOLODGY AND SOFTWAREENGINEERING 港城市大 Copyrighto1998 Angus Wu ol Hone Kone
PROGRAMMING METHDOLODGY AND SOFTWARE ENGINEERING Copyright©1998 Angus Wu INTRODUCTION Objective of the course is to develop a programming methodology that will enable us to write small and medium-sized programs that are computational effective and correctly implementing the target operations. A methodology is a collection of methods which works together. Here, in programming methodology, we try to teach a careful and systematic approach to programming
PROGRAMMING APPROACH Code Debug Test Plan Code Debug Test There are two programming approaches The length of the boxes is the passage of time The first approach does not have the planning phase may lead to extensive debugging Debugging- not only the syntax, the code, but the correctness of the system/operations being implemented PROGRAM MINGMETHDOLODGY AND SOFTWAREENGINEERING 港城市大 Copyrighto1998 Angus Wu
PROGRAMMING METHDOLODGY AND SOFTWARE ENGINEERING Copyright©1998 Angus Wu PROGRAMMING APPROACH There are two programming approaches. The length of the boxes is the passage of time. The first approach does not have the planning phase may lead to extensive debugging. Debugging- not only the syntax, the code, but the correctness of the system/operations being implemented
PROGRAMMING APPROACH Implementation of a fir filter Response i=1 A general program for any order finite impulse response or fixed order Round off errors WHAT IT NEEDS - PLANNING and AN EFFEctiVe WAY OF MULTIPLICATION PROGRAM MINGMETHDOLODGY AND SOFTWAREENGINEERING 港城市大 Copyrighto1998 Angus Wu
PROGRAMMING METHDOLODGY AND SOFTWARE ENGINEERING Copyright©1998 Angus Wu PROGRAMMING APPROACH Implementation of a FIR filter i n i i sponse a x = = 1 Re A general program for any order finite impulse response or fixed order….. Round off errors.. WHAT IT NEEDS - PLANNING and AN EFFECTIVE WAY OF MULTIPLICATION
PHASE OF A SOFTWARE PROJECT The basic software project development phases are Specify, Design, Code, Test, Maintain Specify -answer the question "what is the problem to be solved? The specification must be precise and complete For example the fir problem. what is the allowable round off error(precision), integer or floating point multiplication the range of input data and coefficients, How big is it allowed to be? Might it be negative? Is it more important to be fast or to be accurate?( depending on application) Specify may be called Analysis Phase PROGRAM MINGMETHDOLODGY AND SOFTWAREENGINEERING 港城市大 Copyrighto1998 Angus Wu
PROGRAMMING METHDOLODGY AND SOFTWARE ENGINEERING Copyright©1998 Angus Wu PHASE OF A SOFTWARE PROJECT The basic software project development phases are: Specify, Design, Code, Test, Maintain Specify - answer the question “what is the problem to be solved?” The specification must be precise and complete. For example, the FIR problem, what is the allowable round off error (precision), integer or floating point multiplication, the range of input data and coefficients, How big is it allowed to be? Might it be negative? Is it more important to be fast or to be accurate? (depending on application) Specify may be called ‘Analysis Phase’
PHASE OF A SOFTWARE PROJECT Design-answer the question"how should the problem be solved? Design includes finding the suitable abstractions and decomposition of the problem into manageable components For Fir problem, how to implement the multiplication, fast accurate? based on the specification from the first phase How many modules? reading data, coefficient multiplication, report data..error handling, checking the validation of input data PROGRAM MINGMETHDOLODGY AND SOFTWAREENGINEERING 港城市大 Copyrighto1998 Angus Wu ol Hone Kone
PROGRAMMING METHDOLODGY AND SOFTWARE ENGINEERING Copyright©1998 Angus Wu PHASE OF A SOFTWARE PROJECT Design- answer the question “how should the problem be solved?”. Design includes finding the suitable abstractions, and decomposition of the problem into manageable components. For FIR problem, how to implement the multiplication, fast, accurate? based on the specification from the first phase. How many modules? reading data, coefficient, multiplication, report data….. error handling, checking the validation of input data…
PHASE OF A SOFTWARE PROJECT Code-the transformation process of the underlying algorithm into machine readable code based on the specification. The basic problem of it is the coding style It should be simple and easy to maintain example refer to sq0. c, sq2.c Test-ensure that the program meets the specification. Not the syntax correctness but the correctness of the implementation of the underlying algorithm/operations. It should have a test plan for such task Maintain -adapt the program to change of requirements or environment PROGRAM MINGMETHDOLODGY AND SOFTWAREENGINEERING 港城市大 Copyrighto1998 Angus Wu ol Hone Kone
PROGRAMMING METHDOLODGY AND SOFTWARE ENGINEERING Copyright©1998 Angus Wu PHASE OF A SOFTWARE PROJECT Code - the transformation process of the underlying algorithm into machine readable code based on the specification. The basic problem of it is the coding style. It should be simple and easy to maintain. example refer to sq0.c, sq2.c Test - ensure that the program meets the specification. Not the syntax correctness but the correctness of the implementation of the underlying algorithm/operations. It should have a test plan for such task. Maintain - adapt the program to change of requirements or environment
MEANS OF DEVELOPMENT ALGORITHM-It is the underlying process to be implemented as the machine operable instruction(codes) In order to translate/transform the human understandable concepts, the targeted process/operation is represented as algorithm. The means to represent the algorithm should be a language. In fact, before we can develop program, we need a notation in which to express the development PROGRAM MINGMETHDOLODGY AND SOFTWAREENGINEERING 港城市大 Copyrighto1998 Angus Wu
PROGRAMMING METHDOLODGY AND SOFTWARE ENGINEERING Copyright©1998 Angus Wu MEANS OF DEVELOPMENT ALGORITHM- It is the underlying process to be implemented as the machine operable instruction (codes). In order to translate/transform the human understandable concepts, the targeted process/operation is represented as algorithm. The means to represent the algorithm should be a language. In fact, before we can develop program, we need a notation in which to express the development