COMP30351: Engineering Web Applications (2009-2010)
Internet and Web applications are among the most pervasive and visible features of Computer Science/ICT today. It is also a field of continual expansion and its evolution is so fast that it is difficult to keep abreast of its developments. ICT professionals should continually seek to strike the right balance between awareness of relevant advances, adequate understanding of their underlying principles and an appropriate level of competence in their use.
The main aim of the course unit is to provide a carefully selected range of principles, methods and technologies sufficient to enable students to build powerful and well-engineered Web applications. The course is Java-oriented, although many topics are independent of this platform or easily transferable to other platforms e.g. Microsoft .Net with C#. Throughout, a balance is sought between consolidation of foundational material and state-of-the-art technologies. In particular, emphasis is placed on Java Servlet programming, as this may be used quite effectively on its own. Moreover, it is the foundation of other technologies such as JSP and JSF, and a good understanding of the former is essential to the mastery of the latter. Likewise, part of the course will be devoted to principles of good software development, including the practical use of formal specification methods and design principles relevant to Web applications.
The development platform to be used is NetBeans 6.7.1 (or later version), an Open Source Integrated Development Environment (IDE) supplied by an affiliate of Sun Corporation. This offers a wide and well-integrated range of state-of-the-art development tools.
On successful completion of this course unit, students should be able to demonstrate the following Intellectual and Transferable skills.
Read the relevant Java programs and demonstrate understanding by carrying out such tasks as identifying and correcting logical errors, filling gaps, making changes, etc.
Understand a semi-formal program specification for a system and correctly implement it; reason about a program in relation to its specification.
Implement substantial Web applications realizing the 3-tier model using Java Servlet programming and other related technologies listed in the syllabus, such as JSP and JSF.
Demonstrate a full grasp of the theoretical principles underpinning the various technologies listed in the syllabus.
Apply these principles to the development of Web applications and explain how these principles relate to such applications.
Use the program development tool of the course (NetBeans 6.7.1 or later version) effectively.
Establish and apply effective strategies for testing Web application software, including detecting, identifying and correcting errors of all kinds.
Apply a rigorous and systematic approach to the description of any type of system and to problem-solving.
Plan activities akin to software engineering and ensure their execution in accordance with the plan (control).
Understand a specification document correctly and construct an artefact consistent with it.
Assessment of Learning outcomesCoursework: 30 per cent.
Examination: 70 per cent. Two-hour paper including a test of practical knowledge gained through coursework.
If the test mark is less than the coursework mark, the coursework mark will be set to the test mark.
Contribution to Programme Learning OutcomesA1 (DA), A2 (DA), B2 (DA) and C3 (DA)
Java Servlet programming, JavaServer Pages (JSP) and JSP tag libraries.
Review of key features of Java relevant to Web applications.
Using formal methods in the development of Web applications.
Allowing for Java Database Connectivity (JDBC) principles in Web applications.
The Model-View-Controller (MVC) paradigm and various realizations.
Overview of JavaServer Faces (JSF).
JSF managed beans and navigation.
JSF components and tag libraries.
JSF Event handling.
JSF and external sources.
A selection of important special topics will also be considered. Possible examples are session tracking, access control, AJAX, coping with hacking threats such as SQL injection, version control, Web Services using RESTful, etc.
Core TextTitle: Java Servlet programming
Author: Hunter, Jason and William Crawford
Core TextTitle: Core JavaServer faces (3rd edition)
Author: Geary, David and Cay S. Horstmann
Publisher: Prentice Hall
This is the main textbook. Acquisition is essential.