Tuesday, 18 October 2011

User Requirements and Objectives

There is a single user requirement of this project and then several others that directly relate to the main objective.  The most basic version of this main objective will be a suite of libraries that conform to the specifications first obtained from Jim during our initial meeting.  In a sentence, I must create a set of libraries to  continuously process the physical and virtual inputs and then output processed data such that the application updates both the bicycle and visual display to correctly indicate the modified state.

This suite of libraries will be, as a minimum, a set of classes that will handle and process all data required.  This data will be documented in future posts.  In an ideal world, this set of classes will be manipulated through a pipeline that will transform the classes into a set of .DLL files, which will then be converted to COM components in order to allow the existing structure to handle them more easily and effectively.

There are several choices available for which language to use for the deliverable creation, the main contenders are C++, C# and Java.  Others, such as Python could also be considered.  The main issue that arises from many of these languages is that they are very high level and take considerable control away from the developer.  If this project required Rapid Application Development then I would certainly consider C#, Java or even Python.  As this project is focussed on quality within the time frame, I will choose a language that offers me the greater control over how data is manipulated.  C++ is the obvious choice as I am already well versed with the syntax and semantics and there are massive resources available for a wide variety of uses.  I have been informed that the language is not restricted so will continue with the assumption that I will be using C++ in order to code this project.

In addition to the main deliverable, I will also provide a handbook that explains the code's mechanics and usage so that it can be easily slotted in to the existing project.  Fully commenting is an essential part of this project and will be included with the code.  As this will be used in a real world situation, testing will play an even more integral role with the project.  Each function must be tested vigorously for inputs and output and the project as a whole must work seamlessly to provide a professional user experience.  A full testing battery will be carried out, documented extensively and then recorded as a log that will constitute another deliverable.

There are several specific user requirements that have been given, these don't form a deliverable as such, but must be completed as the project finishes.  These are technical requirements and will be covered in the next post that details the technical requirements and details that have been obtained and calculated so far. 

No comments:

Post a Comment