Bulletin / Fuzz_vSets and Svstems 84 (1996) 103-l I6 appendixes), four of which (1,2,3,5) present author’s basic ideas of soft computing paradigms with predominance of fuzzy neurocomputations. In the first chapter, the author grounds his understanding of the fuzzy model place as a necessary tool filling traditional gap between numerical and symbolic (qualitative) models. Chapters 2 and 5 pertain to the development of in/out interfaces, extremely important for system modelling and practical applications to problem. Chapters 3 and 4 widely explore ideas of fuzzy neural networks and neurocomputations in system modelling. Side by side with widely used classification of fuzzy neurons the author involves his own original ideas and investigations. Chapters 6 and 8 are dedicated to readers interested mainly in fuzzy controllers and control. Here one can find contemporary state of the art supported by author’s selected neurocomputation models. A really useful discussion for those, who want to implement fuzzy models is given in Ch. 7, dealing with software development tools in designing fuzzy systems. Behind the classes of software resources one can benefit from the critical survey and hints for their real applications. Chapter 9 considers a fuzzy J-K flip-flop implementation, where the author suggests its perspective application in distributed modelling, dynamic pattern classifiers, etc. The last chapter is devoted to fuzzy Petri nets as a useful tool for system analysis. Addressing engineering problems the book considers some very important questions of system design, namely, in/out interfaces, verification and validation of the models, strategy of design and some hints of robustness and fault tolerance. Except for the three appendices, which serve as a very useful reference material, the chapters are organized in a manner to explain the basic ideas behind the fuzzy neurocomputations. Although the ideas are explained at high conceptual level they are introduced fluently, without sophisticated proofs and overburdened explanations. Every idea is richly illustrated and supported with hypothetical examples, simulations and comparisons. The author poses and resolves many questions, leaves some others open for the reader’s interests, stimulating in this way his/her imagination and fantasy for future research and investigations. The structure of the chapters resembles the author’s selected neural structures. According to the reader’s preferences one can benefit from different paths of consideration, selecting ideas, weighting concepts in a finite model of its own goals, similar to a neuron output aggregation, which is the basic merit of the soft computing. I have only a small point of criticism pertaining to the investigated simulations presented as illustrative materials of the discussed ideas. They reflect an in-depth analysis of basic structures, i.e. different types of neurons, appropriate norm/ co-norm applications rather than real-life situations appealing, of course, to enthusiastic practitioners. Leaving them for the future, we expect many new promising developments of the same author. In conclusion, this is a practically oriented book, at the same time rich in
113
full-scale soft computing ideas relevant for engineering, whose appearance on the shelf I strongly recommend. Dimiter Lakov ICCS- BAS, Sofia 1113, Bulgaria
Book Review Use Case Maps for Object-Oriented Systems R.J.A. Buhr and R.S. Casselman Published by Prentice-Hall, Englewood Cliffs, NJ, 1996. 302~~. hb. ISBN O-13-456542-8 Despite its title, this book is not really about use cases at all. It describes Ray Buhr’s important and powerful technique of time threads. Time threads (fashionably -- and I think rather cynically rebadged in this book as “use case maps”) enable designers to visualize the way a system transfers control amongst its components. In this sense a thread is rather like the internalization of a use case. However, the authors routinely confuse use cases with scenarios in this text, and most examples that they give, deal with using time threads to model scenarios rather than, more generically, use cases. Having criticized the title, the only other negative thing I can find to say is that this is a fairly hard read for someone without a really solid background in real-time programming. From here on everything I have to say about this book is pure praise. A time thread map shows the components of a system (which could be machines or people) and one or more wriggley lines that pass through the components and which are annotated with (possibly shared) responsibilities. Components can be objects or pure processes. Time threads can branch and join. This can be synchronized according to a number of protocols. In fact, the book provides an exhaustive list of the different patterns of inter-processcoupling that can occur and could be recommended almost for that alone. Threads can access “pools” of information and populate object “slots” dynamically. Other diagramming techniques supplement the basic time thread diagrams and are described. These are variants of collaboration graphs, visibility graphs and object structure diagrams. FUSION or OOSE style interaction diagrams are sometimes used too. The authors go to some trouble to present a number of commonly recurring design patterns using time thread maps. These vary across abstract and general patterns like producer/consumer (applied here to designing a fax machine), those specific to GUI design such as MVC and quite specific real-time ones such as dynamic buffering. The notation is fairly complex and I cannot help feeling that I would not use it on a system that did not involve complex inter-process coupling of some sort. However, were I to take up network design or really low-level
114
Bulletin / Fuzzy Sets and $xtem.s 84 (I 996) 103-I I6
tool-smithing, then I am sure that learning the technique would pay dividends. For the run-of-the mill MIS system though it is just too complex. The technique is presented as a high-level design technique that finds its apotheosis mid-way between use case analysis and object modelling. In fact, the time thread technique could be usefully added to almost all methods, especially where there is a need to model concurrency or real-time behaviour. The authors explore how this could be done for a few well-known methods such as FUSION and OOSE and interestingly I think for ROOM (a method already focused on real-time systems). I can see how time threads could be usefully added to SOMA between task scripts and event traces. The root task script associated with a message in the context model gives rise to a time thread map that is less committed than the associated event trace, because it enables the designer to defer commitment as to which classes own or share the necessary responsibilities. I can heartily recommend this book to all real-time system designers. People interested in object-oriented methods who need to extend them to cover real-time issues with also find much that is of value. Ian Graham
Book Review Fuzzy Sets and Fuzzy Logic, Theory and Applications George J. Klir and Bo Yuan Prentice Hall, Englewood Cliffs, NJ, ISBN 0-13-101171-5 The book is addressed to a wide range of researchers and scientists: from novices to masters in the field, therefore it would be pertinent to assess its relevant thesaurus. By definition a book thesaurus pertains to a global value of a book, which is expressed by a graph with a bell-like shape function of reader’s knowledge argument. The broader its plateau the bigger thesaurus. Such a rather contradictory task is resolved by the author in a brilliant way, combining simplicity of explanations with conceivable examples for almost all new paradigms involved into consideration as well as extensive exercises after each chapter. This shifts to the left the lower border of the graph. On the other hand, every researcher involved in the field could find a profound explanation of the clue problems and many interesting hints in the very heart of the matter. This shifts to the right the upper border of the graph. In essence, the most significant merit of the book is not to advocate a new field of uncertainty treatment rather than to explain on the basis of perfect competence the virtue of a great science shift in global development of mankind. Nine chapters are devoted to foundations of contemporary theory of uncertainty, namely: from ordi-
nary (crisp) sets to fuzzy sets; fuzzy sets versus crisp sets; operations in fuzzy sets; fuzzy arithmetic; fuzzy relations; fuzzy relation equations; possibility theory; fuzzy logic; uncertainty-based information. Besides in-depth consideration in each of these fields, there are expressed a remarkable integrity of all concepts of contemporary theory of uncertainty. It is shown that every problem could be attacked using different tools and approaches, but appealing side of uncertainty treatment is not to avoid its inevitable existence than to use and benefit of its tolerance for better understanding and more accurate evidence about real phenomena. In this connection a primordial role in adequate description plays the three principles of uncertainty: principle of minimum uncertainty, principle of uncertainty invariance and principle of maximum uncertainty. As far as the first and the third are based on sound reason, more attention is paid to the principle of maximum uncertainty as a counterpart of principle of maximum entropy in classical information theory. It concerns the so-called ampliative inferences and is strongly connected with predictive, retrodictive and prescriptive assessments. In this sense, its practical application is essential for the advance of uncertainty invasion instead of uncertainty ignorance in any new white field of investigation. Despite its broad scope of consideration the book cannot be confined only to the survey field of contemporary fuzzy set theory. It treats many examples based on original findings of the author as a result of his works in almost every fields: fuzzy relation equations, possibility theory, uncertainty-based information, constructing fuzzy sets and many others. The second part of the book consists of eight chapters devoted to different fields of applications. Applications are treated in broad sense. First, these are underlying applicable notions such as: constructing fuzzy sets, approximate reasoning, fuzzy systems, pattern recognition, fuzzy databases and information retrieval systems and fuzzy decision making all of them based on theoretical models postulated in section one. They are considered in six chapters. Second, concrete applications in almost all recently concerned fields: engineering, medicine, economics, interpersonal communications, etc., are surveyed in the last two chapters. An extensive bibliography at the end of the book, consisting of more over 1700 among the most relevant publications in the field, serves as invaluable assistance to everyone who want to study partial problems in depth. The second section adds a new significant shift in right border of thesaurus assessment. In conclusion, the most valuable power of the book is its influence to fuzzy community in an impressive way of provoking conceit, fancy and imagination.
Dimiter Lakov ICCS-BAS, Sofia 1113, Bulgaria