Você está na página 1de 4

PLATFORM AND LANGUAGE EVALUATION FOR USE IN THE DEVELOPMENT OF A CONTINUOUS SIMULATION

SEAN ROBINSON

Abstract This document outlines to necessary qualities and technical requirements for a project aimed at creating a continuous simulation of a bicycle. The programming language C++ and development platform Visual Studio 2010 is evaluated with these items in consideration. This document concludes by indicating how feasible it is to create this project using the tools described and presents alternatives should there be a more viable solution.

considered and subjected to a similar feasibility test.

2. MODULARISATION
The most critical factor in this project, with regard to structure, is modularisation. Many of the equations or solutions are highly generalised and can be used for a variety of different situations. In order to promote code reuse within this project and also for component reuse externally, it is important to ensure that solutions remain distinct and independent from the overall solution. Through this, solutions can be reused for different scenarios. An example of this structure is integration. When plotting the course of objects through a simulation, integration is used to derive new positions based on factors such as velocity and current position. There are several situations where integration can be used, such as integrating the velocity based on acceleration and position based on velocity. To promote reuse, a general solution can be developed and then used for both problems. C++ supports modularisation in several ways. The most fundamental structural advantages here are methods and classes. By encapsulating general solutions in classes and general equations into functions, either internal or external to those classes, a library of abstract solutions can be developed to support both this application and others (3). Modularisation also lends itself well to unit testing. By decomposing overarching problems into individual and general tasks, unit tests can easily be developed and applied (4). This decomposition supports the project methodology being applied elsewhere in the application.

CONTENTS
1. 2. 3. 4. 5. 6. Introduction .................................................. 2 Modularisation.............................................. 2 Mathematical Formula ................................. 2 Operating System.......................................... 3 .DLL Files ....................................................... 3 Conclusions ................................................... 3

Bibliography ........................................................... 3

1. INTRODUCTION
The C++ language (1) is under consideration as it is one of the most widely used and powerful tools available. While it can be used on a variety of platforms, the dedicated IDE Visual Studio (2) is the usual way in which to develop with this language. The criteria under consideration range from fundamental technical requirements to more abstract concepts that would benefit this project. Details such as modularisation, support for mathematical formula, operating system compatibility and the ability to develop the solution as a .DLL file will all be considered. The research undertaken will evaluate the way in which the language and platform indicated support the different criteria. A discussion regarding the effectiveness of this support will conclude with the most feasible solution. Should these choices be deemed insufficient for the needs, then other candidates will be

3. MATHEMATICAL FORMULA
It is important to note that this application amounts to a limited scope physics engine simply concerned with the propulsion and steering of a bicycle. This in turn, indicates significant use of mathematical and physical mechanics. The language used to create this application must be

able to allow a developer to make use of mathematical formula in order to successfully model these equations. It should be noted that this is an evaluation of built in functionality and not simply the ability to create the appropriate functionality using the language. Almost any language will support basic arithmetic functions and it is unknown which specific equations will need to be used until further research has been undertaken. The most basic requirements that can be extrapolated initially include the use of trigonometric functions for calculating the gradient of a slope and possibly equations of a circle for use with the steering methods. Pre-existing libraries bundled with the C++ language provide extensive mathematical ability that can be utilised throughout this project (5). This reduces the volume of code to be written and therefor, reduces elements that require testing.

Visual Studio 2010 provides functionality to build a solution that outputs a .DLL file by default (7). As long as the relevant access points in the .DLL are properly exported and the .DLL file is referenced within the existing system, there is no difficulty and only a very small difference in building the project in this manner.

6. CONCLUSIONS
It has been shown that the Visual Studio 2010 package in conjunction with the C++ language is an ideal choice for building this project as it satisfies all of the criteria indicated. Modularisation was an important criterion to consider so that the output of this project will remain a protected, general solution with extended elements pertinent to this specific case. It has been found that C++ meets these needs very well. Support for mathematical formula has been found to be extensive and more than capable for the needs of this project. The development criteria required of the Visual Studio 2010 package indicated that an output be compatible with Microsoft Windows 7 and have the ability to develop the solution as a .DLL file. This paper has documented that the chosen platform does indeed conform to these standards. Based on the satisfactory way in which both the language and platform chosen fulfil the criteria indicated, this project will be developed in C++ using the Visual Studio 2010 package. The solution will be built as a .DLL file and then referenced in the existing simulation package.

4. OPERATING SYSTEM
The system that will be running this project is Windows 7; the output of this project will need to be in a format that this operating system can use. In addition to running the output, it is advisable to develop the solution in the operating system that it is being built for. As Visual Studio 2010 is a Microsoft product, there is no difficulty in it running on their standard operating system (6). It is also clear that the output .DLL file will run with the existing system, this is covered in more detail under the following .DLL Files section.

5. .DLL FILES
This project will generate a suite of classes that provide the functionality specified. Although they could simply be generated as separate .CPP files, in order to provide a high level of modularisation and protection for the software, the solution will be built as a .DLL file that can be used in the existing simulation software.

BIBLIOGRAPHY
1 Microsoft. Microsoft.com. [Online].; 2010 [cited 01 28. Available from: . 2011 http://msdn.microsoft.com/enus/vstudio/hh388567. 2 Microsoft. Microsoft.com. [Online].; 2010 [cited . 2012 01 28. Available from: http://www.microsoft.com/visualstudio/en-

Page 3 of 4

Sean Robinson 2012

gb?wt.mc_id=src-n-gb-Non-loc-F7-NonGA. 3 Balagurusamy E. Object Oriented Programming . with C++. 7th ed. New Delhi: Tata McGraw-Hill; 2007. 4 Michaelis M. Microsoft.com. [Online].; 2005 . [cited 2012 01 28. Available from: http://msdn.microsoft.com/enus/library/ms379625(v=vs.80).aspx. 5 CPlusPlus. www.cplusplus.com. [Online]. [cited . 2012 01 28. Available from:

http://www.cplusplus.com/reference/clibrary/c math/. 6 Catalyst. Catalyst. [Online].; 2012 [cited 2012 01 . 28. Available from:

http://www.catalyst.com/products/sockettools/ windows7.html. 7 Microsoft. Microsoft.com. [Online].; 2012 [cited 01 28. Available from: . 2012 http://msdn.microsoft.com/enus/library/ms235636.aspx.

Page 4 of 4

Sean Robinson 2012

Você também pode gostar