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, which defines methods that are fundamental to the functionality of the program that the leaf class, Student and the composite class, 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, the IContainer interface, the FileCollection class that implements the IContainer interface and the FileIterator class 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.

    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:

  • 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