Booking options
£87.99
£87.99
On-Demand course
10 hours 30 minutes
All levels
The course starts with requirements gathering and ends with implementation, which are the two main elements of software development. Through this course, you will learn to use UML diagrams to analyze and design classes and to highlight relationships between the classes. You will also learn to implement and program the design in C++, C#, and Java.
UML makes it easier for developers and designers to specify, visualize, and document the requirement of a software system. This course will show you how to use the concepts of UML in the software development process. The course starts with highlighting the learning objectives and explaining the installation process. You will learn to install Eclipse for Java and Visual Studio for C# and C++ on your machines. Next, you will understand the complexity of these software and how it can be solved using algorithms and object-oriented decomposition. Moving along, you will learn to use UML diagrams to perform object-oriented analysis with use cases. Next, you will understand the concepts of class and learn to represent it in UML using a class diagram. Later, you will use interaction diagrams to represent the interaction between objects of a use case and learn how to represent the behavior of an object using a state machine diagram. Finally, you will learn to understand what refactoring is and get an overview of more UML diagrams-package, component, and deployment. By the end of this course, you will be able to use object-oriented techniques to design and develop software systems in Java, C#, and C++ with the help of UML diagrams. Code files are placed here:
https://github.com/PacktPublishing/Object-Oriented-Analysis-Design-Programming-with-UML
Become familiar with UML
Understand the concepts of OOP
Find out how to write quality use cases
Use UML diagrams to analyze and represent classes
Improve the code design with refactoring
Implement object-oriented design in Java, C++, and C#
This course is designed for anyone who wants to learn and understand how to apply UML concepts in analyzing and designing software. Those interested in learning how to apply object-oriented principles in C#, C++, or Java, will also find this course useful. A basic understanding of programming concepts is necessary to get started with this course.
This course features several coding examples and interesting activities to help you understand the software development process using UML diagrams and object-oriented techniques.
Learn how to use UML for the software development process * Analyze software development problems using object-oriented analysis * Strengthen your knowledge of concepts by building a textual game called Reckless Driver
https://github.com/PacktPublishing/Object-Oriented-Analysis-Design-Programming-with-UML
Umar Lone is a civil engineer who found his calling in software development. He started teaching C++ and Visual C++ 15 years ago. Currently, he trains software professionals in various software companies in India in different technologies, such as modern C++, advanced C++, STL, design patterns, Android, Unity, Linux, and more. He is extremely passionate about teaching and has trained more than 20,000 software professionals. An avid gamer, Umar is currently trying his hand at game development in Unity and Unreal. He has a few Android applications to his credit, including one on design patterns. The only thing he likes more than C++ is Modern C++.
1. Introduction
1. Course Overview This video provides an introduction of the course. |
2. Installing Eclipse for Java This video demonstrates how to install Eclipse on your machine. |
3. Installing Visual Studio for C# & C++ This video demonstrates how to install Visual Studio on your machine. |
2. Basics
1. Software Complexity This video explains the complexities of a software system. |
2. Algorithm Decomposition This video explains the concept of algorithmic decomposition and how to use it to resolve the complexities of software. |
3. Object-oriented Decomposition This video focuses on object-oriented decomposition. |
4. Object Characteristics This video explains the basics of an object and its properties. |
3. Object-Oriented Analysis
1. UML Introduction This video provides an introduction to UML and explains its importance. |
2. View Model This video explains Kruchten's 4+1 view model that describes the different types of UML diagrams. |
3. Object Model Concepts This video explains the three basic concepts of object model-analysis, design, and programming. |
4. Object-oriented Analysis with Use Cases This video introduces you to UML and explains how to perform object-oriented analysis with use cases. |
5. Use Case Description This video explains the format of a use case and how to use that format to write use cases. |
6. Use Case Diagram This video explains how to use StarUML to create a use case diagram. |
7. Use Case Relationships This video explains how to represent relationships between use cases. |
8. Use Case Relationships in StarUML This video shows how to create relationships between use cases in StarUML. |
9. Guidelines for Use Cases This video explains some good practices of creating effective use cases. |
10. Activity Diagram This video explains the concept of activity diagrams and how they are used to model a business process. |
11. Activity Diagram in StarUML This video explains how to create an activity diagram in StarUML. |
12. Merge This video explains how to use the merge notation to merge two or more incoming flows. |
13. Fork and Join This video explains how to represent concurrent flows in the activity diagram. |
14. Swimlanes This video explains how to create swimlanes in an activity diagram so that the actions can be associated with their corresponding participants. |
4. Object-Oriented Design and Programming
1. Introduction to Classes and Class Diagram This video explains the concepts of class and how to represent it in UML using a class diagram. |
2. Class Diagram in StarUML This video explains how to create a class diagram in StarUML. |
3. Abstraction This video explains the basics of abstraction. |
4. Abstraction in Java This video shows how to create an abstract class in Java. |
5. Abstraction in C# This video shows how to create an abstract class in C#. |
6. Abstraction in C++ This video shows how to create an abstract class in C++. |
7. Encapsulation This video explains the concept of encapsulation and why it is important for an abstraction to be encapsulated. |
8. Encapsulation in Java - Part I This is the first part of the two-part video that explains encapsulation in Java. |
9. Encapsulation in Java - Part II This is the second part of the two-part video that explains encapsulation in Java. |
10. Encapsulation in C# - Part I This is the first part of the two-part video that explains encapsulation in C#. |
11. Encapsulation in C# - Part II This is the second part of the two-part video that explains encapsulation in C#. |
12. Encapsulation in C++ - Part I This is the first part of the two-part video that explains encapsulation in C++. |
13. Encapsulation in C++ - Part II This is the second part of the two-part video that explains encapsulation in C++. |
14. Class Diagram Revisited This video explains the concept of a class diagram. |
15. Inheritance This video explains the concept of inheritance and how it can be used to reuse existing code in object-oriented languages. |
16. Inheritance in Java This video explains how to use inheritance in Java. |
17. Inheritance in C# This video explains how to use inheritance in C#. |
18. Inheritance in C++ This video explains how to use inheritance in C++. |
19. Containment This video explains how objects can be reused through containment. You will also learn about the different types of containment. |
20. Aggregation and Association This video explains how to implement association and aggregation in various programming languages. |
21. Dependency This video explains the concept of dependency and how to use it in various programming languages. |
22. Polymorphism This video explains the concept of polymorphism and its types. |
23. Polymorphism in Java This video explains how to implement polymorphism in Java. |
24. Polymorphism in C# This video explains how to implement polymorphism in C#. |
25. Polymorphism in C++ This video explains how to implement polymorphism in C++. |
26. Abstract Class This video explains the concept of an abstract class and its uses. |
27. Interface This video explains the concept of interfaces and how they differ from the abstract classes. |
5. Reckless Driver Implementation
1. Overview of Design This video provides an overview of the design through the class diagram. |
2. GameObject Class Implementation in Java This video explains how to implement the GameObject class in Java. |
3. TrafficCar Class Implementation in Java This video explains how to implement the TrafficCar class in Java. This class will be the base class of all traffic vehicles. |
4. SideObject Class Implementation in Java This video explains how to implement the SideObject class in Java. This class will be the base class of all side objects. |
5. Player Class Implementation in Java This video explains how to implement the Player class in Java. |
6. GameManager Class Implementation in Java This video explains how to implement the GameManager class in Java. You will also learn how this class ties up the other classes together. |
7. GameObject Class Implementation in C# This video explains how to implement the GameObject class in C#. |
8. TrafficCar Class Implementation in C# This video explains how to implement the TrafficCar class in C#. This class will be the base class of all traffic vehicles. |
9. SideObject Class Implementation in C# This video explains how to implement the SideObject class in C#. This class will be the base class of all side objects. |
10. Player Class Implementation in C# This video explains how to implement the Player class in C#. |
11. GameManager Class Implementation in C# This video explains how to implement the GameManager class in C#. You will also learn how this class ties up the other classes together. |
12. GameObject Class Implementation in C++ This video explains how to implement the GameObject class in C++. |
13. TrafficCar Class Implementation in C++ This video explains how to implement the TrafficCar class in C++. This class will be the base class of all traffic vehicles. |
14. SideObject Class Implementation in C++ This video explains how to implement the SideObject class in C++. This class will be the base class of all side objects. |
15. Player Class Implementation in C++ This video explains how to implement the Player class in C++. |
16. GameManager Class Implementation in C++ This video explains how to implement the GameManager class in C++. You will also learn how this class ties up the other classes together. |
6. Interaction Diagrams
1. Communication Diagram - Part I This is the first part of the four-part video that explains the concept of the communication diagram and its importance. You will also learn how to draw to represent interactions between different objects of a use case. |
2. Communication Diagram - Part II This is the second part of the four-part video that explains the different types of conditional messages that can be sent between objects. |
3. Communication Diagram - Part III This is the third part of the four-part video that explains how to draw the communication diagram in StarUML. |
4. Communication Diagram - Part IV This is the fourth part of the four-part video that explains how to complete the communication diagram of the gameplay use case in StarUML. |
5. Sequence Diagram - Part I This is the first part of the four-part video that explains the concept of sequence diagram. You will also learn the basic notation of messages, lifelines, and activation boxes and how to use them in various examples. |
6. Sequence Diagram - Part II This is the second part of the four-part video that explains the concept of fragments in sequence diagrams. You will also learn about different types of fragments and how they can be used in sequence diagrams. |
7. Sequence Diagram - Part III This is the third part of the four-part video that explains how to implement the sequence diagram for the gameplay use case and draw it in StarUML. |
8. Sequence Diagram - Part IV This is the fourth part of the four-part video that completes the creation of the sequence diagram in StarUML. |
9. Scene Class Discussion This video explains the concept of the Scene class. This class will represent the game scene (level) and will manage the scene objects (side objects, vehicles) and interactions between them. You will also learn how to add this class to the class diagram. |
10. Scene Class Implementation in Java - Part I This is the first part of the two-part video that explains the implementation of the Scene class and the generation of scene objects (side objects and traffic vehicles) in Java. |
11. Scene Class Implementation in Java - Part II This is the second part of the two-part video that explains how the Scene class implements collision between the player car and the Non Player Characters (NPCs) in Java. |
12. Collision Behavior Implementation in Java - Part I This is the first part of the two-part video that explains how to implement the collision behavior in various side objects and traffic vehicles classes in Java. |
13. Collision Behavior Implementation in Java - Part II This is the second part of the two-part video that explains the collision implementation in Java. |
14. Scene Class Implementation in C# - Part I This is the first part of the two-part video that explains how to implement the Scene class and how to generate the scene objects (side objects and traffic vehicles) in C#. |
15. Scene Class Implementation in C#- Part II This is the second part of the two-part video that explains how to implement collision between the player car and the Non Player Characters (NPCs) in C#. |
16. Collision Behavior Implementation in C# - Part I This is the first part of the two-part video that explains how to implement the collision behavior in various side objects and traffic vehicles classes. |
17. Collision Behavior Implementation in C# - Part II This is the second part of the two-part video that explains how to complete the collision implementation in C#. |
18. Scene Class Implementation in C++ - Part I This is the first part of the two-part video that explains how to implement the Scene class and the generation of scene objects (side objects & traffic vehicles) in C++. |
19. Scene Class Implementation in C++- Part II This is the second part of the two-part video that explains how to finish off the Scene class by implementing collision between the player car and the Non Player Characters (NPCs) in C++. |
20. Collision Behavior Implementation in C++ - Part I This is the first part of the two-part video that explains how to implement the collision behavior in various side objects and traffic vehicles classes in C++. |
21. Collision Behavior Implementation in C++ - Part II This is the second part of the two-part video that explains how to complete the collision implementation in C++. |
7. State Machine Diagram
1. Code Cleanup - Java This video explains how to perform code cleanup in Java. |
2. Code Cleanup - C# This video explains how to perform code cleanup in C#. |
3. Code Cleanup - C++ This video explains how to perform code cleanup in C++. |
4. State Changes in Java This video explains how to modify behavior of an object when its state changes through an example in Java. |
5. State Changes in C# This video explains how to modify behavior of an object when its state changes through an example in C#. |
6. State Changes in C++ This video explains how to modify behavior of an object when its state changes through an example in C++. |
7. State Machine Diagram - I This is the first part of the five-part video that introduces you to the state machine diagram and some of its basic elements. |
8. State Machine Diagram - II This is the second part of the five-part video that explains how to draw a state machine diagram in StarUML. |
9. State Machine Diagram - III This is the third part of the five-part video that explains how to draw a basic state machine diagram of our game. |
10. Player States in Java This video explains how to add states to Player class in Java. |
11. Healthkit Power-up in Java This video explains how to add a power-up to our game that will modify the player health using Java. |
12. State Behaviors in Java This video explains how to implement behavior change based on the state of the player health in Java. |
13. More Power-ups in Java This video demonstrates how to add more power-ups to the game using Java. |
14. Player States in C# This video explains how to add states to Player class in C# |
15. Healthkit Power-up in C# This video explains how to add a power-up in our game that will modify the player health using C#. |
16. State Behaviors in C# This video explains how to implement the behavior change based on the state of the player health in C#. |
17. More Power-ups in C# This video demonstrates how to add more power-ups to the game using C#. |
18. Player States in C++ This video explains how to add states to Player class in C++. |
19. Healthkit Power-up in C++ This video explains how to add a power-up in our game that will modify the player health using C++. |
20. State Behaviors in C++ This video explains how to implement the behavior change based on the state of the player health using C++. |
21. More Power-ups in C++ This video demonstrates how to add more power-ups to the game using C++. |
22. State Machine Diagram - IV This is the fourth part of the five-part video that explains the different types of pseudo states. |
23. State Machine Diagram - V This is the fifth part of the five-part video that explains how to complete the state machine diagram of player with pseudo states. |
8. Refactoring
1. Design Improvements This video highlights the various design issues and explains how we can improve the design through refactoring. |
2. Power-up Factory in Java This video explains how to implement the factory method design pattern in Java. |
3. SideObject Factory in Java This video explains how to implement the factory method design pattern for SideObject hierarchy in Java. |
4. Power-up Factory in C# This video explains how to implement the factory method design pattern in C#. |
5. SideObject Factory in C# This video explains how to implement the factory method design pattern for SideObject hierarchy in C#. |
6. Power-up Factory in C++ This video explains how to implement the factory method design pattern in C++. |
7. SideObject Factory in C++ This video explains how to implement the factory method design pattern for SideObject hierarchy in C++. |
9. More UML Diagrams
1. Package Diagram - I This is the first part of the two-part video that explains the concept of a package diagram. |
2. Package Diagram - II This is the second part of the two-part video that explains the concept of a package diagram. |
3. Component Diagram - I This is the first part of the three-part video that explains the notation used in a component diagram. |
4. Component Diagram - II This is the second part of the three-part video that explains the various notations for showing interfaces in a component diagram. |
5. Component Diagram - III This is the third part of the three-part video that explains more elements of a component diagram, such as ports and delegation connectors. |
6. Deployment Diagram - I This is the first part of the two-part video that explains how to represent the physical entities of your software and hardware through a deployment diagram. |
7. Deployment Diagram - II This is the second part of the two-part video that explains the concept of a deployment diagram. |