Skip to content
Snippets Groups Projects
Commit b2375456 authored by Pavle Arezina's avatar Pavle Arezina
Browse files

Editing SRS for rev 1

parent 254c0223
No related branches found
No related tags found
No related merge requests found
No preview for this file type
......@@ -72,6 +72,9 @@ of GIFs. Gifitti removes the barrier of entry to the creation and manipulation
of GIFs.
\subsection{The Stakeholders}
Stakeholders are people, groups, organizations that might be affect
by the outcome of a project. They have direct influence on how the
project will be developed.
\subsubsection{The Client}
The client for this product is Professor Spencer Smith.
......@@ -83,9 +86,7 @@ stakeholders is composed of individuals with a wide variety of ages and
technical skills.
\subsubsection{Other Stakeholders}
Another group of stakeholders are game designers who can
also utilize this tool to create sprite spreadsheets for their own projects in a
streamlined way. Furthermore, graphic designers who are skilled in
Another group of stakeholders are graphic designers who are skilled in
manipulating GIFs but want to create a product quickly, can utilize this tool to
produce high quality GIFs.
......@@ -102,7 +103,7 @@ way they choose.
\item GIF-Graphic Interchange Format; A file type similiar to a video (without audio) and high compression.
\item Sprite Spreadsheet- A single image that contains all the frames of a simple animation.
\item Framerate - The speed the GIF is played at in the playback window.
\item Windows - Common desktop and laptop operating system.
\item Windows - Common desktop and laptop operating system. Version 7, 8, and 10.
\item Playback - The window that plays the GIF the user loaded into the program.
\item Manipulation - Any changes made to the GIF are considered manipulations. This includes framerate, length, and any other changes.
......@@ -116,6 +117,10 @@ in a program, and can recognize different file formats.
\section{Functional Requirements}
\subsection{The Scope of the Work and the Product}
Whenever a project is decided upon, there are boundaries that need to be
defined to deliver a definite solution to the problem proposed. Background
information must be given to help identify what the developers will need to
produce a successful project.
\subsubsection{The Context of the Work}
The context of the application is that it will be executed on a windows machine,the machine itself
......@@ -123,8 +128,7 @@ can not be harmed by execution of the application. The developers must be able
to understand
image manipulation on a software level to tackle many of the problems at hand.
\subsubsection{Work Partitioning}
For all work partitioning refer to the
\href{run:../../ProjectSchedule/3X_Example.gan}{Gantt Chart}.
\subsubsection{Individual Product Use Cases}
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 screen and 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.
\subsubsection{Planning of Development Phases}
\hspace*{1cm}\textbf{Phase 1} Architecture Construction: \\
......@@ -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
directly upload and share the manipulated GIF.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment