Collection of courses and labs for Software Design. Topic covered in this course includes Java UML, Factory methods, Singleton Design Pattern & Builder Design Pattern, SOLID Design Principle, Generics&Exceptions, Junit tests, Publish/Subscribe, Mock Objects and Regular Expressions.
Assignment 2 is a design of a Shell command system which allows the user to execute various commands like what they do on Unix system.This Assignment strictly asks the four students to follow the Software Development Process and Product backlog, Scrum meeting and Sprint backlog are essentail aspects of this assignment. In addition, the assignment was split into two phases and two phases required different commands.
Lab 10 is a good example of practing the Observer & Observable collaboration. The concept is unique in Java and can be applied to various software design in terms of structure.