My Work

Blockbuster:

UML Diagram for the blockbuster project

This project was one that I did as a part of CSS 343 (Data Structures, Algorithms and Discrete Math) at UWB. The final assignment was one where we needed to design a piece of software from the ground up with only the information from the specification regarding formatting of the inputs and outputs and what the system should be able to do. The program that we needed to build was a sort of transaction- based emulator of a movie rental business, hence the name I gave it, "Blockbuster."

This application takes in a number of formatted text files such as a customer list, movie list, and a transaction list to simulate the operations of a movie rental business. It will then store all the information it needs and run through the transactions until the program completes.

We were required to create the design for the program in groups with other people. This was an interesting experience that I hadn't had in any of my internships as I was starting from step 0 in designing a product and so I ran into points where I disagreed with the way that other people in the group wanted to implement things. An example of this was with the implementation of the factory method and how the classes should be structured to accomodate this specific method. Some of my group members wanted to have the factory be a separate class, while I throught it would work best as a function within the class that would call it. I explained that having it as a function would be more efficient as it would reduce the need to import other classes again and deal with other items being out of scope.

We then had to use UML to present our design for the application and write the header files for all the classes we intended on creating. This was so that we could meet the needs for implementing various types of inheritance such as multiple and heirarchical inheritance as well as to use the factory method when creating classes. The final part was that we were required to design and implement custom binary search trees and hashtables to store the movies and customers.