The Introduction to OOAD training course is a follow up course to the Introduction to OO Programming course. Introduction to OOAD training explores advanced OO concepts, like multiple inheritance, polymorphism, inner classes, etc. by building on the core OO concepts. The course then transitions from concept theory into object oriented design pratices.
The course also examines design strategies such as noun-verb decomposition, User stories, Use Cases, CRC Cards, 4+1 architectural view, etc.
Introduction to OOAD can be combined with Introduction to Object Oriented Programming to create a 5-day course. It can also be taught to support a variety of languages, including Java, PHP, C#, C++, Ruby, and others.
- Answer the question “What is Object Oriented Analysis and Design?”
- Describe key Object Oriented concepts: class, object, instantiation
- Understand the different approaches to performing OOAD
- Validate an Object design against business requirements and system constraints
- Model an object design using UML
- Implementing the object design in Java, C++, C#, PHP, or Ruby
What You'll Learn
In the Introduction to OOAD training course you’ll learn:
Day One : Introduction to OOAD
- Introduction to Object Oriented Analysis and Design
- What is OOAD
- Why is it important?
- Designing software with an OOAD approach
- Introduction to UML
- Review of Core Object Oriented Concepts
- States / Behaviors, Properties / Methods
- LAB: Object Decomposition
- Implement OO Concepts with Java
- LAB: Java & OO Syntax Lab 1
Day Two : OO Design Concepts
- Designing for Reusability Through Modularity
- Creating loosely coupled systems
- Creating cohesive systems
- LAB: Design a reusable system
- Designing for Reusability in Objects
- Inheritance, Abstraction, and Composition
- Encapsulation, Polymorphism, and Aggregation
- LAB: Translating system design into Object design
- Implementing OO Reusability in Java
- LAB: Java & OO Syntax Lab 2
Day Three : Advanced OO Design
- OOAD Design Approaches
- Traditional v. Agile
- Use Case, User Stories, and CRC cards
- Validating, Implementing, Packaging, and Testing an OO design
- Tools to help manage the process, from UML to Enterprise Architect
- Simplifying the Design Process using Design Patterns
- What are patterns?
- Overview of Creational Patterns, Behavioral Patterns, and Structural ** Patterns
- Q/A and Wrap-up
Meet Your Instructor
- Kelby Zorgdrager
Kelby Zorgdrager’s expertise in Java, Open Source, and software development have allowed him to be a guest speaker at JavaOne, Java University, Comdex, IEEE Software Conference, and the Colorado Software Summit.
Kelby has also served as a guest author for both IBM and Sun/Oracle’s developer sites. Furthering his passion to help people learn, Kelby served as a technical editor for the bestselling book, Advanced Java: How to Program,...Simon
Simon has over 15 years of experience defining, developing, and delivering software development training programs.
As a senior instructor and courseware developer for Sun Microsystems, Simon developed and delivered Java training courses for Sun Educational Services’ internal and external customers. While at Sun, he was a guest presenter at JavaOne, Java University, and other software trade shows. Simon’s most significant accolade was his work as the development lead in the design, development,...Dave
Dave began his professional career working in a government lab in collaboration with resident scientists. Exploring alternative approaches to the analysis of various satellite data and developing analysis tools suitable for the scientists provided ample opportunity to polish his coding skills.
Subsequent employment has taken Dave through multiple roles supporting large user communities, including overseeing Internet security concerns in a data warehouse, participating in the design and early development of...Michael
Michael is a practicing software developer, course developer, and trainer with DevelopIntelligence. For the majority of his career, Michael has designed and implemented large-scale, enterprise-grade, Java-based applications at major telecommunications and Internet companies, such as Level3 Communications, US West/Qwest/Century Link, Orbitz, and others.
Michael has a passion for learning new technologies, patterns, and paradigms (or, he has a tendency to get bored or disappointed with current ones)....Jeremy
Jeremy is a technology enthusiast who loves exploring, learning, and creating new technologies. One of his earliest programming feats – at eight years old – was modifying the game “Nibbles,” written in Basic, to be multiplayer so he and his neighbor could play together. Since then, he has continually experimented with any interesting new technology, never backing down from a challenge.
He played an instrumental role in building CARad, a software listing tool that was...Daniel
Daniel has been a self-employed developer, teacher and speaker for private businesses, education and government entities since 1999. Daniel also actively teaches programming for the University of New Mexico Continuing Education.
Daniel is a Pomodoro Technique practitioner, and co-founder of the Albuquerque Java User’s Group in Albuquerque, New Mexico. When he’s not supporting other local Java developers, Daniel spends most of his waking hours developing in and around the Java ecosystem, encompassing...Daniel
Like many experts in similar fields, Daniel is an entrepreneur. Daniel founded Collective Idea in 2005, converting it from one man’s freelance projects into a thriving company with employees in multiple cities and states. He acts as Chief Technology Officer for Paper Hat Press, LLC and Breakthrough.com. He writes and contributes to open-source projects, including Ruby on Rails. He frequently serves as a tech adviser for start-ups and companies. He even has a college degree, from Hope...Jean
Jean brings years of development experience into her teaching, making the learning experience practical for her students. Originally a Smalltalk developer, Jean has an expansive knowledge of object-oriented (OO) development, analysis, and design. Jean has worked in every stage of the software development process for a variety of businesses – from small non-profits, to government agencies, to global enterprises.
Jean was also one of the top instructors at Sun Microsystems in North America and Europe....Michael
Michael owns and operates Inkling Research, a consulting group of technical specialists. His work experience includes systems administration, application and operating system development, and the design and deployment of several network and storage-based systems. Michael is a seasoned instructor with 18 years experience in training, course development, mentoring, and practice management. His educational credentials include a B.A. from UC Davis, an M.A from Kent State University, and doctoral coursework at Claremont...Marnie
Marnie brings 15 years of experience delivering programming related training. During that time she has taught for top-technology companies including: Sun (and later Oracle) certified Java classes, RedHat Certified JBoss administration courses, Spring Source Certified Spring and Hibernate courses. Her classes have run the gamut from introduction to programming classes to Java EE web services and much of the Java EE stack in between.
She has a passion for teaching, which is evident in her presentations and...