Cademy logoCademy Marketplace

Course Images

Object-Oriented Analysis, Design and Programming with UML

Object-Oriented Analysis, Design and Programming with UML

  • 30 Day Money Back Guarantee
  • Completion Certificate
  • 24/7 Technical Support

Highlights

  • On-Demand course

  • 10 hours 30 minutes

  • All levels

Description

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

What You Will Learn

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#

Audience

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.

Approach

This course features several coding examples and interesting activities to help you understand the software development process using UML diagrams and object-oriented techniques.

Key Features

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

Github Repo

https://github.com/PacktPublishing/Object-Oriented-Analysis-Design-Programming-with-UML

About the Author

Umar Lone

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++.

Course Outline

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.

Course Content

  1. Object-Oriented Analysis, Design and Programming with UML

About The Provider

Packt
Packt
Birmingham
Founded in 2004 in Birmingham, UK, Packt’s mission is to help the world put software to work in new ways, through the delivery of effective learning and i...
Read more about Packt

Tags

Reviews