Skip to content
6ixGhad edited this page Nov 22, 2021 · 26 revisions
  • Introduction: Team Members, Project scope and purpose (TO BE DONE BY LORENZO)

  • Analysis: Major requirements and use cases, Target students (TO BE DONE BY NIKAL)

  • Design: Design patterns used, Conformance to SOLID, Class Diagram Design patterns used: The FileFixer application utilizes two design patterns, namely, the composite design pattern and the iterator design pattern. The composite design pattern was used to create an interface, Individual View code snippet, which defines methods that are fundamental to the functionality of the program that the leaf class View code snippet, Student and the composite class View code snippet, ToRename implements. The Student class allows for Student objects to be created which consists of a particular student's information such as their name, participant ID and student ID. The information that is stored in an instance of the Student object comes from the CSV file that the program requires. The composite class, ToRename is used to store a collection, toRename, that consists of all the names of the files that needs to be renamed. The composite class was used as the collection stored in the composite class can be compared to Student objects in order to determine which assignment submission belongs to which student. The second design pattern, the iterator design pattern, is made up of four classes. Namely, the IIterator interface View code snippet, the IContainer interface View code snippet, the FileCollection class View code snippet that implements the IContainer interface and the FileIterator class View code snippet that implements the IIterator interface. The iterator design pattern was used to iterate the collection of file names stored in the composite class. This allows for each file name to be compared against different pieces of information in order for the file to be renamed correctly. The iterator design pattern was also useful as it eliminated the need for multiple for loops in each rename class in order to get the objects from the composte collection.

    Conformance to SOLID: The two design patterns used allow the program to conform to SOLID design principles, namely, the Single Responsibility principle as each class has a different responsibility, the Interface Segregation Principle as interfaces as segregated and the Open/Close Principle as interfaces are closed to modification but open to extension.

    Class diagram: Composite Design Pattern Class Diagram Iterator Design Pattern Class Diagram

  • Implementation: How to run, Setup requirements

  • Testing and Evaluation: Test Cases and Suites, Demo video link (TO BE DONE BY NICK)

Clone this wiki locally