Web Engineering
Buy Rights Online Buy Rights

Rights Contact Login For More Details

More About This Title Web Engineering

English

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 which has not been pervaded by the Internet. Accordingly, modern Web applications are fully-fledged, complex software systems, and in order to be successful their development must be thorough and systematic.

This book presents a new discipline called Web Engineering taking a rigorous interdisciplinary approach to the development of Web applications, covering Web development concepts, methods, tools and techniques. It highlights the need to examine and re-use the body of knowledge found within software engineering and demonstrates how to use that knowledge within the Web environment, putting emphasize on current practices, experiences and pitfalls.

The book is ideal for undergraduate and graduate students on Web-focused or Software Engineering courses, as well as Web software developers, Web designers and project managers.

English

Gerti Kappel is full professor of Business Informatics at Vienna University of Technology.

Birgit Pröll teaches and researches at Johannes Kepler University (JKU), Linz, Austria.

Siegfried Reich is director of Salzburg Research, the non-profit research organization owned by the County of Salzburg.

Werner Retschitzegger is head of Department of Information Systems at JKU.

English

Preface xv

Foreword xvii

1 An Introduction to Web Engineering 1
Gerti Kappel, Birgit Pröll, 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ünbacher

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.1 Requirement Types 32

2.5.2 Notations 34

2.5.3 Tools 36

2.6 Outlook 37

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.3.1 Levels 41

3.3.2 Aspects 42

3.3.3 Phases 42

3.3.4 Customization 43

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

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 85
Gerhard Austaller, Andreas Hartl, Markus Lauff, Fernando Lyardet, Max Mühlhaüser

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.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.1 Introduction 111

6.2 Fundamentals 112

6.2.1 Markup 112

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

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.1 Introduction 133

7.2 Fundamentals 134

7.2.1 Terminology 134

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.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öll, 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

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.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.5.2 Design 237

11.5.3 Implementation 238

11.5.4 Operation 238

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

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.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 359

loading