Chapter 4 System
4.2 Requirements and specifications
4.2.2 Non-functional requirements
In addition to the functional requirements, there are non-functional requirements for the system as outlined in the following sections.
4.2.2.1 Portability
The adaptive system should be able to run on a PC browser because it is a web-based system.
4.2.2.2 Reliability
It is very important to handle errors properly so that the application does not freeze if anything goes wrong, e.g. when a user enters incorrect data, there should be a warning message, without freezing, allowing the user another chance to change the data.
4.2.2.3 Performance
It is widely perceived that users do not appreciate programmes that run slow even if they meet the desired requirements. In the designed program it has been ensured that the system exhibits a quick start-up - it takes less than six seconds to start up. This time is measured from the time the user starts the browser until the helpdesk is ready to be
used. Furthermore, a performance-quality-requirement has been put in place to ensure that users find it convenient to use the adaptive system.
4.2.2.4 Security
The system is capable of organising and protecting students‘ data. Students have to log in first to be able to use the system. Username and password management are built into the system.
4.3 Development tools
Database management systems are now a key part of daily life and they are increasingly contributing to the popularity of computers. A database is a set of associated data. According to [222], a Database Management System (DBMS) is a set of applications that provide facilities to make and manage a database. In this case, a number of technologies were employed to develop the dynamic web-based system. The system is web-based with a supporting database.
4.3.1 SQL and MySQL
MySQL is a high performing, reliable, multi-threaded and multiple user open source SQL DBMS. In November 1996 MySQL was made available for public use and ever since has been distributed with its source code. It has established itself as a super fast and trustable DBMS option for budding companies. The MySQL Manual states there are systems of production with more than 50,000,000 records. A transaction is defined as a group of coherent database modifications. An entire set of updates can be instructed to the database and then executed or undone as a unit, as specified by the SQL standard. MySQL only has partial compliance with foreign keys features. In the relational model, a foreign key is a valuable notion, being the way in which relationships are created in a relational database [223].
The system developed in this thesis is developed as a web-based application; therefore, it is not only a HTML and graphics application, it needs to be a website that is dynamic, enabled by integrating particular programming languages that control its flow. The use of a programming language provides handling of connections to the database and enables executing SQL queries for manipulating the database, as well as obtaining
results of certain queries that are then presented through a HTML page and transferred to the client.
4.3.2 PHP
Hypertext Pre-Processor (PHP) is a script language intended directly for web implementation. For implementation on Apache servers, it is the most widely used dynamic Web content technology. It enables the code to be embedded within HTML by writing certain tags. Its wide use also comes from its ease of use and the fact that it is free to obtain. PHP supports a vast amount of widely used databases as well [224].
PHP is the programming language that was selected for the current study due to its foundations as a server-side scripting language designed towards implementing dynamic web pages. The performance of PHP is very high, the development time is relatively short and so is the necessary learning curve. PHP is also compatible with the major platforms (Windows, UNIX and mainframes), and is interoperable with the majority of widely used DBMSs. The combination of all these features makes PHP a very good Web development option.
4.3.3 Technologies
In the current study, Apache was selected due to its flexibility as a web server. Owing partly to being free, Apache has the greatest share of the server market.
Gerken(2000) stated that ―PHP was built with the needs of Web developers in mind [225]. Unlike other cumbersome, overhead-laden approaches, PHP is lightweight and focused on the Web - where it can solve complex problem scenarios quicker and more easily than comparable technologies.‖ My choice of DBMS is MySQL, the most popular Open Source DBMS. In October a Reasoning poll, carried out on the development community, showed that the company analysed the MySQL 4.0.16 production version more specifically. The quality of MySQL code was found to be six times better compared to the propriety code. It is apparent that there is a developing connection between the MySQL development team and that of PHP. All three of PHP, MySQL and Apache server can be used at the university and are free to download for PC home use.
AJAX
The acronym AJAX, meaning Asynchronous JavaScript and XML, is a collective term for a group of Web-based implementation languages for developing dynamic Web- based systems [226, 227], mainly in W3C standards (the specification XMLHttpRequest is created by WHATWG [228]): XHTML, which has more rules and smoother HTML rendering into XML.
CSS [229] is for markup and the addition of styles. JavaScript Document Object Model (DOM) enables the dynamic access and update of a document‘s structure, content and style.
XMLHttpRequest is an object that asynchronously sends and receives data to and from the Web server, minimising the necessity to constantly retrieve resources from the server. As data can be exchanged without demanding that the user reload the whole Web page, segments of data can be exchanged on demand. In addition, web page elements at any level of specificity can be updated to incorporate this. A system using AJAX works much like local applications running on the user‘s platform, which could lead to a distinctive user experience compared to traditional Web browsing.
The term AJAX represents a collection of steps for using certain available technologies, it does not refer to a particular technology. So far, no established standard for AJAX exists, however the introduction of the Open AJAX collective [5], backed by big establishments like Google and IBM, indicates that a standard using AJAX may be ratified shortly.
Both the user and developer can gain from the use of AJAX systems. Web-based systems have the ability to react to several user demands significantly faster and prevent the unnecessary exchange of unmodified data across the connection. In addition, as the technologies of AJAX are open, all JavaScript compatible web browsers support them, independently of Operating System platform; however, discrepancies in the implementation of the XMLHttpRequest amongst browser vendors leads to certain problems, where a number of vendors employ an Active X object whilst others implement a native solution.
In addition to choosing the specific technologies to assist with the development of the system, it was imperative that the researcher devoted time to choosing the appropriate set of learning models to incorporate into the system. Having carried out an in-depth literature review into the various types of learning styles, two learning styles that were deemed compatible were finally chosen, as discussed in Chapter 2. The following section will discuss these in greater detail.