The last decade has seen remarkable changes in the way Web applications are developed and the services that are expected from them. The desire to control and manage the size and complexity of Web applications has led to a systematic approach for creating them that is known as Web engineering (Ginige & Murugesan, 2001). A focus on the "essence" rather than "accidents" is crucial to any engineering (McConnell, 1999). The engineering environment of Web applications is in a constant state of technological and social flux. New implementation languages, variations in user agents, demands for new services, and user classes from different cultural backgrounds and age groups, are faced by the Web engineers on a regular basis. For sustainability and evolvability of Web applications, it is critical that they be based upon domain, time- and technology-independent bodies of knowledge. One such invariant is the set of principles that forms the foundation of Web engineering.
Key Terms in this Chapter
Single Source Approach: A technique that encourages once-only-creation of a resource, such as a document, in a manner that it could be reused or repurposed for different contexts.
Formal Specification: A software representation with well-defined syntax and semantics that is usually used to express software requirements or detailed software design.
Delivery Context: A set of attributes that characterizes the capabilities of the access mechanism, the preferences of the user, and other aspects of the context into which a resource is to be delivered.
Descriptive Markup: A model of text that focuses on the description of information using markup delimiters for consumption by both humans and machines.
Semantic Web: An extension of the current Web that adds technological infrastructure for better knowledge representation, interpretation, and reasoning.
Web Engineering: A discipline concerned with the establishment and use of sound scientific, engineering, and management principles and disciplined and systematic approaches to the successful development, deployment, and maintenance of high quality Web applications.
Natural Naming: A technique for using full names based on the terminology of the application domain that consists of one or more words of the natural language instead of acronyms or abbreviations for elements in a software representation.