P1: c-161
SoftwareDesign WL040/Bidgoli-Vol III-Ch-24 June 23, 2003 16:25 Char Count= 0
WEBSOFTWAREENGINEERINGQUALITYFACTORS 287Server Side
HTTP ServerCGI programsData Base FilesClient Side
Browser
HTML
Forms
ImagesHelper
audio
videoUser
Figure 1: First-generation Web sites.among software components with XML (extensible
markup language), and a number of design architectures
for large-scale Web software applications. Figure 2
illustrates a typical configuration for a fourth-generation
Web application.
Most of the software has been moved to a separate
computer, the application server. Large Web sites imple-
ment the application server as a collection of application
servers that operate in parallel. Likewise, Web servers are
often clusters of computers that work together to server
requests from large numbers of users. Application servers
typically interact with one or more database servers, often
running a commercial database. The client–server inter-
action, as before, uses the Internet. The Web servers and
application servers are connected by middleware, which
are packages obtained from software vendors to handle
functions such as communication, data translation, and
process distribution. Middleware is sometimes as simple
as Java Data Base Connectivity (JDBC), whereas other
middleware packages are large and solve complicated
problems. Likewise, the application-database servers of-
ten interact through middleware.WEB SOFTWARE ENGINEERING
QUALITY FACTORS
Although software engineering researchers, educators,
and practitioners have spent years focusing on develop-
ing processes and technologies to improve software qual-
ity attributes, much of the software industry has had lit-
tle motivation to improve the quality of their software.
Software is often sold with relatively low-quality require-
ments; the combination of user expectations and market
realities has been such that increasing quality usually has
not increased profits. A combination of time-to-market
and marketing strategies has almost always determined
whether traditional software products succeed compet-
itively. As an example, software contractors for govern-
ment agencies are often paid the same regardless of the
quality of the delivered software. Despite the positive im-
pacts of the capability maturity model (Carnegie Mellon
Software Engineering Institute, 2002), many contractors
are still given additional resources to correct problems of
their own making (Tassey, 2002). Commercial software
companies (so-called shrink-wrap vendors) are usuallyApplication DB
ApplicationServer
Client ServerClient
Client
Application
ServerClient
WebClient
ServerNetwork Middleware Middleware DBDB
Figure 2: Multitier Web sites.