This course provides a comprehensive introduction to object-oriented design, a crucial aspect of software development that allows for planning applications before writing any code. It covers foundational concepts in an engaging and interactive manner, helping you quickly develop your skills. The course guides you through the process of taking app requirements, identifying use cases, and mapping out classes using Universal Modeling Language (UML). The final design can then be translated into code using popular object-oriented programming languages like Java, C#, Ruby, or Python. This course is an excellent resource for anyone looking to understand and apply object-oriented design principles in their software development process.
This course provides a comprehensive introduction to object-oriented design, a crucial aspect of software development that allows for planning applications before writing any code. It covers foundational concepts in an engaging and interactive manner, helping you quickly develop your skills. The course guides you through the process of taking app requirements, identifying use cases, and mapping out classes using Universal Modeling Language (UML). The final design can then be translated into code using popular object-oriented programming languages like Java, C#, Ruby, or Python. This course is an excellent resource for anyone looking to understand and apply object-oriented design principles in their software development process.
Learning Objectives
Understanding object-oriented design principles
Identifying and working with objects and classes
Applying abstraction and encapsulation concepts
Implementing inheritance and polymorphism
Analyzing, designing, and programming using UML
Defining and working with FURPS+ requirements
Creating and diagramming use cases
Writing and interpreting user stories
Identifying objects and class relationships
Assigning class responsibilities and using CRC cards
Creating class diagrams and converting them into code
Working with multiple constructors and static attributes/methods
Identifying and implementing inheritance situations
Understanding and using abstract and concrete classes
Working with interfaces, aggregation, and composition
Understanding OOP support in different languages
Applying general development principles
Understanding software testing and design patterns