Duration: 24 Hours
Pattern figure


Objective Oriented Programming and Design has taken a center stage in software development from last few years. Languages like Java, C# and even C++ thrive on these concepts and use them as an essential tool for their architecture and design. Cognixia’s course starts with basic OOP concepts like inheritance, polymorphism and encapsulation and then moves on to software modeling. Software modeling is a method to gather requirements and analyzing it to arrive at the design. A use-case approach is used for requirement gathering and documentation and it is discussed in great detail in the course.

Object oriented analysis and design has many different parts like class diagrams and their relationships, sequence and collaboration diagrams, state machine diagrams, etc and the course covers each of these in detail. Some useful design principles like High Cohesion and Loose Couple are also covered. The course also talks about design patterns like inversion of control and dependency injection.

What You'll Learn

The course covers basic and advance OOPS, UML and Software Design Principals, design essentials, activity diagram etc. in detail and aims to familiarize the learner with all these concepts
Duration: 24 Hours


  • Important object-oriented (OO) concepts
  • Fundamental OO terminology

  • Object-Oriented Software Development (OOSD) process
  • How modeling supports the OOSD process
  • Benefits of modeling software
  • Purpose, activities, and artifacts of the following OOSD workflows (disciplines) –
    • Requirements Gathering
    • Requirements Analysis
    • Architecture
    • Design
    • Implementation
    • Testing & deployment

  • Why a use case Diagram is needed?
  • Essential elements in a UML Use Case diagram
  • Developing a use case diagram for a software system based on the goals of the business owner
  • Building elaborate use case diagrams based on stakeholder goals
  • Recognizing and documenting use case dependencies using UML notation for extends, includes and generalization
  • Manage the complexity of use case diagrams by creating UML packaged views

  • Finding and documenting scenarios for a use case
  • Building a use case form describing a summary of scenarios in the main and alternate flows
  • Referencing included and extending use cases
  • Finding and documenting non-functional requirements (NFRs), business rules, risks and priorities for a use case
  • Finding the purpose of a Supplementary Specification Document

  • Essential elements in an Activity diagram
  • Model a use case flow of events using an Activity diagram

  • Finding a set of candidate key abstractions
  • Finding the key abstractions using CRC analysis

  • Finding the essential elements in a UML Class diagram
  • Constructing a Domain model using a Class diagram
  • Finding the essential elements in a UML Object diagram
  • Validating the Domain model with one or more Object diagrams

  • Explaining the purpose and elements of the Design model
  • Finding the essential elements of a UML Communication diagram
  • Creating a communication diagram view of the Design model
  • Essential elements of a UML Sequence diagram
  • Creating a sequence diagram view of the Design model

  • Model object state
  • Essential elements of a UML State Machine diagram

  • Defining the essential elements of a software pattern
  • Composite pattern
  • Strategy pattern
  • Observer pattern
  • Abstract Factory pattern

  • Distinguishing between architecture and design
  • Tiers, layers, and systemic qualities
  • Architecture workflow
  • Diagrams of the key architecture views
  • Selecting the Architecture type
  • Creating the Architecture workflow artifacts

  • Client and Presentation tiers
  • Business tier
  • Resource and Integration tiers
  • Solution model

  • Refining the attributes of the Domain model
  • Refining the relationships of the Domain model
  • Refining the methods of the Domain model
  • Declaring the constructors of the Domain model
  • Annotating method behavior
  • Creating components with interfaces

  • Best practices for OOSD methodologies
  • Features of several common methodologies
  • Choosing methodologies for projects
  • Developing iteration plans

  • Defining frameworks
  • Advantages and disadvantages of using frameworks
  • Finding several common frameworks
  • Creating business domain frameworks

  • Key features of object orientation
  • Key UML diagrams
  • Requirements Analysis (Analysis) and Design workflows
Ripple wave


Web development experience with intermediate level of expertise in JavaScript is needed, also exposure to any server technology, such as J2EE, .NET, Ruby, etc  would be good to have but is not mandatory

Interested in this Course?

    Ready to recode your DNA for GenAI?
    Discover how Cognixia can help.

    Get in Touch
    Pattern figure
    Ripple wave