"Since its original introduction in 1997, the Unified Modeling Language has revolutionized software development. Every integrated software development environment in the world--open-source, standards-based, and proprietary--now supports UML and, more importantly, the model-driven approach to software development. This makes learning the newest UML standard, UML 2.0, critical for all software developers--and there isn't a better choice than this clear, step-by-step guide to learning the language." --Richard Mark Soley, Chairman and CEO, OMG
If you're like most software developers, you're building systems that are increasingly complex. Whether you're creating a desktop application or an enterprise system, complexity is the big hairy monster you must manage.
The Unified Modeling Language (UML) helps you manage this complexity. Whether you're looking to use UML as a blueprint language, a sketch tool, or as a programming language, this book will give you the need-to-know information on how to apply UML to your project. While there are plenty of books available that describe UML, Learning UML 2.0 will show you how to use it. Topics covered
Engaging and accessible, this book shows you how to use UML to craft and communicate your project's design. Russ Miles and Kim Hamilton have written a pragmatic introduction to UML based on hard-earned practice, not theory. Regardless of the software process or methodology you use, this book is the one source you need to get up and running with UML 2.0. Additional information including exercises can be found at .
Russ Miles is a software engineer for General Dynamics UK, where he works with Java and Distributed Systems, although his passion at the moment is Aspect Orientation and, in particular, AspectJ. Kim Hamilton is a senior software engineer at Northrop Grumman, where she's designed and implemented a variety of systems including web applications and distributed systems, with frequent detours into algorithms development.
Unified Modeling Language (UML) is the best standardized way to graphically depict a complex software system. It makes a technical language of glyphs to portray software integrations so that large software efforts can be more easily understood by developers. Certifications exist that allow individuals to support UML professionally.
As a developer, the main problem I have with UML is that it itself is complex, often too onerous for my efforts. I deal with complex software, but usually only on smaller teams where we can keep the software in our heads. Maintaining a complex web of diagrams can become a big chore whose value is not always evident.
Recently, Mermaid markdown language has encourage me to use UML at a smaller scale. Instead of keeping thorough specifications on drawing tools, Mermaid contributes a language to describe my thoughts and automatically generate the graphics for me. Automated generation makes maintenance easier. Mermaid transforms UML into more of a simple communication tool instead of an intricate documentation tool.
This book mainly uses Java to illustrate its concepts, but UML, like the concepts in the book, is language-agnostic. I work in a LAMP stack for web development, so perhaps Java-based developers might find this book more useful. The book also describes the finer aspects of the language that only UML experts will aspire to master. Overall, it provided me a helpful way to learn more about this language.
I could never imagine how detailed a software design process can be modeled, until I began to read this book. It covers almost anything, as far as I need in my own design process, and the text has rich examples and is so comprehensive. I guess the next step would be to read the UML 2.0 specifications. The first good thing happens when you learn UML is that you will have a clear way of representing your intentions on design to your colleagues and everyone commonly have a high state of understanding. The second good thing is that you will always be prepared to sketch your ideas down on paper the moment they are created, and they will be ready to be implemented in the next step right away. I totally recommend you to read this book is you know what you're looking for.
Technically, I didn't finish it, but my development team read and discussed the first 13 of 15 chapters of this book back in 2008. I just noticed it sitting in my horizontal stack of books on my desk at work at about the same time I was thinking about goodreads, and realized I could add this book to my collection for fun. Fun? Not really. Some of the concepts were common-sense, some of them were informative. It gave a good foundation for some of the context diagram work I did later in my career. Plus who doesn't love a cute baby gorilla on the cover?
This book does a good job of introducing the reader to the object-oriented design structures of Unified Modeling Language. UML is not a programming language like C++ or MatLab, but rather, is a system for specifying computer programming projects. The UML features help you visualize and organize your project, so that you know what elements depend on what other elements, what actions take place first, second, and third in a sequence, and so forth. Coming from a programmer whose typical development method is to just "sit down and start coding," I've found UML very helpful for planning out my newest, very large project. This book explains all the different types of UML diagrams and briefly shows how to use them with simple examples.
There are lots of things this book won't do, and many cases you may have that will not be covered by this book. But it does help one learn the internal logic of UML, and it can help you decide which features or which diagram types you will need to look into more carefully, and which you can ignore for your project. The writing is generally clear and straightforward, and it is aimed at people who have some basic programming knowledge and some basic OO knowledge, but are not necessarily experts. All the code examples are Java, and I don't know Java at all (I use MatLab) but I did not find it hard to follow them. If you understand basic code you should be able to get the basic gist of what they are showing.
All in all, I would recommend this book to people who have a little bit of OO knowledge, and have perhaps heard of UML or started playing around with it in Visio, but want to really find out how all the parts of UML work. It's a good basic overview, and it introduces the subject fairly well. If you want to use UML a lot, you will probably need more than just this as a reference, however.
I read this for work and it was pretty helpful because I have to deal with UML diagrams every day. However, it's always really annoying to read something by someone who thinks that things like this - i.e. modelling computer systems in a coherent way - is in itself a positive thing. In reality the only benefit of a good model is a good end product. At some point, even in this book, it would have been helpful for the author to say 'don't over-do it, this is just a model, remember you still have to complete the end product!'
Interesting overview of UML. Parts of this felt very practical, others not so much, and overall it was too much of a whirlwind tour to get substantial depth on anything in particular. Despite its title, this also felt like it would probably do better as a basic diagram reference than a way to truly "learn" UML. Still worth the read, but not as good as many of O'Reilly's other publications.
I think it is sufficient only as intro book to UML some of the diagrams were unclear I was hoping that there is a project at the end of the book covers what is explained,but there wasn't ....
Used this book for my thesis to model processes and structures. This books aids in providing a great reference to simplify complicated diagrams into a simple, understandable structure. This is way more comprehensive than the specification document by OMG. Of course, specifications serve other purposes but this actually helps with the application.
A no-nonsense guide to learning UML at the appropriate level for a programmer who has at least some concept of object-oriented program (although UML topics don't only related to classes and their interactions). The book uses Java in its code examples, which wasn't too much of a roadblock for me with no Java experience; but this does cause the book to show its age a bit.
UML provides you a powerful tool set into generating views (models) into a complex system. This book is good to give you a general understanding into what diagrams are available in the language. You can use this system and project communication and for non-software work, as I have done.
After learning the language from this book, learn how to use a UML software system, my preference being Visual Paradigm. This book does not address best practices of employing UML so find that out through media resources and your experiences.
Finally, here some lessons I've learned from this book and my practice of UML:
1) The system is not represented fully into one model, rather the model is a slice, a view into it.
2) Abstraction is key. Generate models for a target audience in mind and focus on showing what is essential for your audience to understand. I know the system can be complex and overwhelming to think about, but take a breather and make the model with both specificity and simplicity.
3) For the lone wolves and poor communicators that are on the bottom of the corporate food chain, like I once was, building and modeling the system is not done alone. Read "How to Win Friends and Influence People" to know how to garner buy in from your colleagues and upper management.
This book teaches you something about UML 2.0 notation and its history. After reading this you will be able to partially understand all types of UML diagrams. IT DOESN'T TEACH YOU HOW TO DESIGN A SYSTEM! Just like learning English grammar even completely won't turn you into a poet or a novelist! You should look for other resources for this purpose. ---- این کتاب به عنوان منبع مکمل در درس مهندسی نرمافزار انتخاب شده بود. کتاب متوسطی است اما دارای متنی روان و مثالهای عملی و رسا و طنزگونه هرچند بسیار محدود. توانستم چند دیاگرام را برای بار اول در نیمهشب قبل از امتحان بخوانم و به خوبی یاد بگیرم اما انتقادهای جدی نیز به این کتاب دارم. نخست اینکه تکلیف کتاب با مخاطب مشخص نیست، معلوم نیست مخاطب را در چه سطحی فرض کرده چراکه مثالهایی از کدهای کلاس در جاوا میزند و چند فصل بعد برای بار اول شروع میکند به توضیح دادن در مورد مفهوم کلاس و شی گرایی. مشخص نیست گروه هدف چه کسانی هستند. برنامهنویسان مبتدی؟ باتجربه؟ مهندسین نرمافزار یا دانشجویان علوم کامپیوتر. دوم اینکه فصلهای کتاب کاملن مستقل نیستند و رفرنسهای متعددی به یکدیگر دارند که فرآیند مطالعه را تا حدی آزاردهنده میکنند. مدام به قبل یا بعد همان فصل یا فصلهای دیگر اشارههایی وجود دارد که میتوانست نباشد یا طور دیگری مطرح شود (مثلن در پاورقی). د سوم اینکه این کتاب صرفن نوتیشن این زبان را آموزش میدهد و نباید انتظار داشت که دانشجو یا مخاطب بتواند با مطالعهی این کتاب شروع به طراحی سیستمهای نرمافزاری بکند. چنین دیدگاهی غیرمنطقی است و متاسفانه مدرس من در دانشگاه چنین دیدگاهی داشت که با یاد گرفتن نوتیشن و دیدن چند مثال میتوان طراحی را شروع کرد. در انتها میتوانم بگویم که این کتاب مانند کتابهای دانشگاهی است زیرا صرفن شمای کلی از موضوع میدهد به همراه چند مثال محدود اما وقتی بخواهید در صنعت از مفاهیم آن استفاده کنید حتمن نیاز به منابع دیگر و یا کمک افراد باتجربه خواهید داشت
Goes through UML2.0, with lots of practical diagram examples. Occasionally there is just one modelling diagram needed, sometimes it's good to go whole book through. Normal O'Reilly quality and style.
A very good tool for learning the basics of UML 2.0. For anyone who writes a lot of software, knowing UML will greatly enhance the ability to document and explain software ideas.
It's very useful for quick consulting and learn about the new elements inside the UML 2.0 standard, but you need to be familiarized about object oriented programing paradigm.