The following image is the Use Case representation of Gifitti using UML.
...
...
@@ -137,33 +141,61 @@ For all work partitioning refer to the
\subsection{Functional Requirements}
\begin{enumerate}
\item The user is able to open a GIF from a specified location.
\item The user is able to save a GIF to a specified location.
\item The user can save a GIF to the current location of an opened GIF.
\item The user can specify the saved name of the GIF.
\item The user is able to open a GIF from a specified location.\\
\\Rationale: Allow a user to modify a GIF or pull frames from it.\\
\\Fit Criterion: When GIF is selected to load, the program will display the selected GIF.
\item The user is able to save a GIF to a specified location.\\
\\Rationale: Give user control over where to save their finished product.\\
\\Fit Criterion: After saving the GIF in the program, at the specified location there will be a newly created GIF.
\item The user can specify the saved name of the GIF.\\
\\Rationale: Allow user full control over how they want their GIF to appear to the file system.\\
\\Fit Criterion: The user selected name will appear as the name of the GIF.
%\item The user can specify to export a GIF as a sprite spreadsheet, to a
specified location.
%specified location.
\item A Command must exisit to allow the GIF to be played, this command only
works if the GIF is stopped.
works if the GIF is stopped.\\
\\Rationale: Allow the user to be able to resume the animation of the GIF to inspect it.\\
\\Fit Criterion: When the play button is pressed, the GIF should run properly.
\item A Command must exist to allow the GIF to be stopped, this command only
works if the GIF is playing.
\item The user is given control over the stop and start commands.
\item A range of frames may be specified and extracted as another GIF image.
works if the GIF is playing.\\
\\Rationale: Allow the user to be able to stop the animation to inspect specific frame.\\
\\Fit Criterion: Whent the stop button is pressed, the GIF freezes on frame.
\item The user is given control over the stop and start commands.\\
\\Rationale: Only the user should be able to control of the animation.\\
\\Fit Criterion: The start and stop of the animation is only done on user input.
\item A range of frames may be specified and extracted as another GIF image.\\
\\Rationale: User may only want to have that specific set of frames from the original GIF.\\
\\Fit Criterion: Only the specified frames are shown in the program.
\item Any GIF or specified range of frames in a GIF can be exported as a series
of frames.
of frames.\\
\\Rationale: User may only want specific set of frames to be exported.\\
\\Fit Criterion: When the frames are exported, only the specified ones are there.
\item Series of frames may be PNG, JPEG, BMP, TIFF, or any other standard image
format.
\item The system must ensure the all files read in is of a proper format.
\item The system can set the playback speed of GIFs.
\item Users have the ability to reset the GIF to what was originally loaded.
\item The system must be integrated with a help context availiable to the user.
format.\\
\\Rationale: User might want the exported frames for graphical art and may want it in different file types.\\
\\Fit Criterion: Images of the gif in the selected file format are located in the file the user saved them in.
\item The system must ensure the all files read in is of a proper format.\\
\\Rationale: To ensure that the system is getting the correct input to perform its tasks properly.
\\Fit Criterion: Only GIF files can be accepted as input for the system.
\item The system can set the playback speed of the loaded GIF.\\
\\Rationale: Allow the user creative control of the speed the animation is playing.\\
\\Fit Criterion: As the playback speed is adjusted, the speed of the animation is also changed.
%\item Users have the ability to reset the GIF to what was originally loaded.
\item The system must be integrated with a help context availiable to the user.\\
\\Rationale: Allow a way for the user to teach themselves how to use the system.\\
\\Fit Criterion: User is able to access the help section and understand it.
%\item The system is to allow for frame injection into the GIF.
%\item For frames added to a GIF not of the proper size, the GIF is either
%scalled to fit, or the frame is scalled to fit.
\item Frame modification should be able to be done in place on the application.
\item Frame modificaition allows users to draw on the frames of the GIF %or place images on existing
\item Frame modification should be able to be done in place on the application.\\
\\Rationale: Any frame modification to the system is done should be reflected on the gif shown in the program.\\
\\Fit Criterion: Any frame adjustmens are visible to the user before they save the GIF.
\item Frame modification allows users to resize the GIF.\\
\\Rationale: Give the user the choice to make a smaller or bigger version of the GIF for their needs.\\
\\Fit Criterion: The resized GIFl should have the dimensions given by the user when saved as a GIF file format.
%\item Frame modificaition allows users to draw on the frames of the GIF %or place images on existing
%frames.
\item All modifications can be placed on adjacent frames on user request.
%\item All modifications can be placed on adjacent frames on user request.
\end{enumerate}
\section{Non-functional Requirements}
...
...
@@ -175,8 +207,8 @@ format.
error sound should play to help indicate an error.
\item When files have finished saving, an affirmative ding noise should play to
help notify the user the action has completed successfully.
\item The form window should have a large enough display (relative to the screenand resolution it is being displayed on) such any imported gif is viewable
without squinting or having to lean in close to the display.
\item The form window should have a large enough display (relative to the screenand resolution it is being displayed on) such that any imported gif is viewable
without squinting.
\item The gif playback should be at the maximum frame rate encoded in the gif so that it appears as a smooth playback.
\item The majority of the UI elements and buttons should be responsive and
single click.
...
...
@@ -202,9 +234,12 @@ frames within under a MIN\_USE\_TIME.
\end{enumerate}
\subsection{Performance Requirements}
One of the main non-functional requirements is the performance of the system.
The performance can be broken down into subsections to define more accurately
what a good performance of the system should look like.
\subsubsection{Speed}
\begin{enumerate}
\item When exporting a reasonable number of frames (magnitude of 100s), the
\item When exporting a reasonable number of frames (around 50-100), the
operation should take no longer than MAX\_EXPORT\_TIME seconds.
\item All other UI elements should load within MAX\_UI\_LOAD seconds (or at least as fast asthe current competitor Program 'Gif Viewer' benchmarked on system with Intel i5
3GHz, GTX 940, 8 GB RAM)
...
...
@@ -216,9 +251,9 @@ that the user specifies.
\item The normal (or initial) play speed of a GIF when loaded shall be
determined from the encoded information within the GIF.
\end{enumerate}
\subsubsection{Reliability\/Availability}
\subsubsection{Reliability/Availability}
\begin{enumerate}
\item The program should be available 24\/7, 365 days a year (or 366) because it does not rely on a server or internet connection.
\item The program should be available 24/7, 365 days a year (or 366) because it does not rely on a server or internet connection.
\item Normal operation of the program, such as trying to import an invalid file
type, should not cause it to crash or exit.
\end{enumerate}
...
...
@@ -236,7 +271,9 @@ frames to ensure we do not run out of room while saving.
\item In the event there is not enough room, the user shall be asked to choose adifferent location or free up memory space.
\end{enumerate}
\subsection{Operational and Environmental Requirements}
\subsection{Operational and Environmental Requirements}
External forces on the system need to be also be taken into consideration when
creating a project.
\subsubsection{Expected Physical}
\begin{enumerate}
\item The product is expected to be used by a single person sitting down at a
...
...
@@ -309,6 +346,10 @@ The implementation of Gifitti will be self containted and will not create any pr
\subsection{Tasks}
When developing a project, the content that will be developed for
each section of a projects developmental lifecycle needs to be
defined to allow proper deadlines to be created and fufilled.
@@ -349,7 +390,9 @@ Requirements Satisfied by this phase:
\end{itemize}
\subsection{Migration to the New Product}
When developing a different version of an existing product,
users and developers of older systems need to know what
steps they need to take to move to the new system.
\subsubsection{Developers}
The developers are starting the software from scratch. The system as-is will be understood completely by the development team before the Code is started. Since there is no Code Migration directly, please refer to the project \href{run:../../ProjectSchedule/3X_Example.gan}{Gantt Chart} for more information on deadlines for implementation of the new system.
...
...
@@ -357,14 +400,17 @@ The developers are starting the software from scratch. The system as-is will be
Users of the current system will be able to just as easily use the new system. The new system will load any gif, and image type that the current system utilizes so there is no need to undergo any file conversions from the old to new system. The system will require no back-up on the user end as all user data is simply the images and GIFs they use.
\subsection{Risks}
Risks need to be considered to better identify what potential problems might occur.
Risk management entails assessing which risks are most likely to apply
to the project, deciding a course of action if they become problems, and
monitoring projects to give early warnings of risks becoming problems.
\subsubsection{Developer Based}
%Risk One
Image Handling. Probability High. With game developers in mind we need to manipulate animations into sprite spreadsheets. This requires a large amount of knowledge in a field we are un-familiar with when using code to complete such a task so we can just. Thus we need to learn about this topic to complete the project goals.
\\
%Risk Two
\textbf{Time Management.}
\\ Probability High. All members of the team have a full engineering course load of 6 courses. With this in mind we have to ensure all courses are completed at a level considered subjectively good to each member. Thus time management can due to distractions from other parts of academia.
\\ Probability High. All members of the team have a full engineering course load of 6 courses. With this in mind we have to ensure all courses are completed at a level considered subjectively good to each member. Thus time management can be difficult due to distractions from other parts of academia.
\\
%Risk Three
\textbf{File Conversion.}
...
...
@@ -393,7 +439,7 @@ allocated in the Gantt chart's resources section and should be referred to for a
A very simple user guide will be provided within the program under a 'Help'
menu. This user guide will be a short series of images and text descriptions
showing how to load a GIF, select a playback speed, select a subset of frames,
and export these frames to a desired location on the user's PC. It will follow a format similar to below. [Figure 3] This user guide will be completed by a
and export these frames to a desired location on the user's PC. It will follow a format similar to below [Figure 3]. This user guide will be completed by a
developer once the application is finished. This document will be updated to
include the user guide when it is completed.
\begin{figure}[h]
...
...
@@ -407,7 +453,7 @@ include the user guide when it is completed.
The below requirements may not be included in the initial release of the product but may be implemented further in the development process. They are listed here
so that the ideas are organized and not lost.
\begin{enumerate}
\item The program must allow users to record a short second clip of their
\item The program must allow users to record a short clip of their
screen and directly convert it to a GIF format.
\item The program will allow users to sign in through Facebook or Twitter and