Executive Summary
This document presents the requirements and preliminary analysis for a system to be developed by a CSCI222 software
development team. This system will implement the functionality desired as part of a movie management system (e-Movies).
A preliminary outline of project plans is also given.
Disclaimer
@MrClient Inc. has tried to make this proposal as complete as possible at time of printing. Details are subject to change with notice. Feedback and
suggestions for modifications are welcome.
Overview
e-Movies will provide a simple, easy-to-use application that allows users to maintain information about movies and
perform searches for movies based on various common characteristics, such as title, date of release, etc. The system
will be capable of importing information from IMDB (http://www.imdb.com), an internet repository of movies that have
been released.
e-Movies Requirements
The requirements are divided into two major groups: functional and non-functional requirements. The priority of
requirements has been decided on the basis of our negotiation with the clients.
Functional requirements
User Management
Requirement #: FuncReq_UM_1 Use case #:
Description: The system should allow an admin user to create, edit and
delete a user. Details of a user include username, password, full name, and
whether the user is an admin or a normal user.
Rank of importance: High
Requirement #: FuncReq_UM_2 Use case #:
Description: The system shall allow user to log in to the system. If the given
“username” and “password” is incorrect, the system provides an appropriate
error message.
If the system determines that the user's password is invalid, the user will be
required to re-enter the password.
Rank of importance: High
Requirement #: FuncReq_UM_3 Use case #:
Description: If the user is unable to enter the correct password after three
tries, their record is marked as “locked” and they are not allowed to login in the
system. The system will display a message to inform the user that they will
2
.
.
.
.
.
.
.
.
.
have to contact the admin to get it unlocked.
Rank of importance: High
Requirement #: FuncReq_UM_4 Use case #:
Description: The system shall encrypt and decrypt user passwords using a
Caesar cipher
1
Rank of importance: Medium
Requirement #: FuncReq_UM_5 Use case #:
Description: The system shall allow the user to change their login password.
A valid password must contain at least 8 characters and must include at least
a number and a letter.
Rank of importance: Medium
Movie Management
Requirement #: FuncReq_MM_1 Use case #:
Description: The system should allow an admin user to create, edit and
delete a movie. Details of a movie include title, director(s), date of release,
genre(s), country(s), runtime (in minutes), and keyword(s). Note that a movie
may have multiple directors, be released in multiple countries, have multiple
genres, and have multiple keywords.
Rank of importance: High
Requirement #: FuncReq_MM_2 Use case #:
Description: The system should keep track of the user who creates a movie
entry and display all the movies created by the user. The user should also be
able to see all other movies created by other users.
Rank of importance: High
1
Details of a Caesar cipher are available at http://en.wikipedia.org/wiki/Caesar_cipher
3
.
.
.
.
.
.
.
.
.
Requirement #: FuncReq_MM_3 Use case #:
Description: The system should allow the user to browse and retrieve movie
information in alphabetical order.
Rank of importance: Medium
Requirement #: FuncReq_MM_4 Use case #:
Description: The system shall allow the user to search for movies based on
movie title, director(s), genre(s), country(s) and keyword(s).
Rank of importance: Medium
Storage management
Requirement #: FuncReq_SM_1 Use case #:
UC_QU_03
Description: The system should allow users to save all data including movies
and user data (i.e. e-Movies profile) into a file or multiple files.
Rank of importance: High
Requirement #: FuncReq_SM_2 Use case #:
UC_QU_03
Description: The system should allow users to open an e-Movies profile from
an existing file(s).
Rank of importance: High
Movie Importing
Requirement #: FuncReq_MI_1 Use case #:
Description: The system should allow the user to import movie data from two
files provided by IMDB (movies.list and genres.list attached). Note that a
movie may have multiple genres.
Rank of importance: Low
4
.
.
.
.
.
.
.
.
.
Requirement #: FuncReq_MI_2 Use case #:
Description: The system should detect duplicates by doing basic comparison
between the new movie information (i.e. title) and those that are currently
stored by the system. When a duplicate is identified, the system should
prompt the user with three options: “Skip”, “Merge”, and “Abort”.
If the user chooses:
“Skip” – the system shall skip the current movie and process the next
movie (in the import files).
“Merge” – the system shall merge the movie’s details from the import
files with what have been stored in the system.
“Abort” – the system shall stop the import operation.
Rank of importance: Low
Requirement #: FuncReq_MI_3 Use case #:
Description: When importing a movie, the system should extract some words
from the title and set them as the keywords for the movie.
Rank of importance: Low
Non-Functional requirements
Speed
ID N1
Description The application can open an existing e-Movies profile within 60 seconds and
save an existing profile within 2 seconds
Priority Low
Size
ID N2
Description The application does not take too much space on personal computers. It takes
below 5 MB
Priority High
5
.
.
.
.
.
.
.
.
.
Ease of use
ID N3
Description Training time is about 15 minutes for a normal user to use all functions of the
application
Priority High
Programming language
ID N4
Description This project should be implemented using C++
Priority High
User Interface
ID N5
Description This application is required be written as a text based or GUI based program.
Priority High
Operating System
ID N6
Description The system will run on an Ubuntu Linux OS in ordinary terminal sessions.
Priority High
Help function
ID N7
Description The application will support the help function to help users to use application
Priority Low
6
.
.
.
.
.
.
.
.
.
Elaboration
This section provides some preliminary elaboration which shows an example of a use case, a preliminary class
diagram and a sequence diagram2
. You will need to further define (or redefine entirely) those artefacts to
complete the elaboration phase.
Use case – Create a new movie (you need to refine this use case and develop other major use
cases)
Flow of Events
Use case UC_AP_01: Create a New Appointment
Basic Flow
Step Description
1. User opens Movie Management.
To begin this use case:
The system responds by:
Displaying a form which allows user to create new
movie, search, view, edit and delete movies.
2. User chooses to create a new
appointment
The system responds by:
Displaying a form on which user can input
information related to a new movie.
3. User enters information about the
new appointment and confirms it by
pressing “OK” button.
The system responds by:
Adding the new movie in to the list of movies.
The use case ends.
2
This design is on the basis of leading to a database and GUI implementation. If you plan to implement a text-based interface and file-
based system, you will need to change this design significantly.
7
.
.
.
.
.
.
.
.
.
Exception flows
To Be Added.
A preliminary class diagram (you need to refine this class diagram or develop a different class
diagram). You would need to develop a class diagram for the entire system.
You are strongly encouraged to design the system using the Boundary – Control – Entity
design style.
A sequence diagram for creating a movie (you need to develop other sequence diagrams describing other use
cases). Note that your sequence diagrams may be different, depending on your design (e.g. classes in the
class diagram, the use cases, etc.)