Head First OOA&D
Tired of reading Object Oriented Analysis and Design books that only makes sense after you're an expert? You've heard OOA&D can help you write great software every time-software that makes your boss happy, your customers satisfied and gives you more time to do what makes you happy.
Head First Object-Oriented Analysis & Design shows you how to analyze, design, and write serious object-oriented software: software that's easy to reuse, maintain, and extend; software that doesn't hurt your head; software that lets you add new features without breaking the old ones. Inside you will learn how to:
- Use OO principles like encapsulation and delegation to build applications that are flexible
- Apply the Open-Closed Principle (OCP) and the Single Responsibility Principle (SRP) to promote reuse of your code
- Leverage the power of design patterns to solve your problems more efficiently
- Use UML, use cases, and diagrams to ensure that all stakeholders are communicating clearly to help you deliver the right software that meets everyone's needs.
By exploiting how your brain works, Head First OOA&D compresses the time it takes to learn and retain complex information. Expect to have fun, expect to learn, expect to be writing great software consistently by the time you're finished reading this!
Read Me: What you should know before reading this book
We assume you are familiar with Java.
It would take an entire book to teach you Java (in fact, that's exactly what it took: Head First Java). We chose to focus this book on analysis and design, so the chapters are written with the assumption that you know the basics of Java. When intermediate or advanced concepts come up, they're taught as if they might be totally new to you, though. If you're completely new to Java, or coming to this book from a C# or C++ background, we strongly recommend you turn to the back of the book and read Appendix II before going on. That appendix has some intro material that will help you start this book off on the right foot.
We only use Java 5 when we have to.
Java 5.0 introduces a lot of new features to the Java language, ranging from generics to parameterized types to enumerated types to the foreach looping construct. Since many professional programmers are just moving to Java 5, we didn't want you getting hung up on new syntax while you're trying to learn about OOA&D. In most cases, we stuck with pre-Java 5 syntax. The only exception is in Chapter 1, when we needed an enumerated type—and we explained enums in that section in some detail.
If you're new to Java 5, you should have no trouble with any of the code examples. If you're already comfortable with Java 5, then you will get a few compiler warnings about unchecked and unsafe operations, due to our lack of typed collections, but you should be able to update the code for Java 5 on your own quite easily.
SlidesDownload PowerPoint slides for each chapter here:
- Chapter 1: Great Software Begins Here
- Chapter 2: Give Them What They Want
- Chapter 3: I Love You, You’re Perfect... Now Change
- Chapter 4: Taking Your Software Into the Real World
- Chapter 5a: Nothing Ever Stays the Same
- OO Catastrophe!
- Chapter 5b: Give Your Software a 30-minute Workout
- Chapter 6: "My Name is Art Vandelay"
- Chapter 7: Bringing Order to Chaos
- Chapter 8: Originality is Overrated
- Chapter 9: The Software is Still for the Customer
- Chapter 10: Putting It All Together
Book code and downloads
Example files available by chapter
- Chapter 1:
- Chapter 2:
- Chapter 3:
- Chapter 4:
- Chapter 5:
- Chapter 7:
- Download the code for Gary's game system
- Chapter 9:
- Download the final code for Gary's game system
- Chapter 10:
- Download the Objectville Subway RouteFinder code
- Appendix II:
- Download the code for the Airplane, Jet, and FlyTest classes
(opens a new window)
(opens a new window)
Buy 2 books and get the third free! Use the coupon code OPC10 when you check out.
If you can answer "yes" to all of these:
- Do you know Java? (You'll probably be okay if you know C# instead.)
- Do you want to learn, understand, remember, and apply object-oriented analysis and design to real world projects, and write better software in the process?
- Do you prefer stimulating dinner party conversation to dry, dull, academic lectures?
You should probably back away from this book if you can answer "yes" to any of these:
- Are you completely new to Java? (You don't need to be advanced, and even if you don't know Java, but you know C#, you'll probably understand almost all of the code examples. You also might be okay with just a C++ background.)
- Are you a kick-butt OO designer/developer looking for a reference book?
- Are you afraid to try something different? Would you rather have a root canal than mix stripes with plaid? Do you believe that a technical book can't be serious if programming concepts are anthropomorphized?
Ask the authors questions and chat with fellow readers in the Head First OOA&D Forum.