Object Oriented Design

The focus of this course is to:

  1. Design Reusable and Extensible software

  2. Explore some of the Design Patterns of the “Gang of Four” (GoF) - Classic design patterns Software Engineers should be familiar with:

    1. Creational

    2. Structural

    3. Behavioral

  3. Think in terms of Objects and learn the art of designing Object-Oriented Software

  4. Software Architectural Patterns

  5. Software Development Methods

  6. UML

  7. Software Development Documents, Tools, and Techniques

 

Object-Oriented Programming (OOP) design patterns are reusable solutions to common software design problems that occur in object-oriented programming. These patterns provide guidelines and templates for designing classes, objects, and interactions, promoting code reuse, maintainability, and scalability. There are several categories of OOP design patterns, including creational, structural, and behavioral patterns

Software Architectural Patterns

Software architectural patterns are high-level structures that define the organization and interaction of various components within a software system. They provide a blueprint for designing and implementing scalable, maintainable, and robust applications.

Software Development Methods

Software development methods, also known as software development methodologies or software development processes, are systematic approaches used to plan, design, build, and deliver software projects. These methods provide guidelines, best practices, and frameworks to manage the software development lifecycle efficiently.

UML

Unified Modeling Language (UML) is a standardized visual modeling language used to represent, visualize, and document software systems, particularly object-oriented systems. UML provides a set of graphical notations and a common vocabulary for describing the structure, behavior, and interactions of software components.

Software Development Documents, Tools, and Techniques

In software development, various documents are essential for effective communication, documentation, and project management.