Thursday, 20 October 2011

Project Meeting - 20/10/2011

During the second meeting with the project supervisor, we discussed most of the material that has been completed and where the project should be progressing to. As a second supervisor has not yet been assigned, I will be moving forward with research under the assumption that my work to date is accurate. My initial presentation will take place once a second supervisor has been allocated. 

The presentation slide show was viewed and found to be sufficient for the requirements, I have been told to complete the weightings marking sheet and submit this, I will also update the presentation to include my reasoning for the scheme I choose.

I have planned the project extensively but have been informed that one of the most important criteria in planning is to ensure that I map the deliverables life cycle sufficiently to ensure completion of all objectives. Initial research topics were covered and found to be adequate.

I have been asked to generate a prototype report on a relevant topic of my choosing. This needs to be a professional report so that my style may be assessed initially. This will highlight any issues before moving on to larger documentation. We also discussed UML modelling software, this is quite an important part of the planning stage so it may be valuable for me to actually develop a sub-report that can be included in my report that details my findings toward these packages. This could potentially be a topic for the prototype report; however, I feel that I would like to report on a more dominant topic to the project in order to start getting feedback as soon as possible. 

 The final item discussed was the class diagram. One of the possibilities raised was to decompose the bicycle itself in order to have more specialised classes capable of dealing with individual components. I spent a little time looking at possibilities and came up with a potential candidate. To this revised version, I have also added some functionality.
This is far from a completed diagram in any respect, but I hope it gives an idea of what a suitable architecture could be and shows a little of the functionality that will be implemented.

While I continue working on the initial design documents, I will begin researching one of my core topics in order to present my prototype report.

Wednesday, 19 October 2011

Initial Presentation

This post is a documentation of the initial presentation that will given in order to fully demonstrate that I understand the project and have planned how I will progress and meet deadlines.





Report for Presentation:

Initial UML

This is a small step forward, but one that has presented me with my first opportunity to get some design under way.  I know that research is the most vital step at this stage but I believe having a rough outline of the program structure will allow me to envisage how solutions could fit into my project as I progress through the research stage.

The diagram outlines by basic thoughts with regard to structure, it is quite basic at the moment but will grow in time.  My concept revolves around having a brain class that will handle all interfacing with the rest of the program and then utilising other classes for the mathematics.  I decided to break up Conversion and Calculation into distinct objects in order to increase code-reuse for the future.  It will allow these classes to be extended through varying ways individually, without limiting them to specific scenarios.

I will continue to add ideas to the model as I progress through the research and will upload a more up to date version when sufficient progress has been made.  The next  post will be the documentation I intend to use in my presentation, it will include the actual Power Point file, presentation notes and the report that will go into greater detail regarding the presentation.

GANTT Chart and Timeline

The initial GANTT chart that provides an overview of the project life cycle has been completed and all general tasks have been included with expected time scales.  Below are some excerpts of the chart that indicate the pertinent information.  Please click for a larger image.

Timeline:

Tasks:


Below are links to the original documents using a public link:
Project File
Tasks .PDF
Timeline Image

The next task to be completed will be a very general UML that gives a high level view of the basic program structure.

Milestone Requirements

1. Initial Presentation: (Date undetermined)
Provide Outline of Objectives:

  • Aims of project.
  • Detail Results and outputs required.
  • Describe research methodology and how I intend to evaluate these.
  • Cite likely sources and references to be used.
  • Outline significant resources and facilities required.
Project Work Plan:
  • Define stages of project and likely timescales.
  • Show how I will meet Milestone deadlines.
  • Indicate how I am going to achieve final report deadline.
  • Project will be broken down into Planning and Implementation categories.
  • Each category will be broken down further into individual tasks.
This presentation will take place as a Power Point presentation covered all of the above topics, but containing limited technical information.  Core topics to research and initial ideas will be discussed.  To accompany the presentation, I will provide a written report containing all information covered.  Presentation slides will also be given in order to provide a summary of the report.  This presentation will take between 10 and 15 minutes.  In order to accurately show how I intend to meet deadlines, some basic design documents will be included in the presentation, tools such as time-lines and generalised UML will be most valuable.  These documents will form an appendix in the final report.

All reports from this point should conform to the following rules:
  • Word processed.
  • Page numbers included
  • 12pt font recommended
  • 1.5 line spacing recommended
  • No A4 binders
  • Bibliography
  • Webliography with dates

2. Milestone 1: (Wednesday 23rd November 2011)
Relevant Details:
  • Report approximating 20 pages.
  • Worth 10% of overall mark.
  • Initial design documents
  • Research and evaluation undertaken
  • Solutions and documentation
  • Solution testing
This Milestone is all about the research, I must report on what research has currently taken place and document it in a professional manner.  One of the initial solutions should be a section evaluating the software development platform that will be used as this will be one of the critical factors.  Each source should be evaluated on its own and against the other candidate solutions before indicating the chosen method and documenting the reasons.  The software, research methodologies and commercial alternatives to the project and individual solutions must also be detailed in this way.  The research topics that pertain to the actual development of the product have been listed previously and will form the starting point of my research.  During this Milestone, I will deliver the report that is required, including the general criteria listed above, and the design documents that have been completed up to this point.  For each section that is documented, I will endeavor to include pseudo-code or code fragments showing how the research output and design have culminated into a solution.  This report will also include a completed timescale or GANTT chart, extended UML and initial ERD. These documents will form an appendix in the final report.  Both Milestone 1 and 2 must be separately bound into a single document containing everything relevant to the stage.


3. Milestone 2: (Wednesday 2nd May 2012)
Relevant Details:
  • Report approximating 20 pages.
  • Worth 20% of overall mark.
  • Prototype deliverable
  • Completed design documents
  • Research and evaluation undertaken
  • Solutions and documentation
  • Solution testing
This Milestone will be an extension and enhancement of the first.  All research that has been undertaken since M1 must be detailed in the same fashion but must show serious progression and have almost all of the solutions required by the project.  All design documents must be finished by this point, ready to begin development.  This will be included in the deliverable.  In addition the research, I intend to include an initial prototype that demonstrates the core features of the project.  This is not a finished product, but must be a solid foundation that shows off how the product will behave.  This prototype must have full comments, testing of methods and brief manual sections indicating usage.  Every part of this prototype must be of excellent quality as it will form the basis of the entire product.   Throughout this report, I will clearly show how the design process has progressed and how I have mapped the initial development to it.  Each solution will have pseudo-code and possibly a code fragment attached to it, showing research output has yielded a finished product.


3. Final Report: (Wednesday 1st February 2012)
Relevant Details:
  • Report approximating 100 pages.
  • Worth 70% of overall mark.
  • Application Devlierable
  • Completed extended design documents
  • Research and evaluation undertaken for each solution
  • All solutions and documentation
  • Full solution testing compiled into log
  • Application manual
  • Full commenting
  • All documentation included in an appropriate manner
Sample Layout and Topics:
  1. Title Page
  2. Statement of originality
  3. Abstract
  4. Acknowledgments
  5. Table of Contents
  6. Introduction and Objectives
  7. Main Report
    1. Plan (Timescale or GANTT chart)
    2. Research and Output (Extended M1)
    3. Design and Development (Extended M2)
    4. Evaluation Methodology
    5. Evaluation Completed
    6. Future Enhancements
    7. Conclusions
  8. Appendices:
    1. Objectives Report (Initial Presentation)
    2. Weightings
    3. References
    4. Bibliography
    5. Webliography
    6. Blog Transcript
This is the final deliverable and the summation of the entire project.  Everything here must be of the highest  quality and conform to each criteria officially and personally set.  All research and documentation up to this point will be extended and covered in greater depth throughout.  All individual documents will be included either as appendices or within the report as appropriate.  The application deliverable must be complete, fully functional in all proposed areas and come with extensive documentation concerning usage, testing and code flow (Through the use of comments).  Both Milestones and the final report will covered in far greater depth as I progress through them.

The next post will contain a general overview of the task timeline, with some areas broken down into smaller  and more specific tasks.  The initial, general design documents created as a result of this planning will also be included.

Tuesday, 18 October 2011

Initial Research Topics, Sources and Resources

During this initial stage of the project, there are several things that need to be considered.  In addition to the creation of basic design documents that have been previously listed, I will need to ensure that I have ready access to the major resources required for the project and being research.

Below I have listed initial research topics that will form the core of my project.  More will be added as this project progresses.

Initial Research Topics:
1. Euler Integration
2. Runge-Kutta
3. Physics Equations
4. Software Development Platform and Language
5. Existing Solutions to Overall System
6. Code Compilation into DLL files.
7. Marshaling DLL files into COM
8. Bicycle Mechanics and Structure
9. Reference Style

In addition to these specific topics, I have begun gathering a starting point of locations that may hold promising avenues of research with regard to these topics.  This information is not formatted or referenced to any standard model; however, as I begin to use these services, I provide full referencing in a consistent style and evaluate what is found.

Initial Research Centres:
Journals and Databases:
  • ifpan.edu.pl/journal.htm
  • iop.org
  • Google Scholar
  • University of Glamorgan FINDit System
  • Web of Science Database
  • Inspec
  • CACM


Books:
  • Introduction to Mathematical Modelling - Bender
  • Mathematical Modelling - Berry and Houston
  • Physics for Game Developers - Bourg and Seemann
  • Mathematical Modelling Techniques - Rutherford


Websites:
  • www.allphysicsequations.com
  • www.ajdesigner.com/index_physics.php


This is an early stage in planning to begin cataloging required resources but I believe I can make a start with the basics of what I require in order to begin.  Some of the these may seem basic or trivial but they are all vital in the progression of this project.

Resources:
Working and Stable Computer Able to Develop Project From:
This may seem obvious but it is vital in producing this project, the computer must have enough processing power and memory to run and test the program, be able to display what is happening and have enough disc space to store the program and associated documentation.  Both my home computer, laptop and University computers (Which I have complete access to) all fit this criteria.

Visual Studio 2010:
This is the most likely development platform that will be used for this project.  The computers at University comes loaded with it and the MSDN AA provides a free version to students that have loaded onto my personal machines.  This selection has yet to be evaluated and verified.

Internet Connection and Browser:
Required for research and communication.  High speed internet connection using Ethernet and WiFi at University is available in addition to fast Broadband at home.  All locations come equipped with a variety of browsers.

Microsoft Office Package:
This is not a decision that will be evaluated as it does not affect the project and is down to personal choice.  I will use Office as the latest versions are available at both home and work locations and it comes with every piece of software required for design and documentation, these include Visio for Modeling, Word for documentation, Project for planning and Excel should I require spreadsheets.  Documents will most likely be printed to a .PDF format for serialisation, which is supported, and Visio will be evaluated against others for its Modeling ability before a decision is made.

Design Document Modeler:
As previously mentioned, Microsoft Office comes equipped with its Visio Modeler, this will be evaluated against others such as Star UML and then a decision made.  Modeling software is vital in the planning stage and will provide a solid foundation before development commences.

Access to Research Literature:
Access to online journal databases and written material is freely available through the internet and the University of Glamorgan's Learning Resource Centre.  

Backup Utility:
While others may not consider this to be a vital component, I believe backing up work to be an integral part of a project.  As such, I will use automatic syncing tools such as Dropbox and SugarSync to automatically back up my work across all personal computers.  this allows me to always work on the most up to date version of a file and have it backed up not only to my other computers, but also to a cloud server.  In addition to this, I will use Backify to upload all work from my home computer (Which is updated through syncing) to a large, secure cloud server and have setup automatic scripting to backup the documents to an external hard drive connected at my home.  Both of these solutions happen automatically, daily.  This may seem severe, but it allows me access to my up to date work anywhere in the world, at any time, and is backed up to no less than five difference locations so that I can always be secure.

My next stage is to detail exactly what needs to be done by certain deadlines and document how these milestones will be achieved within the allotted time.  I can the move on to developing the initial design documents.



Research Methodology

The way in which I will progress through this problem is by breaking the task as a whole into smaller and smaller individual problems, much the way that functions and classes break down structured code.  Initially, I wont think in terms of code, but as a multitude of small, generic problems.

Once these problems have been broken down into components parts, I can begin looking for solutions.  Many of these tasks will not require research as they are simple enough or well known enough in implementation.  For those tasks that require research, I will document everything that I come across.  Even pages that I read that may not be completely relevant will be documented as I progress through the literature.  My search will mainly take place using articles, journals and books; both electronic and physical, with some lesser reputable sources being used for less important or complex issues in order to remain efficient.

I will be adopting a slow but optimal research methodology, instead of simply finding a correct or proven answer and then leaving the topic and writing up what has transpired, I will continue researching the topic until I believe I have found a suitable number of candidates.  This is the stage where evaluation will take place, each candidate solution will be evaluated for efficiency and accuracy.  I want this project to be as realistic as possible but there is a limit to the amount of efficiency that can be dropped before the project becomes slow and grinding.  My ideal set would consist of a complete solution that works very efficiently and ensures a smooth operation at run time.  Big O notation is a good way of me getting a feel for these solutions initially, personal testing will then refine the result.

When creating a unique solution to a problem, I will bear in mind several things in order to smooth the research process in addition to the problem decomposition mentioned above.  These are merely a rough outline of the technique, more in depth detail as to how they are used will be provided as they are utilised through the process.

Problem Solving Methodologies:
Output Analysis: 
As this project is mostly a physics problem, I am able to backtrack from the expected output, through the processing and come up with a list of inputs that need to be provided in addition to potentially correlating inputs/outputs to arrive at a heuristic for solving the processing.

Existing Solution:
This project is similar in structure to many other computing problems, as such there are probably many existing solutions for problems that I may encounter and need to solve.  While I am not suggesting plagiarism, it makes perfect sense to examine existing solutions, evaluate them based on your specific requirements and then create your own version of those solutions in order to match the unique criteria.  Many problems can be solved using the previously mentioned technique; however, simply because there does not exist a computing solution, does not mean there is not a solution elsewhere.  The bicycle simulator is perfect example and lends itself rather well to this method.  Just as I will need to solve mechanical and physics based issues within the engine, these issues have already been solved with the production of real bicycles.

Automating a Manual Process:
Similar to deconstructing a problem, deconstructing a process to its component parts and then looking at how these steps work could be an invaluable way to solve these problems.  By being able to do a single task manually, virtually or in reality; gives us a building block to work with in order to automate the process ready for continuous simulation.

Feasibility:
This is quite a large issue with projects of this sort as we must weight up options and select not necessarily the best, but the best fit.  Each problem solution will be a constant balancing between efficiency and accuracy.  My goal is to create a solid solution to the overall problem and deliver a quality piece of work.  This work may not do everything possible, but what it does will fit the brief and do it well.  Enhancements and extensions will be considered once the project is completed to my satisfaction, those that are uncompleted due to time constraints will be fully documented within the final report so that others looking at the project in the future, or even myself, can then use the ideas and build on them in order to improve an already quality product.  Just as I apply this thinking to project in general, as I will with individual components and researched items.  I will endeavor to provide the best solution for each problem through vigorous research, but there will be a limit to the amount of time I can spend not only researching, but also  implementing.  If a perfect solution exists but an adequate one also exists that will not detrimentally affect other components then I must err on the side of caution.

The next post will concern individual research topics that I will need to cover initially.