• No se han encontrado resultados

ANALISIS DE UN ÁREA DEFINIDA

4.2.1 DELIMITACION Y ANÁLISIS DEL AREA DETERMINADA

There have been many approaches to creating programming languages. The first programming language was a series of punch cards that controlled the movement of a linen loom. The punch card approach evolved into a procedural language. This type of language provided a list of instructions that were executed by the machine. There were rudimentary ways of controlling the structure with the introduction of the GoTo command allowing sections of code to be reiterated or omitted. Object- oriented programming enabled extensive reuse of code and enhanced modelling of real world problems. For the Java languages, there are many libraries that fulfil common objectives such as enhancing time capabilities (Joda [233]), providing a collection of enhancements to the official Java SDKs (Apache Commons [234]) or database connection and manipulation management (Hibernate [235]). These libraries are extensively tested and developed by a community of enthusiasts, they substantially reduce the time required to write an application that utilises one of these technologies. As programming languages have evolved, so has the method by which programs are written. Programs have moved from simple single-purpose machine manipulation into complex installations spanning multiple computer sites, controlling many components and high levels of interaction with hardware, software and users. The languages used provide more detailed type-checking and other possible hard

64

to detect bugs during compilation. The languages are clearly structured using standard notations for variables, instances and other components of that language.

As the scope and size of programs have grown exponentially, new methods to allow collaboration between programmers have been created. Development environments grow in capability and complexity with code generation, language inspection and low-level support for many different types of versioning software (CVS [236], Subversion (SVN) [237], git [238] etc). Programming languages such as C, Java and C++ can be developed in a range of editors and even compiled using a choice of compilers, with the end result executable across any other computer that supports the language standard.

Not only has there been development in the languages used and the method by which code is written, but also the methodology has undergone many radical shifts. There are an increasing number of approaches to software engineering such as Prototyping [239], Spiral, Waterfall and Rapid Application Development [240].

When LSL is viewed with reference to the detailed developments in programming languages and coding development aides, it is certainly lacking and may be viewed as a step in the wrong direction. LSL introduces a new programming paradigm. Scripts created for execution in LSL cannot exist in an ethereal state. Each script must be bound to a primitive in the virtual world. LSL allows the rapid creation of code through an intuitive interface and without the installation of any tools. Compilation is done when saving changes to the script and no script can be saved whilst there are errors existing inside of it.

A feature of LSL is the ability to control the actions and interactions of a 3-dimensional object within a virtual world quickly and easily. Many software applications such as DrQueue [241] allow the rendering of more intricate 3-dimensional objects. Enabling extensive interactions with users remains unexposed. LSL is an ideal platform for rapid development of a 3-dimensional representation of a project, allowing it to be interactive with users on a global scale.

Having developed numerous scripts and functions in LSL, it is clear that the main component missing from LSL is the lack of a standard way to call methods in other scripts. This prevents the widespread proliferation of substantial libraries. With the advances that Open Simulator is continuing to make, an example of which is the support for multiple scripting languages, it is unclear how Second Life can continue to compete.

4.12 Summary

This chapter has detailed the technologies and concepts which are used in the WiFiVL. Several simulators have been described with the focus on the network simulator used in the WiFiVL, ns-2. Some of the functionality of ns-2 has been discussed, specifically the wireless networking capabilities. Due to several user interfaces being described in this dissertation, a section on usability principles has

65

been provided. Important heuristics in the field of usability have been detailed and these principles will be referred to in future chapters.

A concept explored in this dissertation is teaching the IEEE 802.11 protocol. This chapter has detailed some aspects of this protocol. An influential technology in this dissertation is the use of multi user virtual environments. This chapter has given a definition and an introduction to the variety of virtual environments available.

66

5 WiFiVL Design and implementation

This section describes the WiFi Virtual Laboratory (WiFiVL) Mark I and II, objectives, development, implementation, deployment and evaluation. The goals of WiFiVL are to:

• provide background and context information on the IEEE 802.11 protocols

• provide a learning environment that allows the construction of WiFi scenarios with minimal usability barriers

• run created scenarios on a high quality simulator

• construct a system that enables future adaptability and reusability • enable anytime access to the learning resource

The goals of WiFiVL specified above seek to enable an exploratory learning approach. Section 2.3.6 suggested task-oriented exploration as the best method for learning. WiFiVL seeks to enable this task- oriented exploration through the provision of a worksheet to provide attainable goals for the students who use the tool. The design of WiFiVL is such as to encourage a open learning environment where learners can formulate principles as suggested in section 2.3.6.

The WiFi Virtual Laboratory has been iteratively developed, utilising feedback from over 100 users and incorporating the heuristics of usability. WiFiVL Mark I utilises a HTML form to enable the user to define a scenario. The scenario is simulated through the reusable framework described in this section and animated to the user through the use of Flash.

WiFiVL Mark II utilises the same framework but contains an alternative user interface. A Rich Internet Application (RIA) is used to give a more intuitive interface to the user. Scenarios are constructed using point and click actions and the playback is viewed in the same container.