TAILIEUCHUNG - Software Engineering For Students: A Programming Approach Part 13

Software Engineering For Students: A Programming Approach Part 13. This fully revised version of Doug Bell's Software Engineering: A Programming Approach continues to use the successful formula of the previous editions. The author's approach is to present the main principles, techniques and tools used in software engineering, one by one, chapter by chapter. This book is a unique introduction to software engineering for all students of computer science and its related disciplines. It is also ideal for practitioners wishing to remain current with new developments in the area | 98 Chapter 7 Structured programming while-----do if---- then ------------------goto label else endif endWhile label _ if---- then endif Figure An unstructured program Notice though that throughout our discussion we have concentrated almost exclusively on control structures and have neglected references to data. Although a program that uses the three structures may have abstraction of control it may well have global data. This seriously weakens the abstraction since at any level of detail all of the data has to be considered. Thus control abstraction is only one side of the coin the other side is data abstraction - an important theme that is developed in the chapters on modularity object-oriented design and object-oriented programming later in this book. The idea of abstraction is a powerful tool in constructing software that is understandable but by itself it is inadequate. In order to create programs that are well structured we need a systematic method that takes us from the statement of the problem to the structure of the program. There are a variety of methods discussed in later chapters. Summary The arguments against the goto are 1. it is unnecessary 2. the experimental evidence 3. the lack of expressive power of gotos Exercises 99 4. the difficulty of finding out where you came from in a program constructed using gotos 5. the need to read backwards in a program with gotos in it. 6. the difficulty of proving the correctness of programs that use gotos. The arguments for gotos are 1. to ban them is to deskill programming 2. they have a use in exceptional circumstances 3. gotos are sometimes necessary in order to make programs perform well 4. it is sometimes natural to use gotos. Much of the debate about structured programming has been conducted in this way. Throughout the arguments the need for clarity in programs is the dominant idea. The avoidance of gotos does not necessarily lead to a structured program. The central idea of structured .