Assessment and Evaluation of Software Development Platforms and Languages_3

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.