3h 1m – Intermediate
Most modern programming languages, such as Java, C#, Ruby, and Python, are object-oriented languages, which help group individual bits of code into a complex and coherent application. However, object-orientation itself is not a language; it’s simply a set of ideas and concepts.
Let Simon Allardice introduce you to the terms—words like abstraction, inheritance, polymorphism, subclass—and guide you through defining your requirements and identifying use cases for your program. The course also covers creating conceptual models of your program with design patterns, class and sequence diagrams, and unified modeling language (UML) tools, and then shows how to convert the diagrams into code.
Topics include:
Why use object-oriented design (OOD)?
Pinpointing use cases, actors, and scenarios
Identifying class responsibilities and relationships
Creating class diagrams
Using abstract classes
Working with inheritance
Creating advanced UML diagrams
Understanding object-oriented design principles
Introduction – 11m 35s
Welcome – 1m 25s
Who this course is for – 1m 15s
What to expect from this course – 3m 6s
Exploring object-oriented analysis, design, and development – 1m 41s
Reviewing software development methodologies – 4m 8s
1. Core Concepts – 26m 14s
Why we use object-orientation – 2m 42s
What is an object? – 5m 22s
What is a class? – 4m 43s
What is abstraction? – 2m 45s
What is encapsulation? – 3m 45s
What is inheritance? – 3m 35s
What is polymorphism? – 3m 22s
2. Object-Oriented Analysis and Design – 12m 16s
Understanding the object-oriented analysis and design processes – 4m 13s
Defining requirements – 6m 9s
Introduction to the Unified Modeling Language (UML) – 1m 54s
3. Utilizing Use Cases – 23m 35s
Understanding use cases – 6m 11s
Identifying the actors – 4m 16s
Identifying the scenarios – 5m 7s
Diagramming use cases – 4m 18s
Employing user stories – 3m 43s
4. Domain Modeling (Modeling the App) – 16m 36s
Creating a conceptual model – 1m 59s
Identifying the classes – 2m 27s
Identifying class relationships – 2m 38s
Identifying class responsibilities – 6m 43s
Using CRC cards – 2m 49s
5. Creating Classes – 22m 25s
Creating class diagrams – 6m 11s
Converting class diagrams to code – 4m 57s
Exploring object lifetime – 5m 55s
Using static or shared members – 5m 22s
6. Inheritance and Composition – 19m 49s
Identifying inheritance situations – 6m 49s
Using inheritance – 2m 43s
Using abstract classes – 2m 2s
Using interfaces – 4m 20s
Using aggregation and composition – 3m 55s
7. Advanced Concepts – 9m 23s
Creating sequence diagrams – 5m 18s
Working with advanced UML diagrams – 2m 3s
Using UML tools – 2m 2s
8. Object-Oriented Design Patterns – 10m 39s
Introduction to design patterns – 2m 40s
Example: the singleton pattern – 4m 53s
Example: the memento pattern – 3m 6s
9. Object-Oriented Design Principles – 21m 47s
Introduction to object-oriented design principles – 2m 50s
Exploring general development principles – 3m 55s
Introduction to SOLID principles – 6m 43s
Introduction to GRASP principles – 8m 19s
Conclusion – 7m 1s
Reviewing feature support across different object-oriented languages – 3m 50s
Additional resources – 2m 27s
Goodbye – 44s