Workshop on Software Design Principles, Patterns and Practices

Workshop on Software Design Principles, Patterns and Practices

The course will help participants understand good object-oriented design through the medium of highly useful design patterns and help them to do clean design and code.

course at a glance

  • Date : 11 Apr - 25 Apr 2020
  • No. of Classes/ Sessions : 5
  • Total Hours : 35
  • Last Date of Registration : 9 Apr 2020
  • Class Schedule :
    • Saturday - 2:00 PM - 9:00 PM
    • Friday - 2:00 PM - 9:00 PM
  • venue : BASIS Institute of Technology & Management (BITM) BDBL Bhaban (3rd Floor - East), 12 Kawran Bazar, Dhaka -1215.

Price: TK. 10,000
(including VAT & TAX)
Promotional Offer BDT 9000 (Valid till 25 March, 2020)

Day 01:

Overview on OOP, Introduction to Software Design and Architecture

  • Welcome address

○        Overview on OOP

○        Class & object

○        How does reference type work

  • Overview on OOP

○        Static class & method

○        Association relationship

○        Inheritance relationship

  • Overview on OOP

○        Method overriding

○        Abstract class & method

○        Interface: what & why

  • 15 min Quiz on OOP
  • What is software design
  • What is software architecture
  • Pitfalls on software design and architecture
  • 10 min Quiz on software design

Day 02:

Code smells & Refactoring

  • What are code smells & refactoring?
  • Code smell category - Bloaters

○        Long method, Large class, Primitive obsession, Long parameter list, Data clamps

 

  • Smell category - Object-Orientation Abusers

○        Switch statements

○        Temporary field

○        Refused bequest

○        Alternative classes with different interfaces

 

  • Smell category - Change Preventers

○        Divergent change

○        Parallel inheritance hierarchies

○        Shotgun surgery

  • Smell category - Dispensables

○        Comments

○        Duplicate code

○        Data class

○        Dead code

○        Lazy class

  • Smell category - Couplers

○        Incomplete library class

○        Middle man

○        Inappropriate intimacy

○        Message chains

  • 20 min Quiz on code smells & refactoring

Day 03:

 Software Design Principles & Patterns

  • Art of Unix programming
  • Software design principles overview

○        Single responsibility principle

○        Open closed principle

  • Software design principles overview (Cont.)

○        Liskov substitution principle

○        Interface segregation principle

○        Dependency inversion principle

  • Software design principles overview (Cont.)

○        DRY- Do not repeat yourself

○        Tell do not ask

○        The law of Demeter

  • 15 min Quiz on design principles
  • What is design pattern
  • Creational patterns

○        Singleton

○        Prototype

○        Builder

Day 04:

Creational Design Patterns, Structural Design Patterns

  • Creational patterns (Cont.)

○        Abstract factory

○        Factory method

  • 15 min Quiz on creational patterns
  • Structural patterns

○        Adapter

○        Bridge

○        Composite

○        Decorator

 

  • Structural patterns (Cont.)

○        Facade

○        Flyweight

○        Proxy

  • 15 min Quiz on structural patterns
  • Behavioral patterns

○        Chain of responsibility

○        Command

Day 05:

Creational Design Patterns, Structural Design Patterns (Cont.)

  • Behavioral patterns (Cont.)

○        Interpreter

○        Iterator

○        Mediator

  • Behavioral patterns (Cont.)

○        Memento

○        Observer

  • Behavioral patterns (Cont.)

○        State

○        Strategy

  • Behavioral patterns (Cont.)

○        Template method

○        Visitor

  • 20 min Quiz on behavioral patterns

Certificate giving ceremony & closing program

Prerequisite:

  • Programming Knowledge
  • Understanding Object-Oriented code

Curriculum

Module Workshop on Software Design Principles, Patterns and Practices 35 Hrs

Tentative Class Start

11th April, 2020

Available Seat

10 / 25

who can join

  • Software Engineer,
  • Developer,
  • Programmer,
  • Software Leader,
  • Solution Architect,