Chapter 29 - Web Engineering
Overview
The chapter describes Web engineering (WebE) as the process used to create
high quality Web-based applications (WebApps). As WebApps become increasingly
integrated in business strategies (e.g. e-commerce) the need to build reliable,
usable, and adaptable systems grows in importance. Web engineering is not a
perfect clone of software engineering, but it draws heavily on many of software
engineering's principles and management activities. The Web engineering process
begins with the formulation of the problem to be solved by the WebApp. The
project is planned and the WebApp requirements are analyzed. Architectural,
navigational, and interface design are conducted. The system is implemented
using specialized languages and tools associated with the Web. WebApps tend to
be highly evolutionary, so mechanisms for configuration management, quality
control, and maintenance must be established early. Web engineering relies on
formal technical reviews to assess the quality of the analysis and design
models. Specialized reviews are conducted to assess the usability of the WebApp.
Testing is applied to uncover errors in content, functionality, and
compatibility.
WebApp Attributes
- Network intensive
- Content-driven
- Continuous evolution
- Immediacy
- Security
- Aesthetics
WebE Application Categories
- Informational (read only content provided with simple navigation)
- Downloads (user downloads information from server)
- Customizable (user customizes content to specific needs)
- Interaction (community of users communicate using chat rooms, bulletin
boards, or instant messaging)
- User input (users complete on-line forms to communicate need)
- Transaction-oriented (user makes request fulfilled by WebApp - places an
order)
- Service-oriented (application provides service to user, e.g. helps user
determine mortgage payment)
- Portal(application directs users to other web content or services)
- Database access (user queries a large database and extracts information)
- Data warehousing (user queries large collection of databases and extracts
information)
Web Quality Requirements
- Usability
- Functionality
- Reliability
- Efficiency
- Maintainability
WebApp Enabling Technologies
- Component-based development (CORBA, COM/DCOM, JavaBeans)
- Security (encryption, firewalls, etc.)
- Internet standards (HTML, XML,SGML)
Evolutionary WebE Process Model
- Formulation (goals and objectives, scope for first increment)
- what is the motivation for the WebApp?
- why is the WebApp needed?
- who will use the WebApp?
- informational goals (user's intention for using the content)
- applicative goals (ability to perform tasks within the WebApp)
- Planning (estimates project cost, evaluates risks, defines finely
granulated schedule for first increment and coarser schedule for subsequent
increments)
- Analysis (establishes requirements and identifies content items)
- content analysis (content provided by WebAppis identified)
- interaction analysis (use-cases developed to describe user interaction
with WebApp)
- functional analysis (usage scenarios used to define operations and
functions applied to the WebApp content)
- configuration analysis (WebApp environmental infrastructure is described
in detail)
- Engineering (content design and production tasks are one thread,
architectural design, navigation design, interface are the other thread)
- Page generation and testing (content and technical deigns are merged to
produce executable web pages; testing exercises WebApp navigation, attempts to
uncover errors in applets/scripts/forms, and checks for environment
incompatibilities)
- Customer evaluation (each increment of the WebApp is reviewed and changes
required by customer are applied to next increment)
Technical Elements for Web-Based Design
- Design principles and methods (high modularity, low coupling, information
hiding, stepwise refinement, OO design methods)
- Golden rules (design heuristics for hypermedia applications)
- Design Patterns (can be applied to WebApp functional elements, documents,
graphics, and general aesthetics)
- Templates (provide reusable skeletal frameworks for any design pattern or
document used within the WebApp)
Web App Architectural Structures
- Linear structures (text and graphics presented in fixed sequential order)
- Grid structures (useful when WebApp content must be organized in two pr
more ways or dimensions)
- Hierarchical structures (not always traversed in strict depth-first
manner, branches are often inter-linked)
- Networked or "pure" web structure (every node is connected to every other
node)
WebE Design Patterns
- Cycle (user is returned to previously visited node)
- Web ring (implements a grand cycle that links entire hypertext into a tour
of asubject)
- Contour (occurs when cycles are interconnected, allowing navigation across
paths defined by cycles)
- Counterpoint (hypertext commentary used to interrupt content narrative to
provide additional information or insight)
- Mirrorworld (content is presented using several threads, each with its own
perspective or point of view)
- Sieve(user guided through a series of decisions to direct user to specific
content indexed by the decisions)
- Neighborhood (uniform navigation is provided to user regardless of
position within the WebApp)
NavigationalDesign
- Identify the semantics of navigation for different users based on the
perceived roles (i.e. visitor, registered customer, or privileged user) and
the goals associated with their roles.
- Define the mechanics (syntax) of achieving navigation
WebApp Interface Guidelines
- Minor server errors are likely to cause user to leave WebApp and look for
an alternative site
- Reading speed on monitor is about 25% slower than for hardcopy
- Avoid "under construction" signs
- Users prefer not having to scroll to read content
- Navigation menus and headers should be designed consistently and be
available on all pages available to the user
- Do not rely on browser functions to assist in navigation
- Aesthetics should never take precedence over application functionality
- Navigation should be obvious to causal users
Testing WebApps for Errors
- WebApp content model is reviewed to uncover errors.
- Design model for WebApp is reviewed to uncover navigation errors.
- Selected processing components and web pages are unit tested.
- Architecture is constructed and integration tests are performed.
- Assembled WebApp is tested for overall functionality and content delivery.
- WebApp is implemented in a variety of different environmental
configurations and the compatibility of WebApp with each is assessed.
- WebAppis tested by a controlled and monitored group of end-users.
WebE Team Members
- Content developers and providers (focus on generation and/or collection of
WebApp content)
- Web publisher (liaison between technical staff who engineers WebApp and
non-technical content developers and providers)
- Web engineer (involved with WebApp requirements elicitation, analysis
modeling, architectural design, navigational design, interface design,
implementation, and testing)
- Support specialist (responsible for continuing WebApp maintenance and
support)
- Administrator or web master (responsible for daily operation of
WebApp)
Project Management Concerns Unique to WebE
- Many WebApps are out sourced to vendors specializing in the development of
web-based systems and applications.
- WebApp development is relatively new and there is little historical data
to use for estimation (e.g. there are few if any published WebE metrics).
- The continuously evolving nature of WebApps make estimation, risk
analysis, and scheduling more complicated since project scope is less clearly
defined than in other software development projects.
WebE Project Management Guidelines
- many of the analysis activities should be performed internally
- a rough design for the WebApp should be developed internally
- a rough delivery schedule including milestone dates and final
delivery dates should be developed
- the degree of oversight and interaction by the contractor with the
vendor should be identified
- Selection of candidate outsourcing vendors
- Interview past clients to determine vendor's past performance
- be certain the vendor's chief web engineer(s) from past successful
projects will involved with yours
- carefully examine samples of the vendor's work on projects similar to
yours
- Assessing the validity of price quotes and reliability estimates
- does the quoted cost of the WebApp provide a direct or indirect
return-on-investment that justifies the project?
- does the vendor exhibit the required level of professionalism and
experience?
- Degree of project management you can expect or perform(directly
proportional to the size, cost, and complexity of WebApp, the larger the more
formal the management and SQA activities)
- Assessing the development schedule (short development times suggest the
use of fine granularity in the schedule, link minor milestones scheduled on a
daily timeline)
- Managing the scope (using an incremental process model allows the
development team to freeze the scope for one increment to allow an operational
WebApp release to be created)
WebE Software Configuration Management Issues
- Content
- integrating heterogeneous media
- volatility
- People
- designers often are forced to create content
- content creators often have no software engineering knowledge
- Scalability
- Politics
- Who owns a WebApp?
- Who assumes responsibility for accuracy?
- Who makes changes?
- Who pays for changes