Upload
seantrobinson
View
220
Download
0
Embed Size (px)
Citation preview
8/3/2019 Assessment and Evaluation of Software Development Platforms and Languages_3
1/4
PLATFORM AND LANGUAGE EVALUATION FOR USE IN
THE DEVELOPMENT OF A CONTINUOUS SIMULATION
SEAN ROBINSON
8/3/2019 Assessment and Evaluation of Software Development Platforms and Languages_3
2/4
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. Thisdocument 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.
CONTENTS
1. Introduction .................................................. 2
2. Modularisation .............................................. 2
3. Mathematical Formula ................................. 2
4. Operating System.......................................... 3
5. .DLL Files ....................................................... 3
6. Conclusions ................................................... 3
Bibliography ........................................................... 3
1.INTRODUCTIONThe C++ language (1) is under consideration as it isone 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 systemcompatibility 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
considered and subjected to a similar feasibility
test.
2.MODULARISATIONThe most critical factor in this project, with regardto 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. Whenplotting 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. Themost 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.
3.MATHEMATICAL FORMULAIt 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
8/3/2019 Assessment and Evaluation of Software Development Platforms and Languages_3
3/4
Page 3 of4 Sean Robinson 2012
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 createthe 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.
4.OPERATING SYSTEMThe system that will be running this project is
Windows 7; the output of this project will need tobe 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..DLLFILESThis 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.
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 theproject in this manner.
6.CONCLUSIONSIt 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 willremain 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 becompatible 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.
BIBLIOGRAPHY
1
.
Microsoft. Microsoft.com. [Online].; 2010 [cited
2011 01 28. Available from:
http://msdn.microsoft.com/en-
us/vstudio/hh388567.
2
.
Microsoft. Microsoft.com. [Online].; 2010 [cited
2012 01 28. Available from:
http://www.microsoft.com/visualstudio/en-
8/3/2019 Assessment and Evaluation of Software Development Platforms and Languages_3
4/4
Page 4 of4 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/en-
us/library/ms379625(v=vs.80).aspx.
5
.
CPlusPlus. www.cplusplus.com. [Online]. [cited
2012 01 28. Available from:
http://www.cplusplus.com/reference/clibrary/cmath/.
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
2012 01 28. Available from:http://msdn.microsoft.com/en-
us/library/ms235636.aspx.