Introduction To Web Engineering - 2
Introduction To Web Engineering - 2
Web Engineering
Fundamentals
1. Introduction
2. Requirements Analysis
3. Web Modeling
4. Web Architectures
5. Web Accessibility
2.1
2.3 Modeling
Web
Application
2
Summary – Web
Engineering
Requirements
Analysis
Maintenance Design
Testing Implementation
2.3
Why Create Models?
Define an abstract view of a real-world entity
◦ Finding & discovering objects/concepts in a domain
◦ Assigning responsibilities to objects
Tool of thought
◦ Reduce complexity
◦ Document design decisions
Means of communication
2.4
Web Modeling
Modeling static & dynamic aspects of content,
hypertext, and presentation.
We focus on object-oriented analysis & design
◦ Analysis: Finding & discovering objects/ concepts in a domain
◦ Design: Defining software objects & how they interact to
fulfill requirements.
Key skill: Assigning responsibilities to objects
2.5
Assigning Responsibilities
Responsibilities are obligations or specific behaviors
related to its role.
What does an object do?
Doing something itself
Pass actions (messages) to other objects
Controlling & coordinating the activities in other objects
What does an object know?
Private, encapsulated data
Its related objects
Items it can derive or calculate
2.6
Software Application
Modeling
Levels
User interface
Application Logic
Phases
Structure Analysis Design Implementation
Behavior
Aspects
2.7
Unified Modeling
Language (UML)
“The Unified Modeling Language is a visual
language for specifying and documenting the
artifacts of systems.” [OMG03a]
Language of choice (and ISO standard) for
diagramming notation in OO development.
◦ Structural – Class diagrams
◦ Behavioral – Use Case diagrams, State machine diagrams
2.8
Web Application
Modeling
Levels
Presentation
Hypertext
Customization
Content
Phases
Structure Analysis Design Implementation
Behavior
Aspects
2.9
Web Application
Modeling
For Web-centric modeling, we will employ the
UML Web Engineering (UWE) notation.
◦ Relies on Object Management Group (OMG)
standards – (i.e., UML-compliant)
◦ Comprehensive modeling tool
◦ Supports semi-automatic generation of code
2.10
Requirements Modeling
Serves as a bridge between Requirements & Design
phases
Uses cases – functional requirements written as a
collection of related success & failure scenarios.
◦ Scenario – a sequence of actions & interactions between
actors and a system.
Preferred means of modeling requirements
◦ Written descriptions are easy to understand
◦ Emphasize the users goals and perspective
2.11
Use Case Diagrams
Provide a graphical overview of a system’s use
cases, its external actors, and their relationships
Use case diagrams are NOT requirements!
Can be used for functional & hypertext
requirements
◦ Use “<<navigation>>” annotation to distinguish hypertext
from functional
2.12
Use Cases
Critical components
◦ Use Case Name – starts with a verb
◦ Level – “user-goal” or “subfunction”
◦ Primary Actor – the user whose goal is fulfilled
◦ Stakeholders & Interests – Who cares, and what do they
want?
◦ Preconditions – What must be true at the start
◦ Success Guarantee – defines the successful completion of
the use case for all stakeholders
2.13
2.14
2.15
2.16
Use Case Guidelines
Use shorts sentences
Delete “noise” words
◦ NO : “The System authenticates…”
◦ YES: “System authenticates…”
Avoid technology-specific terms (initially, at
least)
◦ NO : “Cashier swipes Product ID across scanner.”
◦ YES: “Cashier enters Product ID.”
2.17
Use Case – Example 1
Use Case 1: Create User
Scope: University or business network
Level: user goal
Primary Actor: user (system administrator)
Stakeholders and Interests:
System Administrator: Wants control over users’ access to system resources.
New User: Wants access to system resources for communication, business, and
research.
Organization: Wants security and controlled access of organization resources,
data, intellectual property; wants employees/students to have appropriate
system access to fulfill the goals of the organization.
Preconditions: User is identified, authenticated, and has opened
administration tool
Success Guarantee: New user account is created and saved. Username
and password grant the new user access to network.
2.18
Use Case – Example 1
[cont.]
Main Success Scenario:
1. System requests input for username & password
2. User enters username & password
3. System requests other identifiable user information (ex. real
name, SSN#, address)
4. User enters other identifiable user information
5. System verifies username & password
6. System stores new user information
7. System displays success message
8. System presents user options
2.19
Use Case Diagram -
Example
Conference Paper Submission System
Source: Web
Engineering –
Kappel et al.
2.20
Content Modeling
Purpose: To model the information requirements of a Web application
◦ Diagramming the structural (i.e., information objects) & behavioral aspects
of the information.
◦ NOT concerned with navigation.
Primary Models
◦ Class diagrams – enough for static applications.
◦ State machine diagrams – captures dynamic aspects
2.21
Conference Paper Submission System
Class Diagram –
Example 1
Source: Web
Engineering –
Kappel et al.
2.22
Class Diagrams
Notations
Class Name
Multiplicity
Attributes
Operations
Invariant
2.26
State Machine Diagram
- Example
2.27
Hypertext Modeling
Purpose: To model the navigation paths available to
users.
Artifacts
Hypertext Structure Model – navigating among classes
Access Model – UML-compliant site map
Focuses on the structure of the hypertext & access
elements.
Use “<<navigation class>>” annotation to distinguish
from content classes.
2.28
Hypertext Structure
Model
Conference Paper Submission System
2.29
Link Classification
Types
UWE
Navigation vs. Process vs. External
HDM
Structural vs. Perspective vs. Application
WebML
Contextual vs. Non-contextual
Intra-page vs. Inter-page
OO-H
I, T, R, X, S-links
2.30
Access Model
Hypertext structure models describe
navigation, but not orientation.
Access models describe both through
Navigation patterns, used to consistently
describe conventional elements.
<<index>> (list)
<<guided-tour>> (sequential links)
<<menu>>, <<query>>
2.31
Access Model -
Example
Source: Web
Engineering –
Kappel et al.
2.32
Presentation Modeling
Purpose: To model the look & feel of the Web application at
the page level.
The design should aim for simplicity and self-explanation.
Describes presentation structure:
◦ Composition & design of each page
◦ Identify recurring elements (headers/footers)
2.33
Levels of Presentation
Models
Presentation Page – “root” element; equivalent to a
page container.
Presentation Unit
◦ A fragment of the page logically defined by grouping
related elements.
◦ Represents a hypertext model node
Presentation Element
◦ A unit’s (node’s) informational components
◦ Text, images, buttons, fields
2.34
Composition Model -
Example
Paper and Author Page Templates
2.35
Sequence Diagrams
Purpose: Depicts sequential interactions (i.e., the
flow of logic) between objects in an application over
time.
◦ What messages, what order, & to whom.
◦ Ex.: Object A calls method of Object B
◦ Ex.: Object B passes method call from Object A to Object
C.
Result: Dynamic system interactions diagrammed in
a “fence” format.
2.36
Sequence Diagram -
Notation
Object Instance
Lifeline
Focus of Control
Synchronous
Message
Destroy Object
2.38
Sequence Diagram –
Example 2
2.39
Modeling Methods
We’ve primarily discussed Object-Oriented
Modeling (e.g., UML), but there are other
methodologies:
◦ Data-Oriented (Hera, WebML)
◦ Hypertext-Oriented (HDM)
◦ Software-Oriented (WAE)
Choosing a method depends on system purpose,
focus, and requirements
2.40
2.4 Web
Architectures
41
Overview
Architecture defined
Developing architectures
Types of architectures
Generic Web Architecture
Layered-aspect architectures
Data-aspect architectures
2.42
Architecture
Define “software architecture” Defined
http://www.sei.cmu.edu/architecture/definitions.html
“Software architecture is the set of design decisions which, if made
incorrectly, may cause your project to be cancelled.” – Eoin Woods
Authors focus on 5 key attributes of software
architectures
Structure, Elements, Relationships
Analysis => Implementation
Multiple viewpoints (conceptual, runtime, process &
implementation)
Understandable
Framework for flexibility
2.43
Developing
Architectures
Influences on Architectures
Functional Requirements
•Clients
•Users
•Other Stakeholders
Architecture
Experience with
•Existing Architecture
•Patterns
•Project Management
•Other?
2.44
Developing
Architectures
Influences on Architectures (continued)
Client
Server
2.46
Client
N-Layer Architectures
Firewall
Proxy
Presentation Layer
Web Server
Business Layer
Application Server Backend
(Business Logic, Connectors,
(Legacy Application,
Personalization, Data Access)
Enterprise Info System)
Data Layer
DBMS B2B
2.47
Why an N-Layer
Architecture?
Separating services in business layer promotes re-use different applications
◦ Loose-coupling – changes reduce impact on overall system.
◦ More maintainable (in terms of code)
◦ More extensible (modular)
Trade-offs
◦ Needless complexity
◦ More points of failure
2.48
More on Proxies
Originally for caching data
Can also server other roles:
◦ Link Proxy
◦ Persistent URL’s – maps the URL the client sees to the actual URL.
◦ AJAX – allows data from a 2nd server to be accessed via a client script.
◦ History Proxy
◦ HTTP is stateless - navigation history cannot be shared across multiple websites.
◦ Multiple companies can access a server-side cookie (e.g. DoubleClick)
2.49
Integration
Architectures
Enterprise Application Integration (EAI)
Web Services
Portals/Portlets
Challenges/Pitfalls
◦ Cannot separate logic & data in legacy systems
◦ Incompatible schemes
◦ Poor documentation
◦ Measuring performance/scalability
2.50
Data-Aspect
Architectures
Data can be grouped into either of 3
architectural categories: Application
1. Structured data of the kind stored in DBs
2. Documents of the kind stored in document
management systems
3. Multimedia data of the kind stored in media servers Driver Manager
Structured data (JDBC/ODBC)
Accessed either directly via a web extension (for 2-
tier) or over app server (for n-tier).
Since DB technology are highly mature, they are easy Driver
to integrate
Easy to implement
APIs are available to access DBs (e.g., JDBC, ODBC)
Database
2.51
Data-Aspect
Architectures
Web Document Management
2.52
Data-Aspect
Architectures
Web Multimedia Management: Point-to-point
2.53
2.5 Web
Accessibility
54
Overview
The Case for Usability
Defining Web Usability
General Design Guidelines
Usability Engineering
Web Accessibility in Depth
2.55
Why is Usability
Important?
“Mission critical” Web applications
Poor design leads to lost time, productivity
Your website speaks for your organization
◦ Customers have choices
◦ Easy come, easy go
Diverse contexts
◦ Proliferation of web-enabled devices
◦ Increasing adoption by special needs groups – ex. seniors
2.56
Top 7 Gripes
Contact information – address or phone number is buried
Search function is not visible or unclear as to functionality
No easy way to get back to critical points
Pages that should load fast don’t (e.g. Main page or key
link page)
Slow page loads are not incremental
“What’s new” is old
Back button requires a repost of data
2.57
Example: SIS Website
2.58
Usability Defined
ISO/IEC standard definition (1998):
“[T]he extent to which a product can be used by specified
users within a specified usage context to achieve specified
goals effectively, efficiently, and satisfactorily.”
Usability engineering is an ongoing, but critical
process
Define user and task models
Iteratively test and reevaluate
User-based vs. expert methods
2.59
Defining Usability in
Web Apps
Traditional software usability specifics do not
necessarily carry over to the Web:
People use your application immediately.
No manual or trainers
No salespeople
How to categorize users?
First-time or returning?
Expert or novice?
Broadband or dial-up?
Desktop or mobile?
2.60
Human Information
Processing
Human cognition places a critical role in user interface design.
◦ Perception
◦ Positioning, grouping, arranging
◦ Perceiving shapes and relationships
◦ Memory
◦ Limitations of working memory
◦ Chunking, 7 + 2 (Miller)
◦ Attention
◦ Focusing on one aspect
◦ Movement, color schemes
2.61
General Design
Guidelines
Design guidelines represent best practices
OK for “general” users
◦ Normal cognitive ability
◦ Normal audiovisual abilities
2.62
Guidelines – Response
Times
As response times increase, user satisfaction decreases
Anything greater than 3 seconds, and the user becomes aware she’s
waiting
After 10 seconds, user gives up
Optimize, or minimize graphics
Consider breaking up large pages.
<img> - use “width” & “height” attributes
Don’t forget your dial-up audience!
Home page size should be < 50Kb
Provide warnings (MPG – 2.5Mb)
http://www.websiteoptimization.com/services/analyze/wso.php
2.63
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)
Not so good: http://www.brown.edu
2.64
Guidelines – Colors
Colors have different meaning depending on your
audience
Cultural differences
Domain-specific meanings
Warm vs. cool colors
Minimize the number of 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.
2.65
Guidelines – Text
Layout
Screen vs. Paper
Consider different window sizes
◦ Avoid multiple columns
◦ Avoid fixed width
Readability
◦ Sans-serif for screen, serif for print
◦ Avoid patterns, low-contrast background
◦ Short paragraphs
2.66
Guidelines – Page
Structure
Display considerations
Use relative positioning over absolute.
Vertical scrolling is fine; horizontal scrolling is NOT.
Important elements should ALWAYS be visible.
Make page print-friendly or provide alternative style and print button.
Not-so-good: http//www.arngren.net
2.67
Guidelines – Navigation
Provide your user with a mental model of the site ASAP.
◦ Intuitive navigation elements
◦ Site map
◦ Breadcrumbs
Pulldown menus?
◦ Pros: Efficient use of space
◦ Cons: Key information is hidden
2.68
Guidelines –
Multicultural
Location is typically not a constraint on the Web.
“Lowest common denominator” applies:
◦ Avoid over-expressive colors
◦ Symbols
◦ Language
◦ Information representation (date/time formats)
2.69
Guidelines –
Establishing Trust
Loyalty is fleeting, but instilling confidence during a transaction is highly
critical
Ways to build trust:
◦ About us
◦ Easy-to-access Contact Information
◦ Interaction mechanisms (FAQ, chat rooms)
◦ Security & privacy policies
◦ Exchange and warranty policies
◦ Customer relations management
2.70
Guidelines – Animations
& Icons
Remember human attention – animations are typically
distracting
Draw attention to an important function
Explain something
Iconography should be used to support navigation
understanding
Map to commonly-known metaphors
Use redundant text and “alt” text!
Not appropriate for (some) cognitive-impaired users
Not-so-good: http://www.globalaigs.org/
2.71
Guidelines –
Consistency
Consistency keeps learning to a minimum; users don’t want to have to
think!
Identity can be set by consistent components
◦ Header: home, logo, navigation, search, help
◦ Footer: author, modification, contact
2.72
Usability Engineering
Consists of 4 phases that are essentially parallel to the Web Engineering
process
◦ Requirements Analysis
◦ Design
◦ Implementation
◦ Operation
2.73
User-Centered vs. Usage-
Centered
Phase Focal Points
User-Centered Usage-Centered
(Traditional) (Web)
2.74
Requirements Analysis
Systems Analyst & Usability Expert take the lead:
◦ Competitive Analysis
◦ Define qualitative/quantitative goals
◦ Information, Entertainment, Exchange (Siegel)
◦ Make them concrete and testable!
◦ User-centered: build user profiles
◦ Usage-centered
◦ Task analysis
◦ Ease-of-use or Ease-of-learning?
2.75
Interaction and Design
Initially, the Interface Designer builds a conceptual model
◦ Based on core use cases
◦ Shows the basic structure
2.76
Interaction and Design
Designer and coders can then elaborate on the details
Additional user testing:
Prototypes – exhibit some functionality
Usability Tests – real context, real tasks.
Remote usability testing
Sample of representative users
Client-Logging software
Web-cams if possible
Better external validity & lower costs(?)
2.77
Coding and Post-
Deployment
Usability Expert assumes the role of the Quality Assurance manager.
◦ Consistency?
◦ Observed guidelines & standards?
◦ Adhered to (current) requirements?
2.78
More on Web
Accessibility
People with disabilities are adopting the Web in greater
numbers.
Tim Berners-Lee stressed universal access to the Web as
essential.
20% of the world’s population have disabilities in at least
one of the senses.
Key take-aways:
Designing for special needs doesn’t necessarily require reinventing
your application.
Doing so can also help “general” users
2.79
Web Accessibility
Initiative (WAI)
Web Content Accessibility Guidelines 1.0 (WCAG, 1999) published by
the W3C’s WAI
3 Priorities
◦ 1) Must
◦ 2) Should
◦ 3) May
Defines Groups
WCAG 2.0?
2.80
Special Needs Groups
WAI identifies the following special needs groups:
◦ Visual
◦ Hearing
◦ Physical (Motor)
◦ Speech
◦ Cognitive
◦ Age-related
2.81
Visual Considerations
High-contrast color schemes
Large font sizes; ability to change fonts
Use alt attributes!
<label-for> tags in forms
Avoid frames
Access key attributes, and rapid tabbing
Many software packages for text-to-speech
Some integrate with browsers
OK Firefox plug-in: FireVox
Good example: http://www.afb.org
2.82
Aural Considerations
Captioning audio and video
◦ Synchronized Multimedia Integration (SMIL)
◦ Good QuickTime, RealAudio Support
◦ W3C standard
2.83
Physical (Motor)
Considerations
May require specialized hardware
◦ Mice
◦ Keyboards
◦ Voice Recognition
2.84
Cognitive
Considerations
Most neglected of the groups
◦ Little research in terms of Web usability
◦ “Reinvent the wheel” mentality
2.85
Helpful Tools &
Resources
Development
◦ Firefox Developer Toolbar (http://chrispederick.com/work/web-developer/)
Testing
◦ http://webxact.watchfire.com (Bobby)
◦ http://www.webaim.org (WAVE tool)
2.86