The Discipline of Systematic Development of Web Applications

Werner Retschitzegger

Copyright  2003 by dpunkt.verlag GmbH, Heidelberg, Germany. Title of the German original: Web-Engineering ISBN: 3-89864-234-8 Translation copyright  2006 by John Wiley & Sons Ltd. All rights reserved.

Email (for orders and customer service enquiries): cs-books@wiley.co.uk Visit our Home Page on www.wiley.com

All Rights Reserved. No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except under the terms of the Copyright, Designs and Patents Act 1988 or under the terms of a licence issued by the Copyright Licensing Agency Ltd, 90 Tottenham Court Road, London W1T 4LP, UK, without the permission in writing of the Publisher. Requests to the Publisher should be addressed to the Permissions Department, John Wiley & Sons Ltd, The Atrium, Southern Gate, Chichester, West Sussex PO19 8SQ, England, or emailed to permreq@wiley.co.uk, or faxed to (+44) 1243 770620.

This publication is designed to provide accurate and authoritative information in regard to the subject matter covered. It is sold on the understanding that the Publisher is not engaged in rendering professional services. If professional advice or other expert assistance is required, the services of a competent professional should be sought.

Other Wiley Editorial Offices

John Wiley & Sons Inc., 111 River Street, Hoboken, NJ 07030, USA Jossey-Bass, 989 Market Street, San Francisco, CA 94103-1741, USA Wiley-VCH Verlag GmbH, Boschstr. 12, D-69469 Weinheim, Germany John Wiley & Sons Australia Ltd, 42 McDougall Street, Milton, Queensland 4064, Australia John Wiley & Sons (Asia) Pte Ltd, 2 Clementi Loop #02-01, Jin Xing Distripark, Singapore 129809 John Wiley & Sons Canada Ltd, 22 Worcester Road, Etobicoke, Ontario, Canada M9W 1L1 Wiley also publishes its books in a variety of electronic formats. Some content that appears

in print may not be available in electronic books.

Library of Congress Cataloging-in-Publication Data:

Web engineering / Gerti Kappel . . . [et al.]. p. cm. ISBN-13: 978-0-470-01554-4 ISBN-10: 0-470-01554-3

1. Web services. 2. Web site development. I. Kappel, Gerti. TK5105.88813.W395 2006 006.7 ′ 6–dc22

British Library Cataloguing in Publication Data

A catalogue record for this book is available from the British Library ISBN-13: 978-0-470-01554-4

ISBN-10: 0-470-01554-3 Typeset in 10/12pt TimesNewRomanPS by Laserwords Private Limited, Chennai, India

Printed and bound in Great Britain by Bell & Bain, Glasgow This book is printed on acid-free paper responsibly manufactured from sustainable forestry in which at least two trees are planted for each one used for paper production.

Contents

Preface xv Foreword

xvii

1 An Introduction to Web Engineering

1 Gerti Kappel, Birgit Pr ¨oll, Siegfried Reich, Werner Retschitzegger

1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2 Categories of Web Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.3 Characteristics of Web Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.3.1 Product-related Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.3.2 Usage-related Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.3.3 Development-related Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.3.4 Evolution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

1.4 Objectives and Structure of the Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2 Requirements Engineering for Web Applications

23 Paul Gr ¨unbacher

2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.2 Fundamentals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.2.1 Where Do Requirements Come From? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.2.2 Requirements Engineering Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

2.3 RE Specifics in Web Engineering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2.4 Principles for RE of Web Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

2.5 Adapting RE Methods to Web Application Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.5 Adapting RE Methods to Web Application Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

2.5.1 Requirement Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3 Modeling Web Applications

39 Wieland Schwinger, Nora Koch

3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

3.2 Fundamentals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

3.3 Modeling Specifics in Web Engineering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

3.4 Modeling Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

3.5 Content Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

3.5.1 Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

3.5.2 Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

3.6 Hypertext Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

3.6.1 Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

3.6.2 Hypertext Structure Modeling Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

3.6.3 Access Modeling Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

3.6.4 Relation to Content Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

3.7 Presentation Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

3.7.1 Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

3.7.2 Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

3.7.3 Relation to Hypertext Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

3.8 Customization Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

3.8.1 Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

3.8.2 Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

3.8.3 Relation to Content, Hypertext, and Presentation Modeling . . . . . . . . . . . . . . . . . . 58

3.9 Methods and Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

Contents vii

3.9.1 Modeling Methods: An Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

3.9.2 Model-Driven Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

3.9.3 Tool Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

3.10 Outlook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

4 Web Application Architectures

65 Christian Eichinger

4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

4.2 Fundamentals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

4.2.1 What is an Architecture? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

4.2.2 Developing Architectures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

4.2.3 Categorizing Architectures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

4.3 Specifics of Web Application Architectures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

4.4 Components of a Generic Web Application Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

4.5 Layered Architectures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

4.5.1 2-Layer Architectures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

4.5.2 N -Layer Architectures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

4.6 Data-aspect Architectures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

4.6.1 Database-centric Architectures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

4.6.2 Architectures for Web Document Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

4.6.3 Architectures for Multimedia Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

4.7 Outlook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

5 Technology-aware Web Application Design

Gerhard Austaller, Andreas Hartl, Markus Lauff, Fernando Lyardet, Max M ¨uhlh ¨auser

5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

5.2 Web Design from an Evolutionary Perspective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

5.2.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

5.2.2 Information Design: An Authoring Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

5.2.3 Software Design: A Programming Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

5.2.4 Merging Information Design and Software Design . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 5.2.4 Merging Information Design and Software Design . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

5.2.5 Problems and Restrictions in Integrated Web Design . . . . . . . . . . . . . . . . . . . . . . . . 94

5.2.6 A Proposed Structural Approach. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

5.3 Presentation Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

5.3.1 Presentation of Nodes and Meshes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

5.3.2 Device-independent Development Approaches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

5.4 Interaction Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

5.4.1 User Interaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

5.4.2 User Interface Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

5.4.3 Navigation Design. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

5.4.4 Designing a Link Representation: The Anchor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

5.4.5 Designing Link Internals: The URL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

5.4.6 Navigation and Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

5.4.7 Structured Dialog for Complex Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

5.4.8 Interplay with Technology and Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

5.5 Functional Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

5.5.1 Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

5.5.2 Communication Paradigms and Middleware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

5.5.3 Distributed Cross-corporate Web Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

5.6 Outlook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

5.6.1 Context-aware Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

5.6.2 Device-independent Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

5.6.3 Reusability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

5.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

6 Technologies for Web Applications 111 Martin Nussbaumer, Martin Gaedke

6.2.2 Hypertext and Hypermedia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

6.3 Client/Server Communication on the Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

6.3.1 SMTP – Simple Mail Transfer Protocol. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

6.3.2 RTSP – Real Time Streaming Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

6.3.3 HTTP – HyperText Transfer Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

6.3.4 Session Tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

Contents ix

6.4 Client-side Technologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

6.4.1 Helpers and Plug-ins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

6.4.2 Java Applets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

6.4.3 ActiveX Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

6.5 Document-specific Technologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

6.5.1 HTML – Hypertext Markup Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

6.5.2 SVG – Scalable Vector Graphics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

6.5.3 SMIL – Synchronized Multimedia Integration Language. . . . . . . . . . . . . . . . . . . . 118

6.5.4 XML – eXtensible Markup Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

6.5.5 XSL – eXtensible Stylesheet Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

6.6 Server-side Technologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

6.6.1 URI Handlers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

6.6.2 Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

6.6.3 Middleware Technologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

6.7 Outlook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

7 Testing Web Applications 133 Christoph Steindl, Rudolf Ramler, Josef Altmann

7.2.2 Quality Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

7.2.3 Test Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

7.2.4 Test Levels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

7.2.5 Role of the Tester . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

7.3 Test Specifics in Web Engineering. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

7.4 Test Approaches. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

7.4.1 Conventional Approaches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

7.4.2 Agile Approaches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

7.5 Test Scheme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

7.5.1 Three Test Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

7.5.2 Applying the Scheme to Web Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

7.5.3 Examples of Using the Test Scheme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

7.6 Test Methods and Techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 7.6 Test Methods and Techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

7.6.1 Link Testing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

7.6.2 Browser Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

7.6.3 Usability Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

7.6.4 Load, Stress, and Continuous Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

7.6.5 Testing Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

7.6.6 Test-driven Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

7.7 Test Automation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

7.7.1 Benefits and Drawbacks of Automated Tests. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

7.7.2 Test Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

7.7.3 Selecting Test Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

7.8 Outlook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

8 Operation and Maintenance of Web Applications 155 Arno Ebner, Birgit Pr ¨oll, Hannes Werthner

8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

8.2 Challenges Following the Launch of a Web Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

8.3 Promoting a Web Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

8.3.1 Newsletters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

8.3.2 Affiliate Marketing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

8.3.3 Search Engine Marketing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

8.3.4 Content-related Marketing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

8.3.5 Domain Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

8.4 Content Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

8.4.1 Content Update Rate and Demand on Currency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

8.4.2 Content Syndication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

8.5 Usage Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

8.5.1 Usage Analysis Techniques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

8.5.2 Statistical Indicators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

8.5.3 User Behavior Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168

8.6 Outlook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

9 Web Project Management 171 Herwig Mayr

9.1 From Software Project Management to Web Project Management . . . . . . . . . . . . . . . . . . 171

Contents xi

9.1.1 Objectives of Software Project Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

9.1.2 The Tasks of Software Project Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172

9.1.3 Conflicting Areas in Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173

9.1.4 Specifics of Web Project Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173

9.2 Challenges in Web Project Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

9.2.1 General Challenges in Software Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

9.2.2 Development-related Challenges in Web Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . 176

9.2.3 Product-related Challenges in Web Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179

9.3 Managing Web Teams. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182

9.3.1 Software Development: A Human-centered Task . . . . . . . . . . . . . . . . . . . . . . . . . . . 182

9.3.2 The Web Project Team . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183

9.3.3 The Web Project Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184

9.4 Managing the Development Process of a Web Application . . . . . . . . . . . . . . . . . . . . . . . . . . 185

9.4.1 Deploying the Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185

9.4.2 Measuring Progress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188

9.4.3 Project Risks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190

9.4.4 Risk Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193

9.5 Outlook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194

10 The Web Application Development Process 197 Gregor Engels, Marc Lohmann, Annika Wagner

10.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

10.2 Fundamentals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198

10.3 Requirements for a Web Application Development Process . . . . . . . . . . . . . . . . . . . . . . . . . 201

10.3.1 Handling Short Development Cycles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201

10.3.2 Handling Changing Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201

10.3.3 Releases with Fixed Deadlines and Flexible Contents . . . . . . . . . . . . . . . . . . . . . . . 203

10.3.4 Parallel Development of Different Releases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203

10.3.5 Reuse and Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204

10.3.6 Adapting to Web Application’s Complexity Level . . . . . . . . . . . . . . . . . . . . . . . . . . 204

10.3.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

10.4 Analysis of the Rational Unified Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

10.4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

10.4.2 General Suitability for Web Application Development . . . . . . . . . . . . . . . . . . . . . . 208

10.4.3 Does RUP meet the Requirements of Web Applications? . . . . . . . . . . . . . . . . . . . 209 10.4.3 Does RUP meet the Requirements of Web Applications? . . . . . . . . . . . . . . . . . . . 209

10.5 Analysis of Extreme Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

10.5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

10.5.2 Does XP meet the Requirements of Web Application Development? . . . . . . . . 214

10.6 Outlook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216

11 Usability of Web Applications 219 Martin Hitz, Gerhard Leitner, Rudolf Melcher

11.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219

11.2 What is Usability? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220

11.3 What Characterizes the Usability of Web Applications? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222

11.4 Design Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225

11.4.1 Response Times . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225

11.4.2 Interaction Efficiency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225

11.4.3 Colors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226

11.4.4 Text Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227

11.4.5 Page Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228

11.4.6 Navigation Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228

11.4.7 Multiculturality. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230

11.4.8 Confidence-generating Measures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231

11.4.9 Other Design Criteria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232

11.5 Web Usability Engineering Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232

11.5.1 Requirements Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234

11.6 Web Usability Engineering Trends . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239

11.6.1 Usability Patterns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239

11.6.2 Mobile Usability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241

11.6.3 Accessibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243

11.7 Outlook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245

12 Performance of Web Applications 247 Gabriele Kotsis

12.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247

12.2 What Is Performance? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248

Contents xiii

12.3 What Characterizes the Performance of Web Applications? . . . . . . . . . . . . . . . . . . . . . . . . . 250

12.4 System Definition and Indicators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251

12.5 Characterizing the Workload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252

12.6 Analytical Techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254

12.6.1 Operational Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254

12.6.2 Queuing Networks and Simulation Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255

12.6.3 Measuring Approaches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257

12.7 Representing and Interpreting Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258

12.8 Performance Optimization Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259

12.8.1 Acceleration Within a Web Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260

12.8.2 Reducing Transmission Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261

12.8.3 Server Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263

12.9 Outlook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263

13 Security for Web Applications 265 Martin Wimmer, Alfons Kemper, Stefan Seltzsam

13.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265

13.2 Aspects of Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266

13.3 Encryption, Digital Signatures and Certificates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268

13.3.1 Symmetric Cryptography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268

13.3.2 Asymmetric Cryptography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270

13.3.3 Digital Signatures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271

13.3.4 Certificates and Public Key Infrastructure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272

13.4 Secure Client/Server-Interaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272

13.4.1 Point-to-Point Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272

13.4.2 End-to-End Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274

13.4.3 User Authentication and Authorization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276

13.4.4 Electronic Payment Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278

13.5 Client Security Issues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279

13.5.1 Preserving Privacy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279

13.5.2 Mobile Code Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281

13.5.3 Phishing and Web Spoofing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282

13.5.4 Desktop Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283

13.6 Service Provider Security Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 13.6 Service Provider Security Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285

13.6.1 Cross-Site Scripting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285

13.6.2 SQL Injection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287

13.6.3 Security of CGI Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289

13.6.4 Service Availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290

13.6.5 Host Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291

13.7 Outlook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292

14 The Semantic Web – The Network of Meanings in the Network of Documents

293 Wernher Behrendt, Nitin Arora

14.1 Fundamentals of the Semantic Web. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293

14.1.1 The Role of Software Agents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294

14.1.2 The Role of Semantic Markup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296

14.1.3 The Role of Ontologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297

14.2 Technological Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298

14.2.1 Agents According to the FIPA Standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298

14.2.2 Ontologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300

14.2.3 Semantic Markup on the Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303

14.3 Specifics of Semantic Web Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308

14.3.1 Semantic Markup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308

14.3.2 Agents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309

14.3.3 Ontologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309

14.3.4 Semantic Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310

14.3.5 Integration into Web Engineering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313

14.4 Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314

14.5 Outlook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 Glossary

317 Author Biographies

329 Bibliography

337 Credits

357 Index

Preface

New scientific disciplines don’t emerge overnight. Years pass from the first manifestation of a technical term to the establishment of a curriculum, even in the fast-paced field of informatics. What’s often required is the growing together of different communities, and that just takes time.

Web Engineering as a scientific discipline follows this model and is directed towards engineering-type development of Web applications. Nearly one decade has passed from the first workshops about this issue at the ICSE Conference 1 and the WWW Conference 2 in 1998 to the current curricula discussions. This book contributes to the establishment of the Web Engineering discipline by bringing together various communities with their modeling, programming, and design backgrounds. Our goal was to jointly work out the essential characteristics of Web applications and to take a comprehensive view on the Web Engineering issues based on traditional software engineering activities.

What do we need a separate Web Engineering discipline for? Current practice towards the development of Web applications is often characterized by an ad-hoc approach, lacking engineering-type development methods. Since the complexity and the pace of the proliferation of Web applications increase simultaneously, this approach has a negative impact on quality. But are these really new facets of software development? Isn’t any software development project accompanied by intense deadline pressure, changing customer requirements, developers lacking experience, etc. from its very beginning? Yes, and no! The above facets are well-known in the software development world. And still, there have always been huge differences in projects, depending on the application domain (information systems, real-time systems, etc.). In this sense, Web applications represent a new application domain with its very own challenges to software development.

This book gives a comprehensive and practice-oriented introduction to the Web Engineering discipline and tries to address the problem of poor methodology. Building on the lifecycle of

a Web application, it introduces concepts, techniques, methods, and tools for the systematic development of Web applications. This book is for readers in universities and the industry alike, who are interested in the engineering-type development of Web applications beyond glazing user literature. The book addresses scientists, lecturers, and students eager to gain a current insight into the issue, and project managers and application developers in search for solutions to specific problems.

1 International Conference on Software Engineering, ( http://www.icse-conferences.org ). 2 International World Wide Web Conference, ( http://www.iw3c2.org ) 1 International Conference on Software Engineering, ( http://www.icse-conferences.org ). 2 International World Wide Web Conference, ( http://www.iw3c2.org )

a benefit, though we have tried to keep each chapter self-contained. Our readers can find material additional to the book on the accompanying site at ( http://www.web-engineering.at ). The editors welcome suggestions or comments.

In closing, we would like to thank all those people involved for their important contributions to help this book come into being. First and foremost, we thank the participating authors who are all proven experts in their respective fields. Their valuable specialist knowledge, motivation, and enthusiastic readiness have helped keep within the unusually tight timeframe for such a book project.

We particularly thank Jonathan Shipley, David Barnard and all their colleagues at Wiley engaged in this book project for their great support and assistance. We would also like to express our thanks to all the anonymous experts who have reviewed this book for their constructive comments. We are grateful to Christa Preisendanz of dpunkt.verlag for establishing contact with Wiley and Angelika Shafir for the excellent translation of the German version of this book. We owe special thanks to Martina Umlauft, for carefully proof-reading the whole book, providing us with valuable comments that led to significant improvements. Our special appreciation goes to Birgit Hauer, who contributed greatly to making this book a success by her tireless work “in the background”.

And last but not least, we gratefully acknowledge the support and help of all other “good spirits” in alphabetical order: Werner Moser, Hubert Platzer, Sonja Willinger, and Herbert Zaunmair.

Gerti Kappel, Birgit Pr¨oll, Siegfried Reich, and Werner Retschitzegger Vienna, Linz, and Salzburg, March 2006 Gerti Kappel, Birgit Pr¨oll, Siegfried Reich, and Werner Retschitzegger Vienna, Linz, and Salzburg, March 2006

Foreword

We may eventually achieve an engineering discipline that will allow us to build, operate and maintain large hypermedia sites in a systematic, disciplined and quantifiable way.

This sentence is taken from the foreword to a book I co-authored back in 1998. The book is entitled Hypermedia – An Engineering Approach and the statement was made by John B. Smith, Professor at Chapel Hill NC.

The Web, Web applications and the Web community overall have certainly come a long way since then: with the Internet bubble burst, the Web 2.0 emerging, and the vision of the Semantic Web on the horizon, it is ever more important to move away from ad hoc approaches and to follow engineering principles. Therefore, this textbook is particularly appropriate at this time.

The book is also exceptionally interesting as it builds on existing software engineering knowledge: to me, this more evolutionary rather than revolutionary approach fits well the overall development of the community in the last decade. The authors based the structure of this book on the well-established “Guide to the Software Engineering Body of Knowledge”, i.e. the individual chapters follow the structuring of traditional Software Engineering. The first (and introductory) chapter provides a definition for Web Engineering as a discipline, it categorises the various types of Web applications and it presents the characteristics of Web applications. Each of the following contributions then focuses on the special characteristics of the relevant topic in relation to the Web.

The Web is, at the infrastructure level, an engineered space created via formally specified languages and protocols. However, as humans are involved in the actual creation of pages and using the links between them, their interactions form emergent patterns in the Web at a macroscopic scale. These human interactions are in turn, governed by social conventions, policies and laws. The development of Web applications is as a result a highly complex business and it is essential that the engineering that underpins this development is very sound. Textbooks such as this one to allow students and practitioners alike to engineer high-quality Web applications based on tried and trusted software engineering principles are therefore of the utmost importance.

Prof. Wendy Hall March 2006, Southampton, UK

1 An Introduction to Web Engineering

Gerti Kappel, Birgit Pr ¨oll, Siegfried Reich, Werner Retschitzegger

Modern Web applications are full-fledged, complex software systems. Therefore, the development of Web applications requires a methodologically sound engineering approach. Based on Software Engineering, Web Engineering comprises the use of systematic and quantifiable approaches in order to accomplish the specification, implementation, operation, and maintenance of high- quality Web applications. We distinguish Web applications from the viewpoints of development history and complexity: Web applications can have document centric, interactive, transactional, or ubiquitous characteristics, or even features of the semantic Web. The particular requirements of Web Engineering result from the special characteristics of Web applications in the areas of the software product itself, its development, and its use. Evolution is a characteristic that encompasses these three areas.

1.1 Motivation

The World Wide Web has a massive and permanent influence on our lives. Economy, industry, education, healthcare, public administration, entertainment – there is hardly any part of our daily lives that has not been pervaded by the World Wide Web, or Web for short (Ginige and Murugesan 2001b). The reason for this omnipresence lies especially in the very nature of the Web, which is characterized by global and permanent availability and comfortable and uniform access to often widely distributed information producible by anyone in the form of Web pages (Berners-Lee 1996, Murugesan et al. 1999). Most probably you came across this book by entering the term “Web Engineering” into a search engine. Then, you might have used a portal for comparing offers of different vendors and finally, you may have bought the book using an online shop.