P1: c-161
SoftwareDesign WL040/Bidgoli-Vol III-Ch-24 June 23, 2003 16:25 Char Count= 0
Software Design and Implementation
in the Web Environment
Software Design and Implementation
in the Web Environment
Jeff Offutt,George Mason UniversityIntroduction 286
First-Generation Web Sites 286
Second-, Third-, and Fourth-Generation
Web Sites 286
Web Software Engineering Quality Factors 287
Technologies for Building Web Site Software 289
Client-Side Technologies 289
Common Gateway Interface (CGI) 289
The J2EE Platform 290
The .NET Platform 291XML as the Glue 291
Database Connectivity 292
Designing Web Site Software 292
Sound Software Design and Implementation
Practice for Web Software 292
Current Issues with Designing Web Software 293
Design Challenges 293
Glossary 294
Cross References 295
References 295INTRODUCTION
The original Web sites used hyperlinks to connect text
documents. Modern Web applications run large-scale
software applications that support e-business, informa-
tion distribution, entertainment, collaborative working,
surveys, and numerous other activities. They run on dis-
tributed hardware platforms and heterogeneous com-
puter systems. The software is distributed, is imple-
mented in multiple languages and styles, incorporates
reuse and third-party components, is built with cutting-
edge technologies, and must interface with users, other
Web sites, and databases. The software components are
often distributed geographically both during develop-
ment and deployment and communicate in numerous dis-
tinct and sometimes novel ways. Web applications con-
sist of heterogeneous components including traditional
and nontraditional software, interpreted scripting lan-
guages, plain HTML (hypertext markup language) files,
mixtures of HTML and programs, databases, graphical
images, and complex user interfaces. This heterogeneity
has led to the notion of Web site engineering (Powell,
1998).
The tremendous reach of Web applications into all
areas of communication and commerce makes this one
of the largest and most important parts of the software
industry. Yet studies (President’s Information Techno-
logy Advisory Committee [PITAC] 1999; Schneider, 1999)
have found that the current base of science and techno-
logy is inadequate for building systems to control crit-
ical software infrastructure. Web software development
uses cutting-edge, diverse technologies, and we are just
beginning to learn how to design and develop high-
quality Web software, making this problem particularly
severe.FIRST-GENERATION WEB SITES
The original Web sites were static HTML files, so-called
soft brochures, usually created by a single webmaster who
used technologies such as HTML and simple CGI scriptsto present information to visitors and occasionally ob-
tain information from them with forms (Powell, 1998).
Figure 1 illustrates this scenario. A client was a Web
browser that people used to visit Web sites. The Web sites
were on separate computers, the servers, which delivered
HTML files to the client. HTML forms generated data that
were sent back to the server to be processed by CGI pro-
grams. This is a simple execution model that supports rel-
atively small Web sites. The software involved is by neces-
sity small in scale; such Web sites usually cannot support
much load and offer limited functionality. The software
also has few provisions for security, and the TCP (trans-
mission control protocol) and HTTP (hypertext transfer
protocol) by themselves are not designed to support se-
cure interactions.SECOND-, THIRD-, AND
FOURTH-GENERATION WEB SITES
This situation drastically changed through the late 1990s,
with strong impact on and motivation from engineering
principles and processes. Second-generation Web sites
featured significantly more layout and presentation abili-
ties, graphics, and more robust backend software support,
including session management with cookies.
Third-generation Web sites added improved inter-
action, including client-side execution such as Java-
Scripts and Java applets. Third-generation Web sites also
became fully functional software systems and provide
business-to-customer and business-to-business e-busi-
ness, and a large variety of services to a large variety of
users.
Developers of third-generation Web sites found several
problems with the software support for the increased level
of uses. It was difficult to achieve the reliability needed
for e-business, security became a problem, maintenance
was difficult, and the software designs did not scale well.
Fourth-generation Web sites currently rely on multitiered
hardware and software architectures, improved software
technologies such as the J2EE platform, communication286