This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
To gain better knowledge and understanding of my project I have done some background research. This includes researching into methodologies and technologies that can be used for the project and to understand how they work and could be applied to my project to produce the desired solution to the problem.
Software development methodologies is a collection of procedures, techniques, tools and documentation aids which will help systems developers in their efforts to produce a new information system” . In order to approach and manage such a project, a structured methodology is required to produce and achieve the required solution. This is a crucial step to decide which software development approach I will use for this project, before i start the design and the implementation of my system. In this section I analysed different methodologies and choose the one most appropriate for this project.
1.1.1: The Waterfall Model
The Waterfall Model also known as the Information Systems Development Life Cycle (SDLC) is the classic software life cycle model. According to Schach , this model was the only widely accepted life cycle model until the early 1980s. The system development is split into a number of sequential phases. When one phase is completed then the next phase can be started. Each phase transforms a product to produce a new product as output. Then the new product becomes the input of the next phase. The stages of the waterfall model outlined by [David Barron, 2000] are:
Analysis → Requirements Specification → Design → Implementation →Testing→ Maintenance 
The advantages of the waterfall methodology are that it controls schedules, budgets and documentation. There is also more certainty that the project is complete as each stage of the systems life cycle is addressed specially. Disadvantages of the waterfall model are that there is an inability to return to a previous stage, technical problems are not apparent before the test phase; consequently modifications become costly i.e. fixing cost. In situations when it is difficult to determine the requirements or the system is likely to change radically, a different methodology may be better suited.
1.1.2: Structures Systems Analysis and Design Method (SSADM)
SSADM is a mature methodology that has been proven to be successful . The methodology provides detailed rules and procedures to adhere in system design. The stages of the SSADM follow on logically from one another and provide adequate phases to ensure the minimisation of confusion or incorrect requirements early on in the system development lifecycle. This method is one which is based from the waterfall model mentioned earlier. It consists of seven stages set into five main areas:
Feasibility Study → Requirement Analysis →Requirement Specification → Logical System Specification →Physical Design
SSADM, even thought is very similar to the waterfall model, will not be chosen as the methodology does not go beyond the physical design stage unlike waterfall which included several stages after the design.
The prototyping methodology consists of systems analysis, system design and the implementation of a prototype. Within prototyping the software developers build an initial system from a rough specification of the system requirements and present it to the user . The stages are then repeated with the prototype being modified accordingly until the final system is generated. There are two ways of prototyping.
Evolutionary prototyping. The prototypes are developed, reviewed and evolved until they complete the final system.
Throw-away prototyping. The original prototype is created so developers can test methods and discuss these with the end user with a practical example.
Prototyping method allows the end user to be involved in the design of the system while using the prototype, and give feedback to the developer, so a desired system can be built. The disadvantages however of prototyping are: The fast-paced development of the system would prove to be difficult when attempting a systematic design of the system. As the developers are focussing on production of the prototypes there is always a lack of documentations. Prototyping is not appropriate for this project because it would involve the end users, using the system to review and give feedback on the system.
1.1.4: Spiral Model
Boehm's spiral model, introduces an iterative approach to development . This means each stage is revisited and re evaluated a number of times to ensure the system meets the requirements accurately. The Spiral model differs from the waterfall model in that it introduces an iterative approach to system development. Unlike the waterfall model where once a stage is complete it cannot be revisited, the spiral model will repeat each stage several times, each time improving the system. As a model it is able to respond more effectively to the inevitable changes in requirements. It is however mainly used for large complicated products and would be too complex for this project .
1.1.5: Chosen Methodology
The methodologies described above are merely a few of the many different methodologies used in system design and analysis. Having reviewed the Waterfall model has been chosen as the methodology for this project because i think it is the methodology that best suits this project
1.2: Web Development Tools
1.2.1 Server Side
There are a number of server side scripting languages which will allow me to retrieve and update data stored in the database. The technologies that are evaluated are PHP, JSP, Perl and ASP. Each has unique qualities and weaknesses.
PHP is a development from a project called Personal Home Page Tools which was started by Rasmus Lerdort in 1994 . It actually stands for PHP Hypertext Processor. PHP is one of the most popular and favoured scripting language available mainly because it is free.PHP is an open source scripting language which was created from Perl, Java and C. Unlike Perl, PHP was designed especially for the web [Gesker, 2001]. Gesker  quotes from the official PHP website which states that this is advantageous because PHP has “a less confusing and stricter format without losing flexibility” [PHP, 2004c]. PHP also has some disadvantages however, namely in error handling and handling dates. PHP provides support for a myriad of databases including MySQL and MS SQL.
Perl (Practical Extraction and Report Languages) is a much respected open source scripting language, largely due to its maturity, for it was first released in 1987, and its reputation for being stable. It is supported across many different platforms [Perl, 2004]. Its disadvantage however is introduced with the web, for Perl is a tool to assist in system administration” [PHP, 2004c], so it is relatively complex with regards to integration within HTML and databases. Perl gives programmers freedom to develop their own solution in their own way .
Java Server Pages (JSP) was developed by Sun as a response to Microsoft's ASP.JSP is a technology for controlling the content or appearance of web pages through the use of servlets. They are small programs that are specified in the web page and run on the web server to modify the web page before it is sent to the user who requested it.
ASP (Active Server Pages) is a Microsoft developed language for use in dynamic web pages. The script works in the same way as PHP where the script is integrated within HTML code and processing is carried out on the server before being passed as additional HTML statements to the client's browser . ASPs can be generated in and contain multiple language combinations, most commonly VB script or Java script.
126.96.36.199 Chosen server side scripting languages
The server side scripting languages described above are merely a few of the many different server side scripting languages. The choice PHP has been chosen as the server side scripting language for this project . This is due to its relative stability and speed when compared with ASP, and its simplicity when compared with Perl [PHP, 2004c]. PHP advantages also include the fact it is free, it's flexible and fast.
1.2.2 Client Side
188.8.131.52 Cascading Style Sheets
Cascading Style Sheets represent a major breakthrough in how Web-page design work by expanding their ability to control the appearance of web pages. CSS is a style sheet language used to describe the presentation of a document written in a mark-up language. CSS has improved web development enormously, for before CSS web developers had to make pictures of text and buttons to generate an attractive Web page [Lie and Saarela, 1999].CSS allows both the authors and readers of web pages to define colours, fonts, layout, and other aspects of document presentation. One of the biggest advantages with CSS is that it allows multiple style sheets for the same document and allows the developer to link one style sheets to many documents.
184.108.40.206 HTML XHTML
Hypertext Markup Language or HTML for short is the standard markup language used in webpage creation. Using a variety of tags and attributes it describing the format of documents which allow them to be viewed on a computer screen .
XHTML (EXtensible HyperText Markup Language) is an official W3C Recommendation and is aimed to replace HTML, for it is a stricter and cleaner version of HTML” [W3C, 2004c]. XHTML is the same as HTML in terms of capabilities but offers a stricter, more verbose syntax. XHTML is an application of XML and can be seen as a merge of XML and HTML .