Textbook
Web Engineering: The Discipline of Systematic Development of Web ApplicationsISBN: 978-0-470-01554-4
Paperback
384 pages
June 2006, ©2006
This is a Print-on-Demand title. It will be printed specifically to fill your order. Please allow an additional 10-15 days delivery time. The book is not returnable.
|
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