Every time the production of a new film begins, a new project is created. This project has all the relevant information regarding the production of the film. Each new project has a title, summary, genre, release date, list of filming locations, language, runtime, keywords and a weekly ticket sale (theatrical weekly box office).
TrekStar pictures launches together with the film, a series of materials for retail. These comprise single-sided DVDs, double-sided DVDs, combo box sets (containing two or three DVDs), VHS (on old projects) and Blu-rays. All of them contain features such as identification number, film title, format, audio format (Dolby, Dolby digital, MPEG-1, PCM or DTS), run time, language, retail price, subtitles, frame aspect (wide screen). However, each of them has different packaging specifications. A single or double DVD will have a plastic box packaging, while a combo box set would have a cardboard box. The Blu-ray would also have a plastic box as the DVD, but with a different size. A VHS can come in a plastic or cardboard package.
DVDs and Blu-ray can have multiple language tracks and subtitles in different languages, compared to VHS that can only have one subtitle and one audio track. In addition, DVDs and Blurays may contain bonus features (additional material such as short films or director comments of the production). For double-sided DVDs, it is important to know what contents are in one side, and what in the other (chapters, bonus features and languages).
Each submission will be assessed across the 3 strands (S1-S3) below.
S1. Data modelling and serialisation
S2. Object management
S3. Data manipulation, control and view.
S1. Data modelling and serialisation
You should produce a data hierarchy for the materials with appropriate data fields for the system. You do not need to fully represent any particular instance, but you need to be able to differentiate between the core material types identified in the specification. All data (project details, materials and crew) must be capable of being written to disk and retrieved as needed.
S2. Object management
The objects should be managed through a projects & materials ‘data base’ type structure which can be iterated through and which can be searched. You can use your existing (SeminarB) custom container, implement new ones or use one or more of the standard library collection classes. Each approach has advantages and drawbacks. Better solutions will use dynamic binding to organise function dispatch, rather than typing the objects and switches.
S3. Data manipulation, control and view
The new system needs to be implemented using an MVC design pattern. You should apply the OO design principles to organise your classes with extensibility and maintainability in mind. Make every effort to de-couple the presentation of your data from the control (main workflow of your system) and the data manipulation. For each of the functionalities that need to be developed, make sure you make a sensible decision as to which class should encapsulate such behaviour (e.g. who should encapsulate the creation of materials, who should encapsulate the search, and so on).