| Applying UML and Patterns : An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition)
Publisher: Prentice Hall PTR |
|
| ISBN: 0131489062 List Price: $59.99 Amazon Price: $59.99 Usually ships in 24 hours |
Avg Cusomer Rating: 5 Reviews: Summary: Great for self-learning but difficult for teaching I have been using the 2nd edition to teach a semester long "Object-Oriented Software Engineering" subject at the School of Information Technology (James Cook University, Townsville, Australia) for the last 4 years (2002-2005), see http://www.it.jcu.edu.au/Subjects/cp3120/2004-2/CP3120.HTML On the positive side: It improved my own design and code dramatically. It looks like the Controller pattern has been overlooked by other pattern books. The book provides a seamless recipe for delivering design/code from the use cases (this is the only book that I know that actually does that). So I strongly recommend the book as a self-study book for a professional programmer. However as a teaching tool: here are some of the problems that forced me to look for a different text book for the next year: 1A. The book still does not come with lecture notes. (I have to write my own for the 2nd edition) 1B. It does not have exercises/problems for teaching. 1C. It has no realistic java code examples (the old problem with explaining concepts using toy-examples). 1D. It completely ignores interaction with GUI (saying .... we are not modeling outside the domain?). This did not help as all our assignments have complicated GUIs (preparing for the real-world jobs). 2. Covering UP/RUP and patterns in one semester is too much. It is better to do less but better. UP/RUP is more relevant to a generic software engineering subject as the current best practice in SE. Plus after teaching from the book for 4 years, I cannot see how anyone could implement the UP following the book. You would still have to get a different book for it. 3. Some (if not most) students were really struggling with the book. Larman explains things in too many words (actually pages and pages of it), which is even for a native English speaker is a lot of reading for little TESTABLE reward, not to mention our Asian students. 4. Larman is expensive and physically big (less chances for students to carry it around for tutorial and lectures). The 3rd edition is even bigger. Dmitry dmitry.konovalov@jcu.edu.au Summary: Not what I was expecting... but it was what I needed. If you are looking for a UML book that details every single aspect of the UML, then this may not be what you're looking for. This book hit me a bit by surprise. As I get more and more into OOA/D I found that learning the UML would probably be very beneficial. I decided to go ahead and pick up a UML primer in hopes of learning everything about the UML. I decided on this book. This books main focus isn't exactly on the UML (although you learn a great deal about that too). Instead this book focuses more on OOA/D theory and the unified process to software development. You learn all about how to create software in iterations rather then the common waterfall method. In a nutshell, you learn that it's not really such a good idea to plan out every aspect of your system, do all of the architecture and then implement (this is known as the waterfall method). Instead you learn about how to create software in iterations, treat each iteration as its own project and build to adapt for potential changes. Along the way of learning OOA/D, the unified process and design theory, you also learn how to create the most common UML diagrams. This includes use case, domain model, interaction, class diagrams and others. Craig Larman also touches up on other topics such as design patterns, visual thinking and much much more. There is a whole lot of ground covered in this book. While I was reading this book I was constantly reminded of Steve McConnell's writing style (in case you didn't know, Steve McConnell is the author of Code Complete 1st and 2nd edition, Rapid Development and a few other epic software titles). The writing style is very similar, which is a huge plus - as I am a big fan of Steve McConnell. I highly recommend this title to all software developers. This is one of those eye-openers that will make a few flickering light bulbs shine brightly. If you are a fan of Steve McConnell books then I am almost 100% sure you will benefit from this exceptional title. Actually, whilst reading Steve McConnell's Code Complete I remember wishing Steve would write a book focusing on OOA/D. This is "almost" that book. Summary: As complicated as it comes This book contains a very complicated writing style, it feels like the author used a thesaurus just to make the text harder. If english isn't your native language you should definetly not buy this book (as in my case). Add to the above that there is an obvious lack of flow in the book, and repetetive text making you think that you are reading the same pages over and over again. Summary: |
| An Introduction to Object-Oriented Programming
Publisher: Addison Wesley |
|
| ISBN: 0201760312 List Price: $83.00 Amazon Price: $83.00 Usually ships in 3 to 4 weeks |
Avg Cusomer Rating: 5 Reviews: Summary: Great Introduction to OOP I've read a number of introductions to object-oriented design and programming. This one is the best all-around introduction that I have seen. It starts in the real world, with a discussion of how one plans and organizes a task (sending flowers to a significant other) that requires more than a single person to get done. That's a pleasant change from texts that begin with Dauntingly Dry Definitions ("encapsulation", "inheritance", and my favorite, "polymorphism"). To the author's credit, he avoids launching into inheritance until Chapter 8, by which time he has laid enough groundwork to reduce the concept to common sense. Other concepts are presented in a similar manner. Note that this book is a survey book, not an in-depth programming manual. You won't learn C++ or Delphi, or any of the other half-dozen languages used for the book's examples. And the book focuses on concepts, rather than implementation. you won't learn how to implement a Singleton pattern in C#, although you will learn what it is and why it is useful. Finally, the book assumes familiarity with traditional, procedural programming. This is not a Programming 101 text. I would recommend this book enthusiastically as a starting point for anyone making the transition from traditional programming to OOP. If you are moving to the DotNet platform, I have created a list ("So you'd like to ... Transition to DotNet") with some other recommended texts. Summary: Sets the proper foundation I've been using classes more as a means of organizing and improving the maintainability, understanding of various applications I've built over the past 3 years (VB). As I am about to develop solutions using the .NET platform (C#, VB.NET), I thought it would do me good to formalize my understanding of OOP/OOD. After reading this text (3rd Edition), I not only formalized my understanding, but was able to see OOP as clearly as I could structured programming (Code Complete). In my opinion, all should use this as the first book before trying to participate/apply J2EE or Microsoft.NET as it will allow you "properly" communicate, design and code systems from abstraction to detail. Summary: Great as a first book on object-oriented programming I really enjoyed this book. The author covers all the important oo concepts in several languages. This allows you to get an excellent perspective on each concept without being distracted by each language's implemention of that concept. I also appreciated the writing skills of the author. He was always clear and precise. A lot of information is packed into a relatively slim volume. Of several introductory oo books I've recently read, this one easily tops my list. Summary: |
| Domain-Driven Design: Tackling Complexity in the Heart of Software
Publisher: Addison-Wesley Professional |
||
| ISBN: 0321125215 List Price: $49.99 Amazon Price: $42.65 Usually ships in 24 hours |
Avg Cusomer Rating: 5 Reviews: Summary: Solid Reminder to work with the SME As a developer it is quite easy to take the requirements, do some design and go off and code and come back with a product only to find out later, that the customer really did not want the developer's interpretation of the requirements. This book is more than a reminder of this notion, but also lays out some examples of real experiences of deriving the model. Software engineering is one of those areas that require the trade of knowing the technical development skills and also acquiring great understanding of the domain to be abstracted, developed and made into something computerwise tangent. This is a great book for developers, business analysts, project managers, and anyone in the software business. While others may not regard this book as one of the classics, I find this book an important reminder lest we forget why we are developing the software and the perspective to take while working with the customer. Thank you, Eric for such a work. Summary: Important Contribution to Software Development Methodology Evans makes an excellent summary of the domain (or information) specific views on software development. Many of the ideas presented have been around for some years, but this seems to be the first book covering all the problems attached to RUP and its process (or use-case) driven approach. I think this book will be the bible for many software developers over the coming five years! Summary: Repetitive and too long Have to admit right from the start, i'm just about 1/3 through. However, what I've seen so far is: 1) Lots of reiterations of previously made points. 2) Failing to engage - you will need all the concentration you can muster, which combined with (1) is constantly frustrating. 3) As strange as it may sound - quite Java-oriented. Others may argue with that, but in lots of other environments it's just not going to be practical. As someone pointed out in Fowler's Enterprise Patterns review, frameworks place restrictions on what patterns you can use or penalize (time-wise) if you force your way. And this book is about the process and the patterns. If you're a veteran OO designer, you will hardly benefit from this book. Also, if your organization sneers at Agile and/or XP programming, you won't be able to apply it. In short, it could have been shorter and perhaps wee bit more practical. However, if you are just at the begining of your stellar programming career, by all means get this book and make sure you practice until you understand the principles. Summary: |
| Object-Oriented Analysis and Design with Applications (2nd Edition)
Publisher: Addison-Wesley Professional |
|
| ISBN: 0805353402 List Price: $69.99 Amazon Price: $53.52 Usually ships in 24 hours |
Avg Cusomer Rating: 5 Reviews: Summary: Great , tough Book, not for beginners or Non C++ programmers Mixed opinions about the book. The author never claims that beginners can easily understand nor he warrants that you need not know C++. It may take sevaral months or years to read this book. If you say you know this book for 100%, you are only few steps away from Booch's level. His process is great if we have the time, patience and comfort to follow it and apply it. You should have some prior knowledge of OO to understand Booch's language. Of course C++ basics. Though the chapter on Booch Notaion is dated, you still need to read it to follow the remaining chapters. But if you have read UML, booch notation is not tough to understand. I wish he re-writes with additional Java examples and gives some business applications like banking/insurance examples rather than Gardening Sensors and Heaters, and also drop notations chapter and assume that readers know UML. It will be great if he guides us how his process fits into the internet era within tons of frameworks/patterns around. Summary: A classic well worth the read This is a very good book on the subjects of OOA/OOD. It emphasizes concepts and has a strong academic flavor, which I appreciate "accidentally." Although the particular C++ programming language is not the focus, you need to know a least some C++ to understand the example code snippets, which helps you grasp the concepts. The Booch notations used were for historical reason; the book was published before the standardization of UML. In most cases, the reader can mentally translate (pretty easy) the diagrams in the book to UML while reading it. Now that Rational had been bought by IBM, hopefully the author will have time to update (or perhaps even rewrite a whole new edition of) this classic. Summary: PRESCHOOLERS MAY BASH THIS BOOK BUT ITS GOOD This book is not for 3rd grade students! It is for IT professionals already familiary with some form of development that can benefit from an OO development perspective. If people are looking for a 1+1 = 2 books, then go back to kindergarden. I've read a few bashing remarks about this book being illegible and unnecessarily confusing. It is not. I read most of this book, and i must say it is a great reference on Object-Oriented design considerations. He makes every attempt to give real world examples in his writing, something even a cat could probably make out. Summary: |
| Intro to Object-Oriented Analysis and Design with UML CD
Publisher: McGraw-Hill/Irwin |
|
| ISBN: 0072939842 List Price: $117.81 Amazon Price: $117.81 Usually ships in 24 hours |
Avg Cusomer Rating: 4 Reviews: Summary: A good academic approach to OO analysis and design Target Audience Developers looking to learn how to do object-oriented (OO) analysis and design for their projects using the technologies of UML and the Unified Process. Contents The book is divided into four parts with the following contents: Part 1 - Introduction To UML And The Unified Process - Introduction To Information Systems; How Information Systems Are Developed; The Object-Oriented Paradigm, UML, And The Unified Process Review Introduction To Object-Oriented Design And Analysis is designed to for use with a beginning course on the subject. So right away, you can expect the material to be presented in a formal, academic fashion. The author deliberately spends comparatively little time on introductory material and gets to the meat of the subject so that the reader can start to get some hands-on experience. Each chapter states the learning objectives up front, and ends with a recap of key terms and additional references. There are also review questions for the chapter, as well as problems to be solved. Scattered throughout the chapters are "Just In Case You Wanted To Know" sidebars that relate the subject being discussed to real-life situations. There are plenty of diagrams and illustrations to aid your understanding. There are also two case studies that are built upon throughout the book so that the reader can follow an entire project of OO analysis and design from start to finish. Finally, there is a CD included in the book that has a tool called ArgoUML that can be used to create your UML design diagrams. I personally would recommend this book to someone wanting to learn more about OO analysis and design. If you are trying to make the transition to OO programming (such as with J2EE), you'll need to have a good grasp of this material. J2EE is not a rapid application development environment, and you need to have a solid system design in place before you start your coding. This book will give you the skills and tools you require to get there. It is a serious approach to learning, so if you prefer a lighter approach to a new subject, you should probably look for something a little different than what you'll find here. Conclusion This is a book that will appeal to those who like a more academic style for their learning. If you take the time to answer the questions and follow the examples, you'll come away with an excellent understanding and grasp of the subject. Summary: |
| Systems Analysis and Design with UML Version 2.0 : An Object-Oriented Approach
Publisher: John Wiley & Sons |
||
| ISBN: 0471348066 List Price: $106.95 Amazon Price: $106.95 Usually ships in 24 hours |
Avg Cusomer Rating: 5 Reviews: Summary: Systems Analysis and Design with UML Version 2.0 : An Object-Oriented Approach Item recived as presented Summary: Outstanding Reference on UML 2.0 & System Design I have looked at over twenty books on UML and its updates over the past few years, and this book is a gem. It is concise, and provides a clear picture of the entire systems design process It shows how UML 2.0 can be used to support system requirements capture, specification, analysis, and design. It clearly says what is important and what is not, and what is not covered in the book. Very pleasing to look at visually, with nice pictures and colors, and very good use of footnotes. I would recommend this highly to all university faculty considering creating or teaching a course in system design using UML. Excellent job by the authors in exceeding the goals and expectations set by this book. The above views are my personal views, and don't reflect those of any other institution. I am using parts of it at a graduate course I teach at Georgia Tech. Summary: Pragmatic and consise! The book offers a very pragmatic approach to the subject of system analysis and design. It also has the advantage of not being dispersive, so the reader does never loose the focus. Repetition occurs only occasionally, for concepts that may be more hostile to digest. The only thing that I reckon is missing is a support with some templates that is possible to use (e.g. a CD-ROM with examples of analysis and design). Overall, I would say is a very good deal! Definitely worth having it! Summary: |
| Object-Process Methodology
Publisher: Springer |
|
| ISBN: 3540654712 List Price: $69.95 Amazon Price: $69.95 Usually ships in 24 hours |
Avg Cusomer Rating: 5 Reviews: Summary: OPM is an Excellent Methodology I have used many methodologies over my career. Most of them are based around the object-oriented and structured design paradigms. I found out about OPM quite by accident about a year ago. I've been using it ever since. I have used it to model both hardware and software systems, as well as for business process modeling. It is an excellent methodology and I recommend it for anyone developing any kind of system. One of the nice things about OPM is that it is easy: I was able to get a team "up-and-running" with the methodology in less than an hour of teaching them some basic concepts (try doing that with UML). Another feature is that you can use this for any type of project; you are not locked into a structured or object-oriented mindset like structured analysis or UML. OPM can handle both types of concepts with ease. Finally, this methodology is fast. It is just easier and more intuitive to model in an OPM fashion. I've also found that others can comprehend the OPM models better than other methodologies too. I used to be a UML advocate until I found OPM. I have found concepts that are difficult to model in UML are quite easy to model in OPM. It is just more flexible. The book is really good by the way. It is very complete and gives plenty of good exammples. I congratulate Dov Dori and his team for providing something that all engineering disciplines can use to design their systems. Summary: The way modeling ought to work OPM is a methodology for modeling systems, technical as well as any other system. In the techical world it compares with UML. OPM is designed with consistant and simple notations, uses simple rules that when combined can be used to model any system (real or informational) to any level of complexity that is desired by the system architect. Also, it integrates object modeling and process modeling in one diagram (although you can still keep them separate if you wanted). UML uses complex rules to model complex systems, something that is very difficult to make happen, therefore it is very difficult to learn and use. OPM uses simple rules and consistant notations to model complex systems. After simple introductions to the methology, we have been able to start using it in our organization. More powerful and far simpler then UML. The way UML should have been done long time ago. Summary: Object-Process Methodology (OPM) This book describes how Object-Process Methodology (OPM) CASE can be used as a tool for generating complete system intent specifications by graphical object diagrams, precise semantic and syntactic language, and intuitive symbols, definitions and structures. As systems have become more complex, a prevalent problem in systems development has been the number of accruing errors. These errors can cause catastrophic failure in the worst-case in addition to intolerable schedule delays and cost overruns. Introducing errors as well as difficulty finding and successfully correcting them occurs because of the lack of proper analysis and design tools for complex system specifications. OPM has the attributes to mitigate against the possibility of system failure, providing comprehensive visibility for better schedule and cost control in product development. It enhances reuse of system modules, processes and software routines in different contexts, while reducing the chance of errors. OPM automatically generates intent specifications that are readily understood by both customers and product team members and are translatable to machine control subsystems. OPM is a holistic systems paradigm that extends the Object-Oriented (OO) paradigm and overcomes its major shortcomings by integrating system structure and behavior in a single integrated graphic and natural language model. OPM successfully tackles the task of development and lifecycle management of systems, products and projects. OPM is a significant extension of and a major departure from the OO approach. It incorporates the system static-structural and dynamic-procedural aspects into a single, unified model. Presented as a concise visual formalism by a set of Object-Process Diagrams (OPD set), it is automatically translated into a set of Object-Process Language (OPL) script, a subset of natural English. At the basis of the OPM philosophy is the observation that to faithfully and naturally analyze and design systems in any domain, processes, like objects, should be considered as stand-alone "things" (entities) that are not necessarily encapsulated within objects. This detachment and de-coupling of processes from objects emphasizes the duality and complementarity of objects and processes, and opens the door for structure-behavior unification. At any point in time, objects exist with some structure and state. This is the static aspect of the system. Processes affect objects by changing their states. This is the dynamic aspect of the system. System complexity is managed through a number of graphical scaling options: zooming into and out of processes, unfolding and folding objects, and expressing or suppressing object states. These mechanisms provide for selectively detailing a subset of things while still maintaining the high-level context of the details. OPM provides a new framework for specifying design intents and capturing the complexity of hardware and software interaction. Through OPL, it is possible to translate the process into a machine executable code. In addition, OPM can capture the dynamic behavior of the hardware attributes and software states in a single integrated graphical and textual language that is understandable by domain experts who have no programming experience. These traits of OPM ease the development effort for evaluating the system reliability during the design stages. Simulation and testing protocols can be automatically generated though future extensions of OPM to reduce lengthy system verification efforts. Summary: |
| JUnit in Action
Publisher: Manning Publications |
|
| ISBN: 1930110995 List Price: $39.95 Amazon Price: $26.37 Usually ships in 24 hours |
Avg Cusomer Rating: 4 Reviews: Summary: Very good book - not perfect, but very good. This is a great book for any Java developer who has heard about JUnit but hasn't really worked with it. The examples are plausible for real-world development, although by being "real-world" they tend to be slightly less simple than you would want for an introductory book. Still, the discussion of why and how tests can improve the code they are testing is very good. The techniques for in-container testing and testing J2EE components are useful, because these tend to be the most difficult components to unit test. All in all, this is a valuable resource for learning JUnit. Summary: A joy to read but... This book is required reading for any professional Java developer. Even if you are not convinced of the benefits of test driven development and unit testing you owe it to yourself to check what this is all about. This book will serve as a very hands-on introduction to a lot of APIs, libraries and techniques in the field of unit and integration testing. My only complaint is that it tries to cover too many subjects in too little space. The introductory part on JUnit is superb. I found the treatment of Cactus, surprisingly, too superficial (Vincent Massol is the cactus creator) : the author makes you first (after a brief interlude with Jetty) run the cactus test using Maven, and that would be ok with me if he gave a through introduction to this tool, but instead all you get is a "run the tests typing maven cactus:test". Now this kind of monkey work is not what an intelligent developer loves to do.. and besides when things go even slightly wrong (and you know they will...) you are left clueless. You also get a chance to run cactus tests with ant but the treatment is not general enough to give you a solid understanding of this procedure. Anyhow after reading this book you will be much more competent on software development best practice and testing, but probably wondering if, having to learn and employ all these tools and APIs, unit testing is still useful or is monstrously transforming into a heavy and complex part of your application... Summary: great coverage of JUnit - get this one This book really got me moving in the right direction with JUnit. I feel very comfortable writing all kinds of unit tests now and am incorporating my new knowledge into my projects at work. Get this book if you are looking to learn JUnit fast. I gave it 4 stars because it wasn't the best book for reference material. Summary: |
| home |