The Internet Encyclopedia (Volume 3)

(coco) #1

P1: c-161


SoftwareDesign WL040/Bidgoli-Vol III-Ch-24 June 23, 2003 16:25 Char Count= 0


CURRENTISSUES WITHDESIGNINGWEBSOFTWARE 293

is large, and users expect the Web applications to work as
reliably as purchases at a grocery store or phone orders
from a catalog. Moreover, if a Web application does not
work well, the users do not have to drive farther to reach
another store; they simply have to point their browser
to a different Web site. Thus, if Web software is unre-
liable, Web sites that depend on the software will lose
customers and the businesses may lose money. Careful
use of sound development processes, full-strength lan-
guages such as Java and C#, debugging and testing tools,
and well-validated third-party software components have
dramatically improved reliability for some Web appli-
cations. At this point in time, however, there are many
unanswered questions, including what processes succeed,
how best to design the software, and how best to test the
software.
Several general principles must be followed to ensure
quality design of Web software. The software has to work
well every time, and it must be easy to maintain, thus the
design specifications must be well documented and the
program must be well commented. Because the work en-
vironments tend to be dynamic and diverse, software com-
ponents must be integrated, the development team must
collaborate heavily, and everybody on the team should
have a clear understanding of the design. Web applica-
tions need to be scalable and will change often and fre-
quently, so many engineers believe the software must also
be written to allow for future requirements. Other engi-
neers have the opposite idea, believing that when require-
ments change the systems should be rebuilt from the be-
ginning. Although this view has attracted some attention,
it runs directly counter to more than 30 years of software
engineering wisdom.
Web sites must be usable, so a successful development
team must include one or more usability experts (Nielsen,
2000). In addition, actual users of the application must be
involved with the user interface portion of the design from
the beginning of the project.

CURRENT ISSUES WITH DESIGNING
WEB SOFTWARE
The high-quality requirements that Web software must
exhibit bring new and interesting challenges to Web soft-
ware developers. This section identifies a few of these chal-
lenges; as of this writing, research is underway to develop
ways to ensure the quality of software that is used for Web
applications.

Design Challenges
Tremendous effort has been expended to ensure the qual-
ity of traditional programs, resulting in testing techniques
for both stand-alone and distributed systems. Although
some of these techniques can be used to help ensure the
quality of Web applications, some of the special features
and requirements of Web applications prevent them from
being directly adopted. These challenges are summarized
in the following paragraphs.
The overall architecture of Web applications is sim-
ilar to client–server systems in many aspects, but there
is a key difference. In traditional client–server systems,

the respective roles of the clients and servers and their
interactions are predefined and static. In Web applica-
tions, however, client-side programs and contents may
be generated dynamically. For example, a server may re-
turn a dynamically generated HTML file that contains dy-
namically generated JavaScripts, links and contents. This
means that which subsequent interactions between the
client and server are available depend on the previous
inputs.
For traditional programs, correctness and efficiency
are usually the most important quality factors. For Web
applications, other quality features can often be more im-
portant, and yet we have few techniques for supporting
them. For example, compatibility and interoperability are
urgent and cause problems that are more serious than
with traditional programs. Traditional programs are usu-
ally developed for a certain predefined, well-understood
environment, with few conflicts and changes. Web ap-
plications are often affected by factors that may cause
incompatibility and interoperability issues. For example,
server components can be distributed to different operat-
ing systems, such as UNIX, Linux, Windows, MacOS, and
AIX, each of which has multiple versions, and run with dif-
ferent Web server packages, including IIS from Microsoft,
Apache from the Apache software foundation, WebLogic
from BEA, WebSphere from IBM, and others. The situa-
tion is even more complex on the client side, with different
versions of Web browsers running under a variety of oper-
ating systems. Clients may also use different connection
approaches, such as dial-up modems, direct Internet ac-
cess, or wireless, and they may also use different Internet
service providers. All of this heterogeneity makes it more
difficult to produce Web application components that are
compatible with one another and that interoperate easily
and correctly.
Another difference between Web applications and
other types of programs is the variance in the control of
execution of the application. For traditional programs, the
control flow is fully managed by the program, so the user
cannot affect it. When executing Web applications, users
can break the normal control flow without alerting the
program controller. For example, users can press the back
or refresh button in the Web browser, which changes the
execution context, causing unexpected results. Further-
more, changes in the client-side configuration may affect
the behavior of Web applications in ways that are difficult
for Web software designers to anticipate. For example,
users can turn off cookies, causing subsequent operations
to malfunction.
Web applications also have much faster maintenance
requirements than most traditional software. Web tech-
nologies evolve more rapidly than traditional software
technologies, and the changes in Web application re-
quirements can be more dramatic—maintenance not
only needs to be done more frequently, but more effici-
ently.
Web applications also have features that are not pre-
sent in client–server and distributed systems. These in-
clude session control, cookies, the stateless aspect of
HTTP, and new security issues (related to the use of pub-
lic networks). Therefore, new solutions are necessary to
implement these features correctly.
Free download pdf