Book Reviews Theoretical Aspects of Fuzzy Control, edited by H.T. NGUYEN, M. SUGENO, R. TONG, and R.R. YAGEIL John Wiley & Sons; New York; 1995; xv + 359 pp.; $59.95; ISBN: 0-471-02079-6
Reviewed by: Slawomir T. WlERZCHON Polish Academy of Sciences, Warsaw, Poland
L.A. Zadeh's notion of fuzzy systems emerged almost simultaneously with the idea of fuzzy sets. The research on fuzzy systems soon developed in two main directions. The first and rather academic direction (initiated in 1965) relies upon the fuzzification of a transition function describing a system under consideration, as well as the fuzzification of the inputs to this system. The second, and more important from a practical stan~oint, is the linguistic approach suggested by Zadeh in 1973. Here the description of the system's behavior (as well as the objectives) is given in the form of a set of conditional (i.e., "if ... then') statements similar to the protocols produced by human process operators. Both the premises and the conclusions of these statements are represented in terms of fuzzy sets such as "high', "medium', and so on. Next, these statements are combined, using fuzzy logic, to arrive at a global law governing the process. This approach has borne fruit in the so-called "linguistic controllers", first applied in 1974 by E.H. Mamdani, and later by him and his co-workers, to the control of complex processes. Soon, the number of successful applications increased. In 1985, M. Sugeno proposed another kind of controller: the fuzzy sets occur only in the antecedents of the rules, and their consequents contain functions from an input space to an output space, allowing the inputoutput relations of a system to be represented locally. Although the idea of fuzz3" control is still controversial, it has proved to be efficient in a very wide range of problems, from industrial processes to household appliances like washing machines or vacuum cleaners. This is because fuzzy controllers are relatively simple and cheap. The behavior of a fuzzy controller can be described by three stages: fuzzification, inference and defiu:zification. To prepare such a controller you should in general write down (possibly with the help of an experienced human operator) a list of "if... then" rules, and then translate all the vague terms occurring in the rules into the corresponding fuzzy sets. The rest of the operations are performed almost automatically by applying the fuzzy logic rules. Observing the outputs of the system, you must fuzzify them, and next you must defuzzify the fuzzy set that is the result of a particular inference scheme applied in your controller. A slightly worrying feature of this approach is the
1037
considerable flexibility in the design of the fuzzy controller, in the choice of logical operators used in a particular fuzzy logic, in the creation of membership functions characterizing vague concepts, and lastly in the choice of defur~ification procedures converting fuzzy outputs into deterministic values. Thus, quoting the Editorial, we need a theory which "must not only explain the empirical success, but must also lead to more theoretical results that can provide general guidelines for design strategies and for assessments of performance." The book reviewed here is concerned with theoretical aspects of the linguistic controllers. This is a very carefully edited volume, comprising twelve invited papers from prominent researchers in the field, presented at the Second IEEE Conference on Fuzzy Systems, held in March 1993 in San Francisco. The editors' intent was to present new theoretical results in fuzzy control, rather than a systematic survey of the state of the art. Hence, an unfamiliar reader may find some of the problems discussed in the book confusing. However, other parts of the book could be of interest, not only to control-theorists, but also to all those interested in fuzzy logic, fuzzy reasoning or knowledge acquisition. As the Editors write, the main results presented in the book are centered around the following issues: • formulation and specification of fuzzy models, • identification of fuzzy models, • model-based control strategies, • stability analysis of fuzzy systems, • analysis of various methodologies in designing fuzzy logic controllers, • approximation and interpolation problems, • interpretation of knowledge-bases for the purposes of obtaining control laws, and • optimal strategies for switching among difficult control designs. In my opinion these objectives have been well met. The part which dominates the book includes various chapters on the theoretical analysis and interpretation of the two already mentioned types of fuzzy controllers: the Mamdani and the Sugeno controllers, including considerations on their stability. Chapter 4 provides the typology of fuzzy controllers, and clarifies the basic issues concerning such controllers. In my opinion, this should have been placed at the beginning of the book as the introductory chapter. Another theme presented in considerable depth is that of rule acquisition. We find here, two interesting approaches to this problem. The first, currently very popular, exploits neural networks, while the second refers to the ID3 algorithm--the
1038
Book Reviews
well-known member of the family of top-down induction of decision trees, derived from Hunt's Concept Learning Systems framework. It is fascinating that although the idea underlying ID3 is very simple, it is still vital, and new applications are still being presented. I regret that there is no paper discussing the application of genetic algorithms to rule acquisition. Lastly, a reader will find in the book a solid body of information concerning fuzzy logic and different inference mechanisms. In summary, the book has been edited with great care. Each paper is written in a concise and fluent manner, ending with an extensive bibliography allowing further study. The index at the end of the book contains almost all the important notions used by the authors. The intended readership of the book includes control-systems and computer-science research workers and post-graduate students.
Measuring the Software Process: A Practical Guide to Panctional Measurements, by David GARMUS and David HERRON; Prentice Hall; Upper Saddle River, NJ, USA; 1996; 228 pp.; $39; ISBN: 0-13-349002-5
Reviewed by: Robert W. FERGUSON
us really know the definition of a calorie, yet we are able to "count calories" in our diet, and we know that reducing calories should result in weight loss. The authors are highly experienced in the measurement area. Garmns is the chairman of the IFPUG (International Function Point Users' Group) Counting Practices Committee. Herren has been consulting on function points, estimating, quality and methodology for a number of years. They understand this difficulty of taking measurements, and begin their book with a discussion of the business of software development. They briefly discuss assessment methods and high-level metrics, and demonstrate the relationship of function-point metrics to the larger picture of the development organization. There follows a detailed discussion of the counting process itself, and some case studies. One of the examples is a real-time system and another is a GUI example. Since the application of the counting rules differs significantly between these two systems, the case studies are helpful. There are also some case studies of organizations that use function points as an important part of their internal practice. The interesting ones, to me, were those who are brave enough to use function points as the core measurement in their contracting practice.
Function points were introduced by Allan Albrecht in 1979 as a system of measuring the size of an application, independent of the technology of implementation. The concept has gained a kind of grudging acceptance by more and more organizations every year. One of the principal problems with the acceptance of function points has been the effort required to learn the process of counting. Garmus and Herron have provided concrete examples and added important material on estimation.
Finally, the book contains a study guide for persons wishing to receive IFPUG certification as a Function Point Counter. The guide is complete. Persons honestly completing the course material should pass the exam. There are, however, some deficiencies in the book. The chapter on estimation is very slight. There is only modest information about automated counting tools and the potential for these tools. There are also a few editorial errors, that I would guess were added by Prentice Hall rather than the authors. Finally, I personally do not like to consider the development process by itself, and would have included some maintenance and life-cycle discussions. Perhaps the authors are leaving room for a future book!
Measurement is always abstract. I have tried using several techniques to answer the question: "What is a function point? ~ The key, of course, is that measurement is always defined by the process of collecting the data and reporting it. We learn to deal with the abstraction through continued use. Few of
In summary, this is a highly practical book, that would be beneficial for any practitioner or anyofie desiring to become a practitioner m sot~are measurements. The book contains sufficient lighter reading to be worth reading by other software engineers as well.
McDonald's Corporation; Oak Brook, IL, USA
... OOO000OOO...