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)
Exercise (30%)
Midterm exam (30%)
Final exam (30%)
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)
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)
Read about Strategy pattern here: https://www.java67.com/2014/12/strategy-pattern-in-java-with-example.html
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