SOFTWARE analysis and design 2020

Course's objectives

Analyze and design a software using object oriented paradigm. Object-oriented programming languages will be covered with the goal of applying materials of real world applications for analysis, design and software implementation. Here is the list of what you should know at the end of this course:

  • Domain model, Design class diagram and Sequence Diagram

  • Logical architecture and Layer pattern

  • GRASP patterns

  • GoF patterns

Learning Materials

  • Please join class in MS Team for discussion and attending the class here (link)

  • Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition), Craig Larman (ISBN-13: 978-0131489066 ISBN-10: 0131489062) (link)

  • Object-Oriented Design and Patterns (2nd Edition), Cay S. Horstmann (ISBN-13: 978-0471744870 ISBN-10: 0471744875)

  • Monopoly exercise: link (credit: Karen Jin, Dalhouse University)

  • Slides: link

  • GoF: (link)

  • Work submission: link

Grading

  • Super (S) >= 95

  • Average (A) >= 85

  • Bad (B+) >= 75

  • Bad (B) >= 70

  • Catastrophic (C+) >= 65

  • Catastrophic (C) >= 60

  • Disowned (D+) >= 55

  • Disowned (D) >= 51

  • Forgotten Forever (F) < 51

Evaluation (tentative)

  1. Exercise (30%)

  2. Midterm exam (30%)

  3. Final exam (30%)

  4. Class participation (10%)

Late counter:

Class Agenda & Announcements

    • Class 1 : Introduction

      • Class introduction

      • What to prepare when join a class and required software

      • Review on GRASP pattern

      • Review class diagram

      • Review sequence diagram

      • Types of pattern

      • Overview of web programming

    • Class 2 : Reviewing PHP

      • Review web programming (PHP and HTML)

      • Talk by P Toh from SiriVenture

      • Introduction to software framework

    • Class 3 : Introduction to Laravel framework

      • Overview of HTTP and PHP

      • Problems with writing a web app

      • Intro to a web framework

      • MVC, Router and Project folder structure

    • Class 4 : Task list exercise

      • Basic task list review

      • Intermediate task list review

      • ORM / ActiveRecord / DataMapper

      • MVC

    • Class 5 : Quiz

      • Quiz on task list exercise (10 points)

      • Quiz : https://forms.gle/96iGkW572HsmzJzZ6

      • Homework

        • 1) Implement intermediate task list

        • 2) Submit domain model, DCD and Sequence diagram for adding a task

    • Class 6 : Exercise on Task List and Quiz (1.2)

    • Class 7 : Builder pattern

------------------------------------------------------ Midterm exam ------------------------------------------------------

    • Class 8 : Factory pattern

    • Class 9 : Abstract Factory pattern

    • Class 10 : Proxy pattern

    • Class 11 : Composite pattern

    • Class 12 : Command design pattern

    • Class 13 : Unity framework

    • Class 14 : Android framework

    • Class 15 : Review