Web Engineering

 

Web Engineering > Course Goals

INFSCI 2955 - Course Information

Introduction

The World Wide Web has become a major delivery platform for information resources. Many applications continue to be developed in an ad-hoc way, contributing to problems of usability, maintainability, quality and reliability. This course examines systematic, disciplined and quantifiable approaches to developing of high-quality, reliable and usable web applications. The course introduces the methodologies, techniques and tools that support their design, development, evolution, and evaluation.

Course Description

Digital libraries are complex systems that are intended for use by diverse audiences. A thorough, systematic approach is required for the successful development of digital library projects. Web Engineering introduces a structured methodology utilized in software engineering to Web development projects. The course addresses the concepts, methods, technologies, and techniques of developing Web sites that collect, organize and expose information resources. Topics covered include requirements engineering for Web applications, design methods and technologies, interface design, usability of web applications, accessibility, testing, metrics, operation and maintenance of Web applications, security, and project management. Specific technologies covered in this course include client-side (XHTML, JavaScript, and CSS) and server-side (Perl and PHP).

Course Goals

The goals of the course are as follows:

  • to be able to analyze and design comprehensive systems for the creation, dissemination, storage, retrieval, and use of electronic records and documents.
  • to learn and use some of the languages currently used to manipulate information on the World Wide Web – i.e. Perl, PHP, and Javascript.
  • to learn techniques and evaluation metrics for ensuring the proper operability, maintenance and security of a web application.

Discussion

INFSCI 2955 is a special topics course in Web Engineering for students in the library & information sciences and related disciplines. Web Engineering focuses traditional software engineering to the design, coding, and deployment of web applications. The course is intended for students who are interested in developing or maintaining web applications in the roles of project managers or digital librarians.

Being a graduate level course, INFSCI 2955 is not designed to be purely programming, although the course’s assignments and projects do emphasize programming. The point of this class is to develop a broad understanding of engineering and maintaining web applications at a conceptual level, using programming as a learning tool by applying these concepts to practical assignments.

The first four weeks of the course will focus on the design stages of web application development. We will examine the web application development process at a high level, requirements gathering, modeling applications, and project management. Coupled with previous coursework in system architectures and interactive design, the first part of the course lays the foundation for the remainder of the semester.

The focus of the second four weeks shifts to programming, on both the client and server- sides. Languages and techniques include Javascript and an introduction to AJAX on the client side, Perl and PHP on the server side. While .NET and Java technologies will be discussed contextually, Perl and PHP have been selected as simpler more transparent technologies appropriate for a first introduction. Students with accounts on SIS’s web server, Paradox, have the ability to create CGI or PHP scripts (and thus, do the assignments) without the overhead of having to install and configure their own development environment. Second, the main goal of the course is for students to learn (and experience) the entire web engineering process, not to focus purely on learning a larger enterprise solution.

The final four weeks are devoted to the latter stages of the web application development cycle. Topics include testing, performance measurement, operation and maintenance, and security. During this time, students will also focus their time on working on their final project, which ties together the concepts and techniques learned throughout the course.

Prerequisites

Although there are no formal prerequisites for this class, students are expected to have some programming experience (e.g., C, Java). This course covers many of the topics in Web standards and technologies (INFSCI 2560), but it is different enough that it compliments that course. Students who have had usability and system design (LIBSCI 2635, INFSCI 2470) will be able to apply what they have learned in those courses.