Table of Contents

CHAPTER 1 Web-Based Systems
The Web
Web Applications
Let's Introduce a Case Study
Are WebApps Really Computer Software?
Are the Attributes of WebApps Different Than the Attributes of Conventional Software?
What Categories Do We Encounter as a WebApp Evolves?
WebApps-A Philosophical View

CHAPTER 2 Web Engineering
What Is Web Engineering?
What Is Meant by Agile?
What Is a WebE Framework?
What Principles Should You Follow as You Adapt the Framework?
Is There Any Merit in an Old-School Approach?
The Components of Web Engineering
How Does Software Engineering Come into Play?
Why Is WebE Process Agility So Important?
What WebE Methods Reside within the Process Framework?
Isn't Web Engineering All about Tools and Technology?
Web Engineering Best Practices
Where We've Been … Where We're Going

CHAPTER 3 A Web Engineering Process
Defining the Framework
Incremental Process Flow
How Are Framework Activities Conducted?
How Is the Framework Refined?
Generic Actions and Tasks for the WebE Framework
How Should the Communication Activity Be Refined?
What Tasks Are Required to Develop an Increment Plan?
What Is Modeling?
What Analysis Modeling Tasks Can Be Applied?
What Are the Elements of a Design Model?
What Design Modeling Tasks Can Be Applied?
What Construction Tasks Should Be Applied?
How Do We Deploy a WebApp Increment?
Umbrella Activities
How Should a WebE Team Manage Change?
How Do We Ensure That an Increment Exhibits Quality?
How Do We Manage Risk?
How Should We Manage the Work?
Where We've Been … Where We're Going

CHAPTER 4 Communication
The Communication Activity
Who Should We Communicate With?
What Techniques Can We Use for Communication?
Won't There Be Different Viewpoints?
What Questions Should We Ask?
How Do We Encourage Collaboration?
What Happens Before an Elicitation Session?
How Do Stakeholders Prepare?
What Tasks Are Performed During an Elicitation Session?
What Are the User Categories for the WebApp?
How Are Content and Functional Requirements Identified?
How Are Constraints and Performance Issues Isolated?
What Are Usage Scenarios?
What Are Use Cases?
How Is a Use Case Created?
Identifying WebApp Increments
Where We've Been … Where We're Going

CHAPTER 5 Planning
Understanding Scope
What Communication Work Products Are Relevant?
What if Further Details Are Required to Understand the Increment?
What if Gaps Still Exist in Your Understanding?
Refining Framework Activities
What Actions and Tasks Are Required?
What Work Products Will Be Produced?
How Will We Assess Quality?
How Will We Manage Change?
Building a WebE Team
How Do We Recognize a “Good” WebE Team?
Why Don't Teams Jell and What Can Be Done to Help?
Can a WebE Team Manage Itself?
How Do We Build a Successful Team?
What Are the Characteristics of a Good Team Leader?
Managing Risk
How Do We Identify Risks?
How Do We Evaluate Risks?
How Do We Develop Contingency Plans?
Developing a Schedule
What Is Macroscopic Scheduling?
What Is Increment Scheduling?
How Do We Estimate Effort and Time?
How Do We Represent Task Interdependencies?
Managing Quality
What Quality Assurance Mechanisms Can the Team Use?
What Are the Mechanics of a Pair Walkthrough?
Do Criteria for Quality Exist for WebApps?
Managing Change
How Should Criticality and Impact of a Change Be Assessed?
When Do We Delay Making the Change?
Should Changes Be Made to All Related Work Products?
Tracking the Project
Are There Any Macroscopic Indicators of Progress Problems?
What Criteria Are Used to Track Progress?
Outsourcing WebE Work
How Do We Initiate an Outsourced Project?
How Do We Select Candidate Outsourcing Vendors?
How Can We Assess the Validity of Price Quotes and the Reliability of Estimates?
What Level of Project Management Will Be Needed?
How Do We Assess the Schedule and Manage Scope?
Where We've Been … Where We're Going

CHAPTER 6 The Modeling Activity
Modeling as a Concept
How Do We Judge the Usefulness of a Model?
Can Models Be Used to Understand Business Constraints?
The Models We Create
What Does the Process Tell Us about Modeling?
What Does the WebApp Tell Us about Modeling?
Modeling Frameworks
Is There a Modeling Framework for the Web?
How Does Modeling Relate to the WebE Process?
Modeling Languages
What Capabilities Should Exist to Model Functionality?
What Capabilities Should Exist to Model Information Content?
What Generic Capabilities Should Exist in a Modeling Language?
Existing Modeling Approaches
Where We've Been … Where We're Going

CHAPTER 7 Analysis Modeling for WebApps
Understanding Analysis in the Context of WebE
How Much Analysis Is Enough?
Can We Analyze Using a Prototype?
Is Analysis Distinct from Design?
Analysis Modeling for WebApps
What Are the Inputs to Analysis Modeling?
What Are the Outputs from Analysis?
What Analysis Tasks Can and Should We Carry Out?
What Tools Can We Use to Help Us Model?
How Do We Decide Whether Modeling Is Necessary and Which Approach Is Best?
Understanding the Users
Why Is It Necessary to Revisit the User Hierarchy?
Do We Apply Usage Scenarios As Is?
The Content Model
What Are the Structural Elements of the Content Model?
What Is an Information Exchange and How Is It Represented?
How Are Content Objects Defined?
Is There a Simple Way to Depict Content Relationships and Content Hierarchy?
How Do We Select and Represent Analysis Classes for WebApps?
The Interaction Model
Where Do Use Cases Come into Play?
What Are Sequence Diagrams and When Should They Be Developed?
How Do State Diagrams Represent the Behavior of a WebApp?
Do We Really Need Use Cases, Sequence Diagrams, and State Diagrams to Fully Describe the Interaction Model?
Why Is It a Good Idea to Build an Interface Prototype?
The Functional Model
The Configuration Model
Relationship-Navigation Analysis
How Do We Establish Relationships Between Content Objects and Functionality?
How Do We Analyze Navigational Requirements?
Where We've Been … Where We're Going

CHAPTER 8 WebApp Design
Design for WebApps
What Does a WebApp Designer Need to Know?
What Is Logical Design?
What Is Physical Design?
What Information Is Created as a Consequence of Design?
Design Goals
Design and WebApp Quality
How Do Users Perceive Quality?
Is There a User-Centric Model for Assessing Design Quality?
What Is a Quality Framework?
Is There a Way to Assess Content Quality?
Is There a Single Quality Checklist I Can Use?
The Design Process
What Are the Elements of WebApp Design?
What Are the Characteristics of the Design Process?
What Does an Incremental WebE Process Imply for the Design Activity?
Initial Design of the Conceptual Architecture
Initial Design of the Technical Architecture
Where We've Been … Where We're Going

CHAPTER 9 Interaction Design
Interface Design Principles and Guidelines
What Principles Do We Apply to Design Effective Interfaces?
What about Some Pragmatic Design Guidelines?
Interface Design Workflow
Interface Design Preliminaries
How Do We Understand the Characteristics of WebApp Users?
How Do We Elaborate the Content Objects That Are Identified?
What Tasks Do the Users Perform?
How Do We Elaborate the Tasks That Are Identified?
How Do We Design for Different Users with Different Roles?
How Is Content Integrated into the Interface Description?
Interface Design Steps
How Are Interface Objects and Actions Translated into a Layout?
What about the Design of Navigation Mechanisms for the Interface?
Why Is Interface Consistency So Important?
Aesthetic Design
How Do We Create an Aesthetically Pleasing Layout?
What Leads to an Effective Graphic Design?
Design Issues
What Factors Affect Response Time and What Can We Do to Improve It?
How Should We Design “Help” Facilities?
How Should the Interface Handle Errors?
What Is “Accessibility” and How Does It Apply to Interface Design?
What Is “Internationalization” and How Does It Apply to WebApps?
Where We've Been … Where We're Going

CHAPTER 10 Information Design
Information Architecture
What Is an Information Architecture?
What Are the Elements of an Information Architecture?
What Are the Characteristics of a Good Information Architecture?
How Do We Develop an Information Architecture?
Organizing Content
Structuring the Information Space
What Information Structures Are Possible?
What Makes a Good Structure?
Blueprints: Adding Detail to a Structure
What Form Does a Blueprint Take?
Accessing Information
How Do We Ensure That the User Doesn't Get Lost and Does Understand Context?
How Do We Help the User Move Through the Information Structure?
What Guidelines Are Available for Implementing Searching Mechanisms?
Can Searching Mechanisms Lead to Problems?
Wireframe Models
Navigational Design: Creating the Detailed Structure
How Have Information Design and Navigation Design Models Evolved?
How Is the RMM Model Used for Navigation Design?
How Can WebML Be Used to Create a Navigation Design?
Is It Possible to Create Models That Link Content and Functionality?
Does The Structure of the Web Itself Have an Impact?
Summarizing the Design Process
Where We've Been … Where We're Going

CHAPTER 11 Functional Design
WebApp Functionality
How Has WebApp Functionality Changed over Time?
The Nature of WebApp Functionality
What Are Typical Examples of Functionality?
Can Functionality Be Categorized?
Is It Always Possible to Distinguish Between Information or Function?
Functional Design in the Design Process
What Are the Elements of a Functional Design Process?
How Much Functional Design Is Enough?
How Would Initial Functional Design Be Conducted for SafeHomeAssured.Com?
Functional Architecture
What Does a Functional Architecture Look Like?
How Do We Develop the Functional Architecture?
What About Functionality for Exception Handling?
Can Architectural Patterns Be Used During Functional Design?
Detailed Functional Design
How Can WAE Modeling Be Used for Detailed Design?
Why Is WebML Appropriate for Workflow Modeling?
State Modeling
Where We've Been … Where We're Going

CHAPTER 12 Construction and Deployment
Construction and Deployment within the WebE Process
What Is the Interplay Between Construction and Deployment?
What Role Do Deployment Environments Play?
Is There a Generic Set of Construction Tasks?
What Is “Refactoring” and How Should It Be Applied?
Construction Principles and Concepts
Is There a Generic Set of Deployment Tasks?
What Deployment Principles Should Guide the WebE Team?
How Are Version Control and CMS Used?
Construction and the Use of Components
What Is a Generic Component?
How Is an Object-Oriented Component Defined?
How Is a Conventional Component Defined?
What Are the Characteristics of a “Good” Component?
Component-Level Design Guidelines
Component Design Steps
Where We've Been … Where We're Going

CHAPTER 13 Design Patterns

Patterns: Understanding the Concept
What Exactly Is a Pattern?
What Does a Pattern Look Like?
WebApp Patterns: Design Focus and Granularity
How Is Design Focus Used to Identify Patterns?
Why Is Granularity an Important Characteristic of a Pattern?
Pattern Repositories
What Is a Patterns Repository?
What Patterns Sources Are Available for Web Engineers?
Can a WebE Team Create Its Own Set of Patterns?
How Do We Find and Use Patterns?
Example Patterns
Is It Possible to Define Patterns That Address Problems at the Business Level?
Since Interaction Is Pervasive, There Must Be Many Interaction Patterns. True?
What Navigation Patterns Are Available?
Where Do Content and Presentation Patterns Fit In?
Where We've Been … Where We're Going

CHAPTER 14 Technologies and Tools

General Issues
How Does Separation of Concerns Impact Tools and Technologies?
Which Technology-Open Source or Proprietary?
What Is the Impact of Application Categories on WebE Technology?
Implementation Tools and Technologies
What Are Application Frameworks?
How Are Content Management Systems and Version Control Technologies Applied?
What if a Search Capability Must Be Provided with Our WebApp?
Development Tools and Technologies
Can I Acquire Tools That Will Help Me with the Modeling Activity?
Are There Testing Tools That Focus Specifically on WebApps?
Are There Tools That Can Assist with the Management of the WebE Process?
Where We've Been … Where We're Going

CHAPTER 15 Testing WebApps

Testing Concepts
What Are the “Dimensions” of Quality?
What Types of Errors Occur within a WebApp Environment?
What Testing Strategy Should We Apply?
How Much Test Planning Is Necessary?
The Testing Process-An Overview
Content Testing
What Are the Objectives of Content Testing?
How Is Database Testing Used to Validate Content?
User Interface Testing
Is There a Viable Interface Testing Strategy?
How Do We Test Specific Interface Mechanisms?
How Do We Test Interface Semantics?
Usability Testing
Compatibility Testing
Component-Level Testing
Navigation Testing
How Do We Test Navigation Syntax?
How Do We Test Navigation Semantics?
Configuration Testing
How Do We Test the Server Side?
How Do We Test the Client Side?
Security and Performance Testing
How Do We Determine if a Webapp Is Secure?
How Should We Test WebApp Performance?
What Are the Objectives of Performance Testing?
How Does Load Testing Assess Performance?
How Does Stress Testing Assess Performance?
Where We've Been … Where We're Going

CHAPTER 16 Change and Content Management
What Are the Attributes of a “Change”?
Why Are Changes Requested?
What Elements of the WebApp Change?
Change Management for Web Engineering
Why Do We Need Change Management?
What Issues Should We Consider?
What Is the Basic Change Management Activity?
How Should We Identify the Objects That Will Change?
How Should We Control a Change That Is about to Be Made?
How Do We Manage Different Versions of a WebApp or Its Components?
How Can a WebE Team Ensure That the Change Has Been Properly Implemented?
How Do We Let Stakeholders Know What Changes Have Been Made?
Content Management
How Is a Content Management System Used?
What Are the Major Elements of a CMS?
Criteria for Implementing a CMS
How Does Volume Affect Content Management?
Does the Population of Content Creators Have an Effect on CMS?
How Does the Change Volume Affect the Formality of Change Management?
How Does Publication Volume Affect Content Management Formality?
Where We've Been … Where We're Going

CHAPTER 17 Future Directions

The Changing Nature of the Web and WebApps
How Will Delivery of Web-Based Content and Functionality Change?
How Will WebApps Change?
What Will Web Engineers Have to Do to Accommodate These Changes?
Can the Web Serve as a Platform for Application Software?
Can the Future Web Be an OS?
How Will the “Semantic Web” Change Things?
Evolving Web Technologies and Web 2.0
What Is Web 2.0?
What Technologies Support Web 2.0?
What Are Some Key Issues That Should Be Considered as Technology Evolves?
What's Next for Web 2.0?
One View of the Future
The Changing Nature of Web Engineering