Web Engineering
Web Engineering
هندسة الويب هي تطبيق مناهج (المفاهيم واألساليب والتقنيات واألدوات) قابلة للقياس الكمي وذلك لتحليل
.المتطلبات من حيث التكلفة والتصميم والتنفيذ واالختبار والتشغيل والصيانة لتطبيقات الويب عالية الجودة
Web Engineering is also the scientific discipline concerned with the study of these
approaches.
------------------------------------------------------------------------------------------------------
• Software engineering is an engineering discipline that is concerned with all
aspects of software production
• Software Engineering is the science and art of building significant software
systems that are:
– on time
– on budget
– with acceptable performance
– with correct operation
• Web engineering is the study of the process used to create high quality Web-
based applications
• Web engineering relies heavily on the principles and management activities
found in software engineering processes
• Web Engineering extends Software Engineering to Web applications,
but with Web-centric approaches.
1
Defining Web Applications
This definition explicitly includes technologies as well as user interaction. From this
we can conclude that technologies on their own, such as Web services, are not Web
applications, but they can be part of one. Furthermore, this definition implies that Web
sites without software components, such as static HTML pages, are not Web
applications either.
2
Web Engineering’s solution
3
Interactive &Transactional
Workflow-Based Applications
4
o Anonymity traditionally characterized the web, increased the trend towards
the Social Web
o Moving towards communities of interest
o Examples Blogs, collaborative filtering systems,
social bookmarking (e.g., del.icio.us)
o Integration with other forms of web applications (e..g, NetFlix)
o serve the purpose of not only finding related objects of interest but also
finding people with similar interests
Portal-Oriented
Ubiquitous
HCI is critical
o Limitations of devices (screen size, bandwidth?) HCI is critical since it will be
necessary for goods to be more
o Context of use
successful, safe, helpful, and
Still an emerging field, most devices have single focus functional. It will make the user's
o Personalization experience more enjoyable in the
long term. As a result, having
o Location-aware someone with HCI skills involved
o Multi-platform delivery in all phases of any product or
Can provide analysis of data collected from sensors system development is critical
Semantic Web
Berners-Lee Information on the Web should be It is ever more important to move away from
readable to machines, as well as humans. ad hoc approaches and to follow engineering
principles.
Using metadata and ontologies to facilitate
knowledge management across the WWW.
Content syndication (RSS, Atom) promotes re-use
of knowledge
Web2.0 VS Web3.0 ?
5
6
Characteristics of Web Apps
How do Web applications differ from traditional applications?
Or, another way, what Software Engineering methods techniques that can be
adapted to Web Engineering?
Product-related Characteristics
Usage-related Characteristics
Development-related Characteristics
Product-Related Characteristics
1. Content
Web applications are used expressly because of the content they offer.
Web application developers must therefore not only act as programmers but
also as authors.
o Document character
It refers to the fact that content is provided and generated to present information in an
appropriate way for certain user groups
(e.g., tourist information on a holiday region).
e-shopping: information about price, availability of a product.
Information may be presented as tables, text, graphics, animations, audio, or video.
Content-centric and Multimedia
7
2. Hypertext (Navigation Structure)
Main distinction between traditional software systems and web applications –
(browsing, query).
The essential feature of the hypertext paradigm is the non-linearity of content production
by the authors and of content reception by the users together with the potential problems
of disorientation and cognitive overload.
o Non-linearity
Users may move freely through the information space, depending on their interests and
previous knowledge.
Anchors (and, consequently, also links) are not only predefined statically by the authors,
but, are also generated dynamically (computed links) in a predefined reaction to user
behavior patterns.
o Self-explanation
Besides aesthetics, it is essential that Web applications are self- explanatory
8
Usage-Related Characteristics
Developers don’t have the possibility to know the potential diversity of these
factors in advance. They also cannot, and don’t have any, influence on them in any
way because of their autonomous nature.
If the group in question is a known user group, as would be the case with an intranet or
extranet, this is largely comparable to traditional applications.
When developing a Web application for an anonymous group of users, however, there
will be large and hardly expected heterogeneities in terms of abilities (e.g. disabilities),
knowledge (e.g. application expertise), and preferences (e.g. interests).
Multi-platform delivery
e.g. monitor size, memory capacity, installed software, different browser versions is also
a challenge, as they have different functionalities and restrictions.
9
3. Natural Context (Place, Time)
The natural context includes aspects of the location and time of access. Globality and
availability create a high degree of heterogeneity.
Globality
The location from which a Web application is accessed, e.g. the geographical position, is
important for the internationalization of Web applications regarding regional, cultural
and linguistic differences.
Availability
Permanent availability 24/7 increases the demands on the stability of Web applications.
10
Development-Related Characteristics
Development Team
Community development; (Open Source) The development of open source software freely
available on the Web and its integration in “real” applications is a very recent phenomenon.
Developers use this software for their own developments, which they in turn make available for
the open source community.
Technical Infrastructure
While the Web server can usually be configured and operated as desired by the application
programmers,
On the other side, there is no way to influence the users’ Web browsers and their individual
preferences. This causes the Lack of control on the client side.
Development Process
Parallelism: Due to the necessity for short development times and the fact that Web
applications can often be split up into autonomous components (e.g. authentication, search
function, news ticker, etc.), many Web applications are developed in parallel by various
subgroups of the development team.
Integration
A special characteristic of many Web applications is the need for internal and external
integration.
Integration in this context refers not only to technical aspects, but also to content, and
organizational aspects.
11
Internal Integration: Frequently, Web applications have to be integrated with existing
systems when existing content, e.g. product catalogues, are to be made available through a
Web application.
External Integration: the integration of content and services of external Web applications is
a special characteristic of Web applications.
Issues such as correct interaction, guaranteed QoS need to be concerned about.
12
Requirements Engineering
Introduction
Given the complexity of Web apps, RE is a critical initial stage, but often poorly
executed. What are the consequences?
Bell & Thayer (1976), requirements don’t define themselves, and they don’t
turn out automatically, but have to be identified in an engineering activity.
Boehm (1981) late removal of mistakes in requirements is up to 200 times more
costly than early identification and correction.
A survey among more than 8000 projects conducted by the Standish Group
(1994) showed that 30% of projects failed before completion. Almost (70%),
the half, of the remining projects do not meet customer requirements.
o The observed problems were closely related to requirements including poor user
participation, incomplete or volatile requirements, unrealistic expectations, unclear
objectives, and unrealistic schedules
13
Fundamentals of RE – 1
o The Web application shall support a minimum of 2500 concurrent users (quality objective of
customer).
o J2EE shall be used as development platform (technology expectation of developer).
o All customer data shall be securely submitted (quality objective of user).
o The user interface shall support layouts for different customer groups (quality goal of
customer).
o An arbitrary user shall be able to find a desired production less than three minutes (usability
objective of customer).
o A user shall be able to select an icon to display items included in the shopping cart at any
given time (capability objective of user).
Fundamentals of RE - 2
14
Specifics in Web Engineering
Is RE for the Web really that different than RE for conventional software?
On the surface, the differences seem to be negligible as argued by researchers in the field:
While there are many differences between Web development and software development, there
are also similarities between them.
Some would argue no, but many aspects of Web applications suggest otherwise
10 distinguishing characteristics
o Multidisciplinary
o Unavailability of stakeholders
o Rapidly changing requirements & constraints
o Unpredictable operational environment
o Integration of legacy systems
o Quality aspects
o User interface quality
o Content quality
o Developer inexperience
o Firm delivery dates
15
Modeling Web Application
Aspects
o Behavior (i.e., functions and processes)
o Structure (i.e., objects, their attributes, and their relationships to other objects)
16
Web Application Modeling
Levels
To model Web applications, the document-like character of its content as well as its
non-linear hypertext navigation has to be taken into account. This is the reason why
we distinguish three levels when modeling Web applications, they are:
o Content; the information and application logics underneath the Web
application.
o Hypertext; the structuring of the content into nodes and links between these
nodes.
o Presentation; the user interface or page layout.
17
It influences all three Web modeling dimensions of content, hypertext, and
presentation with respect to structure and behavior.
The Unified Modeling Language (UML) is a visual language for specifying and
documenting the artifacts of systems.
For Web-centric modeling, the Unified Modeling Language (UML) is
employed or borrowed from software engineering field.
UML is a modeling language consisting of a set of diagrams that help system
and software developers for specifying, visualizing, constructing, and
documenting the software systems, as well as for business modeling and other
non-software systems
UML use cases are useful to describe functional requirements.
A use case describes a system’s function from the perspectives of its actors and
leads to a perceivable result for the actors.
An actor is an entity external to the system that interacts with the system.
A use case diagram represents the relations between use cases and actors.
18
Web Application Architectures
What is an Architecture?
Developing Architectures
The Figure below shows the different factors and constraints influencing
the development of an architecture.
19
Components of a Generic Web Application Architecture
The Figure below shows the basic components of Web architectures and
their relationships.
20
Proxy; is typically used to temporarily store Web pages in a cache.
However, proxies can also assume other functionalities, e.g.,
adapting the contents for users (customization), or user tracking.
21
Legacy application; older system that should be integrated as an
internal or external component.
Layered Architectures
N-Layer Architectures
22
Additionally, security mechanisms like firewalls, or caching mechanisms
like proxies, can be integrated into the request-response flow upon
demand.
23
Usability of Web Applications
The objective therefore, is, to design Web applications so that users can
achieve their goals effectively, efficiently, and satisfactorily
Guidelines Efficiency
Minimize distance between clickable elements
(while keeping effective sizing)
Avoid frequent changes between mice and keyboards
Tab-friendly for text-based browsers
Minimize clicks to accomplish tasks (rule of
thumb no more than 4 clicks)
Guidelines Colors
24
Colors have different meaning depending on targeted audience
Warm vs. cool colors
Avoid extreme hues, highly saturated colors
How does your site look on a CRT? LCD?
Supplement colors with other
Visual aids for those with limited color vision.
Guidelines Navigation
Provide your user with a mental model of the site ASAP.
Intuitive navigation elements
Site map
(“Where am I?”), (“What can I do or find here?”), (“Where can I
go?”)
Pulldown menus?
Guidelines Multicultural
Location is typically not a constraint on the Web.
Avoid over-expressive colors
Symbols
Language
Information representation (date/time formats)
Self-selection?
25
Interaction mechanisms (FAQ, chat rooms)
Security privacy policies
Exchange and warranty policies
Customer relations management
26
113
Guidelines Animations Icons
114
Guidelines Consistency
115
Usability Engineering
116
User-Centered vs. Usage-Centered
Phase Focal Points Focal Points
User-Centered (Traditional) Usage-Centered (Web)
Requirements Meetings, interviews, focus groups Competitive analysis Task analysis
models
27
Design Implementation User requirements Direct user participation Models Inspection
remote testing
Operation Training, evaluation of help-desk logs Log file analysis server stats user
feedback analysis
117
Requirements Analysis
118
Interaction and Design
119
Interaction and Design
28
120
Coding and Post-Deployment
121
More on Web Accessibility
122
Web Accessibility Initiative (WAI)
123
Special Needs Groups
29
Visual
Hearing
Physical (Motor)
Speech
Cognitive
Age-related
124
Visual Considerations
125
Aural Considerations
126
Physical (Motor) Considerations
30
127
Cognitive Considerations
128
Helpful Tools Resources
Development
Firefox Developer Toolbar (http//chrispederick.co
m/work/web-developer/)
Testing
http//webxact.watchfire.com (Bobby)
http//www.webaim.org (WAVE tool)
Section 508 of the Rehabilitation Act
http//www.section508.gov
31