Scott Meyers Training Courses
An Introduction to Object-Oriented Software Development
This seminar offers a thorough technical introduction to the concepts behind object-oriented software development, including the most important terminology, methodologies, and notations. The seminar is designed to answer the questions and address the concerns of software developers who are considering or who are committed to moving to an object-oriented approach. It is especially well suited to developers who know that their implementation language will be C++, though the presentation itself is language-neutral.
Course Highlights
Participants will gain:
- An understanding of what "objects" are and why they are useful.
- An appreciation of the roles played by encapsulation, inheritance, and polymorphism (dynamic binding) in object-oriented software systems.
- Familiarity with the interactions among object-oriented analysis, design, and design patterns.
- Awareness of the advantages and disadvantages of the object-oriented approach to software development.
Who Should Attend
Systems designers, programmers, managers, and other technical professionals who wish to become familiar with the concepts, methodologies, strengths, and weaknesses of object-oriented software development. Participants should have experience with at least one conventional programming language. A knowledge of C is helpful, but is not essential.
Format
Lecture and question/answer. There is no hands-on programming.
Length
One full (six to seven lecture hours).
Detailed Topic Outline
- Approaches to software development:
- Structured design
- Data flow
- Object-oriented
- What is an object?
- Attributes and operations
- Classes and types
- Data abstraction:
- Encapsulation
- Interfaces and implementations
- Relationships among classes:
- Composition
- Uses
- Template
- Generalization (inheritance)
- Inheritance and reuse
- Inheritance and substitutability
- Multiple inheritance
- Abstract classes and interfaces
- Polymorphism and dynamic binding
- Application frameworks
- Object-oriented analysis (OOA) and design (OOD):
- UML
- Approaches to OOA: CRC cards, use cases, etc.
- How OOD differs from OOA
- Design patterns
- Hierarchy design: singly-rooted trees, forests, mixins, etc.
- Strengths and weaknesses of C++
- Further Reading
For more information on this course, contact Scott directly.
