Normal view MARC view ISBD view

UML distilled : a brief guide to the standard object modeling language / Martin Fowler

Main Author Fowler, Martin, 1963- Country Estados Unidos. Edition 3rd ed Publication Boston : Addison-Wesley, cop. 2004 Description XXX, 175 p. ; 24 cm ISBN 0-321-19368-7 CDU 681.3.06
Tags from this library: No tags from this library for this title. Log in to add tags.
    average rating: 0.0 (0 votes)
Item type Current location Call number Status Date due Barcode Item holds Course reserves
Monografia Biblioteca Geral da Universidade do Minho
BGUM 681.3.06 - F Available 332115
Monografia Biblioteca Geral da Universidade do Minho
BGUM 681.3.06 - F Available 353382
Monografia Biblioteca Geral da Universidade do Minho
BGUM 681.3.06 - F Available 353383
Monografia Biblioteca Geral da Universidade do Minho
BGUMR 681.3.06 - F Available 353384
Monografia Biblioteca Geral da Universidade do Minho
BGUM 681.3.06 - F Available 355116
Monografia Biblioteca Geral da Universidade do Minho
BGUM 681.3.06 - F Available 355117
Monografia Biblioteca Geral da Universidade do Minho
BGUMR 681.3.06 - F Available 355118
Monografia Biblioteca Geral da Universidade do Minho
BGUM 681.3.06 - F Available 355119
Monografia Biblioteca Geral da Universidade do Minho
BGUMR 681.3.06 - F Available 355120
Monografia Biblioteca Geral da Universidade do Minho
BGUM 681.3.06 - F Available 355121
Monografia Biblioteca Geral da Universidade do Minho
BGUM 681.3.06 - F Available 355122

Mestrado Integrado em Engenharia Informática Desenvolvimento de Sistemas de Software 1º semestre

Total holds: 0

Enhanced descriptions from Syndetics:

More than 300,000 developers have benefited from past editions of UML Distilled . This third edition is the best resource for quick, no-nonsense insights into understanding and using UML 2.0 and prior versions of the UML.

Some readers will want to quickly get up to speed with the UML 2.0 and learn the essentials of the UML. Others will use this book as a handy, quick reference to the most common parts of the UML. The author delivers on both of these promises in a short, concise, and focused presentation.

This book describes all the major UML diagram types, what they're used for, and the basic notation involved in creating and deciphering them. These diagrams include class, sequence, object, package, deployment, use case, state machine, activity, communication, composite structure, component, interaction overview, and timing diagrams. The examples are clear and the explanations cut to the fundamental design logic. Includes a quick reference to the most useful parts of the UML notation and a useful summary of diagram types that were added to the UML 2.0.

If you are like most developers, you don't have time to keep up with all the new innovations in software engineering. This new edition of Fowler's classic work gets you acquainted with some of the best thinking about efficient object-oriented software design using the UML--in a convenient format that will be essential to anyone who designs software professionally.

Table of contents provided by Syndetics

  • List of Figures (p. xvii)
  • Foreword to the Third Edition (p. xxi)
  • Foreword to the First Edition (p. xxiii)
  • Preface (p. xxv)
  • Why Bother with the UML? (p. xxvi)
  • Structure of the Book (p. xxvii)
  • Changes for the Third Edition (p. xxvii)
  • Acknowledgments (p. xxviii)
  • Chapter 1 Introduction (p. 1)
  • What Is the UML? (p. 1)
  • Ways of Using the UML (p. 2)
  • How We Got to the UML (p. 7)
  • Notations and Meta-Models (p. 9)
  • UML Diagrams (p. 10)
  • What Is Legal UML? (p. 13)
  • The Meaning of UML (p. 14)
  • UML Is Not Enough (p. 14)
  • Where to Start with the UML (p. 16)
  • Where to Find Out More (p. 16)
  • Chapter 2 Development Process (p. 19)
  • Iterative and Waterfall Processes (p. 19)
  • Predictive and Adaptive Planning (p. 23)
  • Agile Processes (p. 24)
  • Rational Unified Process (p. 25)
  • Fitting a Process to a Project (p. 26)
  • Fitting the UML into a Process (p. 29)
  • Requirements Analysis (p. 29)
  • Design (p. 30)
  • Documentation (p. 31)
  • Understanding Legacy Code (p. 32)
  • Choosing a Development Process (p. 33)
  • Where to Find Out More (p. 33)
  • Chapter 3 Class Diagrams: The Essentials (p. 35)
  • Properties (p. 35)
  • Attributes (p. 36)
  • Associations (p. 37)
  • Multiplicity (p. 38)
  • Programming Interpretation of Properties (p. 39)
  • Bidirectional Associations (p. 41)
  • Operations (p. 43)
  • Generalization (p. 45)
  • Notes and Comments (p. 46)
  • Dependency (p. 47)
  • Constraint Rules (p. 49)
  • When to Use Class Diagrams (p. 51)
  • Where to Find Out More (p. 52)
  • Chapter 4 Sequence Diagrams (p. 53)
  • Creating and Deleting Participants (p. 56)
  • Loops, Conditionals, and the Like (p. 57)
  • Synchronous and Asynchronous Calls (p. 61)
  • When to Use Sequence Diagrams (p. 61)
  • Chapter 5 Class Diagrams: Advanced Concepts (p. 65)
  • Keywords (p. 65)
  • Responsibilities (p. 66)
  • Static Operations and Attributes (p. 66)
  • Aggregation and Composition (p. 67)
  • Derived Properties (p. 68)
  • Interfaces and Abstract Classes (p. 69)
  • Read-Only and Frozen (p. 72)
  • Reference Objects and Value Objects (p. 73)
  • Qualified Associations (p. 74)
  • Classification and Generalization (p. 75)
  • Multiple and Dynamic Classification (p. 76)
  • Association Class (p. 78)
  • Template (Parameterized) Class (p. 81)
  • Enumerations (p. 82)
  • Active Class (p. 83)
  • Visibility (p. 83)
  • Messages (p. 84)
  • Chapter 6 Object Diagrams (p. 87)
  • When to Use Object Diagrams (p. 87)
  • Chapter 7 Package Diagrams (p. 89)
  • Packages and Dependencies (p. 91)
  • Package Aspects (p. 93)
  • Implementing Packages (p. 94)
  • When to Use Package Diagrams (p. 95)
  • Where to Find Out More (p. 95)
  • Chapter 8 Deployment Diagrams (p. 97)
  • When to Use Deployment Diagrams (p. 98)
  • Chapter 9 Use Cases (p. 99)
  • Content of a Use Case (p. 100)
  • Use Case Diagrams (p. 102)
  • Levels of Use Cases (p. 103)
  • Use Cases and Features (or Stories) (p. 104)
  • When to Use Use Cases (p. 104)
  • Where to Find Out More (p. 105)
  • Chapter 10 State Machine Diagrams (p. 107)
  • Internal Activities (p. 109)
  • Activity States (p. 109)
  • Superstates (p. 110)
  • Concurrent States (p. 111)
  • Implementing State Diagrams (p. 111)
  • When to Use State Diagrams (p. 114)
  • Where to Find Out More (p. 115)
  • Chapter 11 Activity Diagrams (p. 117)
  • Decomposing an Action (p. 119)
  • Partitions (p. 120)
  • Signals (p. 121)
  • Tokens (p. 124)
  • Flows and Edges (p. 124)
  • Pins and Transformations (p. 125)
  • Expansion Regions (p. 126)
  • Flow Final (p. 127)
  • Join Specifications (p. 128)
  • And There's More (p. 129)
  • When to Use Activity Diagrams (p. 129)
  • Where to Find Out More (p. 130)
  • Chapter 12 Communication Diagrams (p. 131)
  • When to Use Communication Diagrams (p. 133)
  • Chapter 13 Composite Structures (p. 135)
  • When to Use Composite Structures (p. 137)
  • Chapter 14 Component Diagrams (p. 139)
  • When to Use Component Diagrams (p. 141)
  • Chapter 15 Collaborations (p. 143)
  • When to Use Collaborations (p. 146)
  • Chapter 16 Interaction Overview Diagrams (p. 147)
  • When to Use Interaction Overview Diagrams (p. 147)
  • Chapter 17 Timing Diagrams (p. 149)
  • When to Use Timing Diagrams (p. 150)
  • Appendix Changes between UML Versions (p. 151)
  • Revisions to the UML (p. 151)
  • Changes in UML Distilled (p. 152)
  • Changes from UML 1.0 to 1.1 (p. 153)
  • Type and Implementation Class (p. 153)
  • Complete and Incomplete Discriminator Constraints (p. 154)
  • Composition (p. 154)
  • Immutability and Frozen (p. 154)
  • Returns on Sequence Diagrams (p. 154)
  • Use of the Term "Role" (p. 155)
  • Changes from UML 1.2 (and 1.1) to 1.3 (and 1.5) (p. 155)
  • Use Cases (p. 155)
  • Activity Diagrams (p. 156)
  • Changes from UML 1.3 to 1.4 (p. 157)
  • Changes from UML 1.4. to 1.5 (p. 157)
  • From UML 1.x to UML 2.0 (p. 157)
  • Class Diagrams: The Essentials (Chapter 3) (p. 158)
  • Sequence Diagrams (Chapter 4) (p. 158)
  • Class Diagrams: Concepts (Chapter 5) (p. 158)
  • State Machine Diagrams (Chapter 10) (p. 159)
  • Activity Diagrams (Chapter 11) (p. 159)
  • Bibliography (p. 161)
  • Index (p. 167)

Excerpt provided by Syndetics

I've been lucky in a lot of ways in my life; one of my great strokes of fortune was being in the right place with the right knowledge to write the first edition of this book in 1997. Back then, the chaotic world of object-oriented (OO) modeling was just beginning to unify under the Unified Modeling Language (UML). Since then, the UML has become the standard for the graphical modeling of software, not just for objects. My fortune is that this book has been the most popular book on the UML, selling more than a quarter of a million copies.Well, that's very nice for me, but should you buy this book? I like to stress that this is a brief book. It's not intended to give you the details on every facet of the UML, which has grown and grown over the years. My intention is to find that fraction of the UML that is most useful and tell you just that. Although a bigger book gives you more detail, it also takes longer to read. And your time is the biggest investment you'll make in a book. By keeping this book small, I've spent the time selecting the best bits to save you from having to do that selection yourself. (Sadly, being smaller doesn't mean proportionately cheaper; there is a certain fixed cost to producing a quality technical book.) One reason to have this book is to begin to learn about the UML. Because this is a short book, it will quickly get you up to speed on the essentials of the UML. With that under your belt, you can go into more detail on the UML with the bigger books, such as the User Guide Booch, UML user or the Reference Manual Rumbaugh, UML Reference. This book can also act as a handy reference to the most common parts of the UML. Although the book doesn't cover everything, it's a lot lighter to carry around than most other UML books. It's also an opinionated book. I've been working with objects for a long time now, and I have definite ideas about what works and what doesn't. Any book reflects the opinions of the author, and I don't try to hide mine. So if you're looking for something that has a flavor of objectivity, you might want to try something else. Although many people have told me that this book is a good introduction to objects, I didn't write it with that in mind. If you are after an introduction to OO design, I suggest Craig Larman's book Larman. Many people who are interested in the UML are using tools. This book concentrates on the standard and on conventional usage of the UML and doesn't get into the details of what various tools support. Although the UML did resolve the tower of Babel of pre-UML notations, many annoying differences remain between what tools show and allow when drawing UML diagrams. I don't say much in this book about Model Driven Architecture (MDA). Although many people consider the two to be the same thing, many developers use the UML without being interested in MDA. If you want to learn more about MDA, I would start with this book to get an overview of the UML first and then move on to a book that's more specific about MDA. Although the main point of this book is the UML, I've also added bits of other material about techniques, such as CRC cards, that are valuable for OO design. The UML is just a part of what you need to succeed with objects, and I think that it's important to introduce you to some other techniques. In a brief book like this, it's impossible to go into detail about how the UML relates to source code, particularly as there is no standard way of making that correspondence. However, I do point out common coding techniques for implementing pieces of the UML. My code examples are in Java and C#, as I've found that these languages are usually the most widely understood. Don't assume that I prefer those languages; I've done too much Smalltalk for that! Why Bother with the UML? Graphical design notations have been with us for a while. For me, their primary value is in communication and understanding. A good diagram can often help communicate ideas about a design, particularly when you want to avoid a lot of details. Diagrams can also help you understand either a software system or a business process. As part of a team trying to figure out something, diagrams both help understanding and communicate that understanding throughout a team. Although they aren't, at least yet, a replacement for textual programming languages, they are a helpful assistant. Many people believe that in the future, graphical techniques will play a dominant role in software development. I'm more skeptical of that, but it's certainly useful to have an appreciation of what these notations can and can't do. Of these graphical notations, the UML's importance comes from its wide use and standardization within the OO development community. The UML has become not only the dominant graphical notation within the OO world but also a popular technique in non-OO circles. Structure of the Book Chapter 1 gives an introduction to the UML: what it is, the different meanings it has to different people, and where it came from. Chapter 2 talks about software process. Although this is strictly independent of the UML, I think that it's essential to understand process in order to see the context of something like the UML. In particular, it's important to understand the role of iterative development, which has been the underlying approach to process for most of the OO community. I've organized the rest of the book around the diagram types within the UML. Chapters 3 and 4 discuss the two most useful parts of the UML: class diagrams (core) and sequence diagrams. Even though this book is slim, I believe that you can get the most value out of the UML by using the techniques that I talk about in these chapters. The UML is a large and growing beast, but you don't need all of it. Chapter 5 goes into detail on the less essential but still useful parts of class diagrams. Chapters 6 through 8 describe three useful diagrams that shed further light on the structure of a system: object diagrams, package diagrams, and deployment diagrams. Chapters 9 through 11 show three further useful behavioral techniques: use cases, state diagrams (although officially known as state machine diagrams, they are generally called state diagrams), and activity diagrams. Chapters 12 through 17 are very brief and cover diagrams that are generally less important, so for these, I've only provided a quick example and explanation. The inside covers summarize the most useful parts of the notation. I've often heard people say that these covers are the most valuable part of the book. You'll probably find it handy to refer to them as you're reading some of the other parts of the book. Changes for the Third Edition If you have earlier editions of this book, you're probably wondering what is different and, more important, whether you should buy the new edition. The primary trigger for the third edition was the appearance of UML 2. UML 2 has added a lot of new stuff, including several new diagram types. Even familiar diagrams have a lot of new notation, such as interaction frames in sequence diagrams. If you want to be aware of what's happened but don't want to wade through the specification (I certainly don't recommend that!), this book should give you a good overview. I've also taken this opportunity to completely rewrite most of the book, bringing the text and examples up to date. I've incorporated much that I've learned in teaching and using the UML over the past five years. So although the spirit of this ultrathin UML book is intact, most of the words are new.Over the years, I've worked hard to keep this book as current as is possible. As the UML has gone through its changes, I've done my best to keep pace. This book is based on the UML 2 drafts that were accepted by the relevant committee in June 2003. It's unlikely that further changes will occur between that vote and more formal votes, so I feel that UML 2 is now stable enough for my revision to go into print. I'll post information any further updates on my Web site ( ). Martin Fowler Melrose, Massachusetts Excerpted from UML Distilled: A Brief Guide to the Standard Object Modeling Language by Martin Fowler All rights reserved by the original copyright owners. Excerpts are provided for display purposes only and may not be reproduced, reprinted or distributed without the written permission of the publisher.

Author notes provided by Syndetics

Martin Fowler is the Chief Scientist of ThoughtWorks

There are no comments for this item.

Log in to your account to post a comment.