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

Software Engineering For Students: A Programming Approach Part 14. 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 | 108 Chapter 8 Functional decomposition Alternative solutions A major characteristic of functional decomposition is its flexibility or put another way its lack of guidance. When you use the method you do not necessarily arrive at a unique solution. On the contrary you can often see several solutions. According to functional decomposition they are all reasonable. The method gives us no guidance as to which design is best. The only way to find out is to refine all the solutions to a level of detail at which we can make a reasoned choice between them. The choice might be made on the basis of clarity and simplicity performance or some other criteria but functional decomposition by itself gives no guidance for selecting the best solution. Because there is always more than one solution to a problem - more than one design that meets the specification - the user of functional decomposition is duty bound to find not just one solution but to find the best solution. The criteria for the best solution will differ from program to program - sometimes it will be maximum clarity sometimes it will be optimum performance. If in pursuing one design it turns out to be unsatisfactory we can retrace the design level by level considering alternatives at each level. It will often prove desirable to replace whole subtrees in this manner. This process is largely under control because we know which part of the structure we are looking at and it has only one entry and exit point. Review Arguably functional decomposition was the first truly systematic method for software design. It is associated with the names Dijkstra and Wirth. It evolved hand-in-hand with the ideas of structured programming in the 1960s. Since then other methods that claim to involve structured programming have been devised so that nowadays functional decomposition is just one variety of structured programming. There is sometimes confusion about the terminology surrounding structured programming and top-down methods. Let us