Home :: Books :: Computers & Internet  

Arts & Photography
Audio CDs
Audiocassettes
Biographies & Memoirs
Business & Investing
Children's Books
Christianity
Comics & Graphic Novels
Computers & Internet

Cooking, Food & Wine
Entertainment
Gay & Lesbian
Health, Mind & Body
History
Home & Garden
Horror
Literature & Fiction
Mystery & Thrillers
Nonfiction
Outdoors & Nature
Parenting & Families
Professional & Technical
Reference
Religion & Spirituality
Romance
Science
Science Fiction & Fantasy
Sports
Teens
Travel
Women's Fiction
Designing Concurrent, Distributed, and Real-Time Applications with UML

Designing Concurrent, Distributed, and Real-Time Applications with UML

List Price: $59.99
Your Price: $51.40
Product Info Reviews

<< 1 >>

Rating: 0 stars
Summary: Foreword by Bran Selic
Review: A recent search of a popular bookseller's web site revealed a total of 1188 titles (and growing daily) that are classified as dealing with "software engineering". In spite of this apparent glut, there is precious little engineering in many of them and, correspondingly, little or no engineering in much of the software being developed these days. This book aims to change that.

Traditional engineering disciplines invariably involved the use of science and mathematics to ensure that a design would meet its objectives at an acceptable cost. Thus, one could proceed with high confidence to construct a bridge based on predictions made from a mathematical model of the design. In the case of software, however, design is primarily an informal process too often devoid of any formal predictive models or techniques. From this perspective, it is highly instructive to contrast how software and hardware have evolved over the last several decades. Whereas hardware has become smaller, faster, cheaper, and more reliable, software has become larger, slower, more expensive, and less reliable over the same period. Significantly, modern hardware design relies heavily on constructing predictive models.

The absence of engineering fundamentals from software practice can be attributed in part to the fickle, almost chaotic, nature of software, which makes it notoriously difficult to model mathematically. Despite this inherent difficulty, however, a number of very useful analytical techniques have been developed. In particular, such techniques have evolved in the embedded real-time domain, where it is often critical to predict the temporal properties of software with a high degree of certainty since human lives may depend on it. Yet, regardless of their proven effectiveness, these methods are not used very often. In fact, many real-time developers are not even aware of their existence.

The issue here is one of culture, or, more appropriately, the lack of one. Writing software is primarily an intellectual exercise, unhampered by physical limitations such as the need to cut and shape material or to expend large amounts of energy. Seduced by this apparent lack of resistance and the common perception that, when all is said and done, only the code matters, far too many practitioners still equate software design with the process of writing software. Strangely enough, the same individuals have no trouble understanding the difference between designing a jumbo jet and assembling it.

Another incidental hurdle to the introduction of these techniques into software practice is that, for historical reasons, some of them are defined in the context of the traditional procedural programming model. Although the techniques are not fundamentally dependent on that model, there remains the problem of mapping them to the newer object-oriented programming model for those who want to exploit the many advantages of that paradigm.

Hassan Gomaa's book is the first one that I have seen which addresses these issues in a systematic and comprehensive manner. Much more than a mere compilation of unconnected "patterns" and point techniques, it explains clearly and in detail a way of reconciling specific traditional engineering techniques with the industry-standard Unified Modeling Language. Furthermore, it shows how such techniques fit into a fully-defined development process, one that is specifically oriented towards developing concurrent, distributed, real-time systems. (Experienced software developers recognize fundamentally hard problems behind each of these terms individually-systems that combine all three typically belong to the category of the most challenging engineering problems.)

Based on the well-known dictum that we learn best by doing, fully-worked out non-trivial examples take up a major portion of this book. The reader will benefit greatly from working through one or more of these examples to gain an intuitive feel for the approach and, on a higher plane, for what software engineering should ultimately look like.

Bran Selic (May, 2000)

Rating: 5 stars
Summary: Excellent book: systematic, thorough, clear.
Review: I am using it as a textbook for a course on object-oriented development of real-time and distributed applications. I found that the author did an excellent job at merging the OO techniques and UML on one hand with the concurrency/distribution issues on the other hand. The book presents clear helpful guidelines for the developers of real-time and distributed systems. One of the features I liked the most is the fact that a number of well chosen examples, from an elevator control system to an e-commerce system, are completely worked out in the book. How better to learn than by following relevant, clearly explained examples!

Rating: 0 stars
Summary: Foreword by Peter A. Freeman
Review: The recent and rapid advances in hardware and communications have led to an explosion of concurrent, real-time, and distributed applications. This, in turn, is changing forever the nature of the demands on practical software development. The widespread advent of object-oriented approaches and now the use of UML are changing practice, but as usual, at a pace that lags the needs.

One reason for this lag has been the absence of good, authoritative, practical guides to the object-oriented analysis and design of concurrent applications, especially those that are distributed and/or real-time. This book goes a long ways towards fulfilling that need.

I cannot think of a better person to write a definitive text on this topic than Hassan Gomaa. Over more than twenty years, Hassan has contributed to a deeper understanding of concurrent, distributed, and real-time applications through his work in industry as a designer, his research into new real-time design methods, and his teaching as a university professor. This book shows the results of his experience.

It is superbly organized and illustrated, as only an experienced teacher could have done. It shows the depth of understanding of the technology that comes from long and deep research focused on the subject matter. It has the illustrations and practical knowledge that comes from long and direct contact with practical software design.

I hope that you enjoy this book as much as I did, and that you will be able to use it for many years to come.

Peter A. Freeman, John P. Imlay, Jr. Dean and Professor, Georgia Institute of Technology, Atlanta May, 2000

Rating: 4 stars
Summary: Practical Approach to Applying UML to Design Software
Review: This book is an excellent source of information for software engineers designing concurrent and real-time systems using the object-oriented paradigm. Hassan's COMET method tackles the hard issues of concurrency, real-time constraints, and distributed systems with a comprehensive, straight-forward approach that is easy to understand and conforms to the UML standard. The text is also enhanced with an excellent selection of examples from different application domains. The book is structured in such a way as to be useful to both the novice (as a guidebook) and to the expert (as a reference). This book spends more time on my desk than on my bookshelf.

Rating: 5 stars
Summary: Exceptional Book
Review: This book is an excellent source of information for software engineers designing concurrent and real-time systems using the object-oriented paradigm. Hassan's COMET method tackles the hard issues of concurrency, real-time constraints, and distributed systems with a comprehensive, straight-forward approach that is easy to understand and conforms to the UML standard. The text is also enhanced with an excellent selection of examples from different application domains. The book is structured in such a way as to be useful to both the novice (as a guidebook) and to the expert (as a reference). This book spends more time on my desk than on my bookshelf.

Rating: 4 stars
Summary: Practical Approach to Applying UML to Design Software
Review: This book provides a practical method to apply the Unified Modeling Language (UML) to design concurrent and distributed software for large systems. While many books have been published to explain the details of the UML notation, this book provides a method, COMET, to approach software design through application of a practical subset of the UML notation. The book contains numerous, extensive case studies and provides pragmatic, useful guidelines to identify distributed subsystems and concurrent tasks from a UML analysis model. The approach described represents a unique and valualbe contribution by the author of this text. Finally, because this book is intended mainly as a text for software design courses, I consulted with a few students who have used this book in a graduate-level software engineering course. All of the students were favorably impressed with the content, clarity, practicality, and detail contained in the book.

Prior to the publication of this text, a software design course based on UML could only be taught using a UML text together with a separate software design text. In this text book, Dr. Gomaa has integrated material from UML and software design in such a form that a software design course can now be taught with this text alone.

Rating: 2 stars
Summary: show real time app
Review: this book show u how to build real time app, but foor example


<< 1 >>

© 2004, ReviewFocus or its affiliates