The unified modeling language (UML) has been written about quite widely. This book is different in its description of the practical aspects of UML, discussing its use in all of the relevant parts of the software development life cycle. Generally, books on UML only describe the various modeling techniques that the UML standard defines, leaving readers in the dark about the practical uses of UML. This book differentiates itself by providing student exercises and examples in abundance.
UML 2.0 consists of use case diagrams, package diagrams, structure diagrams, object diagrams, composite structure diagrams, communication diagrams, activity diagrams, state machine diagrams, interaction diagrams, interaction overview diagrams, timing diagrams, component diagrams, and deployment diagrams. Each type of diagram has its own application and use, even though some of them may seem very similar at first. Just by looking at the number of types of diagrams, one can figure out that the standard is quite large, and this can become a part of the problem instead of being a part of the solution if it is not used with adequate care. The authors not only describe the UML concepts and diagrams, but also describe the shortcomings of the UML standard for advanced UML users.
Most books on UML describe the various diagrams defined in the standard, and how to use them in the software development life cycle. Definitions for all of the diagrams should be an essential part of a book about UML. Unfortunately, this is not generally the case. This book stands out by providing this aspect of the standard.
This book has five parts. Part 1 talks about the requirements definition, and contains all of the various stages of the software development life cycle in the requirements phase. Part 2 discusses the solution definition, consisting of the analysis, architecture, and design of the software. Part 3 describes the detailed design and coding phase of the software development process. Part 4 delves into the testing and traceability aspects of the various requirements. Part 5 discusses the new features of UML 2.0, as well as the Spring framework. The book nicely covers all aspects of the software development life cycle.
The book makes itself even more useful by providing abundant tips and exercises. Discussions about various architectural concepts demonstrate the technical depth and mastery of the authors. The facility of the authors in describing the software development and UML concepts is greatly appreciated. The use of red and black ink also enhances the readability of the book. The authors provide several uniform resource locators (URLs) that contain additional information about the topics discussed
The book deserves space on every software engineer’s bookshelf, since it can provide a complete perspective on the software development life cycle, and is not limited to UML alone. The UML concepts are described from both theoretical and practical perspectives. The main strength of this book is its descriptions of the various UML diagrams. This makes the book a truly valuable possession. This book will be of great value for a computer science student, software engineer, or software architect.