Escolar Documentos
Profissional Documentos
Cultura Documentos
Daniel M. Brandon
Christian Brothers University, USA
Copyright 2008 by IGI Global. All rights reserved. No part of this publication may be reproduced, stored or distributed in any form or by
any means, electronic or mechanical, including photocopying, without written permission from the publisher.
Product or company names used in this set are for identification purposes only. Inclusion of the names of the products or companies does
not indicate a claim of ownership by IGI Global of the trademark or registered trademark.
Software engineering for modern Web applications : methodologies and technologies / Daniel M. Brandon, editor.
p. cm.
Summary: "This book presents current, effective software engineering methods for the design and development of modern Web-based
applications"--Provided by publisher.
1. Application software--Development. 2. Internet programming. 3. Web site development. 4. Software engineering. I. Brandon, Dan,
1946-
QA76.76.A65.S6588 2008
005.1--dc22
2008008470
All work contributed to this book set is original material. The views expressed in this book are those of the authors, but not necessarily of
the publisher.
If a library purchased a print copy of this publication, please go to http://www.igi-global.com/agreement for information on activating the
library's complimentary electronic access to this publication.
Table of Contents
Chapter I
Web Engineering: Introduction and Perspectives .................................................................................1
San Murugesan, Southern Cross University, Australia
Athula Ginige,University of Western Sydney, Australia
Chapter II
Augmented WebHelix: A Practical Process for Web Engineering .....................................................25
Nary Subramanian, University of Texas at Tyler, USA
George Whitson, University of Texas at Tyler, USA
Chapter III
Model-Centric Architecting Process ...................................................................................................53
Tony C. Shan, IBM, USA
Winnie W. Hua, CTS, Inc., USA
Chapter IV
Architecture, Specification, and Design of Service-Oriented Systems...............................................68
Jaroslac Krl, Charles University, Czech Republic
Michal emlika, Charles University, Czech Republic
Chapter V
Data Integration Through Service-Based Mediation for Web-Enabled
Information Systems ...........................................................................................................................84
Yaoling Zhu, Dublin City University, Ireland
Claus Pahl, Dublin City University, Ireland
Chapter VI
Using Patterns for Engineering High-Quality Web Applications .....................................................100
Pankaj Kamthan, Concordia University, Canada
Chapter VII
Component-Based Deployment for Web Applications:
Experiences with Duct Tape and Glue ..............................................................................................123
Kevin Gary, Arizona State University, USA
Harry Koehnemann, Arizona State University, USA
Chapter VIII
Evolving Web Application Architectures: From Model 2 to Web 2 .................................................138
David Parsons, Massey University, New Zealand
Chapter IX
Applying Agility to Database Design ...............................................................................................160
Guoqing Wei, FedEx Corporation, USA
Linda Sherrell, University of Memphis, USA
Chapter X
Automatic Creation of GUIs for Web Based ERP Systems.............................................................179
Jorge Marx Gmez, Universitt Oldenburg, Germany
Daniel Lbke, Leibniz Universitt Hannover, Germany
Chapter XI
Prototyping in Web Development .....................................................................................................191
Clif Kussmaul, Elegance Technologies, Inc., USA & Muhlenberg College, USA
Roger Jack, Elegance Technologies, Inc., USA
Chapter XII
Testing Methods for Web Applications .............................................................................................207
Dave L. Mills, University of Memphis, USA
Chapter XIII
Outsourcing Issues in Web Development .........................................................................................217
Clif Kussmaul, Elegance Technologies, Inc., USA & Muhlenberg College, USA
Roger Jack, Elegance Technologies, Inc., USA
Chapter XIV
Engineering Wireless Mobile Applications ......................................................................................239
Qusay H. Mahmoud, University of Guelph, Canada
Zakaria Maamar, Zayed University, UAE
Chapter XV
Project Management and Web Software Engineering ......................................................................254
Daniel M. Brandon, Christian Brothers University, USA
Chapter XVI
Resources on Web-Centric Computing .............................................................................................292
Margaret Menzin, Simmons College, USA
Index .................................................................................................................................................378
Detailed Table of Contents
Chapter I
Web Engineering: Introduction and Perspectives .................................................................................1
San Murugesan, Southern Cross University, Australia
Athula Ginige,University of Western Sydney, Australia
Chapter I discusses our dependence and reliance on the Web which has increased dramatically over the
years. As a result, the development of Web applications has become more complex and challenging
than most of us think. In many ways, it is also different and more complex than traditional software
development. But, currently, the development and maintenance of most Web applications is chaotic and
far from satisfactory. To successfully build and maintain large, complex Web-based systems and ap-
plications, Web developers need to adopt a disciplined development process and a sound methodology.
The emerging discipline of Web engineering advocates a holistic, disciplined approach to successful
Web development. In this chapter, we articulate and raise awareness of the issues and considerations
in large, complex Web application development, and introduce Web engineering as a way of managing
complexity and diversity of large-scale Web development.
Chapter II
Augmented WebHelix: A Practical Process for Web Engineering .....................................................25
Nary Subramanian, University of Texas at Tyler, USA
George Whitson, University of Texas at Tyler, USA
Chapter II discusses Process is an important element in the success of any information systems develop-
ment project especially in academia where typically an undergraduate term project needs to go through
the development phases within the space of a semester. The omission of customer feedback results in
students completing toy projects without significant real-world experience; efforts to incorporate
artificial customer interactions have not been very successful either. WebHelix has been recently intro-
duced as a practical process for Web engineering that helps students gain valuable real-world experience
without sacrificing project and product management phases. In this chapter, we propose the augmented
WebHelix process that augments the WebHelix in three ways: provides an option at the end of each slice
of the helix to both release the current version and continue to the next slice of development, and pro-
vides a qualitative evaluation framework, called the project evaluation framework (PEF); that provides a
systematic approach for evaluating the status of the project; and the ability to evaluate the project at the
end of each phase in a slice of the helix. In this chapter, we describe the augmented WebHelix process
and demonstrate its applicability to both academia and industry with examples.
Chapter III
Model-Centric Architecting Process ...................................................................................................53
Tony C. Shan, IBM, USA
Winnie W. Hua, CTS, Inc., USA
Chapter III defines a methodical approach, named model-centric architecting process (MAP), to effec-
tively cope with the architecture design complexity and manage the architecting process and lifecycle of
information systems development in a service-oriented paradigm. This comprehensive method comprises
four dimensions of architecting activities: requirement analysis, specification, validation, and planning
(RSVP). The process is broken down to 9 interrelated models: meta architecture, conceptual architecture,
logical architecture, physical architecture, deployment architecture, management architecture, informa-
tion architecture, aspect architecture, and component architecture. This systematic framework may be
customized in different formats to design various information systems in different industries.
Chapter IV
Architecture, Specification, and Design of Service-Oriented Systems...............................................68
Jaroslac Krl, Charles University, Czech Republic
Michal emlika, Charles University, Czech Republic
Service-oriented software systems (SOSS) are discussed in Chapter IV. It is preferable to understand
service orientation not to be limited to Web services and Internet only. It is shown that there are several
variants of SOSS having different application domains, different user properties, different development
processes, and different software engineering properties. The conditions implying advantageous user
properties of SOSS are presented.
Chapter V
Data Integration Through Service-Based Mediation for Web-Enabled
Information Systems ...........................................................................................................................84
Yaoling Zhu, Dublin City University, Ireland
Claus Pahl, Dublin City University, Ireland
The Web and its underlying platform technologies have often been used to integrate existing software
and information systems. In Chapter V the Web context, where the Web platform is used to integrate dif-
ferent organisations or software systems, additionally the problem of heterogeneity arises. We introduce
a specific data integration solution for Web applications such as Web-enabled information systems. Our
contribution is an integration technology framework for Web-enabled information systems comprising,
firstly, a data integration technique based on the declarative specification of transformation rules and
the construction of connectors that handle the integration and, secondly, a mediator architecture based
on information services and the constructed connectors to handle the integration process.
Chapter VI
Using Patterns for Engineering High-Quality Web Applications .....................................................100
Pankaj Kamthan, Concordia University, Canada
Chapter VI discusses the development and maintenance of Web applications from an engineering perspec-
tive. A methodology, termed as POWEM, for deploying patterns as means for improving the quality of
Web applications is presented. The role of a process, the challenges in making optimal use of patterns,
and feasibility issues involved in doing so, are analyzed. The activities of a systematic selection and ap-
plication of patterns are explored. Following a top-down approach to design, examples illustrating the
use of patterns during macro- and micro-architecture design of a Web application are given. Finally, the
implications towards Semantic Web applications and Web 2.0 applications are briefly outlined.
Chapter VII
Component-Based Deployment for Web Applications:
Experiences with Duct Tape and Glue ..............................................................................................123
Kevin Gary, Arizona State University, USA
Harry Koehnemann, Arizona State University, USA
The software engineering community touts component-based software systems as a potential silver bul-
let for many of its woes: reducing cycle time; reducing cost;, increasing productivity;, allowing easier
integration - to name just a few. Indeed, many Web-based systems are now built with open-source
and vendor provided component technologies. While these advances have led to improvements in the
development process, they have also led to a great deal of pressure on downstream processes as these
systems must be deployed, tuned, and supported. The complexities in deploying and supporting com-
ponent-based software for distributed and Web-based applications are not understood in the academic
or professional communities. Chapter VII stresses the need for addressing this problem by presenting
component-based software for Web applications from a deployment perspective, characterizing the is-
sues through real-world experiences with highly component-based applications, and presents strategies
and directions for the community to pursue.
Chapter VIII
Evolving Web Application Architectures: From Model 2 to Web 2 .................................................138
David Parsons, Massey University, New Zealand
Chapter VIII discusses how Web application software architecture has evolved from the simple begin-
nings of static content, through dynamic content, to adaptive content and the integrated client-server
technologies of the Web 2.0. It reviews how various technologies and standards have developed in a
repeating cycle of innovation, which tends to fragment the Web environment, followed by standardiza-
tion, which enables the wider reach of new technologies. It examines the impact of the Web 2.0, XML,
Ajax and mobile Web clients on Web application architectures, and how server side processes can support
increasingly rich, diverse and interactive clients. It provides an overview of a server-side Java-based
architecture for contemporary Web applications that demonstrates some of the key concepts under dis-
cussion. By outlining the various forces that influence architectural decisions, this chapter should help
developers to take advantage of the potential of innovative technologies without sacrificing the broad
reach of standards based development.
Chapter IX
Applying Agility to Database Design ...............................................................................................160
Guoqing Wei, FedEx Corporation, USA
Linda Sherrell, University of Memphis, USA
Chapter IX discusses the introduction of agile practices into software organizations which may cause
unhealthy tensions between the developers and data professionals. The underlying reason is that when
agile methodologies are employed, the two communities use incompatible approaches, namely simple
design and iterative development, which are practices associated with all agile methodologies, and big
design up front (BDUF), a popular database technique. BDUF is inflexible, as once the database founda-
tion is set, it is difficult to make changes throughout the software development life cycle. This chapter
describes a database development method for a Web environment. The result is that the database develop-
ment becomes more iterative and incremental. This has the added benefit of supporting rapid application
development in a dynamic environment, a fundamental characteristic of most Web applications.
Chapter X
Automatic Creation of GUIs for Web Based ERP Systems.............................................................179
Jorge Marx Gmez, Universitt Oldenburg, Germany
Daniel Lbke, Leibniz Universitt Hannover, Germany
Service-oriented architecture (SOA) is an emerging architectural style for developing and structuring
business applications, especially enterprise resource planning (ERP) systems. However, current com-
position standards like BPEL have no ability to interact with users. Therefore, we propose in Chapter
X a mechanism for including user interaction descriptions into the composition and extending the
composition platform for generating user interfaces. In our case study, a federated ERP (FERP) system,
this mechanism has been implemented in a prototype based on yet another workflow language (YAWL)
dynamically generating Web pages for accessing the ERP system. Because every aspect including the
user interfaces can be manipulated through the service composition, such systems are highly flexible
yet maintainable.
Chapter XI
Prototyping in Web Development .....................................................................................................191
Clif Kussmaul, Elegance Technologies, Inc., USA & Muhlenberg College, USA
Roger Jack, Elegance Technologies, Inc., USA
Chapter XI addresses issues, alternatives, and best practices for prototyping in Web development. The
chapters primary objective is to provide a clear and concise overview of key concepts and best practices
for practitioners and students, as well as other audiences. The chapter focuses on graphical user interface
(UI) prototyping for Web development, but many of the principles apply to non-UI prototyping and other
sorts of software development. First, we introduce the chapter, and review the major objectives, benefits
and risks, and classifications of prototypes. Second, we describe the major approaches to prototyping.
Finally, we conclude with future trends and a summary of best practices.
Chapter XII
Testing Methods for Web Applications .............................................................................................207
Dave L. Mills, University of Memphis, USA
Chapter XII introduces several modern methods and tools for creating tests and integrating testing in
Web applications, as well as presenting some practices that expand the role of testing in software devel-
opment. Teams adopting practices such as test-driven development (TDD) and acceptance (customer)
testing have shown significant gains in the quality and correctness of the code produced. These practices
encourage a more holistic view of testing by integrating a sound testing solution into current software
development life cycle models. Furthermore, tests can play an important role in gathering requirements
and providing documentation. In this chapter, in addition to offering an initiation to some of the modern
testing methods and tools, the authors hope to motivate readers to consider testing as a multi-purpose
tool to be used throughout all stages of development.
Chapter XIII
Outsourcing Issues in Web Development .........................................................................................217
Clif Kussmaul, Elegance Technologies, Inc., USA & Muhlenberg College, USA
Roger Jack, Elegance Technologies, Inc., USA
Chapter XIII addresses issues, alternatives, and best practices that apply when outsourcing Web de-
velopment. The chapters primary objective is to provide a concise overview of key concepts and best
practices for practitioners and students, as well as other audiences. First, we introduce the chapter, pro-
vide background, and present three key ideas that are expanded and developed in the two subsequent
sections. The first describes four steps to help executives and upper management address strategic issues
and decisions in outsourcing. The second describes four more steps to help managers, team leaders, and
development teams address more tactical issues. We conclude with future trends and implications, and
a summary of the best practices.
Chapter XIV
Engineering Wireless Mobile Applications ......................................................................................239
Qusay H. Mahmoud, University of Guelph, Canada
Zakaria Maamar, Zayed University, UAE
Chapter XIV discusses conventional desktop software applications which are usually designed, built,
and tested on a platform similar to the one on which they will be deployed and run. Wireless mobile
application development, on the other hand, is more challenging because applications are developed on
one platform (like UNIX or Windows) and deployed on a totally different platform like a cellular phone.
While wireless applications can be much smaller than conventional desktop applications, developers
should think in small terms of the devices on which the applications will run and the environment in
which they will operate instead of the amount of code to be written. This chapter presents a systematic
approach to engineering wireless application and offers practical guidelines for testing them. What is
unique about this approach is that it takes into account the special features of the new medium (mobile
devices and wireless networks), the operational environment, and the multiplicity of user backgrounds;
all of which pose new challenges to wireless application development.
Chapter XV
Project Management and Web Software Engineering ......................................................................254
Daniel M. Brandon, Christian Brothers University, USA
The process involved with the development of web applications is significantly different from the pro-
cess of developing applications on older platforms. This is a difference not only in technologies but
in the overall business process and associated methodology, in other words the project management.
Web applications generally manage content and not just data, and many web applications are document
centric versus data centric. In addition, there are many more people involved in the definition, design,
development, testing, and approval for Web applications. The pace of business life is much quicker to-
day than in the past, thus Web applications need to be deployed much quicker that earlier IT application
and they need to be engineered for more flexibility and adaptability in terms of changing requirements,
changing content, changing presentation, mass user customization. In addition, security concerns are
more prevalent in Web applications since the end users are outside as well as inside the corporate virtual
perimeter. Web applications can serve a global audience and thus there are more diverse stakeholders
for these applications. Issues such as language, culture, time zones, weights and measures, currency,
logistics, and so forth, need to be considered. This chapter re-examines the project management issues
involved with Web applications.
Chapter XVI
Resources on Web-Centric Computing .............................................................................................292
Margaret Menzin, Simmons College, USA
Chapter XVI provides an extensive listing of resources for Web software engineering as well as an
author sponsored link to more detailed and more current resources as they become available.
Index .................................................................................................................................................378
xii
Preface
Not since the industrial revolution have people all over the world experienced such dramatic business
and lifestyle changes as are now occurring due to information technology (IT) in general and to the
Internet specifically. According to the RAND organization (Hundley, 2004):
Advances in information technology are affecting most segments of business, society, and governments
today in many if not most regions of the world. The changes that IT is bringing about in various aspects
of life are often collectively called the information revolution.
The current IT revolution is not the first of its kind. Historians and nations may debate the exact time
and place of previous information revolutions, but they were:
One is reminded of the opening sentence from A Tale of Two Cities by Charles Dickens: It was the
best of times, it was the worst of times. Dickens was referring to the French Revolution, but today in
the 21st century we are well into the IT Revolution.
All major revolutions help some people and organizations, and these may think it is the best of
times but they also hurt some, and these organizations and people think it to be the worst of times.
With big revolutions there always will be big winners and big losers. As an example, when the print-
ing press was invented, the largest occupation in Europe was the hand copying of books in thousands
of monasteries each of which was home to hundreds of monks; fifty years later the monks had been
completely displaced. The impact to society was enormous, not because of the displacement of monks
by other craftsmen and machines, but because the price of books dropped so drastically that common
people could now afford to educate themselves.
For many this new IT revolution is bringing great things with unprecedented improvements in the
quality and efficiency of all we do as organizations and as individuals. However for others, IT is a double-
edged sword bringing about many problems, disturbances, and unresolved issues such as the creation of
a Digital Divide between the IT the haves and the have-nots. In addition IT security and privacy
problems are getting out of control as evidenced by computer viruses, worms, e-mail fraud and spam,
the compromise of personal and private digital information, spyware, piracy of intellectual property,
xiii
identity theft, IP hijacking, hacking, and other computer crimes. Today, there are major and numerous
security holes in most software that corporations and individuals use on an everyday basis.
The single most important technology of this information revolution has to be the Internet, which is
the combination of several underlying technologies. Consider the penetration rate (in the time to reach
50 million users) of milestone information technologies of the recent past compared to the Internet:
It seems that most of the really cool and innovative IT products and projects today involve Web
applications, one way or another; such products and technologies as Amazon, Google, YouTube, Map-
Quest, eBay, Priceline, and iPhone immediately come to mind. However, as well as these glamorous
innovations, many more everyday business applications are migrating to the Web. This is true for both
intra-company applications and extra-company applications.
But the Internet and related technologies are beginning to cause significant industrial disruptions
including:
The process and results of these disruptions has been called creative destruction by the RAND
Corporation, and this results in the economic eclipse of organizations not embracing the new IT world.
Traditional mechanisms of government (i.e., jurisdiction, taxation, regulation, permits and licenses, etc.)
will also be subject to significant disruption in response to these other changes, as will the insurance
and finance industries.
Todays commerce landscape is defined by fierce global competition, thus the battle cry of the modern
business world is:
xiv
Better !
Cheaper !
Faster !
That battle cry starts in the board room then down through the management chain as these themes
are the crux of market positioning (quality, cost, and time to market) as illustrated in Figure I-1. As Tom
Cruise said in the movie Top Gun: I feel a need, a need for speed. That need for speed has been
emphasized to IT project managers and software development teams by upper management.
To produce better and/or cheaper products or services and get them to market quicker requires better,
cheaper, faster processes as illustrated in Figure I-2. In todays world, information systems play a key
role and an ever increasing role in the overall process of producing/delivering products or providing
services. Today almost every aspect in the design, creation, delivery, and support of products or services
today is highly dependent on IT.
The IT platform of choice for implementing business applications has evolved over the last 50 years
mainly by mutations rather than by the continuous change of natural selection. This is illustrated in
Figure I-3. Todays Internet and Web applications specifically offer business a way to tap into a global
market very quickly. Both large and small organizations can easily, cheaply, and quickly put forth a
global presence and/or storefront via todays Internet.
The initial simplicity of Web-based HTTP/HTML applications provided a rapid proliferation of
simple internet applications. In those early days of the Internet, Web-user interface designers may have
felt a little envious of their colleagues who created desktop (PC) client-server software. PC and client-
server desktop applications had a richness and responsiveness that initially seemed out of reach for early
faster
Time T o
market
products processes
HTML Web software. However, today software technology stacks such as DHTML and Ajax now allow
rich and responsive Web applications to be built which increase the depth and breadth of possible Web
application penetration and proliferation.
Web-based applications have continued to evolve as more and newer technolgies become available.
We are now into the Web 2 era with these rich and dynamic Web pages, and we are beginning to ex-
periment with Web 3 technologies and methodologies to create a hyperspace not only of documents,
but also of multi-dimensional database objects.
From a software engineering perspective, and also from a project management perspective, develop-
ing Web-based applications is different from developing traditional applications based on mainframe
cheaper
automation mainframe
universal Web
access Based
and/or client-server technologies. Some of these differences arise due to changes in the technologies
involved, some differences are due to the business climate today, and some differences are due to the
scope and nature of the Web applications themselves.
The pace of business life is much quicker today than in the past, stimulated in a large extent due to
global competition and the rate of new technology advances. Thus Web applications need to be deployed
much quicker than earlier IT applications. Also due to the rapid business pace today, Web applications
need to be engineered for more flexibility and adaptability in terms of changing requirements, changing
content, and changing presentation. Business growth can be rapid for some products and services, thus
Web applications need to be more scalable to accommodate large and rapid growth in terms of number
of users and number of hits. Many Web applications are also for products that feature the concept of
mass customization which often translates into user customization of the Web user interface as well
as the product and/or service being delivered.
Web applications can serve a global audience and thus there are more diverse stakeholders for these
applications. Issues such as language, culture, time zones, weights and measures, currency, logistics,
and so forth, need to be considerd. Norms and even laws may be different where Web applications are
defined as opposed to where Web applications are utilized. Also because of the larger and more diverse
stakeholder sets, Web applications are subject to much more external scrutiny.
Web applications are physically or virtually delivered over a network rather than installed as was
the case with mainframe or desktop applications. Thus network considerations such as responsiveness,
throughput, and security are much greater.
Older mainframe, client-server, and/or desktop applications generally involved a single programming
language (and toolset), at least for each distinct application/program. Mainframe applications were typi-
cally written in COBOL, RPG, or FORTRAN and client-server/desktop applications were written in C,
C++, or Visual Basic. However, producing Web applications generally involves multiple languages and
tool sets including HTML, JavaScript, and CSS on the browser (client) side, and Java, PHP, ASP, or Perl
on the server side. New technologies may also be intermixed on both sides including XML, SOAP, and
Ajax. For business applications, a common denominator between older applications and Web applica-
tions has been the use of SQL for database queries and manipulation.
Web applications generally manage content and not just data; further, many Web applications are
document centric versus data centric. There are many more people involved in the definition, design,
development, testing, and approval for Web applications as opposed to older IT applications, both techni-
cal types and business types. This is illustrated in Figure I-5, which shows that many Web applications
have not only a software development lifecycle, but also a content management lifecycle.
This book addresses many of the above differences between Web software engineering and traditional
software engineering platforms, and introduces and discusses methodologies and technologies for suc-
cessful application development in the Web environment:
Chapter I: Web Engineering: Introduction and Perspectives. Web-based systems and applica-
tions now deliver a complex array of functionality to a large number of diverse groups of users. As our
dependence and reliance on the Web has increased dramatically over the years, their performance, reli-
ability and quality have become paramount importance. As a result, the development of Web applications
has become more complex and challenging than most of us think. In many ways, it is also different and
more complex than traditional software development. But, currently, the development and maintenance
of most Web applications is chaotic and far from satisfactory. To successfully build and maintain large,
complex Web-based systems and applications, Web developers need to adopt a disciplined development
process and a sound methodology. The emerging discipline of Web engineering advocates a holistic,
xvii
IT line
managers
software development lifecycle
document
project Web
management
manager application
system
Business
line
managers content approval & control
language
product market communication Graphic
& culture Trainers Webmaster
managers analysts specialists designers
specialists
disciplined approach to successful Web development. In this chapter, we articulate and raise awareness
of the issues and considerations in large, complex Web application development, and introduce Web
engineering as a way of managing complexity and diversity of large-scale Web development.
Chapter II: Augmented WebHelix: A Practical Process for Web Engineering. Process is an impor-
tant element in the success of any information systems development project especially in academia where
typically an undergraduate term project needs to go through the development phases within the space of
a semester. Traditionally academic processes have been adapted versions of well-known industrial pro-
cesses with one major exception lack of customer feedback in the process. This omission of customer
feedback results in students completing toy projects without significant real-world experience; efforts
to incorporate artificial customer interactions have not been very successful either. It is our opinion that
the industry processes cannot be simply copied in academia; what is required is a process that will better
equip the students to face real-world challenges. WebHelix has been recently introduced as a practical
process for Web engineering that helps students gain valuable real-world experience without sacrificing
project and product management phases. In this chapter, we propose the Augmented WebHelix process
that augments the WebHelix in three ways: provides an option at the end of each slice of the helix to
both release the current version and continue to the next slice of development, and provides a qualita-
tive evaluation framework, called the project evaluation framework (PEF); that provides a systematic
approach for evaluating the status of the project; and the ability to evaluate the project at the end of each
phase in a slice of the helix. The first augmentation provides the ability to release and continue which
is more practical than the go/no-go approach adopted by WebHelix; the second augmentation, the PEF,
allows different factors besides the return-on-investment as in WebHelix to be considered for evaluating
the current phase and status of the project, and the third augmentation provides the ability to ensure the
project is on track. In this chapter, we describe the augmented WebHelix process and demonstrate its
applicability to both academia and industry with examples.
Chapter III: Model-Centric Architecting Process. This chapter defines a methodical approach,
named model-centric architecting process (MAP), to effectively cope with the architecture design
xviii
complexity and manage the architecting process and lifecycle of information systems development in
a service-oriented paradigm. This comprehensive method comprises four dimensions of architecting
activities: requirement analysis, specification, validation, and planning (RSVP). The process is broken
down to 9 interrelated models: meta architecture, conceptual architecture, logical architecture, physi-
cal architecture, deployment architecture, management architecture, information architecture, aspect
architecture, and component architecture. A 2-D matrix serves as a blueprint to denote a step-by-step
procedure to produce and manage the architectural artifacts and deliverables in the lifecycle of systems
architecture design, development and governance. The holistic framework provides a multidisciplinary
view of the design principles, tenets, idioms, and strategies in the IT architecting practices. The char-
acteristics and features of the constituent elements in the MAP approach are articulated in great detail.
Recommendations and future trends are also presented in the context. It helps build high-quality service-
oriented solutions focused on different domains, and in the meantime keeps the agility, flexibility and
adaptiveness of the overall method. This systematic framework may be customized in different formats
to design various information systems in different industries.
Chapter IV: Architecture, Specification, and Design of Service-Oriented Systems. Service-ori-
ented software systems (SOSS) are becoming the leading paradigm of software engineering. The crucial
elements of the requirements specification of SOSSs are discussed as well as the relation between the
requirements specification and the architecture of SOSS. It is preferable to understand service orienta-
tion not to be limited to Web services and Internet only. It is shown that there are several variants of
SOSS having different application domains, different user properties, different development processes,
and different software engineering properties. The conditions implying advantageous user properties
of SOSS are presented. The conditions are user-oriented interfaces of services, the application of peer-
to-peer philosophy, and the combination of different technologies of communication between services
(seemingly the obsolete ones inclusive), and autonomy of the services. These conditions imply excellent
software engineering properties of SOSSs as well. Service orientation promises to open the way to the
software as a proper engineering product.
Chapter V: Data Integration Through Service-Based Mediation for Web-Enabled Information
Systems. The Web and its underlying platform technologies have often been used to integrate existing
software and information systems. Traditional techniques for data representation and transformations
between documents are not sufficient to support a flexible and maintainable data integration solution
that meets the requirements of modern complex Web-enabled software and information systems. The
difficulty arises from the high degree of complexity of data structures, for example in business and
technology applications, and from the constant change of data and its representation. In the Web context,
where the Web platform is used to integrate different organisations or software systems, additionally the
problem of heterogeneity arises. We introduce a specific data integration solution for Web applications
such as Web-enabled information systems. Our contribution is an integration technology framework for
Web-enabled information systems comprising, firstly, a data integration technique based on the declara-
tive specification of transformation rules and the construction of connectors that handle the integration
and, secondly, a mediator architecture based on information services and the constructed connectors to
handle the integration process.
Chapter VI: Using Patterns for Engineering High-Quality Web Applications. In this chapter,
we view the development and maintenance of Web applications from an engineering perspective. A
methodology, termed as POWEM, for deploying patterns as means for improving the quality of Web
applications is presented. To that end, relevant quality attributes and corresponding stakeholder types are
identified. The role of a process, the challenges in making optimal use of patterns, and feasibility issues
involved in doing so, are analyzed. The activities of a systematic selection and application of patterns
are explored. Following a top-down approach to design, examples illustrating the use of patterns during
xix
macro- and micro-architecture design of a Web application are given. Finally, the implications towards
Semantic Web applications and Web 2.0 applications are briefly outlined.
Chapter VII: Component-Based Deployment for Web Applications. The software engineering
community touts component-based software systems as a potential silver bullet for many of its woes:
reducing cycle time; reducing cost;, increasing productivity;, allowing easier integration - to name just a
few. Indeed, many Web-based systems are now built with open-source and vendor provided component
technologies. While these advances have led to improvements in the development process, they have
also led to a great deal of pressure on downstream processes as these systems must be deployed, tuned,
and supported. The complexities in deploying and supporting component-based software for distributed
and Web-based applications are not understood in the academic or professional communities. This
chapter stresses the need for addressing this problem by presenting component-based software for Web
applications from a deployment perspective, characterizing the issues through real-world experiences
with highly component-based applications, and presents strategies and directions for the community to
pursue.
Chapter VIII: Evolving Web Application Architectures, from Model 2 to Web 2. This chapter
explores how Web application software architecture has evolved from the simple beginnings of static
content, through dynamic content, to adaptive content and the integrated client-server technologies of
the Web 2.0. It reviews how various technologies and standards have developed in a repeating cycle of
innovation, which tends to fragment the Web environment, followed by standardization, which enables
the wider reach of new technologies. It examines the impact of the Web 2.0, XML, Ajax and mobile
Web clients on Web application architectures, and how server side processes can support increasingly
rich, diverse and interactive clients. It provides an overview of a server-side Java-based architecture
for contemporary Web applications that demonstrates some of the key concepts under discussion. By
outlining the various forces that influence architectural decisions, this chapter should help developers
to take advantage of the potential of innovative technologies without sacrificing the broad reach of
standards based development.
Chapter IX: Applying Agility to Database Design. Agile methods are flexible, allowing software
developers to embrace changes during the software development life cycle. But the introduction of agile
practices into software organizations may cause unhealthy tensions between the developers and data
professionals. The underlying reason is that when agile methodologies are employed, the two communi-
ties use incompatible approaches, namely simple design and iterative development, which are practices
associated with all agile methodologies, and big design up front (BDUF), a popular database technique.
BDUF is inflexible, as once the database foundation is set, it is difficult to make changes throughout the
software development life cycle. This chapter describes a database development method for a Web envi-
ronment. Using this method, a data professional divides the database into loosely coupled partitions and
resolves the above conflicts by applying certain agile practices. The result is that the database develop-
ment becomes more iterative and incremental. This has the added benefit of supporting rapid application
development in a dynamic environment, a fundamental characteristic of most Web applications.
Chapter X: Automatic Creation of GUIs for Web Based Systems. Service-oriented architecture
(SOA) is an emerging architectural style for developing and structuring business applications, especially
enterprise resource planning (ERP) systems. SOA applications are composed of small, independent and
network-accessible software components, named services. The service composition is normally based on
the enterprises business processes. However, current composition standards like BPEL have no ability
to interact with users. Therefore, we propose a mechanism for including user interaction descriptions
into the composition and extending the composition platform for generating user interfaces. In our case
study, a federated ERP (FERP) system, this mechanism has been implemented in a prototype based on yet
xx
another workflow language (YAWL) dynamically generating Web pages for accessing the ERP system.
Because every aspect including the user interfaces can be manipulated through the service composition,
such systems are highly flexible yet maintainable.
ChapterXI: Prototyping in Web Development. This chapter addresses issues, alternatives, and
best practices for prototyping in Web development. The chapters primary objective is to provide a clear
and concise overview of key concepts and best practices for practitioners and students, as well as other
audiences. The chapter focuses on graphical user interface (UI) prototyping for Web development, but
many of the principles apply to non-UI prototyping and other sorts of software development. First, we
introduce the chapter, and review the major objectives, benefits and risks, and classifications of proto-
types. Second, we describe the major approaches to prototyping. Finally, we conclude with future trends
and a summary of best practices.
Chapter XII: Testing Methods for Web Applications. This chapter introduces several modern
methods and tools for creating tests and integrating testing in Web applications, as well as presenting
some practices that expand the role of testing in software development. Teams adopting practices such
as test-driven development (TDD) and acceptance (Customer) testing have shown significant gains in
the quality and correctness of the code produced. These practices encourage a more holistic view of
testing by integrating a sound testing solution into current software development life cycle models.
Furthermore, tests can play an important role in gathering requirements and providing documentation.
In this chapter, in addition to offering an initiation to some of the modern testing methods and tools,
the authors hope to motivate readers to consider testing as a multi-purpose tool to be used throughout
all stages of development.
Chapter XIII: Outsourcing Issues in Web Development. This chapter addresses issues, alternatives,
and best practices that apply when outsourcing Web development. The chapters primary objective is to
provide a concise overview of key concepts and best practices for practitioners and students, as well as
other audiences. First, we introduce the chapter, provide background, and present three key ideas that are
expanded and developed in the two subsequent sections. The first describes four steps to help executives
and upper management address strategic issues and decisions in outsourcing. The second describes four
more steps to help managers, team leaders, and development teams address more tactical issues. We
conclude with future trends and implications, and a summary of the best practices.
Chapter XIV: Engineering Wireless Mobile Applications. Conventional desktop software ap-
plications are usually designed, built, and tested on a platform similar to the one on which they will
be deployed and run. Wireless mobile application development, on the other hand, is more challeng-
ing because applications are developed on one platform (like UNIX or Windows) and deployed on a
totally different platform like a cellular phone. While wireless applications can be much smaller than
conventional desktop applications, developers should think in small terms of the devices on which the
applications will run and the environment in which they will operate instead of the amount of code to
be written. This chapter presents a systematic approach to engineering wireless application and offers
practical guidelines for testing them. What is unique about this approach is that it takes into account the
special features of the new medium (mobile devices and wireless networks), the operational environ-
ment, and the multiplicity of user backgrounds; all of which pose new challenges to wireless application
development.
Chapter XV: Project Management and Web Software Engineering. The process involved with the
development of Web applications is significantly different from the process of developing applications
on older platforms. This is a difference not only in technologies but in the overall business process and
associated methodology, in other words the project management. Web applications generally manage
content and not just data, and many Web applications are document centric versus data centric. In addition,
xxi
there are many more people involved in the definition, design, development, testing, and approval for
Web applications. The pace of business life is much quicker today than in the past, thus Web applications
need to be deployed much quicker that earlier IT application and they need to be engineered for more
flexibility and adaptability in terms of changing requirements, changing content, changing presentation,
mass user customization. In addition, security concerns are more prevalent in Web applications since the
end users are outside as well as inside the corporate virtual perimeter. Web applications can serve a global
audience and thus there are more diverse stakeholders for these applications. Issues such as language,
culture, time zones, weights and measures, currency, logistics, and so forth, need to be considered. This
chapter re-examines the project management issues involved with Web applications.
Chapter XVI: Resources on Web-Centric Computing. This chapter provides an extensive listing
of resources for Web software engineering as well as an author sponsored link to more detailed and more
current resources as they become available
rEfErENcE
Hundley, R., et al. (2004), The Global Course of the Information Revolution: Recurring Themes and
Regional Variations, RAND Corporation, www.rand.org/publications/MR/MR1680/
Chapter I
Web Engineering:
Introduction and Perspectives
San Murugesan
Southern Cross University, Australia
Athula Ginige
University of Western Sydney, Australia
aBsTracT
Web-based systems and applications now deliver a complex array of functionality to a large number of
diverse groups of users. As our dependence and reliance on the Web has increased dramatically over
the years, their performance, reliability and quality have become paramount importance. As a result,
the development of Web applications has become more complex and challenging than most of us think.
In many ways, it is also different and more complex than traditional software development. But, cur-
rently, the development and maintenance of most Web applications is chaotic and far from satisfactory.
To successfully build and maintain large, complex Web-based systems and applications, Web developers
need to adopt a disciplined development process and a sound methodology. The emerging discipline
of Web engineering advocates a holistic, disciplined approach to successful Web development. In this
chapter, we articulate and raise awareness of the issues and considerations in large, complex Web ap-
plication development, and introduce Web engineering as a way of managing complexity and diversity
of large-scale Web development.
Copyright 2008, IGI Global, distributing in print or electronic forms without written permission of IGI Global is prohibited.
Web Engineering
Web Engineering
minimise risks and improve quality, maintain- development process, discusses considerations
ability, and scalability of Web applications. in Web design and recommends ten key steps for
The essence of Web engineering is to suc- successful development. In conclusion, it offers
cessfully manage the diversity and complexity perspectives on Web Engineering and highlights
of Web application development, and hence, some of the challenges facing Web developers and
avoid potential failures that could have serious Web engineering researchers.
implications.
This chapter aims to articulate and raise aware-
ness of the issues and considerations in large-scale EvoluTIoN of THE WEB
Web development and introduce Web engineering
as a way of managing complexity and diversity The Web has become closely ingrained with our
of large-scale Web development. life and work in just a few years. From its initial
Following a brief outline of the evolution of objective of facilitating easy creation and sharing
the Web and the categorisation of Web applica- of information among a few scientists using simple
tions based on their functionality, this chapter Web sites that consisted primarily of hyperlinked
examines current Web development practices text documents, the Web has grown very rapidly
and their limitations, and emphasises the need in its scope and extent of use, supported by con-
for a holistic, disciplined approach to Web de- stant advances in Internet and Web technologies
velopment. It then presents an overview of Web and standards. In 10 years, the number of Web
engineering, describes an evolutionary Web sites dramatically has grown from 100 to over 45
million (Figure 1).
Note: Web Sites = Number of Web servers; one host may have multiple sites by using different domains or port numbers.
Source: Hobbes Internet Timeline, 2004, www.zakon.org/robert/internet/timeline/
Web Engineering
Functionality/Category Examples
Informational Online newspapers, product catalogues, newsletters, manuals, reports, online classifieds, online books
Interactive Registration forms, customized information presentation, online games
Transactional Online shopping - ordering goods and services, online banking, online airline reservation, online payment
of bills
Workflow oriented Online planning and scheduling, inventory management, status monitoring, supply chain management
Collaborative work Distributed authoring systems, collaborative design tools
environments
Online communities, Discussion groups, recommender systems, online marketplaces, e-malls (electronic shopping malls),
marketplaces online auctions, intermediaries
Web Engineering
Web Engineering
of quickly hacked together Web systems that (Deshpande et al., 2002; Deshpande & Hansen,
are kept running via continual stream of patches 2001; Ginige & Murugesan, 2001a, 2001b; Glass,
or upgrades developed without systematic ap- 2001; Lowe 2003; Murugesan et al., 1999; Press-
proaches. (Dart, 2000) man, 2001 and 2004).
Web applications have the following charac-
Poorly developed Web-based applications have teristics:
a high probability of low performance and/or
failure. Recently, large Web-based systems have Web applications constantly evolve. In many
had an increasing number of failures (Williams, cases, it is not possible to fully specify what
2001). In certain classes of applications such as a Web site should or will contain at the start
supply-chain management, financial services, of the development process, because its
and digital marketplaces, a system failure can structure and functionality evolve over time,
propagate broad-based problems across many especially after the system is put into use.
functions, causing a major Web disaster. The Further, the information contained within
cost of bad design, shabby development, poor and presented by a Web site will also change.
performance, and/or lack of content management Unlike conventional software that goes
for Web-based applications has many serious through a planned and discrete revision at
consequences. specific times in its lifecycle, Web applica-
The primary causes of these failures are a lack tions continuously evolve in terms of their
of vision, shortsighted goals, a flawed design and requirements and functionality (instability
development process, and poor management of of requirements). Managing the change and
development effortsnot technology (Ginige & evolution of a Web application is a major
Murugesan, 2001a). The way we address these technical, organisational and management
concerns is critical to successful deployment and challengemuch more demanding than a
maintenance of Web applications. traditional software development.
Therefore, one might wonder whether devel- Further, Web applications are inherently
opment methodologies and processes advocated different from software. The content, which
over the years for software or information systems may include text, graphics, images, audio,
development and software engineering principles and/or video, is integrated with procedural
and practices could be directly used for devel- processing. Also, the way in which the
oping Web applications. Though the valuable content is presented and organised has im-
experiences gained and some of processes and plications on the performance and response
methodologies used in software engineering (and time of the system.
other domains) could be suitably adapted for Web Web applications are meant to be used by
development as appropriate, they are not adequate, a vast, variable user communitya large
as Web development is rather different from soft- number of anonymous users (could be
ware development in several aspects. many millions like in the cases of eBay and
the 2000 Sydney Olympics Web site) with
Web development is different varying requirements, expectations, and
skill sets. Therefore, the user interface and
It is important to realise that Web application usability features have to meet the needs
development has certain characteristics that make of a diverse, anonymous user community
it different from traditional software, information to whom we cannot offer training sessions,
system, or computer application development thus complicating human-Web interaction
Web Engineering
Web Engineering
successful development, deployment and main- Web-based systems. As previously stated, de-
tenance of high quality Web-based systems and velopment of Web-based systems is much more
applications (Murugesan et al., 1999). than traditional software development. There are
It is a holistic and proactive approach to the subtle differences in the nature and lifecycle of
development of large Web-based systems, and Web-based and software systems, as well as the
it aims to bring the current chaos in Web-based way in which theyre developed and maintained.
system development under control, minimise Web development is a mixture between print
risks, and enhance the maintainability and quality publishing and software development, between
of Web systems. marketing and computing, between internal com-
Since its origin and promotion as a new dis- munications and external relations, and between
cipline in 1998 (Deshpande, Ginige, Murugesan art and technology (Powell, 2000).
& Hansen, 2002; Murugesan, 1998), Web engi-
neering is receiving growing interest among the Evolution of Web Engineering
stakeholders of Web-based systems, including
developers, clients, government agencies, users, Web Engineering is progressively emerging as a
academics, and researchers. In addition, this new discipline addressing the unique needs and
new field has attracted professionals from other challenges of Web-based systems development.
related disciplines such as multimedia, software Since 1998, when the First Workshop on Web
engineering, distributed systems, computer sci- Engineering was held in Brisbane, Australia, in
ence, and information retrieval. conjunction with the World Wide Web Conference
(WWW7), there has been series of workshops
Web Engineering is multidisciplinary and special tracks at major international confer-
ences (WWW conferences 1999-2005, HICS
Building a large, complex Web-based system 1999-2001, SEKE 2002 and 2003 and others), and
calls for knowledge and expertise from many a dedicated annual International Conference on
different disciplines and requires a diverse team Web Engineering (ICWE) 2002-2005.
of people with expertise in different areas. Web There also have been a few special issues of
engineering is multidisciplinary and encompasses journals on topics related to Web Engineering.
contributions from diverse areas: systems analysis There are two new dedicated journals, Journal
and design, software engineering, hypermedia/ of Web Engineering (www.rintonpress.com/
hypertext engineering, requirements engineer- journals/jweonline.html) and Journal of Web
ing, human-computer interaction, user interface, Engineering and Technology (www.inderscience.
information engineering, information indexing com), as well as an edited book, Web Engineer-
and retrieval, testing, modelling and simulation, ing: Managing Diversity and Complexity of
project management, and graphic design and Web Application Development (Murugesan &
presentation. Deshpande, 2001).
Contrary to the perception of some profession- The bibliography at the end of this chapter
als, Web Engineering is not a clone of software gives details of special issues, conferences, books,
engineering, although both involve programming and journal articles on Web engineering and other
and software development (Ginige & Murugesan, related areas.
2001a). While Web Engineering uses software New subjects and courses on Web engineer-
engineering principles, it encompasses new ap- ing are now being taught at universities, both at
proaches, methodologies, tools, techniques, and undergraduate and postgraduate levels, and more
guidelines to meet the unique requirements of research is being carried out on various aspects
Web Engineering
of Web engineering. Also, not surprisingly, norm and is catered to. And, this also mandates
there is growing interest among Web develop- adoption of a disciplined process for successful
ers in using Web engineering approaches and Web development.
methodologies.
Web development process
Context Analysis
Design Model
Project Management
Documentation
Project Plan
Web Site
Development
Evaluation &
Maintenance Deployment
Web Engineering
how from different disciplines; facilitates the information about the operational and application
communication among various members involved environment, and identify the profile of typical
in the development process; supports continuous system users.
evolution and maintenance; facilitates easier In addition to the functional requirements, po-
management of the information content; and tential demands on the scalability, maintainability,
helps in successfully managing the complexity availability, and performance of the system need
and diversity of the development process (Ginige to be specifically elicited and understood by the
& Murugesan 2001c). developers at the beginning of the development
process. Based on this information, developers
context analysis then arrive at the systems functional, technical,
and non-technical requirements, which, in turn,
The first essential step in developing a Web-based influence the systems architectural design.
system is context analysis, where we elicit and For instance, if the information content and the
understand the systems major objectives and systems functions are going to evolve consider-
requirements, as well as the needs of the systems ably, like in most e-business systems, the system
typical users and the organisation that needs the needs to be designed for scalability. On the other
system. It is important to realise at this stage that hand, if the information changes frequently like
requirements will change and evolve even dur- in weather reports, special sales offerings, job
ing system development and after its deployment. vacancies, product price list, brochures, and latest
It is also important to study briefly the operation news or announcements to keep the informa-
for which a Web application is to be developed, tion current and consistent, the system needs to
and the potential implications of introduction of the be designed for easy information maintainability
new system on the organisation. This study should (Merialdo et al., 2003). Moreover, where the ap-
normally include: how information (to be made plication demands very high availability and needs
available on the Web) is created and managed; to cater for high peak or uncertain demands, the
organisational policy on ownership and control system may be required to run on multiple Web
(centralised or decentralised) of information; its servers with load balancing and other performance
current and future plans and business objectives; enhancement mechanisms (Almedia & Menasce,
possible impact of the introduction of Web-based 2002; Menasce & Almedia, 2002; Oppenheimer
applications on the organisation; the resulting & Patterson, 2002). Examples of this category
changes in its business and business processes; of applications are online stock trading, online
and emerging trends in the industry sector. banking, and high volume near-real-time sports
As the Web applications evolve and need to be and entertainment Web sites such as the Olympics,
modified to cater to new requirements some Wimbledon, and Oscar Web sites.
of which arise from changes or improvements in Thus, it is very important to recognise that
the business process as a result of deployment of scalability, maintainability, and/or performance
the new Web-based system an understanding need to be built into the initial system architecture.
of a big picture about the organisation and its It would be very hard, or impossible, to incor-
information management policies and practices is porate these features if the initial architecture is
a prerequisite for successful design, development, not designed to support them. To illustrate this,
and deployment of Web-based applications. consider an e-business Web site that provides
Before starting Web development, therefore, product information, such as price and availabil-
developers need to elicit and understand the sys- ity, which appears on many different pages and
tems major objectives and requirements, gather changes frequently. If the Web site is designed
0
Web Engineering
as static Web pages, then every time a products information required to develop the Web applica-
information changes, one has to incorporate the tion. In addition, it can also identify non-technical
change in every page that contains this informa- issues that have to be addressed for successful
tion. This is a cumbersome and laborious task, implementation and application of the system.
and often changes are only made to a few pages, These may include reengineering of business
instead of all relevant pages. As a consequence of processes where required, organisational and
this, the same information appearing on different management policies, staff training, and legal,
pages will be inconsistent. cultural and social aspects.
A better approach to ensure consistency of in- Context analysis can minimise or eliminate
formation across all Web pages is to automatically the major problems plaguing large Web-based
retrieve the information, when and where needed, system development. But, many developers and
from a single information source. If product in- project managers overlook this essential first step
formation is stored in a single central database, in Web system development and face the problems
then by extracting the relevant information from later when it is hard to correct them.
this database, we can dynamically create various Based on the context analysis, we then arrive at
Web pages that contain this information. In the the systems technical and non-technical require-
database-driven approach, we need to change ments (Lowe, 2003), which, in turn, influence the
the information only in one place: the database. system architecture design.
Further, the database-driven Web sites can have
a back-end system to allow an authorised person, architecture design
who may not be skilled in Web page development,
to make information changes easily through a Web In system architecture design, we decide on vari-
interface, from anywhere. A database-driven Web ous components of the system and how they are
site requires a completely different architecture linked. At this stage, we design:
than a Web site that has only static Web pages.
Hence, an appropriate architecture that would An overall system architecture describing
meet the systems requirements needs to be chosen how the network and the various servers
early in the system development. (Web servers, application servers and da-
Thus, as highlighted in Table 2, the objective tabase servers) interact;
of context analysis is to capture and derive the key
The objectives of context analysis, the first step in Web development, are to:
Identify the stakeholders and their broader requirements and experiences.
Identify the functions the Web site needs to provide (immediately, and in the
short, medium, and long term).
Establish what information needs to be on the Web site, how to get this
information, and how often this information may change.
Identify the corporate requirements in relation to look and feel, performance,
security, and governance.
Get a feel of the number of users (typical and peak) and anticipated demands on
the system.
Study similar (competitive) Web sites to gain an understanding of their
functionalities, strengths, and limitations.
Web Engineering
Web Engineering
Experience of
lessons learned users and
developers
stakeholder Nontechnical
requirements considerations
Guidelines for
Information Information
look & feel content
structure access methods
development
also may be a need for multilingual Web sites terns (by analysing Web logs), and take suitable
(for details, see Becker & Mottay, 2001; Collins, measures to fix the shortcomings and weaknesses,
2002). Also, the Web sites content and usability if any.
have to be designed from a global perspective and
be responsive to cultural sensitivity in language project management
along with appropriate use of colour, presentation,
and animation (Becker & Mottay, 2001). The purpose of project management is to ensure
that all the key processes and activities work in
Web maintenance harmony. Building successful Web-based applica-
tions requires close coordination among various
After a Web-based system is developed and de- efforts involved in the Web development cycle.
ployed online for use, it needs to be maintained. Many studies, however, reveal that poor project
As outlined earlier, content maintenance is a management is the major cause of Web failures
continual process. We need to formulate content both during development and subsequently in
maintenance policies and procedures, based on the operational phase. Poor project manage-
the decision taken at the system architecture de- ment will defeat good engineering; good project
sign stage on how the information content would management is a recipe for success. Successfully
be maintained, and then we need to implement managing a large, complex Web development is a
them. Further, as the requirements of Web systems challenging task requiring multidisciplinary skills
grow and evolve, the system needs to be updated and is, in some ways, different from managing
and also may be redesigned to cater to the new traditional IT projects.
requirements. Quality control, assurance and documenta-
It is important to periodically review Web- tion are other important activities, but they are
based systems and applications regarding the often neglected. Like project management, these
currency of information content, potential security activities need to spread throughout the Web
risks, performance of the system, and usage pat- development lifecycle.
Web Engineering
Web Engineering
a loss of its customers probably permanently. these system qualities are often more daunting
A whopping 58 percent of first time customers to understand and manage.
would not return to a site that crashed (Electronic Scalability refers to how well a systems
Hit and Run, USA Today, 10 Feb 2000). Accord- architecture can grow, as traffic, demand for
ing to a study (Inter@ctive Week, 6 Sep 1999), services, or resource utilisation grows. As Web
US$4.35 billion may be lost in e-business due to sites grow, small software weaknesses that had
poor Web download speeds alone. no initial noticeable effects can lead to failures,
As Web applications are becoming mission- reliability problems, usability problems, and
critical, there is greater demand for improved security breaches. Developing Web applications
reliability, performance, and security of these that scale well represents one of todays most
applications. important development challenges.
Poor design and infrastructure have caused Flexibility is the extent to which the solution
many Web applications to be unable to support the can adapt as business requirements change. A
demands placed on them, so they have therefore flexible architecture facilitates greater reusability
failed. Many Web sites have suffered site crashes, and quicker deployment.
performance failures, security breaches, and out- Thus, the challenge is to design and develop
ages resulting in irate customers, lost revenue, sustainable Web systems for better:
devalued stocks, a tarnished reputation (bad pub-
licity, lack of customer confidence), permanent Usabilityinterface design, navigation
loss of customers, and law suits (Williams, 2001). (Becker & Mottay 2001),
Stock prices have become inextricably linked to Comprehension,
the reliability of a companys e-commerce site. Performanceresponsiveness,
The recent major failures and their impact on Security and integrity,
enterprises have served as a forceful reminder Evolution, growth, and maintainability,
of the need for capacity planning, and improved and
performance, quality, and reliability. Successful Testability.
Web application deployment demands consistent
Web site availability, a better understanding of
its performance, scalability, and load balancing. WEB TEsTING aNd EvaluaTIoN
Proactive measures are needed to prevent grind-
ing halts and failures from happening in the first Testing plays a crucial role in the overall develop-
place. ment process (Becker & Berkemeyer, 2002; Hieatt
Large-scale Web system design is a complex & Mee, 2002; Lam, 2001). However, more often
and a challenging activity as it needs to consider than not, testing and evaluation are neglected
many different aspects and requirements, some aspects of Web development. Many developers
of which may have conflicting needs (Ivory & test the system only after it had met with failures
Hearst, 2002; Siegel, 2003; Cloyd, 2001). or limitations have become apparent, resorting
We use terms like scalability, reliability, avail- to what is known as retroactive testing. What is
ability, maintainability, usability, and security desired in the first place is proactive testing at
to describe how well the system meets current various stages of the Web development lifecycle.
and future needs and service-level expectations. Benefits of proactive testing include assurance of
These -ilities characterise (Williams, 2000) a proper functioning and guaranteed performance
Web systems architectural and other qualities. levels, avoidance of costly retroactive fixes, opti-
In the face of increasingly complex systems, mal performance, and lower risk.
Web Engineering
Testing and validating a large complex Web KNoWlEdGE aNd sKIlls for
system is a difficult and expensive task. Testing WEB dEvElopmENT
should not be seen as a one-off activity carried
out near the end of development process. One The knowledge and skills needed for large,
needs to take a broad view and follow a more complex Web application development are quite
holistic approach to testing from design all the diverse and span many different disciplines. They
way to deployment, maintenance, and continual can be broadly classified as:
refinement.
The test planning needs to be carried out early Technologies supporting and facilitating
in the project lifecycle. A test plan provides a Web applications
roadmap so that the Web site can be evaluated Design methods
through requirements or design stage. It also Design for usabilityinterface design,
helps to estimate the time and effort needed for navigation
testing establishing a test environment, find- Design for comprehension
ing test personnel, writing test procedures before Design for performance
any testing can actually start, and testing and responsiveness
evaluating the system. Design for security and integrity
Lam (2001) groups Web testing into the follow- Design for evolution, growth and
ing broad categories and provides excellent practi- maintainability
cal guidelines on how to test Web systems: Design for testability
Graphics and multimedia design
Browser compatibility Web page development
Page display System architecture
Session management Web development methods and processes
Usability Web project management
Content analysis Development tools
Availability Content management
Backup and recovery Web standards and regulatory require-
Transactions ments
Shopping, order processing
Internalisation Web development Team
Operational business procedures
System integration As previously mentioned, development of a
Performance Web application requires a team of people with
Login and security diverse skills and backgrounds (Hansen, 2004).
These individuals include programmers, graphic
Experience shows that there are many com- designers, Web page designers, usability experts,
mon pitfalls in Web testing and attempts should content developers, database designers and ad-
be made overcome them (Lam, 2001). Testing and ministrators, data communication and networking
evaluation of a Web application may be expensive, experts, and Web server administrators. A Web
but the impact of failures resulting from lack of development team is multidisciplinary, like a film
testing could be more costly or even disastrous. production team, and must be more versatile than
a traditional software development team.
Web Engineering
Hansen et al. (2001) presents a classification with such developments. (Deshpande, Olsina &
of the participants in a Web development team Murugesan, 2002)
and a hierarchy for their skills and knowledge.
This classification helps in forming a team and Some of the areas that need further study, in
in devising a strategy for successful reskilling of no particular order, include:
the development team.
Web application delivery on multiple devices
desktop and pocket PCs, mobile phones,
coNclusIoN PDAs, TVs and refrigerators
Context-aware Web applications and con-
Web engineering is specifically targeted toward text-sensitive responses
the successful development, deployment and Device-independent Web access and content
maintenance of large, complex Web-based sys- presentation
tems. Modelling and simulation of Web applica-
It advocates a holistic and proactive approach tions and systems
to developing successful Web applications. As Performance evolution and enhancement
more applications migrate to the Web environ- Testing and validation of systems
ment and play increasingly significant roles in Effort and cost estimation
business, education, healthcare, government, Web personalisation
and many day-to-day operations, the need for a Quality control and assurance
Web engineering approach to Web application
development will only increase. Further, as we No silver Bullet!
now place greater emphasis on the performance,
correctness, and availability of Web-based sys- Web Engineering will not make the problems
tems, the development and maintenance process and the risks go away. But, it can help you plan,
will assume greater significance. monitor, control, and cope with the challenging
Web Engineering is an emerging discipline task of developing large, complex Web applica-
having both theoretical and practical significance. tions. It will also facilitate making more informed
It is gaining the interest among researchers, devel- decisions and developing better quality and better-
opers, academics, and clients. This is evidenced engineered Web systems and applications.
by increased research activities and publications It is important to understand the wider con-
in this area, hosting of dedicated international text in which a Web-based system or application
conferences and workshops, publication of new will be used, and design an architecture that
journals devoted to Web Engineering, and univer- will support the development, operation, and
sities offering special courses and programmes on maintenance as well as evolution of the Web ap-
the subject. It is destined for further advancement plication in that context, addressing the key issues
through research, education, and practice. and considerations. We strongly recommend that
Web developers and project managers move away
To advance Web engineering, it is essential to from an ad hoc, hacker-type approach to a well-
define its core body of knowledge, to identify the planned, systematic, and documented approach
areas in need of greater research and to develop for the development of large, high-performance,
a strategy to tackle the new technologies, new evolutionary, and/or mission-critical Web sites
applications and the various technical, method- and applications.
ological, and societal issues that arise in tandem
Web Engineering
Web Engineering
Web Engineering
Murugesan, S. (1998). Web engineering. Presenta- Williams, J. (2001). Avoiding CNN moment. IT
tion at the First Workshop on Web Engineering, Professional, 3(2), 68-70.
World Wide Web Conference (WWW7), Brisbane,
Australia.
Murugesan, S. et al. (1999). Web engineering: BIBlIoGrapHy oN WEB
A New Discipline for Development of Web- ENGINEErING
based systems. In Proceedings of the First ICSE
Workshop on Web Engineering, Los Angeles For further information on many different aspects
(pp. 1-9). of Web development and Web Engineering, we
have listed below some useful resources such as
Murugesan, S., & Deshpande, Y. (Eds) (2001). Web
books, special issues, journal articles, and Web
engineering: Managing diversity and complexity
sites.
of Web application development. Lecture Notes
in Computer Science Hot Topics, 2016. Berlin:
Books
Springer Verlag.
Offutt, J. (2002). Quality attributes of Web soft- Burdman, J. (1999). Collaborative Web develop-
ware applications. IEEE Software, Special Issue ment: Strategies and best practices for Web teams.
on Software Engineering of Internet Software, Addison-Wesley.
19(2), 25-32.
Dart, S. (2001), Configuration management: A
Oppenheimer, D., & Patterson, D.A. (2002). missing link in Web engineering. Norwood, MA:
Architecture and dependability of large-scale Arttech House.
Internet services. IEEE Internet Computing,
Dustin, E., Rashka, J., & McDiarmid, D. (2001).
September-October, 41-49.
Quality Web systems: Performance, security, and
Pressman, R.S. (2001). What a tangled Web we usability. Reading, MA: Addison-Wesley.
weave. IEEE Software, 18(1), 18-21.
Friedlein, A. (2000). Web project management:
Pressman, R.S. (2004). Applying Web Engineer- Delivering successful commercial Web sites.
ing, Part 3. Software Engineering: A Practitioners Morgan Kaufmann.
Perspective (6th ed.). New York: McGraw-Hill.
Friedlein, A. (2003). Maintaining and evolv-
Reifer, D.J. (2000). Web development: Estimat- ing successful commercial Web sites. Morgan
ing quick-to-market software. IEEE Software, Kaufmann.
17(6), 57-64.
Gerrad, P. & Thompson, N. (2002). Risk-based
Siegel, D.A. (2003). The business case for user- e-business testing. Artech Publishers.
centered design: Increasing your power of persua-
Hackos, J.T. (2002). Content management for
sion. Interactions, 10(3).
dynamic Web delivery. John Wiley & Sons.
Uden, L. (2002). Design process for Web applica-
Lowe, D. & Hall, W. (1999). Hypermedia and the
tions. IEEE Multimedia, (Oct-Dec), 47-55.
Web: An engineering approach. New York: John
Williams, J. (2000). Correctly assessing the Wiley & Sons.
ilities requires more than marketing hype. IT
Professional, 2(6), 65-67.
0
Web Engineering
Nielsen, J. (1999). Designing Web usability: The Web Information Systems Engineering. http://
practice of simplicity. Indianapolis, IN: New www.i-wise.org
Riders Publishing. World Wide Web, Kluwer Academic Publishers.
Powell, T.A. (1998). Web site engineering: Be- http://www.kluweronline.com/issn/1386-145X
yond Web page design. Upper Saddle River, NJ:
Prentice Hall. special Issues
Powell, T.A. (2000). Web design: The complete
guide. New York: McGraw-Hill. Engineering Internet Software, IEEE Software,
March-April 2002.
Pressman, R.S. (2004). Applying Web engineer-
ing. In Software engineering: A practitioners Testing E-business Applications, Cutter IT Jour-
perspective. New York: McGraw-Hill. nal, September 2001.
Rosenfeld, L. & Morville, P. (2002). Information Usability and the Web, IEEE Internet Computing,
architecture for the World Wide Web: Designing March-April 2002.
large-scale Web sites. OReilly & Associates. Usability Engineering, IEEE Software, January-
Scharl, A. (2000). Evolutionary Web Develop- February 2001.
ment. Springer. Web Engineering, Cutter IT Journal, 14(7), July
Shklar, L. & Rosen, R. (2003). Web application 2001.
architecture: Principles, protocols and practices. Web Engineering, IEEE MultiMedia, Jan.Mar.
John Wiley & Sons. 2001 (Part 1) and AprilJune 2001 (Part 2).
Stottlemyer, D. (2001). Automated Web testing
toolkit: Expert methods for testing and managing Journal articles
Web applications. John Wiley.
Vidgen, R. et al (2002). Developing Web informa- Almedia, V.A.F., & Menasce, D.A. (2002). Capac-
tion systems: From strategy to implementation. ity planning for Web services: An essential tool
Butterworth Heinemann. for managing Web services. ITPro, July-August
2002, 33-38.
Wodtke, C. (2002). Information architecture:
Blueprints for the Web. New Riders. Arlitt, M., et al. (2001). Characterizing the scal-
ability of a large Web-based shopping system.
Web Engineering
ACM Transactions on Internet Technology, 1(1), Engineering and Knowledge Engineering, Italy,
44-69. 2002, pp. 731 737.
Barnes, S. & Vidgen, R. (2002). An integrative Deshpande, Y. & Hansen, S. (2002). Web Engi-
approach to the assessment of e-commerce qual- neering: Creating a discipline among disciplines.
ity. Journal of Electronic Commerce Research, IEEE Multimedia, 82-87.
3(3). http://www.webqual.co.uk/papers/jecr_pub-
Fewster, R. & Mendes, E. (2001, April 4-6).
lished.pdf
Measurement, prediction and risk analysis for
Baskerville. et al. (2003). Is Internet-speed soft- Web applications. IEEE Seventh International
ware development different? IEEE Software, Software Metrics Symposium London, England,
Nov-Dec, 70-77. pp. 338-348.
Becker, S. & Mottay, F. (2001). A global perspec- Ginige, A. & Murugesan, S. (2001) Web engi-
tive of Web usability for online business applica- neering: An introduction. IEEE Multimedia,
tions. IEEE Software, 18(1), 54-61. 8(1), 14-18.
Brewer, E.A. (2002). Lessons from giant-scale Ginige, A. & Murugesan, S. (2001). Web engi-
services. IEEE Internet Computing, July, 46-55. neering: A methodology for developing scalable,
maintainable Web applications. Cutter IT Journal,
Cardellini, V. et al. (1999). Dynamic balancing on
14(7) 2435.
Web server systems. IEEE Internet Computing,
May-June, 2839. Ginige, A. & Murugesan, S. (2001). The essence
of Web engineering: Managing the diversity and
Ceri, S., Fraternali, P., & Bongio, A. (2000, May).
complexity of Web application development. IEEE
Web modelling language (WebML): A modelling
Multimedia, 8(2), 22-25.
language for designing Web sites. Proceedings
of the World Wide Web WWW9 Conference, Glass, R. Whos right in the Web development
Amsterdam. debate? Cutter IT Journal, 14(7), 6-10.
Cloyd, M.H. (2001). Designing user-centered Goeschka, K.M. & Schranz, M.W. (2001). Client
Web applications in Web time. IEEE Software, and legacy integration in object-oriented Web
18(1), 62-69. engineering. IEEE Multimedia, Special issues
on Web Engineering, 8(1), 32-41.
Collins, R.W. (2002). Software localization for
Internet software: Issues and methods. IEEE Hieatt, E. & Mee, R. (2002). Going faster: Testing
Software. the Web application. IEEE Software, 60-65.
Davison, B.D. (2002). A Web catching primer. Ingham, D.B., Shrivastava, S.K., & Panzieri, F.
IEEE Internet Computing. (2000). Constructing dependable Web services.
IEEE Internet Computing, 25-33.
Deshpande et al. (2002). Web engineering. Journal
of Web Engineering, 1(1), 3-17. Isakowitz, T., Stohr, E. & Balasubmmnian, P.
(1995). RMM: A methodology for structured hy-
Deshpande, Y. et al. (2002). Consolidating Web
permedia design. Comm A CM, 38(8), 35-44.
engineering as a discipline. SEA Software.
Ivory, M.Y & Hearst, M.A. (2002). Improving Web
Deshpande, Y. et al. (2002, July). Web site au-
site design. IEEE Internet Computing, 56-63.
diting The first step towards reengineering.
Proc 14th International Conference on Software
Web Engineering
Kirda, E., Jazayeri, M., Kerer, C. & Schranz, M. Perlman, G. (2002). Achieving universal usability
(2001). Experiences in engineering flexible Web by designing for change. IEEE Internet Comput-
services. IEEE Multimedia, Special issues on ing, 46-55.
Web Engineering, 8(1), 58-65.
Powel, T.A. (1998). Web site engineering: Beyond
Lam, W. (2001). Testing e-commerce systems: A Web page design. Prentice Hall.
practical guide. IT Professional, 3(2), 19-27.
Pressman, R.S. (2001). What a tangled Web we
Liu, S., et al. (2001). A practical approach to en- weave. IEEE Software, 18(1), 18-21.
terprise IT security. IT Professional, 3(5) 35-42.
Pressman, R.S. (2001). Can Internet-based ap-
Lowe, D. (2003). Web system requirements: An plications be engineered? IEEE Software, 15(5),
overview. Requirements Engineering, 8, 102- 104-110.
113.
Reifer, D.J. (2000). Web development: Estimating
Lowe, D. & Henderson-Sellers, B. (2001). OPEN quick-to-market software. IEEE Software.
to change. Cutter IT Journal, 14(7), 11-17.
Roe, V. & Gonik, S. (2002). Server-side design
Maurer, F. & Martel, S. (2002). Extreme program- principles for scalable Internet systems. IEEE
ming: Rapid development for Web-based applica- Software, 34-41.
tions. IEEE Internet Computing, 86-90.
Scalable Internet Services (2001). Internet Com-
Menasce, D.A. (1993). Load testing of Web sites. puting.
IEEE Internet Computing, 89-92.
Schwabe, D. & Rossi, G. (1998). An object oriented
Merialdo. P. et al. (2003). Design and development approach to Web-based application design. Theory
of data-intensive Web sites: The Araneus Atzeni. and Practice of Object Systems (TAPOS), special
ACM Transactions on Internet Technology, 3(1), issue on the Internet, 4(4), 207-225.
49-92.
Schwabe, D., Esmemldo, L., Rossi, G. & Lyardet,
Mich, L. et al. (2003). Evaluating and designing F. (2001). Engineering Web application for reuse.
Web site quality. IEEE Multimedia, 34-43. IEEE Multimedia, 8(1), 20-31.
Offutt, J. (2002). Quality attributes of Web soft- Scott, D., & Sharp, R. (2002). Developing secure
ware applications. IEEE Software, Special Issue Web applications, IEEE Internet Computing,
on Software Engineering of Internet Software, 38-45.
19(2), 25-32.
Siegel, D.A. (2003). The business case for user-
Olsina, L., Lafuente, G. & Rossi, G. (2001). centred design: Increasing your power of persua-
Specifying quality characteristics and attributes sion. Interactions, 10(3).
for Websites. In S. Murugesan & Y. Deshpande
Upchurch, L. et al. (2001). Using card sorts to elicit
(Eds), Web engineering managing diversity and
Web page quality attributes. IEEE Software.
complexity of Web application development (pp.
266-278). Berlin: Springer. Williams, J. (2000). Correctly assessing the
ilities requires more than marketing hype. IT
Oppenheimer, D., & Patterson, D.A. (2002). Archi-
Professional, 2(6), 65-67.
tecture and dependability of large-scale Internet
services. IEEE Internet Computing, 41-49.
Web Engineering
This work was previously published in Web Engineering: Principles and Techniques, edited by W. Suh, pp. 1-30, copyright
2005 by IGI Publishing, formerly known as Idea Group Publishing (an imprint of IGI Global).
Chapter II
Augmented WebHelix:
A Practical Process for Web Engineering
Nary Subramanian
University of Texas at Tyler, USA
George Whitson
University of Texas at Tyler, USA
aBsTracT
Process is an important element in the success of any information systems development project, espe-
cially in academia where typically an undergraduate term project needs to go through the development
phases within the space of a semester. Traditionally academic processes have been adapted versions of
well-known industrial processes with one major exceptionlack of customer feedback in the process.
This omission of customer feedback results in students completing toy projects without significant
real-world experience; efforts to incorporate artificial customer interactions have not been very suc-
cessful either. It is our opinion that the industry processes cannot be simply copied in academia; what
is required is a process that will better equip the students to face real-world challenges. WebHelix has
been recently introduced as a practical process for Web engineering that helps students gain valuable
real-world experience without sacrificing project and product management phases. In this chapter we
propose the Augmented WebHelix process that augments the WebHelix in three ways: provides an option
at the end of each slice of the helix to both release the current version and continue to the next slice of
development; provides a qualitative evaluation framework, called the project evaluation framework (PEF),
that provides a systematic approach for evaluating the status of the project; and the ability to evaluate
the project at the end of each phase in a slice of the helix. The first augmentation provides the ability
to release and continue which is more practical than the go/no-go approach adopted by WebHelix; the
second augmentation, the PEF, allows different factors besides the return-on-investment as in WebHelix
to be considered for evaluating the current phase and status of the project, and the third augmentation
provides the ability to ensure the project is on track. In this chapter we describe the augmented WebHelix
process and demonstrate its applicability to both academia and industry with examples.
Copyright 2008, IGI Global, distributing in print or electronic forms without written permission of IGI Global is prohibited.
Augmented WebHelix
Augmented WebHelix
mechanism that fosters healthy communi- ever, WH does the evaluation only by computing
cation and engenders team cohesiveness is the return-on-investment (ROI) and does not take
completely lost; other factors into account.
3. Traceability studies are often misleading: In this chapter we propose the augmented
In this method, the students establish the WebHelix process (AWH) that augments the WH
traceability of the artifacts of one phase with by permitting a release and continue feature (as
those of the preceding phase; in industry opposed to the release or continue feature) at the
traceability is used as a technique to verify end of each slice, and by providing a qualitative
the artifacts of a phase but the correctness evaluation framework, called the project evalua-
is usually ascertained with the help of tion framework (PEF), that provides a systematic
customer feedback; therefore, traceability approach for evaluating the status of the project
studies alone tend to mislead the students at the end of each phase on a slice on the helix
and remain an academic exercise; (as opposed to just once at the end of a slice in
4. Lack of faith in the process: Students be- WH) by considering different factors including
gin to believe that analysis and design were ROI. In this chapter we describe the AWH and
done just because the instructor wanted demonstrate its applicability to both academia
and that in real life they needed to only code and industry with examples.
and their job was done; such an impression This chapter is organized as follows: Cur-
ill-prepares the students for the industry; rent Web Application Development Processes
5. Incomplete projects: Students end up with discusses some of the interesting processes for
incomplete projects due to the apparent Web application development and evaluation,
lack of functioning of the process; students and provides a basis for the introduction of the
face one of the major problems faced by the AWH; The Augmented WebHelix Process sec-
industry due to inadequate process or inad- tion discusses the AWH; the Project Evaluation
equate application of an established process; Framework section discusses the PEF used by
in some cases this results in demoralized AWH; the Application of the Augmented Web-
students and in the worst case results in Helix Process section discusses the application
students who change their majors. of AWH to several Web application projects; the
Observations section presents our observations on
In order to overcome these limitations the the use of the AWH process; and the Conclusion
WebHelix process (WH) model was proposed and Future Work section concludes the chapter
[28]WH is a helical process model for develop- and provides directions for future work.
ing Web applications where each turn of the helix
is referred to as the slice and each slice consists
of five phases including analysis, design, coding, 2. currENT WEB applIcaTIoN
testing, and evaluation. The evaluation phase de- dEvElopmENT procEssEs
termines whether the current version of the Web
application is ready for release to the customer Since a Web application includes a complete set
or whether another iteration that takes the project of modules to perform business functions its
through the next slice of the helix is mandated. construction needs to follow a systematic and
Since evaluation phase is critical in making the practical methodology. Once this methodology
release or continue decision, it is important that has been established, some approach to project
the evaluation takes into account all the factors management also needs to be used in building
important for the business and the project; how- the application. Many Web application processes
Augmented WebHelix
have been proposed. Some are modifications of be completed quickly, the substantial up-front
traditional software engineering processes, some time involved in UML-based design techniques
are adjusted business re-engineering plans, and may be difficult to achieve in practice. Agile UP
some are extensions of traditional Web page (AUP) [29] has been proposed as a simplified
development tools. While all of the current Web version of RUP; however, the requirements for
application design processes have merit, none is employing AUP include staff knowledge and
universally accepted as the Web application tool independence, both of which, we believe, are
process. In this section we briefly survey the intrinsically unsuited to academic projects.
current Web application process methodologies Extreme programming (XP) has been popular-
and evaluation approaches. ized by numerous developers [2]. It is a natural
Most of todays Web application development fit for building Web applications because of its
processes are extensions of standard software en- emphasis on minimum design, quick prototype
gineering processes. The waterfall model process development and acceptance testing. The more
was perfect for developing a file maintenance general agile programming paradigm stresses
program for mainframes, but far too restrictive the importance of reducing the design overhead
a process for building a Web application. Similar in project development and being able to modify
to software development, Web application devel- the project development plan [1]. Web application
opment is also an iterative process [27] and one processes derived from these technologies keep
such iterative process is the spiral [4] approach; the design phase of Web application development
but the exact steps at each cycle of the spiral are small and produce limited documentation. While
debated, as is the metric to be used to determine streamlining the process of developing the original
the completion of a cycle, while the iterated application, extreme programming teams must be
waterfall model, another iterative process, is careful to produce adequate documentation for
considered too rigid an approach for developing project maintenance and upgrading. It has been
Web applications [17]. suggested that Scrum [19] together with XP will
Object-oriented development of Web appli- help develop academic projects quickly; however,
cations has been proposed [8] using the .NET basis for Scrum seems to be alien to students at
framework. Another object-oriented approach is most U.S. universities since rugby, which was the
to add stereotypes for Web navigation to the UML original basis for Scrum, is unknown to many
[13]. A more extensive use of UML is seen in the students.
Web application extensions (WAE) [9]. In fact, A few of todays Web application development
much of the work of those who believe in model processes have been derived from a business-ori-
driven design (MDD) seems to be motivated by ented approach to applications development [21].
the UML [14]. The rational unified process (RUP) Most of these processes develop a business plan
[27] is another process that makes extensive use of for the e-business associated with the Web applica-
UML while at the same time being iterative and tion, sometimes re-engineering the business along
object-oriented. Domain-driven Web application the way, and use factors like return-on-investment
development generalizes MDD in that it attempts (ROI) as a metric for the Web application devel-
to discover more general predevelopment patterns opment process. While the business success of
[11] and then automate the design process. All of the Web application is important, and we believe
the object-oriented Web application development that business decisions should play a larger role
processes, especially those based on the UML, in all stages of software development than seen
have a large number of design diagrams and docu- in the traditional software engineering processes;
ments. Since Web applications generally need to we also believe that it cannot be the only metric
used in the software process.
Augmented WebHelix
Some of todays Web application development based system term projects academia needs a
processes have been derived from well-known process that supports rapid prototyping while at
Web content tools. Hypermedia application de- the same time prepares the students for industry.
velopment [25] has been around for more than It is our belief that a useful Web engineering
fifty years, and because of their database use, process for academia should have the following
many of the hypermedia software development attributes:
processes and tools adapt well to Web applica-
tion development. Web page design tools, like 1. Supports rapid prototyping
Microsofts FrontPage and Macromedia Studio, 2. Supports incremental development
have migrated into good Web application develop- 3. Helps the students to evaluate the artifacts
ment tools and some Web application development of a phase
processes are based on these tools [12], and some 4. Helps the students be on track to complete
are extensions [6]. the project
A number of Web developers have coined the 5. Minimizes documentation
term, Web Engineering, to describe the theory of
Web application development. In Web engineer- One such process is the WebHelix (WH) pro-
ing, a balance is struck among the programming, cess that was introduced in [28]. The advantages
publishing and business aspects of developing of WH are:
Web Applications [10]. There are a large number
of different Web application processes that fall 1. Does a careful business analysis of the prob-
under the umbrella of Web engineering. Some able success of the Web application
of the features common to all Web engineering 2. Has a formal Web engineering process:
processes are: a. That is helical except for some pre and
post stages and each stage is exited
The Web site of the application has much when a testing and profit threshold
informational content and the development are met
of the site involves considerable attention to b. Develops the systems architecture,
publishing this content; navigational system and information
The Web application development process model as quickly as possible
has an information management design, not c. Is agile with a small design step and
just a database management design; produces no unnecessary model dia-
While the system architecture is important, grams
as in all software engineering processes, the 3. Has an associated Project Management plan
navigational system is often closely related that:
to the systems architecture;
The Web application process tends to be a. Creates a task list from a systems ar-
spiral, agile (if not extreme) and of short chitecture diagram
duration. b. Uses a Gantt chart to synchronize the
team workload
In spite of the large number of Web engineering
processes that have been developed over the past However, one of the issues with WebHelix, it
few years, none has been fully accepted as the has been pointed out, has been the lack of a evalu-
Web engineering process neither in the industry ation framework and its over-dependence on ROI
nor in the academia. In order to complete Web- calculation as a technique to move from one slice
Augmented WebHelix
to another which does not permit straightforward facilitates learning... Therefore, an evaluation
application in an academic setting. In order to process that uses strict definitions for non-func-
overcome these drawbacks the WebHelix process tional requirements seems to have limited practical
was augmented with an evaluation framework, benefit. In [18] a framework, called framework
called the project evaluation framework, and the for e-metrics, has been suggested for evaluating
resulting Augmented WebHelix is described in business metrics of Web applications that uses
the next section. the concept of functionality interaction which
For evaluation of projects several measures refers to the interaction between applications
and frameworks have been proposed. For ex- up-stream and down-stream of the value chain
ample, for the Boehms spiral process model for a business. The e-metrics framework defines
[4], risk assessment is used in each turn of the three levels of metrics for efficiency, effectiveness,
spiral, and as suggested in [17], not everybody and strategic importance of managerial decisions
is comfortable with risk assessment techniques. and each level is evaluated along the dimensions
WebQEM [15] provides an evaluation process of planning, development, inbound, production,
with four phases: quality requirements defini- and outbound. As may be expected, the e-metrics
tion and specification; elementary evaluation; framework may be useful only to evaluate the
global evaluation; and conclusion. For example, process management and product management
for an e-commerce Web site, usability has been aspects of Web application development, but
defined to include global site understandability does not seem to assist in the evaluation of tech-
(which has been further broken down into global nical and other business factors that need to be
organization scheme, quality of labeling system, considered for releasing a version of the product
audience-oriented guided tour, and image map), or continuing with further development. In [20]
feedback and help features (which has been bro- the COBRA (cost estimation, benchmarking, and
ken down into quality of help features, addresses risk assessment) method is used for cost estima-
directory, link-based feedback, and form-based tion of Web applications. This method uses data
feedback), interface and aesthetic features (fur- from previous projects for arriving at an estimate;
ther decomposed into cohesiveness by grouping however, as mentioned accurate cost data is hard
main control objects, presentation permanence to come by and cost usually is only one aspect
and stability of main controls, and style issues), that needs to be considered when making the
and miscellaneous features (broken down into decision to release the product or continue with
foreign language support, Web site last update further development. In [16] it has been pointed
indicator, and screen resolution indicator). Some out that metrics vary from company-to-company
of the sub-factors have been further decomposed. and suggests several metrics that could be used
Similar approach has been adopted for other non- by companies for evaluating the effectiveness of
functional requirements of a Web application their Web applications including site performance,
such as functionality, reliability, and efficiency. user efficiency, customer satisfaction, customer
However, these definitions seem rather rigid since loyalty, and average time spent on their system.
the definition of usability, for example, of a Web While these metrics could be used to evaluate
application (including an e-commerce application) the effectiveness of Web sites they should be
could vary significantly from project-to-project used to complement other factors that affect the
and from organization-to-organization (see [16] release/continue decisions. The project evaluation
for a discussion of this point); for example, in framework (PEF) introduced later in this chapter
[17] usability has been defined as usability is hopes to overcome the drawbacks of some of the
a measure of how well a computer system current approaches by providing a systematic ap-
proach to making release/continue decisions.
0
Augmented WebHelix
Figure 1 shows the original WebHelix (WH) pro- 1. Provided a systematic framework to qualita-
cess [28]. WH uses a modified spiral approach to tively evaluate whether to release the project
systems development. Some parts of the design in the current state and/or to continue to
process, like the business analysis and planning, the next slice; this evaluation framework
are done once at the beginning of the process. is called the project evaluation framework
Some parts of the process, like deployment and (PEF)
maintenance, are done once at the end of the 2. The evaluation is done at the end of each
process. The major creation of the Web applica- phase of a slice rather than once at the end
tion (coding) is done by using an identical set of of a slice; this helps to keep the project on
steps repeatedly, producing a set of more and more track
complete prototypes, with the final prototype be- 3. In order to more accurately reflect the needs
ing the completed Web application. of the real world, the AWH gives the follow-
It has been pointed out that WH suffers from ing choices for the project at the end of each
a lack of metrics to determine when to release slice:
or to continue to the next slice of the helix and
the fact that WH depends on ROI as the only a. Release the project and do not continue
means for moving from one slice of the helix to to the next slice (go the deployment and
the next which makes WH somewhat unsuitable maintenance phase of the project)
for straightforward application in academia. We b. Release the project and continue to the
therefore augmented the WH process, called next slice (the released portion goes
Augmented WebHelix
Augmented WebHelix
Planning
(PreHelix 2)
Analysis
Test
Release (after 1 slice)
Slice 1 Design
Coding
Continue
Time
...
Analysis
Test
Slice n Design
Coding
Release (after n slices)
Deploy
Legend (PostHelix1)
Evaluation Phase
Mandatory Transition Maintain
Optional Transition
(PostHelix2)
Arrow head points to direction
of transition/traverse
4. Develop or update a complete project man- 5. Update the test criteria for project accep-
agement plan. tance.
i. From the systems architecture diagram
make a complete list of tasks. Step 2A: Design Phase Evaluation
ii. Create the programming team and 1. Develop factors for design phase evalua-
make a list of personal skills. tion
iii. Create a Gantt chart for the project. 2. Apply the PEF to decide whether to go to Step
3 or notif design phase is determined to be
Augmented WebHelix
incomplete repeat the design phase (may be Step 4A: Testing Phase Evaluation
viewed as proceeding directly to the design 1. Develop factors for testing phase evalua-
phase of the next slice); if the analysis phase tion
is now determined to be incomplete repeat 2. Apply the PEF to decide whether testing
the analysis phase (may be viewed as pro- phase is completed or not; if testing phase
ceeding directly to the analysis phase of the is determined to be incomplete repeat the
next slice); continue on to the coding phase. testing phase (may be viewed as proceeding
directly to the testing phase of the next slice)
Step 3: Coding and Integration and do not go to the next step; if coding phase
1. Select components to be added to the sys- is determined to be incomplete repeat the
tem. coding phase (may be viewed as proceeding
2. Develop Web site, write code, integrate directly to the coding phase of the next slice)
components and unit test all code. We use and do not go to the next step; if the design
teams of two during the code development phase is now determined to be incomplete
and refactoring [2]. repeat the design phase (may be viewed as
3. Update the test criteria for project accep- proceeding directly to the design phase of
tance. the next slice) and do not go to the next step;
if the analysis phase is now determined to be
Step 3A: Coding Phase Evaluation incomplete repeat the analysis phase (may
1. Develop factors for coding phase evalua- be viewed as proceeding directly to the
tion. analysis phase of the next slice) and do not
2. Apply the PEF to decide whether to go to go to next step; if testing phase is determined
Step 4 or notif coding phase is determined to be complete go to the next step.
to be incomplete repeat the coding phase 3. Use PEF to determine whether to Release
(may be viewed as proceeding directly to the and/or Continue.
coding phase of the next slice); if the design 4. If PEF application results in a Yes for
phase is now determined to be incomplete Release then release the current prototype
repeat the design phase (may be viewed as and go to PostHelix1 phase.
proceeding directly to the design phase of 5. If PEF application results in a Yes for Con-
the next slice); if the analysis phase is now tinue then begin Step 1 of the next slice.
determined to be incomplete repeat the
analysis phase (may be viewed as proceed- PostHelix 1: Deployment and Training
ing directly to the analysis phase of the next 1. Deploy the Web application.
slice); continue on to the testing phase. 2. Set up a training program for using the Web
application.
Step 4: Testing
1. Use structured walkthroughs to test Web PostHelix 2: Maintenance and Future Up-
design. dates
2. Use multimedia testing, including automa- The number of slices through the helix can
tion tools, to test code and integration. vary depending on the project due to the follow-
3. Work with customer and complete the ac- ing reasons:
ceptance testing
1. During the planning phase it may be de-
termined that the overall project could be
Augmented WebHelix
developed in a series of increments with each on a helix two evaluations are made: first evalu-
increment delivering greater functionality. ation determines if the testing phase is complete
In that case each increment may be developed (phase-stage) and if so the second evaluation as
as a separate slice. to whether the product may be released and/or
2. Each increment may itself be developed the project should proceed to the next slice is
over several slices; incomplete analysis determined (slice-stage); if the phase-stage evalu-
phase signals the start of the analysis phase ation determines that the testing phase has not
of the next slice, incomplete design phase completed, then the slice-stage evaluation does
could signal the start of the analysis or the not take place.
design phase of the next slice, and so on. At the end of application of the PEF at the
3. Since AWH provides Release and Continue slice-stage we will be able to determine if the
option, subsequent slices may optimize Release (whether the product can be released)
existing functionality or improve non- is a yes (Y) or a no (N) and if Continue (project
functional requirements such as reliability, needs to continue to the next slice) is a Y or a N.
performance, and modifiability. Table 1 gives the actions possible with the four
combinations of Ys and Ns. There is one more
Of course, the more slices traversed the longer possibility with the PEF which is the U statethe
the time taken to complete the project and more Unknown state; in this state we do not have enough
effort is expended on the project. Therefore, the information currently to determine if the state is
number of slices should be taken from a project a Y or a N. Therefore Table 1 has nine possible
management and quality standpoint. determinations. The steps to help resolve some
of the determinations in Table 1 are discussed
later in this section.
4. proJEcT EvaluaTIoN The application of the steps of the PEF results
framEWorK in an AND-OR graph called the Factor Interde-
pendency Graph or a FIG. FIG establishes the
Project evaluation framework (PEF) helps to de- relationships between the factors affecting Release
termine if the project in its current state is ready and Continue stages (also referred to as variables
to proceed to the next phase of a slice, ready of the project). There can be three types of rela-
for release, and/or needs to continue to the next tionships: AND; OR; and EQUAL. In an AND
slice of AWH. PEF borrows concepts from the relationship all the child factors need to be satisfied
NFR Framework [7], where NFR stands for non- in order for the parent factor to be satisfied and
functional requirements, which is a qualitative, even if one child factor is not satisfied then the
process-oriented and goal-oriented framework. parent factor is not satisfied. In an OR relation-
The NFR Framework and its derivatives have ship satisfaction of even one child factor satisfies
been used for evaluating processes [24], software the parent factor. In an EQUAL relationship the
artifacts [23], and for establishing traceability parent factor takes the same level of satisfaction
[22]. as the child. The creation of a FIG is also called
At the end of each phase on a helix, PEF is ap- decomposition (or clarification) of the Release
plied to evaluate whether that phase is completed (or Continue) stage into its constituent factors.
or not, called the phase-stage evaluation. If deter- EQUAL relationship is also called a refinement.
mined to be complete, the project may proceed PEF creates three types of FIGs: one type of
to the next phase on the helix; the project may FIG is used for evaluation at the phase-stage (the
repeat the phase. At the end of the Testing phase FIGs for evaluating the ends of Analysis, Design,
Augmented WebHelix
Coding, and Test phases could all be different); the parent factor is U
another FIG for evaluating Release; and the third R3. If even one child factor is N then
FIG for evaluating Continue. the parent factor is N
The steps of the PEF are iterative and in- R4. A combination of only Y and U
clude: among the child factors will have
an effect of Y on the parent
1. Determine the factors that affect the stage b. If a factor has OR relationship with its
2. Create a FIG for the stage by establishing child factors, then
the relationships (AND, OR, or EQUAL) R5. If all the child factors are N then
among the factors determined in step 1 the parent factor is N
3. Apply the propagation rules to the FIGs to R6. If all the child factors are U then
determine if the values of parent factors of the parent is U
a stage (completion of a phase, Release or R7. If even one child factor is a Y then
Continue) is one of Y, N or U; the propaga- the parent is Y
tion rules are: R8. A combination of only N and U
a. If a factor has AND relationship with among the child factors will have
its child factors, then an effect of N on the parent
R1. If all the child factors are Y then c. If a factor has only one child (EQUAL
the parent factor is Y relationship), then
R2. If all the child factors are U then
Table 1. Determination of course of action based on the values of release and continue variables
Release Continue Action
Determination 1 Y N Release the Web application in its current state and do not go to the next
slice of the helix.
Determination 2 N Y Do not release the Web application in its current state and continue on
to the next slice of the helix.
Determination 3 N N We are unable to determine whether to continue or to release; this may
be due to incomplete knowledge at present (discussed later in this
section).
Determination 4 Y Y Here we have an option of either releasing the current version and/or
continuing with further development in the next slice of the helix.
Determination 5 Y U We can make the release but we are not sure based on the current
information whether to continue to the next slice of the helix (discussed
later in this section).
Determination 6 N U We cannot make the release but we are not sure based on the current
information whether to continue to the next slice of the helix (discussed
later in this section).
Determination 7 U Y We can continue to the next slice of the helix but we are not sure based
on the current information whether to release the Web application now
(discussed later in this section).
Determination 8 U N We cannot continue to the next slice of the helix but we are not sure
based on the current information whether to release the Web application
now (discussed later in this section).
Determination 9 U U We are unsure of whether to release or to continue to the next slice of
the helix (discussed later in this section).
Augmented WebHelix
R9. If child is Y then the parent is Y do we mean by testing is successful, that is, the
R10. If child is N then the parent is N factor Testing Successful is met? This is clarified
R11. If child is U then the parent is U by further AND-decomposing (indicated by the
4. For phase-stage evaluation, if the root factor single arc) the factor Testing Successful into its
(the top-most factor in a FIG) is a Y, then child factors Errors Acceptable and System Works,
the phase is complete and the project can that mean, respectively, that the errors in the cur-
proceed to the next phase; however, if the rent version are acceptable as per organizations
root factor is an N or a U, then the project standards and that the system is accessible over
may have to repeat the current phase or may the internet in an acceptable manner. The factor
have to repeat from an earlier phase in the Requirements Met is AND-decomposed into fac-
next slice tors NFRs Met and FRs Met, where NFR stands
5. For slice-stage evaluation use Table 1 to for non-functional requirements and FR stands
determine the next course of action. for functional requirementsthe requirements
are met when both the functional and non-func-
FIGs may be drawn using the notation of a tional requirements are met. The factor NFRs
circle for a factor, a line for a relationship, a single Met is OR-decomposed (indicated by the double
arc for AND-decomposition, and a double arc arc) into factors Reliability and Efficiency this
for OR-decomposition, and an example FIG for means that the factor NFRs Met is satisfied if
slice-stage is shown in Figure 4. A phase-stage either reliability or efficiency or both are satis-
FIG looks similar with the major difference being fied for the Web application in its current version.
that during phase-stage we are concerned with Similarly, the factor FRs Met is OR-decomposed
factors that affect the phase while during slice- into factors Storefront and ProductInfo, which
stage evaluation we are concerned with factors means that the functional requirements of the
that affect Release and Continue variables. The Web application are satisfied if the application
ontology for the FIG is shown in Figure 3. has either a Storefront or provides ability to ob-
The FIG of Figure 4 is read as follows: the tain product information (captured by the factor
top-most factor (root factor) Release (on the left ProductInfo). Similarly the factor Business Goals
side of Figure 4) is AND-decomposed (indicated Achieved is AND-decomposed into factors Profit-
by the single arc) into three child factorsTest- able and Improves Customer Relationship which
ing Successful, Requirements Met, and Business means that profitability and improved customer
Goals Achieved; this means that the factor Release relationship are both required for achievement
is a Y only if all its child factors are each Y (that of business goals. The factor Profitable has been
is the current version may be released if the test- refined (EQUAL relationship) into the factor ROI
ing is successful, the requirements are met, and Acceptable which means that the current version
the business goals are achieved). However, what is profitable if the ROI is acceptable. In a similar
Augmented WebHelix
Release Continue
Testing Requirements Business Goals Features to be
Successful Met Achieved Added Helps Business Goals
ROI ROI
Store- Product Accept- Technical Sched. Cultural Accept-
Reliability Efficiency front Info able Feasibility Feasibility Feasibility able
Figure 5. A more practical excel representation of the FIG on the left in Figure 4
manner the FIG for Continue (the FIG on the right braces; if no annotation exists, then it means that
side of Figure 4) may be read. the factor is a root or has an EQUAL relationship
However, perhaps a more useful way will be with it child.
to use an Excel spreadsheet as shown in Figure 5, One of the advantages of using Excel is that
where the FIG of on the left of Figure 4 is shown simple macros may be written with VB (Visual
inverted with the leaf factors in the top-most row Basic) in Excel so that the state of the root factor
and proceeding to the root factor in a downward Release or Continue is computed semi-auto-
manner. The relationships are captured by an- matically. For example, the code in Figure 6 is a
notating a factor with AND, OR, EQUAL within simple example of a VB macro written using the
Augmented WebHelix
Microsoft VB editor that captures the state of the a more definite answer for the state of the
factor NFRs Met (in cell C2 of Figure 5) given sub factors (i.e., a Y or a N);
the values (or states) of its child factors Reliability 3. Some factors may have higher priorities
(cell C1) and Efficiency (cell D1). than others and we may need to apply the
This way of semi-automatically calculating the updated propagation rules given in the later
states of Release and Continue will considerably part of Section 5;
ease the burden on the project stakeholders dur- 4. Earlier stages may need to be repeated in the
ing the evaluation phases, both phase-stage and next slices: for example, if the design phase
slice-stage, of Augmented WebHelix. of the current slice uncovers an analysis er-
What happens if during the evaluation using ror then instead of proceeding to the coding
PEF we encounter states in rows corresponding phase of the current slice, we proceed to the
to Determination 3 or Determination 5 through analysis phase of the next slice.
Determination 9 of Table 1? Whenever we en-
counter situations corresponding to these rows, it
means that our current knowledge is incomplete 5. applIcaTIoN of THE
and the reasons could be: auGmENTEd WEBHElIx procEss
1. The decompositions for Release and Con- The AWH process has been applied to more
tinue have not considered all the pertinent than a dozen projects within the Department of
factors; Computer Science at the University of Texas at
2. Further decompositions of some of the fac- Tyler. In the senior level course, COSC 4360,
tors may be warrantedwe do not know the Net-Centric Computing, we build a full Web ap-
state of a factor (i.e., it is U) but if we could plication with an equal emphasis on the software
find that factors sub factors we may know engineering aspects of the application and how
Augmented WebHelix
the underlying network protocols (HTTP) operate 5.1 application of aWH for
as the applications executes. The Web application developing Games E-store
is started early in the semester and AWH is in-
troduced as a required design methodology to be The Games E-Store project was developed by a
used to complete the project. By using AWH, the team of three seniors for the COSC4309 Design
students were able to finish fairly complex Web of Information Systems course in the Fall of 2006.
applications that implemented an informational The application of different steps of AWH for this
computer security Web site including a message project is described below.
board, secure login and considerable database-
driven content. PreHelix 1: It was determined that the team
In COSC 4309, Design of Information Sys- will develop an e-store for video games called
tems course, we build Web applications with GameBuy. This activity took 1 day.
more attention being paid to systems analysis PreHelix 2: The resources needed for this
and design than to the coding aspects of a Web project were determinedfor example, the devel-
application. In the course, students are given a opment environment (Microsoft Visual Studio),
booklet describing AWH and then the students any special security features, the categories of the
develop complete Web applications using the video games and the number of games in each
AWH process. For example, in the Fall of 2005, category were determined. It was determined
we developed a CS Alumni site that contained an that there will be following phases: business
updatable newsletter, message board, e-portfolio requirements analysis, software requirements
for all current and former students and specialized analysis, design, coding, and testing. This activ-
search engine. By using AWH, students were able ity took 1 day.
to savor many of the aspects of Web application Step 1 (Slice1)Business requirements
design and still finish a complex project. In the analysis: The initial business requirements for
Fall of 2006, three information systems were the project were developed as shown in Figure
developed by student teams using AWH; one was 7. This activity took 3 days.
a e-store for games, another a Web log, and the Step 1A (Slice 1)Business requirements
third a library checkout system. evaluation: The Excel spread sheet used to
In the Spring of 2006, for the course COSC3331, evaluate the business requirements is shown
e-commerce programming, we again used AWH in Figure 8. The corresponding FIG is a simple
for five Web application projects developed by one as shown in Figure 9the parent factor (the
teams of two students each these included an root factor) Business Requirements Completed
e-book store, an e-realty store, an e-jersey shop, is AND-decomposed into the five child factors:
an e-ball shop, and an e-T-shirt store. Services Provided by GameBuy, Benefits, Finan-
Here we explain in detail how the AWH was cial Advantages, Competitive Advantages, and
used in the development of two projects, both of Technical Advantages. As can be seen from the
which developed e-commerce store, one for games Figure 8, two of the factors are not satisfied (that
and the other for books, one as part of COSC4309 is get a value of N) one (Competitive Advantages)
and the other as part of COSC3331. In the games due to the fact that one requirement may be con-
e-store project students focused on moving from sidered a software requirement while the other
one phase to the other, while in the e-store for (Technical Advantages) due to the fact that one
books project students focused on moving from requirement repeats. Using the propagation rules
one slice to another. of PEF (specifically, rule R3) it may be determined
that the business requirements are not completed
0
Augmented WebHelix
Figure 7. The initial business requirements for the games e-store project
and, therefore, the project had to redo the business Step 2 (Slice 3)Design: The user interfaces,
requirements as part of Slice 2. database, and the classes to be used for this project
Step 1 (Slice 2)Business requirements were all designed. This activity took 3 weeks.
analysis: The updated business requirements is Step 2A (Slice 3)Design evaluation: The
shown in Figure 10. This activity took 1 day. phase-stage evaluation indicated completion of
Step 1A (Slice 2)Business requirements design phase.
evaluation: Upon evaluating the business require- Step 3 (Slice 3)coding: All the components
ments with the FIG of Figure 9 we can determine of the system were coded and integrated. This
that the phase is complete since all child factors activity took 2 weeks.
are now satisfied. Step 3A (Slice 3)Coding evaluation: The
phase stage evaluation indicated completion of
The next phase is software requirements the coding phase.
analysis. Since this is analysis phase as well we Step 4 (Slice 3)Testing: The information
proceed to the analysis phase of the next slice, system was tested. This activity took 1 week.
Slice 3. Step 4A (Slice 3)Testing evaluation
(Phase-Stage): The phase stage evaluation in-
Step 1 (Slice 3)Software requirements dicated completion of the testing phase.
analysis: During this phase the software require- Step 4A (Slice 3)Testing evaluation (Slice-
ments for the project were developed. This activity Stage): The slice stage evaluation indicated that
took 3 days. the product was complete and there was not need
Step 1A (Slice 3)Software requirements to go to the next slice. The Continue was N and
evaluation: A FIG similar to Figure 9 was devel- Release was Ytherefore from Table 1 (Determi-
oped with one of the child factors being traceability nation 1), it was determined that the product was
of the software requirements to the business re- ready for release. A more complete application
quirements. The phase-stage evaluation indicated of the FIG for slice-stage determination is given
completion of software requirements phase. in Section 5.2, for the second example of AWH
application.
Augmented WebHelix
Figure 8. Evaluation of initial business requirements for the games e-store project
Technical
Services Advantages
Provided Benefits Competitive
Financial
by GameBuy Advantages
Advantages
PostHelix1: The product was deployed and Figure 11 shows the progress of this project
demonstrated. This activity took 2 days. through the AWH process; three slices were used
PostHelix2: The product entered the mainte- some fully and some partially. The entire project
nance phase and is still being maintained. was completed within a period of two months with
evaluations taking less than a day to complete.
Augmented WebHelix
5.2 application of aWH for PreHelix 1: Here the team developed a detailed
developing Book E-store business plan that included the following factors:
mission, potential customers, market entry, com-
This project was developed by a team of three petition, and profit avenues. The business plan also
seniors for the COSC3331 E-Commerce Pro- discussed the advantages of using e-commerce for
gramming in the Spring of 2006. The applica- this business. This phase lasted 2 weeks.
tion of different steps of AWH for this project is PreHelix 2: Here the team developed the
described below. software requirements for the Web application
for the e-commerce storefront for Zebra Books.
The constraints on the requirements included the
Figure 10. Updated business requirements for the Games E-Store Project
Figure 11. The flow of the Games E-Store Project through AWH process
Business
Analysis
Planning
Slice 1: Business
Analysis Design Coding Test
Requirements
Continue
Slice 2: Updated
Business Analysis Design Coding Test
Requirements
Continue
Slice 3: Software
Requirements, Design, Analysis Design Coding Test
Coding and Test
Release
Deploy
Maintain
Augmented WebHelix
usage of Visual Studio 2003 as the IDE (integrated access/update were quickly prototyped in Visual
development environment) for application devel- Studio. Also the business classes that the code
opment, ASP.NET as the technology for the Web will use were designed at this step. This step
application, Visual Basic.NET as the language for took 3 days.
the Web application, and Microsoft SQL for the Step 2A (Slice 1)Design evaluation: This
database. During this stage, the number of itera- phase-stage evaluation determined the comple-
tions of the helix as well as the features needed tion of this phase.
for each iteration were also decided as follows: Step 3 (Slice 1)Coding: During this step
the prototyped screens were provided with Vi-
1. Iteration 1: Development of product sual Basic back end code and the database was
catalogincludes the development of the populated with the catalog items. This step took
catalog database, the basic storefront and 4 days.
facilities (front-end) for viewing/updating Step 3A (Slice 1)Coding evaluation: This
the catalog; phase-stage evaluation determined the completion
2. Iteration 2: Catalog Search Facility, Paypal of this phase.
Transaction Ability, and Shopping Basket Step 4 (Slice 1)Testing: During this step
feature; the database and the front-end were tested to
3. Iteration 3: Ability to Place Orders and ensure all the database calls worked and that the
accept Customer Details. contents of the database were correct such as for
example, the prices were correctly input and there
This phase took 1 week. were no spelling mistakes in the item descriptions.
Each iteration was developed in its own slice, The storefront look and feel was also evaluated
however, the decision whether to Release and/or to ensure that the requirements were met. This
Continue at the end of each slice was made us- step took 3 days.
ing PEF (discussed later). For each slice Step Step 4A (Slice 1)Testing evaluation: This
1 (Analysis) through Step 5 (Evaluation) were phase stage evaluation determined the completion
performed. We discuss these steps for Iteration of this phase.
1 (Slice 1) below. Step 4A (Slice 1)Testing evaluation
(Slice-Stage): During this step PEF was applied
Step 1 (Slice 1)Analysis: During this step to determine the states of Release and Continue
all the items that need to be in the product cata- variables currently for the project. The Excel
log were determined including the item name, spreadsheet shown in Figure 5 was used for the
description, cost, and a picture (if available). The evaluation of the Release variable and macros
storefront look and feel was also determined. The developed as shown in Figure 6 were used to
features of the screens for viewing the catalog partially automate the evaluation process. For
and/or update the catalog were also determined. slice 1, Reliability and Efficiency (cells C1 and
This step took 3 days. D1, respectively, of Figure 5) are both considered
Step 1A (Slice 1)Analysis evaluation: This met since the partial product does have these
was done similar to that for the project of Section properties1; likewise, the Storefront factor (cell
5.1 and the phase-stage evaluation determined the E1) and ProductInfo factor (cell F1) are both met
completion of this phase. since at the end of this slice both exist. By propa-
Step 2 (Slice 1)Design: During this step the gation rule R7, since at least one child factor of
database schema was developed for the catalog NFRs Met factor (cell C2) is a Y, the NFRs Met is
and the screens for the storefront and database also Y. Likewise, by rule R7, the factor FRs Met
Augmented WebHelix
(cell E2) is also a Y. By propagation rule R1, the 12) is a Y since we have used the available tech-
parent factor Requirements Met is a Y as well. nology successfully for this slice and we believe
However, the factor ROI Acceptable (cell G1) is we can do so for the next slice as well; the factor
not met since as is the system does not have the Schedule Feasibility (cell D1) is a Y as well since
functionality to improve ROI therefore, by rule we have no reason to expect schedule slippage;
R10, the factor Profitable (cell G2) is not met (that and factor Cultural Feasibility (cell E1) is a Y
is, it gets an N by the propagation rule). The factor since the company (the development group of two
Improves Customer Relationship (cell H2) is not students) does not have any issues in continuing
met (N) since the Web application currently does further work on this project. By propagation rule
not provide much functionality for the customer. R1, the parent factor Feasible (cell C2) is a Y. The
By propagation rule R3, the parent factor Busi- factor ROI Acceptable (cell F1) is a Y since as per
ness Goals Achieved (cell G3) is not met, that is, our calculations the ROI will improve with more
it gets an N). The factor Errors Acceptable (cell features that customers can useby propagation
A2) was met (Y) since the errors were small; rule R9, the parent factor Profitable (cell F2) is a Y.
likewise the factor System Works is acceptable The factor Improves Company Image (cell B2) is a
(Y) since the system is accessible over a browser. Y since a more usable Web site will help improve
By propagation rule R1, the parent factor Test- the company image; therefore, by propagation
ing Successful (cell A3) is a Y. By propagation rule R1, since all the child factors of the parent
rule R3, the parent factor Release (cell A4) is an factor Helps Business Goals (cell B3) is a Y, the
N since one of its child factors (Business Goals parent factor is itself a Y. The factor Features
Achieved) is an Nthat is the product cannot be Expected by Customer (cell A2) is a Y since the
released in its current stage. features planned for iteration 2 (slice 2) are usu-
For deciding the value of Continue variable we ally provided by e-commerce sites - therefore, by
used the Excel spreadsheet representation of the propagation rule R9, the parent factor Features
FIG on the right of Figure 4 (shown in Figure 12). to be Added (cell A3) is a Y. Since both the child
The factor Technical Feasibility (cell C1 of Figure factors of the factor Continue (cell A4) is a Y, by
Figure 12. A more practical excel representation of the FIG on the right in Figure 4
Augmented WebHelix
propagation rule R1, the parent factor Continue PostHelix2: The project was maintained (will
is also a Y; that is, the project is good to go on to be continued into the next semester by another
the next slice of the helix. group of students)
In a similar manner, Step1 through Step 4A
of the AWH were applied for the next two slices; Here again the project was completed within
they together took another two weeks. However, about 2 months including the evaluation process.
for the final slice, during the evaluation phase, The progress of this project through the AWH
Release is a Y and Continue is an N which means process is shown in Figure 13.
that the project needs to be released in its current
state and not continued to the next slice. The reason
for Release to be a Y is that ROI Acceptable and 6. oBsErvaTIoNs
Improves Customer Relationship factors (cells G1
and H2, respectively, of Figure 5) are now both In Section 5 we described in detail the applica-
Y, which makes its parent factor Business Goals tion of Augmented WebHelix. In this section we
Achieved (cell G3 of Figure 5) also Y, and this in discuss the lessons learned from the application
turn makes Release a Y. However, for Continue, and the merits/demerits of AWH.
the factor Features Expected By Customer (cell
A2 of Figure 12) is an N since most of the fea- 6.1 salient features of aWH
tures commonly available in e-commerce sites
are already there and, therefore, Continue is an AWH is an iterative process for rapidly devel-
N as well. oping Web applications with several repetitive
slices each of consist of eight phases: analysis,
PostHelix1: The project was deployed and analysis evaluation, design, design evaluation,
presented (took 3 days) coding, coding evaluation, testing, and testing
Figure 13. The flow of the book E-Store Project through AWH process
Business
Analysis
Planning
Slice 1: Iteration 1:
Analysis, Design, Analysis Design Coding Test
Coding, Test
Continue
Slice 2: Iteration 2:
Analysis, Design, Analysis Design Coding Test
Coding, Test
Continue
Slice 3: Iteration 3:
Analysis, Design, Analysis Design Coding Test
Coding, Test
Release
Deploy
Maintain
Augmented WebHelix
evaluation, where the evaluation phases use the the requirements for a better process. Firstly, the
PEF for accomplishing the task. Thus AWH is students do not need to imagine the feedbackthe
significantly different from the other processes PEF lists the factors that the project needs to fulfill
described in Section 2. It is not a simple linear and the students need to determine how satisfac-
waterfall process since AWH is iterative and torily the factors have been met (or otherwise)
there are intervening evaluation phases; it is dif- and document reasons; therefore, the feedback
ferent from spiral since evaluation phase uses is provided in a systematic manner. Secondly,
the systematic PEF unlike the somewhat vague because of the systematic effort required by AWH,
risk assessment done by the spiral process; it is students cannot ignore feedbackthe evaluation
different from RUP since the evaluation phase of phase of AWH depends on using PEF to make
AWH serves as the milestone to proceed to the go/no-go decisions. Traceability is established by
next phase unlike in RUP where there is no formal making it one of the important factors in the PEF
framework to decide the completion or otherwise and ensuring the artifacts of the current phase are
of the current phase; and AWH is different from traceable (or not) with those of the previous phase
XP in that analysis and design are stressed but and capturing justifications. Because of the prac-
the evaluation phases ensure that documentation ticality of AWH, students realize the invaluable
is kept to the bare minimum in the spirit of XP. help provided by a process. In fact they tend to
We also believe that AWH is better than these become process-oriented at the end of the project
other processes simply because of the success of which we feel is a good preparation for the industry.
AWH in rapidly developing Web applications in Finally, due to the continual guidance provided
the academic environment. The PEF uses cardinal by AWH we have never had a failed project so
measurement of the achievement of each factor; far; students quickly discover deviations, if any,
this follows from the economic concept of satis- and their reasons and find time, if necessary, to
ficing [7] used by the NFR Framework [7] (from keep their projects on track.
which the PEF is derived) which means that fac-
tors may not be achievable in the absolute sense 6.3 Number of slices Through the
but only in the relative sense; moreover, we found Helix
that students were able to easily assign cardinal
measures more repetitively since they found some In the two examples discussed in Section 5 both
parallel with the grading system widely used in went through three slices of the helix: this is coin-
the universities. It has asked what happens if, for cidentaldifferent projects can through different
example, the design phase uncovers a require- numbers of slices through the helix. The number
ments defect? This defect would be found during of slices is dependent on factors discussed at the
the design evaluation phase of the current slice end of Section 3.
and as per the AWH procedure we would go to the
analysis phase of the next slice; therefore AWH is 6.4 variability of Evaluation factors
equipped to handle out-of-phase problems. Between slices
6.2 aWH meets the requirements for In Section 5 we assumed the factors for evaluation
a Better process to be static between slices. This need not be so
in the real world; if factors change during devel-
In Section 1 we stated some reasons why existing opment the FIG can be updated to reflect reality
processes were unsuitable for our use in academia. and during the next evaluation phase the updated
In this subsection we highlight how AWH meets FIG will be used for evaluation. Thus in the Zebra
Augmented WebHelix
Books project (Section 5.2) the factor FRs Met claimed that the factor Cultural Feasibility (cell
(Figure 4 or Figure 5) could be decomposed to E1 in Figure 12) is a Y since the company (the
reflect the functional requirements for each slice development group of two students) does not
rather than just Storefront and ProductInfo which have any issues in continuing further work on
are both available in the first iteration itself. this project. The statement within quotes is the
justification and this can be captured by a claim
6.5 assigning priority to factors factor.
Augmented WebHelix
problem domain. The team is fully aware of taking course of a semester for the local industry. The
decisions and the reasons for taking themex- experience of the students has been successful
actly the feedback the students may expect had with the major difference being that the evalua-
they interacted with a real customer. tion phases are completed with input from their
industry customers whenever necessary (for
6.10 supports rapid prototyping example, in Figure 8, the satisfaction of the fac-
tor Services to be Provided by GameBuy will
All projects that have used AWH have finished well need to be determined by customer feedback and
within schedule. On those rare occasions where all captured as such in the justification). The authors
the features could not be implemented, the project have also used AWH for private projects with
team was aware of the reasons for not implement- industry and likewise our experience has been
ing them. Besides, rapid prototyping supported positive as well. We therefore believe that AWH
by AWH is backed by upfront requirements and is scalable for industry projects; however, we need
design so that students realize that implementa- to apply this process on large teams before we can
tion does not supplant these important activities. be confident of AWHs scalability.
In fact, one of our undergraduate seniors happily
informed us that he got a job only because he was 6.14 some Issues with aWH
able to stress the importance of documentation
in the system development process. While AWH has several advantages, based on the
performance and the feedback from the students
6.11 phases may Be decomposed we found that there are still some issues that
need to be resolved. Chief among them is the fact
As shown by the example of Section 5.1, the that AWH is not very easy to learn initially. The
analysis phase of a slice was decomposed into students had to learn from instructors notes that
business requirements analysis and software are themselves evolving as the course is taught
requirements analysis. Thus a generic phase each time and too many of the concepts of AWH
may be decomposed as required by the project. were somewhat involved. They had several ques-
Decomposition is viewed as another pass through tions on the process which when clarified helped
the same generic phase in the next slice of the them become comfortable with the process. Their
helix as shown in Figure 11. answers to embedded questions in the exams also
confirm this observation. AWH forces team work,
6.12 develop understanding of especially the evaluation phases. This sometimes
system Evolution creates stress on the students who are working on
teams for the first time. Students do not always
An important point to note in Figure 13 is that each appreciate the need for any documentation at
slice of the helix extends the existing system. This all, and the capturing of justifications as part of
helps to teach the students about system evolution evaluation is seen as unnecessary. However, we
and how this is a natural property of systems. believe that development of better pedagogical
aids including text books on AWH will help us
6.13 scalable to Industry projects overcome some of these problems; however, the
benefits obtained from using AWH makes it a
AWH has been used in Capstone Projects where promising Web engineering process.
students complete information systems in the
Augmented WebHelix
0
Augmented WebHelix
Augmented WebHelix
Chapter III
Model-Centric Architecting
Process
Tony C. Shan
IBM, USA
Winnie W. Hua
CTS, Inc., USA
aBsTracT
This chapter defines a methodical approach, named model-centric architecting process (MAP), to effec-
tively cope with the architecture design complexity and manage the architecting process and lifecycle of
information systems development in a service-oriented paradigm. This comprehensive method comprises
four dimensions of architecting activities: requirement analysis, specification, validation, and planning
(RSVP). The process is broken down into nine interrelated models: meta architecture, conceptual archi-
tecture, logical architecture, physical architecture, deployment architecture, management architecture,
information architecture, aspect architecture, and component architecture. A 2-D matrix serves as a
blueprint to denote a step-by-step procedure to produce and manage the architectural artifacts and
deliverables in the lifecycle of systems architecture design, development and governance. The holistic
framework provides a multidisciplinary view of the design principles, tenets, idioms, and strategies in
the IT architecting practices. The characteristics and features of the constituent elements in the MAP
approach are articulated in great detail. Recommendations and future trends are also presented in the
context. It helps build high-quality service-oriented solutions focused on different domains, and in the
meantime keeps the agility, flexibility and adaptiveness of the overall method. This systematic framework
may be customized in different formats to design various information systems in different industries.
Copyright 2008, IGI Global, distributing in print or electronic forms without written permission of IGI Global is prohibited.
Model-Centric Architecting Process
Model-Centric Architecting Process
Model-Centric Architecting Process
systematic disciplined way. A highly structured Innovations: The stimulation and protection
mechanism is thus designed in this chapter to meet of the corporate innovations is enforced in
this ever-growing need, and present a comprehen- the IT architecture, management, and gov-
sive and holistic view of all architectural elements, ernance processes.
components, knowledge, platforms, planning,
and their interrelationships. Design procedures Technical Principles
are established accordingly in this approach to
facilitate the creation, organization, and manage- Flexibility: The technical model is agile and
ment of the architecture assets and solutions at nimble to be adaptive in response to future
different levels in a large organization. business needs.
Responsive change management: Changes
design philosophy to the corporate architecture/infrastructure
environment are planned and implemented
The development of this disciplined mechanism in a phased approach.
followed some key design principles, part of which Requirement scope control: Avoid scope
were adapted from TOGAF (The Open Group, creeping and waterfall approach.
2007) but significantly modified/expanded to be Technology standardization: Techno-
tailored to the services-oriented distributed ap- logical diversity is controlled to minimize
plication development process. immature and proprietary solutions and
products.
Business Principles Interoperability: Software, hardware,
network and infrastructure should conform
Primacy of principles: All groups and to defined standards that promote com-
stakeholders within an organization must patibility for data, applications, services,
follow these principles of solution architect- communications, integration, security and
ing. technology.
Maximize benefits: Maximum benefits will
be achieved to the entire organization. Solution Principles
Business Continuity: Business opera-
tions are not interrupted in spite of system Ease of use: Solutions are user friendly,
changes. with the underlying technology transparent
Active engagement: All stakeholders to users, so they can concentrate on tasks at
participated in the process to accomplish hand.
business objectives. Technology independence: Technical solu-
Compliance with regulations: The archi- tions are independent of specific technology
tecting processes comply with all relevant choices and therefore can operate on a variety
laws, policies, and regulations. of technology platforms.
IT accountability: The IT group accounts Common services and components: Mini-
for owning and implementing IT processes mize the redundant development of similar
and infrastructure that enable solutions to functionalities to promote common service
satisfy business requirements for func- and components across the organization.
tionality, service levels, cost, and delivery
timelines.
Model-Centric Architecting Process
Data asset: Data is an asset that has value Encapsulation: Service elements and details
to the enterprise and is managed accord- are enclosed inside larger, more abstract
ingly. entities.
Data ownership: Each data element owned Loose coupling: Services maintain a rela-
by an entity accountable for the data qual- tionship that minimizes dependencies and
ity. only requires that they maintain an aware-
Common vocabulary and meta-data: Data ness of each other.
is defined consistently throughout the orga- Contract: Beyond what is described in the
nization, and the meta-data are standardized service contract, services hide logic from
and available to all users. the outside world.
Shared data: Data is shared across lines Reusability: Logic is divided into services
of business for individual applications and with the intention of promoting reuse.
systems to perform their duties. Composability: Collections of services
Data access: Data is accessible for users to can be coordinated and assembled to form
perform their functions composite services.
Data security: Data is protected from Autonomy: Services have whole control
unauthorized use and disclosure. In addi- over the logic they encapsulate.
tion to the traditional aspects of national Statelessness: Services minimize retaining
security classification, this includes, but is information specific to an activity.
not limited to, protection of pre-decisional, Discoverability: Services are designed to
sensitive, and proprietary information. be outwardly descriptive so that they can be
found and assessed via available discovery
mechanisms.
Model-Centric Architecting Process
Model-Centric Architecting Process
D e p lo y m e n t Management
M e ta
P h y s ic a l map C o n c e p tu a l
C omponent In fo rm a tio n
L o g ic a l
A spect
complex enough so that the component itself and components to an architecture level brings
needs a micro-framework to organize the forth a holistic view of the key architecture de-
design artifacts. sign artifacts from end to end, eliminating the
disconnect between the architecture design and
implementation design in the traditional approach.
modEl-cENTrIc arcHITEcTING In addition, the meta model sheds light on the
procEss portfolio blueprint, cross-application concerns,
roadmapping, and optimization to pave the way
Some of the nine architecture models in MAP towards a service-oriented enterprise. The nine
have been routinely used in the project archi- architecture types are articulated in detail in the
tecting practices, such as conceptual, logical, following subsections.
physical, and information architectures. The MAP
framework introduces the concept and applica- meta architecture
tion of new modeling disciplines, and intensifies
unprecedented attention to the key design at- As shown in Figure 3, the requirements of meta
tributes for the service-oriented paradigm. The architecture are architecture vision, principles, te-
deployment architecture is distinguished from nets, idioms, guidance, and trends. It also includes
physical architecture, in order to further sepa- the alignment of business and technology models,
rate concerns and enhance loose coupling of the as well as the architecture portfolio rationaliza-
models. The management architecture becomes tion and IT simplification. From the architecture
an independent module to take account of the specification perspective, the meta architecture
increasing demand for quality of services and specifies a number of key architecture artifacts
non-functional requirements. Lifting aspects across the application portfolio: architecture
Model-Centric Architecting Process
0
Model-Centric Architecting Process
planning, the conceptual architecture deals with point, the logical architecture must align closely
the architecture process, content, context, reuse with the business process architecture. The model
and generalization. should be platform-independent and product-ag-
nostic, allowing for openness and flexibility for
logical architecture long-term stability in the design.
Model-Centric Architecting Process
projects. Regulatory requirements and compliance chitecture specification are the network topology,
are evaluated. Exception rationales and tradeoffs hosting farm or hotel, deployable build models,
are carefully deliberated. The product lifecycle configuration specification, development/test/
and roadmap have a significant impact on the production environments, deployment diagram,
physical architecture planning. Additionally, the installation specification, user guide, and data
architecture maturity and longevity quantify the center operations.
evolution of physical architecture design. In the deployment architecture verifica-
tion, the deployment patterns should have been
deployment architecture considered as the engineering implementation
approaches. Other artifacts are also examined,
As represented in Figure 7, the requirement such as compliance, SSO, authorization, encryp-
scope of the deployment architecture contains tion, and resource sharing via server hotels and
the run-time environment to host the individual partitioning. Regarding the planning, the data
applications with the topological organization in center design and environment buildout will meet
the geographical data centers. It also takes ac- the needs of the business continuity and timely
count of staging, pilot, recovery time objective, technology recovery. Virtualization and grid
recovery point objectives, release and backout computing are leveraged to maximize the reuse
plans. The key elements in the deployment ar- of infrastructure.
Model-Centric Architecting Process
The elements in management architecture require- As illustrated in Figure 9, the information archi-
ments, as pictured in Figure 8, are solution provi- tecture handles the data and content requirements,
sioning, automation, capacity, service versioning, such as persistence, reporting, data integration,
service interaction security, and SLA monitoring. data quality, analytics, business intelligence,
The management architecture specification cov- data store, and data extract-transform-load. The
ers event handling, fault troubleshooting, product information architecture specification defines the
trace, debug data transfer and analysis, problem data model, storage, DBMS, database schema,
isolation and diagnosis, service relationship vi- replication, data transfer, data backup, data cach-
sualization, and business process status. ing, reporting, metadata, query, workload priority,
From the management architecture valida- and access control.
tion viewpoint, the key artifacts are inspected The information architecture validation
such as data collection, analysis, persistence, consists of evaluations of data normalization,
visualization, environment optimization, policy security, integrity, transactional versus analytic,
governance, certification, and registry. The man- reuse, replication, quality, analysis, stream flow,
agement architecture planning focuses on the and audit. The information architecture plan-
overall system management, service repository, ning deals with reference data, data integration
system recovery plan, dashboard, and governance & virtualization, knowledge engineering, data
process. retention and archiving.
Model-Centric Architecting Process
Meta Conceptual Logical Physical Deployment Management Information Aspect Architecture Component
Architecture Architecture Architecture Architecture Architecture Architecture Architecture Architecture
- Architecture - Functionality - IT system - Platform - Run-time - Solution - Persistence - Crosscutting concerns - Detailed/ Micro
principles modeling structure requirements environment provisioning requirement - Application, software, design
- Architecture - Non-functional - Technology - Product mappings - Staging - Automation & - Reports hardware, network, - Service
trends requirements options and - Network - Pilot capacity - ETL infrastructure level components
- Biz and - SLA selection requirement - Recovery - Multiple - BI - Aspect patterns - Operations
Technology - Business - Application - Quality attribute time and point service - Data warehouse Process
alignment process flow domain analysis objectives versions - Data mart service
(analysis)
Architecture
- Architecture - System scoping modeling - Release and - Secure service - Risk data component
Requirements
rationalization - Capability - Organization backout plan interactions - OLTP/OLAP object method
and - Monitor SLA decomposition
simplification
- Cross-app - Use case - Architecture - Platform selection - Network - Event handling - Data model - Application - Component
architecture diagram & diagram - Hardware model topology and fault - Storage framework specification
- Roadmap specification - Subsystem - System - Farm/Hotel troubleshoot- - DBMS - Design patterns - Service
- Architectural - System context responsibilities performance - Build models ing - Database schema - Sequence diagram
Model-Centric Architecting Process
definitions
patterns - Architecture and - System backup - Configuration - Product trace - Replication - Collaboration - CRC cards
- Business analysis constraints and relationships and DR specification and debug data - Data transfer diagram - Class diagram
patterns assumptions - Communica- - Scalability - DEV, TEST, transfer and - Data backup - Performance tuning - Design patterns
- Architecture - Architecture tion diagram - High availability UAT, PROD analysis - Data caching - Session management - Technology
methods risks - Activity - Authentication environments - Problem - Reporting - Open source products - Package
- Architecture - User interface diagram - Security - Deployment isolation and - Metadata - System & UI - Open source
(modeling)
standards specification - Key - Capacity planning diagram diagnosis - Query navigation utilities
- Architecture - Service access technology - Installation - Service - Workload priority - Libraries
frameworks specification selections specification relationship - Access control - Widgets
Architecture Specification
- Modeling tools - Computation- - Architecture - User guide visualization - Toolkits
independent layering - DMZ and - Business - API
- Inter- Firewalls process status
operability
Table 1. Reference card of model-centric architecting process
(governance)
guidelines standards - SOA, BPM, - Regulatory authorization - Policy - Data quality - Reusable assets - Component
- Cookbooks - Notation ESB, WS requirements - Encryption governance - Data analysis composition
Architecture Validation
- Standards standards - Biz process - Build vs. buy - Resource sharing - Certification - Data stream flow - Component
- Benchmarks - Agility analysis choreography - Registry & audit orchestration
- Strategy - Process - Model - Product lifecycle - Data Center - System - Reference data - Common concerns - Component
- Domain /Channel - Content alignment with - Product roadmap planning management - Information - Patterns hierarchy
architecture - Context biz process - Architecture - Business - Service integration & - Aspect-oriented - Maintain-ability
- Optimization - Architecture architecture maturity Continuity repository virtualization design methods - Conventions
- Blueprint reuse - Platform- - Longevity - Technology - System - Knowledge - Inversion of control - Component
(vision)
Planning
- Taxonomy - Architecture independent & recovery recovery plan engineering catalog and
Architecture
- Ontology generalization tech-agnostic - Virtualization - Dashboard - Data retention and repository
archiving
Model-Centric Architecting Process
of the application software organization. And the online collaborative planning, which decentralizes
aspect solutions can be used to address application- control and responsibility for overall plans and
wise concerns in the design, such as the session permit online access to plans that is equal for all
management, logging, and MVC pattern. related participants.
From a development standpoint, the solution As new enabling technologies are emerging at
modules cataloged in the MAP facilitates the an unprecedented pace and the standards/speci-
development activities. Various tools listed can fications in SOA are maturing, the attributes and
be employed to semi-automate the development contents of the MAP framework tend to expand
lifecycle. The UML tool is used to document use drastically and some of them become obsolete
cases and activity diagrams, as well as conduct much faster. Timely refreshment and frequent
object-oriented analysis and design. The IDE reassessment are mandatory to keep pace with the
tools are used to code and implement software latest advances in the field. The strategic planning
services and components. The testing tools are and execution process also need to be revalidated
used to validate and profile application units and accordingly. Future work includes building do-
components regressively. The build tools automate main-oriented reference models, implementation
the compilation and packaging of the deployable patterns, best practice styles, closer alignment with
as well as the installer. The version control tools business process strategy/architecture, capability
assure the effective configuration management maturity, and governance policies/program. Since
and quality control. The community tools help the difficulties in SOA architecting practices are
coordinate the collaborations among the resources beyond technical challenges, large organizations
that may be geographically located beyond the must make sociological changes in mindset to
continent boundaries in todays globalized de- adopt the engineering practices and overcome
velopment environment. the cultural barriers during the transition. Other
From an implementation point of view, a disciplines must be leveraged and incorporated
lightweight Linux-Apach-MySQL-PHP (LAMP) as well, to establish an overarching methodical
combination can be directly employed in small- approach to sustainable architecture designs.
and medium-size applications. Other engines and
servers presented in the MAP are used for large-
scale complex systems, such as portal server, pro- coNclusIoN
cess engine, rule engine, middleware, embedded
database, and service registry/repository. Various To effectively manage the architecture complexity
open source solutions can be directly deployed to and organize diverse technical assets in informa-
monitor and manage the system operations. tion systems, a comprehensive method is a neces-
From a project management viewpoint, vari- sity to abstract concerns, define roles, separate
ous products specified in the method help man- responsibilities, and present a holistic view of the
age the development tasks and issues efficiently. architectural aspects in a highly structured way.
dotProject is a project management tool designed The Model-centric Architecting Process (MAP)
to assist in the management of defined project approach introduced in this chapter is a holistic
work. The defect tracking system such as Bugzilla framework to facilitate architecting distributed
provides a collaborative environment to resolve applications in a systematic fashion. It provides
development issues and bugs. POM-based tools comprehensive taxonomy of the architectural
like Maven can manage a projects build, report- artifacts from both development and runtime
ing and documentation from a central piece of perspectives. It builds concrete architecture
information. Products like Wrike facilitate the solutions focused on different domains, and in
Model-Centric Architecting Process
the meantime keeps the agility, flexibility and IEAD (Institute for Enterprise Architecture
adaptiveness of the overall method. Developments) (2004). Extended enterprise ar-
The design principles of the framework are chitecture framework. Retrieved May 18, 2007,
presented in the context. The general approach from http://www.enterprise-architecture.info
comprises an array of multiple dimensions: re-
Kruchten, P. (2003). The rational unified process:
quirement, specification, validation, and planning
An introduction. 3rd Edition. Massachusetts:
(RSVP). MAP is composed of a range of archi-
Addison Wesley.
tecture models: meta architecture, conceptual
architecture, logical architecture, physical archi- OMG (Object Management Group) (2007). Model
tecture, deployment architecture, management driven architecture. Retrieved May 18, 2007, from
architecture, information architecture, aspect http://www.omg.org/mda
architecture, and component architecture. The
Purdue University (1989). The Purdue enterprise
elements of each module are discussed and the
reference architecture. Retrieved May 18, 2007,
features are articulated in detail.
from http://pera.net
Thanks to its comprehensiveness, this over-
arching framework has been extensively used Putman, J.R. (2001). Architecting with RM-ODP.
in the service-oriented application development New Jersey: Prentice Hall PTR.
in one form or another. It can be streamlined as
Shan, T.C., & Hua, W.W. (2006). Solution archi-
an agile variant tailored to specific domains or
tecture of N-Tier applications. In Proceedings of
individual projects. The approach has proven
3rd IEEE International Conference on Services
to be a great success in the real-world project
Computing (pp. 349-356). California: IEEE Com-
work in terms of cost saving, productivity, stan-
puter Society.
dardization, and communications. Moreover,
this method is scalable and flexible for dynamic Software Engineering Institute (SEI) at CMU
extensions and expansions, which can serve as a (2007). Scenario-based architecture analysis
meta-framework to incorporate other general or method. Retrieved on May 18, 2007, from http://
specialized frameworks. www.sei.cmu.edu/architecture/scenario_paper
Standish Group (2007). The Standish Group
Chaos Report 2006. Retrieved May 18, 2007,
rEfErENcEs
from http://www.standishgroup.com
DoD C4ISR Architecture Working Group The Open Group (2007). The Open Group ar-
(1997). C4ISR architecture framework. Version chitecture framework. Retrieved May 18, 2007,
2. Retrieved May 18, 2007, from http://www.fas. from http://www.opengroup.org/togaf
org/irp/program/core/fw.pdf
Treasury Department CIO Council (2000). Trea-
Eclipse (2007). Eclipse process framework. Re- sury enterprise architecture framework. Version
trieved May 18, 2007, from http://www.eclipse. 1. Retrieved May 18, 2007, from http://www.
org/epf eaframeworks.com/TEAF/teaf.doc
Federal Office of Management and Budget (2007). Zachman, J.A. (1987). A framework for informa-
Federal enterprise architecture framework. tion systems architecture. IBM Systems Journal,
Retrieved May 18, 2007, from http://www.white- 26(3), 276-295.
house.gov/omb/egov/a-2-EAModelsNEW2.html
Chapter IV
Architecture, Specification, and
Design of Service-Oriented
Systems
Jaroslac Krl
Charles University, Czech Republic
Michal emlika
Charles University, Czech Republic
aBsTracT
Service-oriented software systems (SOSS) are becoming the leading paradigm of software engineering.
The crucial elements of the requirements specification of SOSSs are discussed as well as the relation
between the requirements specification and the architecture of SOSS. It is preferable to understand
service orientation not to be limited to Web services and Internet only. It is shown that there are several
variants of SOSS having different application domains, different user properties, different development
processes, and different software engineering properties. The conditions implying advantageous user
properties of SOSS are presented. The conditions are user-oriented interfaces of services, the application
of peer-to-peer philosophy, and the combination of different technologies of communication between
services (seemingly the obsolete ones inclusive), and autonomy of the services. These conditions imply
excellent software engineering properties of SOSSs as well. Service orientation promises to open the
way to the software as a proper engineering product.
Copyright 2008, IGI Global, distributing in print or electronic forms without written permission of IGI Global is prohibited.
Architecture, Specification, and Design of Service-Oriented Systems
(SOSS) are of different types depending on the feasible functions of SOSSs include the functions
character of the functions the system provides, the important for user top-management.
system environment (for example, e-commerce Feasible functions of any large system depend
or a decentralized international enterprise), and on its architecture. The decision as to what archi-
the way the system is developed. The common tecture is to be used must therefore be formulated
property of SOSS is that their components behave in early stages of the system life cycle. On the
like the services in real life mass service systems. other hand, the structure, techniques, and content
The SOSS must then be virtual peer-to-peer (p2p) of requirements specifications are influenced by
networks of autonomous components (services). the properties of the system architecture and the
The services can have various properties; they details of its implementation. We shall show
need not be Web services in the sense of W3C that SOSS should use a combination of various
(2002) and need not therefore use standard com- techniques developed during the software history
munication protocols, compare Barry and As- (for example, message passing, object orientation,
sociates (2003) and Datz (2004). common databases, and, sometimes, batch-orient-
We shall show that the software engineering ed systems). All these issues should be addressed
properties as well as the user-oriented properties in the specifications of SOSSs. SO is a paradigm
of any SOSS strongly depend on the properties new for many software people. It implies some
of the service interfaces and that user interfaces problems with the application of SO.
of the system should be implemented as specific
services (peers of the network) as well. All these
issues are related to the architecture of the sys- pEEr-To-pEEr INformaTIoN
tem. We will discuss how the properties of the sysTEms (p2pIs)
architecture influence the set of feasible func-
tions, development (especially the requirements Large information systems must often be devel-
specifications), feasible development techniques oped as a network of loosely coupled autonomous
(for example, agile ones), standards, politics of IT componentsservices (possibly information
management, and marketing strategies of software systems) integrated using peer-to-peer principle
vendors and/or system integrators (Figure 1). The (further P2PIS). The change of the architecture
Feasible Users,CEO
requirements inclusive
IT managers
Marketing policies of
IT System software vendors and
management architecture systems integrators
Software vendors
Software Development
developers
Architecture, Specification, and Design of Service-Oriented Systems
0
Architecture, Specification, and Design of Service-Oriented Systems
Figure 2. Architecture of a service oriented system (G is a gate, UC is an user interface service (por-
tal))
UC System
interface 1
Old service
Service G Middleware G Service
interface
System
Service G UC interface 2
form components into Web services and that history of collaboration with the partners and
the middleware in confederations need not be about the current situation (that is, credibility)
Internet based. On the other hand, Web services on the market. The partner should evaluate the
and Internet-oriented middleware are necessary enterprise of the initiator similarly. The partners
in alliances as the use of worldwide standards and have to check whether to conclude a contract.
tools is the precondition of e-commerce and of Supervision is necessary as someone must be
the communication between partners unknown to responsible for any business operations. The busi-
each other before the communication starts. ness documents produced in this way are often
Note that SOSSs are usually built starting to be formally confirmed by people. It holds for
from the specification of the interfaces and that P2PIS in general, but it is especially needed in
the components providing the services are mainly alliances.
integrated as black boxes. Current practice is to establish the coopera-
tion in alliances via Web services in the sense of
alliances W3C. The dialog of business partners then starts
using UDDI, WSDL standards, and continues
A crucial issue of the development of alliances in SOAP.
is the standardization of communication proto- The coordination of the business processes
cols. From the technical point of view, the dialog of several partners can be a complicated task.
between partners (peers) in a P2PIS can easily Optimal solution of the supervision of the stages
be fully automated, but the business agreements of business processes is a cornerstone of alliance
should be (and, due to business and legislative requirements specification. It is to some degree
reasons, usually are) controlled (supervised) true for confederations as well. The business
personally by representatives of the communi- processes are often developed using development
cating parties. tools like .NET or J2EE. There are discussions
The dialog is driven by a businessperson about what choice is the best (see the discussion
(initiator) searching for business partners. The on e-services in Communications of the ACM,
businessperson applies knowledge about the July 2003, pp. 24-69).
Architecture, Specification, and Design of Service-Oriented Systems
The main advantage of alliances is their flex- fore be understandable for users and experts in
ibility, generality, and standardized solutions. economy and even for lawyers, who should be
The disadvantage is the problems with efficiency, user-oriented. It is not clear whether messages
stability, the size of the used standards, and prob- in SOAP format can fulfill this requirement. It
lems with integration of legacy systems and third indicates that a proper message presentation tier
party products. enhancing communication legibility should be
A deeper problem is that SOAP is not too user available.
friendly as it is based on remote procedure calls
(RPC) close to programmers knowledge domain software confederations
(for example, object orientation) and not to the
user problem domains. It enlarges the problems E-Government: Confederation via
with requirements specification via WSDL and Integration
UDDI. UDDI is a centralized service. Central-
ized services are not good in p2p frameworks. We shall demonstrate some typical software con-
It is confirmed by the experiences with UDDI federation (SWC) related issues on the example
systems. SOAP, like object-oriented languages, of e-government. The engine of e-government
requires many method calls and, therefore, also state information system, SISis one of the
many messages during even very simple dialogs. largest software systems to be built in any country.
It causes efficiency problems, problems with pro- Let us now give the list of the most important
totyping and understanding the communication requirements on SIS:
by human beings.
The systems using RPC (for example, SOAP) SIS should service citizens, enterprises,
are better suited to the business operative than and state and municipal offices. SIS should
to business process analysis, usually based on a be able to communicate with information
common data tier. systems of private companies and/or (po-
Alliances are suited to operative tasks in the tentially) of citizens. To fulfill it, SIS must
global market. Important decisions should often have a complex subsystem (portal) providing
be, however, preceded by analysis of the market the interface for citizens. Such an interface
and the history of cooperation with a given partner. should be flexible in its functionality depend-
It implies user involvement, massive data analysis, ing on the rights/profiles of specific groups
and the tools specific for it. The tools often do not of citizens and/or state officers/clerks. There
fit into RPC/SOAP frameworks. should be one or more user interface gates
A very important advantage of alliances is that (portals) providing an integrated interface
communicating software parties can be in the making the internal structure of the system
framework of the SOAP/Web services developed invisible (transparent).
individually like programs serving, for example, SIS should support the collaboration of all
terminals. state offices and majorities. Examples are the
It can happen that a business case (process) collaboration during the investigation of car
fails for some reason. In this case, the reasons of robberies and/or document verification.
the failure and people responsible for it can be SIS should reflect the frequent changes in
detected via the analysis of the messages logged laws and in the structure of state administra-
during the corresponding business process. The tion.
analysis can be used as evidence at court. The SIS should use autonomous tools, often third-
messages stored in a log memory must there- party products for data filtering, mining, and
Architecture, Specification, and Design of Service-Oriented Systems
analyzing. It is likely that many new tools use of various turns known from the history of
will be added in the future. computing for specific tasks like data recon-
struction, data- or object-oriented design for the
As there are many systems used by individual development of peers.
offices, it is very difficult to rewrite them in time.
The existing system should therefore be integrated Manufacturing System: Decomposition
without any substantial change of its functions. and Integration
The systems must be easily integrated into SIS
without any substantial reconstruction. There Systems supporting e-government are the systems
is yet another, maybe substantially important, developed mainly via integration of existing
reason for these requirements. No office will systems, possibly equipped by appropriate gates
take any responsibility for a (sub)system if there and transformed so that they can work as services
is any doubt it works correctlythere must be (peers in a p2p system). Some SOSSs are, how-
the feeling of ownership of the (sub)system. It ever, developed from scratch via decomposition
can reduce the resistance of users and/or politi- of the system into services. Then the services,
cians caused by their apprehensions about their user interfaces, and middleware are developed
positions and power. and integrated. It is typical for (soft) real-time
As it is highly desirable that the IS of various systems, for example, in manufacturing. Such
offices should be at the local level (in a particular systems have shown many advantages of service
office), used without substantial changes (for ex- orientation.
ample, business as before). It usually implies that Figure 3 shows the interface of the manager of
the interfaces of constituent autonomous informa- a flexible manufacturing system producing parts
tion systems (autonomous components/services) of machine tools (Krl, 1995). The manufactur-
tend to be user knowledge domain oriented and ing of the parts is defined by linear sequences
coarse grained. We shall see that it offers sub- of manufacturing operations. A generalization
stantial software engineering advantages as well to more complex workflows (for example, as-
as many benefits for users. A properly specified sembling) is possible but the interface becomes
and designed software confederation increases the more complex. The workshop manager chooses
dynamics of the system structure and openness the central (actual) operation D.i, and the system
of the system. shows the previous and next operations in the
The conclusions can be illustrated on the fol- technological sequence D and in the workplace
lowing example. People responsible for SIS of queues. Note that the manager felt the interface as
the Czech Republic wanted to redevelop the SIS a support for the standard management activities
as a monolithic system from scratch. Practical that were familiar. The manager could add/modify
experiences induced them to accept that the SIS the technological sequence and rearrange the
must be a P2PIS. queues. The required data could also be filled
The number of peers in confederations is not by a scheduler from the enterprise level. If the
too large (compared with e-commerce) and the scheduler produced right data, no actions from
peers are known. The collection of peers (services) the manager were needed. We call such types of
does not vary too quickly. The communication business processes reconstruction (BPR) the soft
protocols between the peers can then be suited to one. It should be used as often as possible.
particular needs; they can be based on nonstan- The interface of the manager was data-ori-
dardized tools/solutions without any substantial entedgenerated from a database. Other parts
penalty (compare to Demetriades, 2003). It allows of the system communicated via commands (for
Architecture, Specification, and Design of Service-Oriented Systems
Architecture, Specification, and Design of Service-Oriented Systems
Figure 4. Three-tier service (encapsulated information system) with gate G and its communication
links
Partner-friendly communication
Application tier
UC System
interface 1
FEG
Old service
FEG middleware G Service
Service G interface
FEG
FEG
System
Service G UC interface 2
Our two examples show the main extreme situ- services. They should be intuitively similar to
ations in the confederation development. In e-gov- the boundaries of real world services.
ernment, the system is mainly built via integration A specific issue in confederations is that we
of existing systems. In this case, we can define the must often also apply attitudes/philosophies
interfaces only. In the case of manufacturing, the known from the software development history.
integration stage is preceded by decomposition. Middleware can be implemented via Internet or via
In this case, we must specify the boundaries of a common database with triggers. CORBA can be
Architecture, Specification, and Design of Service-Oriented Systems
used in some situations as well. All the attitudes outsourcing opportunities, reduction of number
must be in practice combined, depending on the of messages, integration of products of various
type of the functionality (for example, commands vendors, openness, and so forth).
on operational level and data analysis on manage-
ment level), so different philosophies can and must
be applied and combined in confederations. It HIsTorIcal TEcHNoloGIEs
increases the complexity of development. usEd IN sErvIcE-orIENTEd
sysTEms
Business Processes in Confederations
As mentioned above, it is not feasible to limit the
Business processes in confederations (BPC) must philosophy and the software architecture to one
be composed from stepsfunctions/actions of choice, so the crucial point of the requirements
peers offered by their interfaces. We have seen specification is what philosophy or combination
that business services must usually be supervised of philosophies is to be used. This issue is not
by usersthe owners of the processesor there addressed in existing CASE tools and only a
should be such a possibility. It is also necessary little by research. We shall attempt to find some
to offer users a tool to define business processes. criteria for the choice of philosophy using histori-
Both requirements imply that the languages cal knowledge.
understood by the gates should be based on user Due to an improper, too concise coding of date,
knowledge domain languages and notions. They almost all programs written in COBOL had to
should be user-oriented. be rewritten during the 1990s. It is known as the
The data defining business processes are best Y2K problem. It appeared that many enterprises
to store in system user interface (portals) and the used COBOL programs for years without having
business steps are supervised via a portal or by any COBOL programmer. Such programs had
a temporary service S controlling the particular to be very stable as they were used without any
process. An extreme solution is that there are no maintenance. Systems written in COBOL are like
business processes defining data. Business data SOSSs designed as virtual networks of COBOL
analysis (via, for example, OLAP) must be based applications. The communication between the
on a data-oriented view. In this case, the users applications is implemented via data stores/files.
(usually managers) must have a transparent ac- If input data stores of an application A are ready,
cess to data tiers of the components. It is a very A can be started and it works autonomously until
complicated problem (Lenzerini, 2001). input data stores are processed. Thanks to this
The notions and languages specifying the ac- property, COBOL systems can be developed
tions of components (for example, bookkeeping) incrementally provided that input data stores can
in a user-oriented way are remarkably stable. The be easily generated. Each application can be speci-
same can therefore hold for the languages of the fied as a data transformer and programmed and
component interfaces. It is then possible that the tested autonomously. It led to specific techniques.
interface of a component need not vary if the COBOL systems usually contained various input
component implementation varies. The stability filters, data format transformers, report genera-
of interfaces is important for the communica- tors, and so forth.
tion partners of the given component and for The ability of components to be developed
the stability of SOSSs. It has further substantial autonomously is the crucial qualitative property of
software engineering advantages (modifiability, the components of large systems. Batch COBOL
Architecture, Specification, and Design of Service-Oriented Systems
systems must often be combined with services an autonomous component (encapsulated legacy
of confederations. An example is massive data system) AC belongs to some department/divi-
reconstruction. sion (for example, its local information system),
Data-oriented systems (DOS) appeared after the department is satisfied with AC, and AC can
the success of modern database systems. It was provide all required information/services to other
common at that time that the main aim was collaborating autonomous components, then AC
to computerize operative levels of enterprises can and often should be integrated without any
(warehouses, bookkeeping, business data). Data substantial reconstruction. It reduces coding ef-
types were known and various known operations fort as substantial parts of the system are reused.
could be defined over the same data. Moreover, The people using AC feel that they still own it.
properly designed data structures can be used for It is well known that a feeling of ownership is
many other potential operations that is, the advantageous and often necessary.
data enabled many further operations not speci- Confederative architecture can support new
fied yet. It was and still is supported by the power requirement types raised by CEO, like the trans-
of SQL language. The data orientation must be formation of the enterprise organization structure
applied in confederations when the services are into a decentralized form, selective outsourcing of
intelligent, especially if management activities some parts of the information system, selling out
must be supported. Technically, it implies data some divisions/departments, integration of newly
analysis and presentation tools (Figure 3). There purchased firms/divisions, support for supply
are, however, problems with common database chain management, and forming various business
schema and data replication (Lenzerini, 2001). coordination groups (Krl & emlika, 2002).
Elements of DOS must be applied in subsystems
providing online/interactive data analysis (for front-End Gates
example, OLAP/ROLAP).
Requirements specifications of software confed-
erations must be based on the properties of the
ImplEmENTaTIoN IssuEs interfaces of autonomous services/components
(AC). The AC is used as black box, that is, its
Integration of legacy systems interface is known only to its partners. This is
very important, as interfaces, especially the user-
Technically, a legacy system LS is integrated into oriented ones, are usually more stable than the
the system via adding a gate G to LS. LS then implementations (Krl & emlika, 2003).
becomes an autonomous service AC (Figure 4). Interfaces should hide the implementation
G connects AC to a middleware. AC is also re- details and philosophy of autonomous services. If
constructed to be a permanent process if needed. we, however, need the gate G from Figure 5 to offer
The software confederation then has the structure an access to all functionality of the corresponding
from Figure 2. We will often say that AC is an component, the gate must usually disclose the main
autonomous component if we want to express its features of the implementation. So, under such a
implementation character. condition, the message formats of G must be, to
Although the choice of the p2p architecture some degree, implementation oriented. As such, it
seems to be a technical matter, it should be is not stable enough or optimal for some (usually
included into requirements specification as it many) partners of AC. We have seen that we can
substantially influences user properties of the use front-end gates (FEG) to solve the problem.
system and the structure of the specifications. If FEG is again an autonomous service (peer) with
Architecture, Specification, and Design of Service-Oriented Systems
the properties similar to user components. FEG 80% usefulness of the system consuming 20%
must usually be developed it is a white box. of effort only.
Front-end gates play several roles. They stabi-
lize and generalize the interfaces of components petri Nets
and make them partner-friendly. They can provide
several different interfaces of a given AC when FEG are based on specific tools and methods hav-
different groups of its partners need different ing common features with compiler construction
interfaces. Different FEGs can provide different and formal language translation. Methodologi-
security levels or different middleware services cally, they are similar to user interface services
for different partners. In some situations, one (portals). They can also play the role of message
FEG can provide a parallel access to more than routers. The time of execution of FEG is negli-
one application component. The condition is gible as there is no waiting on answers from users
that some application components offer similar and/or technologies. FEG can compose several
or complementary functions (for example, in a messages into one message and decompose one
lecture/test reservation system of a university, message into several messages. FEG is a solution
different application components may handle of the interoperability problem mentioned by Sch-
different faculties or subject groups). oder and Fischbach (2003). FEG can therefore be
FEG can direct messages to the components viewed as a generalization of places in Petri nets
that are less loaded at a given moment. Some ser- with colored tokens (Petersen, 1997). Tokens are
vices can be replicated. It enables load balancing messages, whereas application services behave
and distribution of services. As FEG is used as like processes in temporal colored Petri nets. It is
a white box, the properties of its input language open as to how to generalize Petri nets so that they
L and its output language L1 must be included enable a proper modeling (diagramming inclusive)
in the requirements specifications. It is similar and simulation of confederations. Petri nets de-
to the specification and design of user interface scribe, in some sense, atoms of communications
components (portals), compare Krl and emlika in networks of static structure. Workflows must
(2003), and to the generation of temporary services therefore be defined using some other tools. Petri
controlling individual business processes. The nets are used in manufacturing control systems
proper specification of gates and front-end gates (Vondrk et al., 2001). It again indicates links be-
substantially simplifies the system specification, tween software confederations and manufacturing
documentation, development, and maintenance. systems (and, generally, soft real-time systems).
FEG can be viewed as an enhancement of the Confederations are necessary but there is not
middleware services as the developers develop, enough experience with them among computer
in this case, rather the middleware than the ap- professionals at enterprise level.
plications (Figure 5, see Krl, 1999).
The interfaces of software services should mir- rEquIrEmENT spEcIfIcaTIoN
ror the interfaces of real-life services if possible. IssuEs
P2p systems enable the incremental development
strategy starting from the most useful services. The requirement specifications for confederations
The relation of the services to their real-life must often be oriented toward the use of existing
counterparts enables a reliable estimation of what systems and their interfaces. The specifications
services are the most useful ones. According to should take into account the properties of the inter-
Pareto 80-20 rule, it enables the achievement of faces and their dynamics. It appears that the people
Architecture, Specification, and Design of Service-Oriented Systems
with the experience with low-level process control The first SOSS have long ago manifested their
systems could today help a lot at the top-most tier advantages like easy prototyping, incremental
of enterprise systems now having confederative development, stability, and flexibility. The main-
architecture, as the confederative orientation is stream of software engineering has then not been
common for the soft real-time system developers. faced with the necessity to build confederations
They should therefore take part in requirements at enterprise level. There was no appropriate
specification of large software systems. technology and no strong need to leave the design
The requirements can now include the new viewing the system as one possibly distributed
system function types formulated by CEOs like logical unit containing no large black boxes.
enterprise decentralization, boundaries of divi- The situation has changed due to the progress
sions, various forms of in- and outsourcing, CRM, in hardware and software (Internet). SOSS became
purchase coalitions, and so forth. Many such technically feasible. At the same time, globaliza-
requirements are feasible only if the enterprise tion has generated the need for confederated global
information system is confederated and has an enterprises and, therefore, for SOSS.
appropriate structure. The top management should The services can be cloned and made movable
be aware about it, and the developers should know like software agents. It can simplify the design of
something about management and its needs. So, mobile systems. There are issues common with
there should be no high wall between developers grid systems.
and users (Krl & emlika, 2003). It contradicts the
recommendations from Recipe for Success by paradigm shift
Standish Group, available at www.standishgroup.
com. Note that agile programming proposes per- The construction of any system as a collection
manent contacts between developers and users. of services mirroring the structure of real-world
Software confederations offer the opportunity to services has substantial advantages:
use agile programming in the development of large
systems provided they are service-oriented. As the interfaces are user-oriented, the
Confederations are challenge and issues for system specification is simpler due to easier
CIO like the balance between centralized and involvement of users and a better structure
decentralized agreement of message formats. The of the specification. It simplifies the use of
concept of software confederations and e-com- the system by users, as they understand what
merce is a large challenge for software vendors the system offers. The users can then easily
and system integrators. They have to change their modify business processes.
business strategies. It supports preferable software engineering
properties like openness, maintainability,
modifiability, and so forth.
oTHEr IssuEs The services can be specified by their in-
terfaces. It opens the opportunity to apply
Software confederations can solve the problem agile programming (Beck et al., 2001) or
of Reorg Cycle (Armour, 2003) saying that the extreme programming (Beck, 1999) in large
enterprises are permanently reorganized. As projects.
during a lengthy reorganization, the conditions
on the market change and a new reorganization The decomposition of the activities into auton-
is necessary. SO is a solution, as it simplifies and omous services is a very important invention. It is
shortens the reorganization. likely that the use of human-like behaving services
Architecture, Specification, and Design of Service-Oriented Systems
in service-oriented systems brings the flexibility ture (MDA) (OMG, 2001a) are used there. SO is
and power known from human society. common for the lowest enterprise management
The main barrier of a wider application of (manufacturing) systems and should be common
service orientation in our sense is that SO is a new on the top management level (management of
paradigm for the majority of software develop- international enterprises), as well. The middle
ers. The acceptance and governance of SO will management (local factories) usually rely on OO
therefore be a long-term process (remember the methodology (compare Table 1).
case of object orientation). There is no general The format mismatch of enterprise applica-
agreement, even in the definition of the content of tion interface (EAI) can be resolved by front-end
service orientation (Barry and Associates, 2003). gates. Note that EAI is not primarily intended
Many antipatterns from Brown et al. (1998), like to support B2B (compare Pinkston, 2002). The
Islands of Automation, Function Decomposi- fact that manufacturing systems are service-ori-
tion, and so forth, need not be antipatterns in ented has important consequences. The middle
SOSS anymore. Other antipatterns like Lava management, usually managing the local units of
Flow are not dangerous. international enterprises, should not insist on the
The main attributes of good SOSSs are: (i) use of OO methods as a golden hammer applicable
system is designed as a peer-to-peer network of everywhere as it can lead to the application of OO
services; (ii) the peers mirror real-life services philosophy outside its applicability. The shift to
and have user-oriented interfaces; and (iii) it SOSS on the upper enterprise level is, however,
is preferable to have user performable service not easy as there is lack of SO experts. It is not
interfaces. optimal to involve here only the people from
middle management level. They are not service-
Information systems of oriented. It is difficult for them to convert their
manufacturing and Information object-oriented thinking into the service-oriented
systems of Global Enterprises one. The obstacle is their mental barrier. The nice
OO design patterns (Gamma et al., 1993) are, to
The automated manufacturing systems have the a high degree, useless in SOSS; OO people often
main features of software confederations; they have the feeling that the confederative philosophy
are (partly) service-oriented. SO has therefore is a step back. Such a barrier is exceptional for
been applied in manufacturing systems for many people having experience with systems including
years. Object orientation (OO) is common now at technological process control. The difficulty of
the enterprise level. OO CASE systems based on the acceptance of SO thinking could be for OO
UML (OMG, 2001b) and model-driven architec- people even more difficult than the conversion
0
Architecture, Specification, and Design of Service-Oriented Systems
from structural thinking to OO thinking (com- are no good modeling tools for SOSS. The main
pare Nelson, Armstrong & Ghods, 2002) several obstacle here, however, is the inability or unwill-
decades ago. ingness of many developers to apply SO. It is the
consequence of the fact that it is as any paradigm
shift: a long-term process. Solution can be in the
coNclusIoN engagement of people already having the service-
oriented feeling, for example, of the developers
Important functions, especially the functions of soft real-time systems.
supporting CEO activities, depend on application SO changes the tasks of IT management that
of service orientation. It implies that the system should facilitate the agreements of the details of
must have a proper architecture as a p2p network system architecture. IT management can be less
of autonomous services having user-oriented dependent on software vendors as it now has a
interface, system user interface services, and greater freedom of what to buy from whom and
eventually, some newly developed infrastructure what to develop to achieve a competitive advan-
services (FEG). The SO philosophy therefore tage. Good software engineering properties of
influences requirements specification more sub- SOSS simplify many tasks of IT management
stantially than other philosophies. This issue is (selective outsourcing, development process
not understood enough. Architectures are very control, modifications and maintenance, and so
difficult to change. They must therefore be chosen forth). SO requires changes of marketing strate-
early during the requirements specifications. Vice gies and methods of software vendors and system
versa, the requirements must reflect the properties integrators.
of the architecture. SOSS developers must often apply data- and
User-oriented interfaces of services simplify object-oriented techniques and even integrate
the collaboration between users and developers, batch applications. The developers must be able to
enable the development, exploiting the possibility understand and use the knowledge of users from
that services can be simulated via user interface all the levels of organization hierarchy. It is not
services (portals). It simplifies the design of busi- easy, and it should be taken into account in the
ness processes and enhances the software engi- education of software experts, usually too proud
neering properties of the system. Good interfaces of their narrow and detailed computer-oriented
can easily be designed if the services mirror the knowledge.
real-life services. SO is a philosophy influencing the whole
The user-oriented interfaces can serve as a software industry and practice. It promises to
specification of the services. It is achievable only open the way to the software of the quality known
if the collaboration between users and developers from the other branches of industry (no Warranty
should be tight, and the developers should be able Disclaimer).
to understand user knowledge domains. It must be
trained. The user-oriented interfaces enable the
use of different implementation technologies in acKNoWlEdGmENT
different services and the agile forms of develop-
ment in large projects. This work has been supported by Czech Sci-
Properly chosen system architecture influences ence Foundation by grants No. 201/02/1456 and
and often determines the tools and processes of 201/04/1102.
the system development. An issue is that there
Architecture, Specification, and Design of Service-Oriented Systems
Architecture, Specification, and Design of Service-Oriented Systems
OMG. (2001b). Unified Modeling Language. Vondrk, I., Kruel, M., Matouek, P., Szturc, R., &
Retrieved August 15, 2004, from www.omg.org/ Bene, M. (2001). From business process modeling
technology /documents/formal/uml.htm to workflow management. In M. Bielikov (Ed.),
DATAKON 2001 (pp. 241-248). Brno.
Peterson, J. L. (1997). Petri nets. ACM Computing
Surveys, 9(3), 223-251. W3C. (2001). Web service definition language. A
proposal of W3 Consortium. Retrieved August 15,
Pinkston, J. (2002). The ins and outs of integra-
2004, from http://www.w3.org/TR/wsdl
tion, how EAI differs from B2B integration. e-I
Journal, 48-52. W3C. (2002). Web services activity. Retrieved
August 15, 2004, from http://www.w3.org/2002/
Rowe, D. (2002). E-government motives and or-
ws/
ganizational framework. In J. Pour, & J. Voek
(Eds.), Systems integration 2002, Conference Yourdon, E. (1988). Modern structured analysis
presentations (pp. 93-99). Prague University of (2nd ed.). Prentice Hall.
Economics, Prague, Czech Republic.
Rumbaugh, J., Blaha, M., Premerlani, W., Eddy,
F., & Lorensen, W. (1991). Object-oriented model- ENdNoTEs
ing and design. Englewood Cliffs, NJ: Prentice
Hall. 1
Other solutions are not feasible for techni-
cal as well as for practical reasons (Krl &
Schoder, D., & Fischbach, K. (2003). Peer-to-
emlika, 2001, 2003; Rowe, 2002).
peer prospects. Communications of the ACM,
46, 27-29.
This work was previously published in Service-Oriented Software System Engineering: Challenges and Practices, edited by
Z. Stojanovic and A. Dahanayake, pp. 182-200, copyright 2005 by IGI Publishing, formerly known as Idea Group Publishing
(an imprint of IGI Global).
Chapter V
Data Integration Through
Service-Based Mediation for
Web-Enabled Information
Systems
Yaoling Zhu
Dublin City University, Ireland
Claus Pahl
Dublin City University, Ireland
aBsTracT
The Web and its underlying platform technologies have often been used to integrate existing software
and information systems. Traditional techniques for data representation and transformations between
documents are not sufficient to support a flexible and maintainable data integration solution that meets
the requirements of modern complex Web-enabled software and information systems. The difficulty
arises from the high degree of complexity of data structures, for example in business and technology
applications, and from the constant change of data and its representation. In the Web context, where the
Web platform is used to integrate different organisations or software systems, additionally the problem
of heterogeneity arises. We introduce a specific data integration solution for Web applications such as
Web-enabled information systems. Our contribution is an integration technology framework for Web-
enabled information systems comprising, firstly, a data integration technique based on the declarative
specification of transformation rules and the construction of connectors that handle the integration
and, secondly, a mediator architecture based on information services and the constructed connectors
to handle the integration process.
Copyright 2008, IGI Global, distributing in print or electronic forms without written permission of IGI Global is prohibited.
Data Integration Through Service-Based Mediation for Web-Enabled Information Systems
Data Integration Through Service-Based Mediation for Web-Enabled Information Systems
Data Integration Through Service-Based Mediation for Web-Enabled Information Systems
Figure 1. Example of data integration in adaptive service architecturestwo data schemas that
need to be transformed into one another
transformation
between views
change; therefore, the programs for building up the data Integration principles
connectors that facilitate the connection between
integrated Web services and data service providers Information integration is the problem of com-
need to be adjusted or rewritten. As with schema bining heterogeneous data residing at different
integration, the schema-mapping task cannot be sources, and providing the user with a unified
fully automated since the syntactic representation view (Lenzerini, 2002). This view is central in
of schemas and data do not completely convey the any attempt to adapt services and their underlying
semantics of different data sources. As a result, data sources to specific client and provider needs.
for both schema mapping and schema integration, One of the main tasks in information integration
we must rely on an outside source to provide some is to define the mappings between the individual
information about how different schemas (and data sources and the unified view of these sources
data) correspond. For instance, a customer can and vice versa to enable this required adaptation,
be identified in the configuration management as the example in Figure 1 illustrates. The data
repository by a unique customer identifier; or, the integration itself is defined using transformation
same customer may be identified in the problem languages.
management repository by a combination of a There are two major architectural approaches
service support identifier and its geographical to the data integration problem that provide the
location. In this case, a transformation might be infrastructure for the execution of transformations
necessary; see Fig. 1 for a visualisation of the (Widom, 1995).
customer identifier example.
Data warehousing is an eager or in-advance
approach that gathers data from the appropri-
Data Integration Through Service-Based Mediation for Web-Enabled Information Systems
ate data sources to populate the entities in the to merge several source XML documents into
global view. A data warehousing approach one document before it can be transformed into
to integration is suitable for data consumers another document according to an over-arching
wanting to access to local copies of data so general schema.
that it can be modified and calculated to
suite the business needs by nature.
In contrast, the mediated approach extracts a dEclaraTIvE daTa
only data from export schemas in advance. INTEGraTIoN aNd
A mediated approach to integration is suit- TraNsformaTIoN TEcHNIquE
able for information that changes rapidly, for
service environments that change, for clients A declarative, rules-based approach can be applied
in need tailored data, for queries that operate into the data transformation problem (Orriens et
over large amounts of data from numerous al., 2003). A study by Peltier et al. (2001) introduces
information sources, and most importantly, the MTRANS language that is placed on top of
for clients with the need of the most recent XSLT to describe data model transformations.
state of data. XSLT is generated from an MTrans specification.
The transformation rules are expressed in the
xslT shortcomings form of MTrans and then parsed using a genera-
tor. Peltier et al. argue that the data transforma-
XSLT is the most widely used language for XML tion rules are best expressed declaratively at the
data integration, but these XSLT transformations abstract model level rather than at the concrete
are difficult to write and maintain for large-scale operational level in order to reduce the complexity
information integration. It is difficult to separate of the transformation rules.
the source and target parts of the rules as well as A data integration engine for the Web services
the filtering constraints. The verbosity of XML context can be built in the Web service business
makes manual specifications of data and transfor- process execution language WS-BPEL, which is
mations difficult in any case. With this difficulty another example of the benefits of abstraction in
in mind, we propose a declarative query and transformation and integration. A common over-
transformation approach yielding more expressive arching information model governs what types
power and the ability to automatically generate of services are involved in the composition. In
query programs as connectors to improve the (Rosenberg & Dustdar, 2005), a business rule
development of services-based data integration engine-based approach has been introduced to
in Web-based information systems. separate the business logic from the executable
XSLT does work well in terms of transforming WS-BPEL process.
data output from one Web service to another in an These two examples illustrate current work
ad hoc manner. XSLT code is, however, difficult in this context. Now, a detailed discussion shall
to write and almost impossible to reuse in a large elicit the specific requirements for service-based
enterprise integration solution. The syntactical information integration.
integration of the query part and construction
part of a XSLT transformation program is hard requirements for mediated
to read and often new programs are needed even Integration
when a small portion of the data representation
changes. XSLT does not support the join of The flexibility of the architecture in which infor-
XML documents. We would in our context need mation integration is to be realised is essential
Data Integration Through Service-Based Mediation for Web-Enabled Information Systems
in order to separate the business logic from the and reduction (to express transformation
rest of the application logic. Therefore, the data rules that exclude parts of the data from the
transformation rules are best expressed at an result).
abstract business model level. These rules, stored Compositionality is an essential feature for
in a repository, can be used to dynamically create an XML query and transformation language
XSLT-based transformations using a connector to support query composition.
or integration service as the mediator. These
integration services are the cornerstones of a A rule-based, declarative language enables
mediator architecture that processes composite developers to concentrate on the integration
client queries that possibly involve different data logic rather than on implementation details and
sources provided by different Web services. We enables the required compositionality and expres-
start our investigation by discussing the proper- siveness.
ties of suitable integration and transformation Most XML and semi-structured data query
languages. languages have been proposed to extract XML
XML data might be provided without ac- data from the XML databases or the Web. A
companying schema and sometimes is not well- comparative analysis of existing languages has
formed; XML data often contains nested struc- been done by Reynaud et al. (2001). A language is
tures. Therefore, transformation techniques need generally designed to suit the needs for a limited
more expressive power than traditional database application domain such as database querying or
languages such as relational algebra or SQL. The data integration; some languages are designated
characteristics of an XML query language have only for semi-structured data that predated the
been studied extensively (Jhingran et al., 2002; XML-format. A query language should be able
Lenzerini, 2002; Peltier et al., 2002). However, to query data sources using complex predicates,
these investigations often focus on the features to joins, and even document restructuring. We add
query an XML or semi-structured data repository the following criteria specifically for the context
in the spirit of database query languages rather of Web-based data integration:
than constructing a new XML document in the
context of the data integration. The following Join: The language must support joins of
principles, which are inspired by the data integra- multiple XML data sources. A join condi-
tion literature such as (Lenzerini, 2002), aim to tion is necessary to compare attributes or
provide a comprehensive requirements list. elements in any number of XML documents.
In data integration systems, data is most
The language should support both querying likely to come from more than one source.
and restructuring XML Data. Data model: The queries and their answers
The language must enable the generation of are the instances of a data model. Sometimes,
query programs by other programs. a rich data model is needed to support the
The language should be capable of express- functionality of some query languages. The
ing the following operations in addition to underlying framework plays a major role
the ones existing in database languages (such in determining a data model for a query
as projection, selection, and joins): restruc- language.
turing (constructing a new set of element Incomplete query specification: XML
instances based on variable bindings and and semi-structured data is not as rigid as
the global schema); combination (merging relational data in term of schema defini-
two or more element instances into one); tions and data structure. Therefore, it is
Data Integration Through Service-Based Mediation for Web-Enabled Information Systems
important that a query language is capable UnQL (the unstructured query language) is
of expressing queries in incomplete form, a query language originally developed for
such as by using wildcard and regular ex- querying semi-structured data and nested
pressionsalso called partially-specified relational databases with cyclic structures.
path expressions. It has later been adapted to query XML
Halt on cyclic query terms: If a language documents and data. Its syntax uses query
supports querying with incomplete query patterns and construction patterns and a
specification by wildcard and regular expres- query consists of a single select or traverse
sion, it might cause termination problems. rule that separates construction from query-
Therefore, features to detect cyclic condi- ing. Queries may be nested, in which case
tions are required. the separation of querying and construc-
Building new elements: The ability to con- tion is abandoned. UnQL was one of the
struct a new node added to the answering tree first languages to propose a pattern-based
is an important feature for data integration querying (albeit with subqueries instead of
systems. rule chaining).
Grouping: Grouping XML nodes together XML-QL uses query patterns and path
by some conditions by querying the distinct expressions to select data from XML
values is another important feature in data sources. These patterns can be augmented
integration. Some languages use nested by variables for selecting data. XML-QL
queries to perform grouping operations; in uses query patterns containing multiple
contrast, some more powerful languages variables that may select several data items
have built-in constructors. at a time instead of path selections that may
Nested queries: Nested queries are common only select one data item at a time. Further-
in relational database languages for joining more, variables are similar to the variables
different data elements by their values. In of logic programming, that is, joins can be
logic-based languages, the construction part evaluated over variable name equality. Since
and the selection part are separated. XML-QL does not allow one to use more
Query reduction: Query reduction allows than one separate rule, it is often necessary
users to specify what part of the elements to employ subqueries to perform complex
or what nodes in the query conditions will queries.
be removed from the resulting XML tree.
The shortcomings of these widely known and
A number of potential candidates shall briefly used languages in the context of the given require-
be discussed in the context of these require- ments and the language comparisons have led
ments: us to choose a fully declarative language called
Xcerpt (Bry & Schaffert, 2002) that satisfies all
XQuery is a W3C-suppported query lan- criteria that we have listed earlier on. However,
guage that aims at XML-based database other recently developed and well-supported trans-
systems. XQuery is an extension of XPath formation languages such as ATL and QVT are
2.0 adding functionalities needed by a full similarly suitable candidates. While QVT satisfies
query language. The most notable of these the criteria, it is currently not as well supported
functionalities are support of sequences, through tools and accessible tutorial material.
the construction of nodes and variables, and Xcerpt is a query language designed for query-
user-defined functions. ing and transforming both data on the standard
0
Data Integration Through Service-Based Mediation for Web-Enabled Information Systems
Web (e.g., XML and HTML data) and data on the variables in the query pattern against underlying
Semantic Web (e.g., RDF data). Xcerpt not only XML termssimilar to UnQL, but strict unifica-
allows one to construct answers in the same data tion is used in UnQL.
formats as the data queries like XQuery, but also
allows further processing of the data generated declarative Transformation rules
by this same query program. One of the design
principles is to strictly separate the matching part We have adapted Xcerpt to support the construc-
and the construction part in a query. Xcerpt follows tion of the service connectors, which is our central
a pattern-based approach to querying the XML objective:
data. A similar approach has been proposed in the
languages UnQL and XML-QL. However, Xcerpt From the technical point of view, in order
has extended the pattern-based approach in the to promote code reuse, the individual in-
following aspects. Firstly, the query patterns can tegration rules should not be designed to
be specified by incomplete query specifications perform the transformation tasks alone.
in three dimensions. Incomplete query specifica- The composition of rules and rule chaining
tions can be represented in depth, which allows demand the query part of service connector
XML data to be selected at any arbitrary depth to be built ahead of the construction part of
in breadth, which allows querying neighbouring the service connector.
nodes by using wildcards, and in order. Incomplete From the business point of view, the data
query specifications allow the pattern specifica- presentation of the global data model
tions to be specified in a more flexible manner but changes as element names change or ele-
without losing accuracy. Secondly, the simulation ments are being removed. These should not
unification computes answer substitutions for the affect the query and integration part of the
Figure. 2. Declarative query and transformation specification of customer array element in Xcerpt
CONSTRUCT
CustomerArray [
all Customer[
nameAsContracted[var Name],
companyId[var CompanyId],
serviceOrganizationIdentifier[var OrgId],
all supportidentifier[
CustomerSupportIdentifier [var Code],
ISOCountryCode [var CSI]
]
]
]
FROM
arrayOfCustomer[[
item [[
orgName[var Name],
companyId[var CompanyId],
gcdbOrgId [var OrgId],
countryCode[var Code],
csiNumber[var CSI]
]]
]]
Data Integration Through Service-Based Mediation for Web-Enabled Information Systems
logic. Only an additional construction part way down to the ground rules. In addition to the
is needed to enable versioning of the global original Xcerpt approach, we propose a media-
data model. tor-based data integration architecture where the
Xcerpt-based connectors are integrated with the
Grouping and incomplete query specifications client and provider Web services. WS-BPEL code
turn out to be essential features. is generated by a transformation generator within
Xcerpt is a document-centric language the mediator service (see Figure 4 below, which
which is designed to query and transform XML is explained in a separate section).
and semi-structured documents. Therefore, the
ground rules, which read data from the docu- Implementation of connector
ment resources, are tied with at least one resource construction
identifier. This is a bottom up approach in terms
of data population because the data are assigned The construction of Xcerpt-based connectors,
from the bottom level of the rules upward until which specify integration through declarative
the rule application reaches the ultimate goal of rules, can be automated using rule chaining.
a complex, hierarchically structured rule. These Ground rules are responsible for querying data
rules are defined through an integration goal at from individual Web services. Intermediate
the top level and structured into sub-rules down composite rules are responsible for integrating
to ground rules, which address individual data the ground rules to render data types that are
elements. described in global schemas. The composite rules
Figure 2 shows a transformation example are responsible for rendering the data objects
for a customer array based on Figure 1. Figure described in the interfaces of the mediator Web
1 is a graphical illustration of XML-based data services based on demand. Therefore, exported
structures. The upper structure provides the data data from a mediator service is the goal of the
schema of the input document; the lower structure corresponding connector (i.e., a query program);
is the target data schema that a transformation see Figure 3. Figure 1 defines again the respective
needs to map onto. The graphical representation input and output data schemas. The CONSTRUCT
allows us to avoid the verbosity of XML-based data .. FROM clauses in Figure 3 define the individual
representations for this investigation. An output rules. Here, information from ArrayOfCus-
customer in CustomerArray is constructed based tomers and Customers is selected to construct
on the elements of an item in an arrayOfCustomer the SupportIdentifier.
by using a pattern matching approach, identifying We apply backward goal-based rule chaining
relevant attributes in the source and referring to in this adapted implementation to execute com-
them in the constructed output through variables. plex queries based on composite rules. Figure 3
For instance, the Name variable is used to declare shows an example of this pattern matching-based
nameAsContracted and OrgName as semantically approach that separates a possibly partial query
equal elements in both representations that are based on resource and construction parts. This
syntactically different. transformation rule maps the supportIdentifier
This original Xcerpt approach is unfortunately element of the customer example from Figure 1.
not feasible in an information integration solu- Figure 3 is a composite rule based on the Sup-
tion because the resource identifiers can not be portIdentifier construction rule at a lower level.
hard coded in the ground rules in our setting. A These rules are saved in a repository. When
wrapper mechanism has been developed to pass needed, a rule will be picked and the backward rule
the resource identifiers from the goal level all the chaining enables data objects to be populated to
Data Integration Through Service-Based Mediation for Web-Enabled Information Systems
answer transformation requests. This architecture tion architecture uses Web services to enable the
will be detailed in the subsequent section. provision of data on demand whilst keeping the
underlying data sources autonomous.
There is consequently a need for mediators
mEdIaTor arcHITEcTurE in an architecture that harmonise and present
the information available in heterogeneous data
motivation sources (Stern & Davies, 2003). This harmonisa-
tion comes in the form of identification of semantic
Zhu et al. (2004) argue that traditional data in- similarities in data while masking their syntactic
tegration approaches such as federated schema differences; see Figure 1. Relevant and related
systems and data warehouses fail to meet the data is then integrated and presented to a higher
requirements of constantly changing and adap- layer of applications. The sourcing, integration,
tive environments. We propose, based on (Haller and presentation of information can be seen as
et al., 2005; Sheth & Larson, 1990; Wiederhold, logically separated mediator rules for integra-
1992; Zhu et al., 2004), a service-oriented data tion, implemented by mediator services, which
integration architecture to provide a unified view shall form the basis for the presented mediator
of data on demand from various data sources. A architecture.
service-oriented data integration architecture is Garcia-Molina et al. (1997) identify that the
different from business process integration as the following requirements are essential in order to
latter is concerned with integrating the business build a mediator architecture. Firstly, it must be
process rather than data. The proposed integra- based on a common data model that is more flexible
Data Integration Through Service-Based Mediation for Web-Enabled Information Systems
than the models commonly used for the database Schema repository: Each object within
management systems. Secondly, it must be sup- the model is a logical representation of the
ported by a common query language. Finally, entity and will often be populated with data
there must be a tool to make the creation of new sourced from more than one repository.
mediators and mediator systems more cost-effec- The advantage of having a unified view of
tive than building them from scratch. data is to make sure that the customers will
have a consistent view of data and to avoid
Architecture Definition duplication.
Information services: These provide source
The mediator architecture transforms local XML data retrieved from the underling data
documents into documents based on a global repositories to clients and other services.
schema. Figure 4 illustrates this architecture with The signature of the Web service interfaces
a few sample information servicesCustomer such as input parameters and data output
Data, E-business System, Request Logging and is agreed in advance by business domain
Analysis Servicethat a client might access. The experts from both client and provider sides.
data integration engine is built based on a com- The benefit of asking the data sources to
position of individual services using WS-BPEL, provide a Web service interface is to delegate
where component invocation orders are predefined the responsibility and cut down the effort
in the integration schemas. These service orches- spent on developing data access code and
trations are defined by specifying the order in understanding the business logic.
which operations should be invoked. Data integration and mediation services:
The proposed Web services-based mediator A common data model can be implemented
architecture, Figure 4, contains the following as an XML schema. Two basic approaches
components: have been proposed for the mappings
between the export schemas and the feder-
Figure 4. Mediator architecture for adaptive service-based information systems with sample informa-
tion services
Data Integration Through Service-Based Mediation for Web-Enabled Information Systems
ated schema called global-as-view and provider. Within the composite mediator service,
local-as-view in (Lenzerini, 2002). The both transformation and connector generation ser-
former approach defines the entities in the vices are separated, and only loosely coupled.
global data model as views over the export
schemas whereas the latter approach defines developer activities
the export schemas as views over the global
data model. In this work, a data integration The architecture in Figure 4 explains the runtime
service will be treated as a mediator in the view from the client and user perspective. In order
mediator architecture. We introduce a novel to complete the picture, the development perspec-
approach to ease and improve the develop- tive shall also be addressed. Figure 5 illustrates
ment of the mediators. There are two quite development activities, looking at the develop-
different styles of transformation: proce- ers of architecture, rules, and servicesand
dural, with explicit source model traversal their respective activities. A number of actors
and target object creation and update; and including service provider engineers, application
declarative, with implicit source model software engineers, integration business analysts,
traversal and implicit target object creation. integration software architects, and integration
Therefore, an approach based on a declara- software engineers are distinguished. These are
tive rule mark up language to express the associated with the activities they are involved
data transformation rules and a rule engine in. In particular, the integration team is involved
have been chosen. The mapping should be with Xcerpt-based rule definition and application.
conducted at the abstract syntax mappings Activities are also related among themselves. The
level, leaving the rendering of the result participation of different roles from possibly dif-
to a separate step at runtime to the BPEL ferent organisations (application customer, service
engine. provider, integration team) demonstrates the need
Query component: The query service is for common understanding and maintainability of
designed to handle inbound requests from the integration problem, which can be achieved
the application consumer side. The applica- through abstract and declarative rule specifica-
tion developers build their applications and tions (here in Xcerpt format), shared by service
processes around common objects and make provider developers, integration business analysts,
successive calls to the mediated Web ser- and integration software developers.
vices. Therefore, the interfaces of individual
Web service providers are transparent to the
application customers; they may send any applIcaTIoN scENarIo aNd
combinations of the input parameters to the dIscussIoN
query service. In order to facilitate these
unpredicted needs, the query service has The presented data integration technique and the
to decompose the input messages into a set mediated architecture are complemented by an
of pre-defined WS-BPEL flows. Normally a incremental, evolutionary process model. Some
BPEL flow belongs to a mediator that deliv- pragmatic aspects of this process shall now be ad-
ers a single common object. Occasionally, dressed. In the proposed architecture, the unified
two or more mediators need to be bundled data model (over-arching schema) is maintained
together to deliver a single object. manually. The schema for large enterprise integra-
tion solutions might consist of a large number of
Each of the components can in principle be data aspects. From the development point of view,
offered as a service by a (potentially different) it is only reasonable to deliver the data integration
Data Integration Through Service-Based Mediation for Web-Enabled Information Systems
services on a phased basis such as one data aspect of source to destination model mapping, the users
for one release cycle. A mediator consists of the intervention is needed to select one from more
following components: the individual provided than one set of mappings that are generated. In
Web services; a WS-BPEL workflow; and one or our proposed architecture, the service connectors
more service connectors, as illustrated in Figure can be generated on the fly by rule composition.
4. Mediators in our solution are used to deliver The sacrifice is that semantic similarity is not
these data aspects according to the unified schema. taken into consideration.
This schema is available to the customers so that The data integration rules are created at the
these can decide which mediator to call based on higher level than the Xcerpt ground query pro-
the definition of the unified schema. grams themselves, as the following schematic
The focus of this investigation is not on the example demonstrates (Figure 3 shows an example
automatic composition of Web services, rather on of a composite rule like A below).
how the data output from multiple Web services
can be automatically integrated according to a Rule A: A(a, b) := B(a, b), C(b)
global data model and sent back to users. There- Rule B: B(a ,b) := D(a), E(b)
fore, in terms of the WS-BPEL process flow, a Rule C: C(b) := E(b), F(b)
static approach with respect to the orchestration of
the involved Web services can be taken. These can Each of the above rules would be implemented
be orchestrated together in form of a WS-BPEL in the Xcerpt language. In this example, rule
flow built in advance. A is a composite rule, based on B and C. This
During the development phase, the mappings could be used to answer a users query directly,
between the global model and the local models but internally referring to subordinated rules
will be expressed at the abstract model level, for dealing with the extraction and transformation
instance in the widely used MOF (meta object of specific data aspects. The resource identifiers
facility) framework for modelling language defi- in form of variables and the interfaces for the
nition. Model transformation between different data representation such as version number of
metamodels can then be automatically carried out. the unified data model will be supplied to the
The inputs are the source XML schema defini- transformation generator. The rule mappings in
tions and the transformation rules. The output is the transformation generator serve as an index to
an XSLT transformation file. find the correct Xcerpt queries for execution. As
In the proposed process model illustrated in a result, a query program including both query
Figure 5, the unified data model and the creation of part and construction part is being executed to
rules are the responsibility of the business solution generate the XML output, which is sent back to
analysts, not necessarily the software architect. the transformation generator.
The rules are merely mappings from the elements In terms of examples, we have so far only
exposed by Web service providers to the elements addressed complex transformations based on
in the unified data model. We assume here that compositional rules within data provided by one
the semantic similarity is determined manually. Web servicethe customer information service.
In the literature on data model transformation, Queries could of course demand to integrate data
the automation of the mapping is often limited to from different services. For instance, to retrieve all
transforming the source model and the destination services requests by a particular customer would
model rather than integrating more than one data target two services, based on several composite
model into a unified data model. Even in the case integration and transformation rules.
Data Integration Through Service-Based Mediation for Web-Enabled Information Systems
Data Integration Through Service-Based Mediation for Web-Enabled Information Systems
ontology-based domain and service models, can success of the service-based information systems
provide input for some planned extensions in this architecture from the deployment point of view.
direction (Haller et al., 2005).
Re-engineering and the integration of legacy
systems is another aspect that we have not ad- rEfErENcEs
dressed. The introduction of data transforma-
tion techniques for reengineering activities can Alonso, G., Casati, F., Kuno, H. & Machiraju, V.
improve the process of re-engineering legacy (2004). Web servicesConcepts, architectures
systems and adopting service-oriented archi- and applications. Springer Verlag.
tecture to manage the information technology
BPEL Coalition (2006). Business process execu-
services (Zhang & Yang, 2004). Business rules
tion language for Web services version 1.1. Re-
often change rapidly, requiring the integration of
trieved on April 14, 2008 from http://www.ibm.
legacy systems to deliver a new service. How to
com/developerworks/library/ws-bpel/
handle the information integration in the context
of service management has not yet been exploited Bry, F. & Schaffert, S. (2002). Towards a declara-
in sufficient detail in the context of transformation tive query and transformation language for XML
and re-engineering. and semistructured data: Simulation unification.
In Proceedings Intl. Conference on Logic Pro-
gramming. LNCS 2401, Springer-Verlag.
coNclusIoN
Crnkovic, I. & Larsson, M. (2000). A case study:
Demands on component-based development. In
The benefit of information systems on demand
Proceedings of the 2nd International Confer-
must be supported by corresponding information
ence on Software Engineering, (pp. 23-31). ACM
service management systems. Many application
Press.
service providers are currently modifying their
technical infrastructures to manage information Garcia-Molina, H., Papakonstantinou, Y., Quass,
using a Web services-based approach. However, D., Rajaraman, A., Sagiv, Y., Ullman, Y. D., Vas-
how to handle information integration in the salos, V. & Widom, J. (1997). The TSIMMIS ap-
context of service-based information systems has proach to mediation: Data models and languages.
not yet been fully exploited. Journal of Intelligent Information Systems, 8(2),
The presented framework utilises information 117-132.
integration technologies for service-oriented soft-
Haller, A., Cimpian, E., Mocan, A., Oren, E. &
ware architectures. The crucial solutions for the
Bussler, C. (2005). WSMX - A semantic service-
information integration problem are drawn from
oriented architecture. In Proceedings of the Iner-
mediated architectures and data model transfor-
national Conference on Web Services ICWS05.
mation, allowing the data from local schemas to
be transformed, merged, and adapted according Jhingran, A.D., Mattos, D. & Pirahesh, N.H.
to declarative, rule-based integration schemas for (2002). Information integration: A research
dynamic and heterogeneous environments. We agenda. IBM System Journal 41(4), special issue
have proposed a declarative style of transforma- on information integration. [Electronic version]
tion, with implicit source model traversal and Retrieved on April 14, 2008 from www.research.
implicit target object creation. The development ibm.com/journal/sj/414/jhingran.pdf
of a flexible mediator service is crucial for the
Lenzerini, M. (2002). Data integration: A theoreti-
cal perspective. In Proceedings of the Principles
Data Integration Through Service-Based Mediation for Web-Enabled Information Systems
of Database Systems Conference PODS02, (pp. Stern, A & Davis, J. (2003). A taxonomy of infor-
233-246). ACM. mation technology services: Web services as IT
services. In Proceedings of the First International
Orriens, B., Yang, J. & Papazoglou, M. (2003). A
Conference on Service Oriented Computing.
framework for business rule driven Web service
composition. In M. A. Jeusfeld & O. Pastor, (Eds). Stern, A. & Davis, J. (2004). Extending the Web
Proceedings of the ER2003 Workshops, LNCS services model to IT services. In Proceedings
2814, (pp. 52-64). Springer-Verlag. of the IEEE International Conference on Web
Services, (pp. 824-825).
Peltier, M., Bezivin, J & Guillaume, G. (2001).
MTRANS: A general framework, based on Szyperski, C. (2002). Component software:
XSLT, for model transformations. In Proceedings Beyond object-oriented programming, 2nd Ed.
of the Workshop on Transformations in UML Addison-Wesley.
WTUML01.
Widom, J. (1995). Research problems in data
Peltier, M., Ziserman, F. & Bezivin. (2002). On warehousing. In Proceedings of the 4th Interna-
levels of model transformation. In Proceedings tional Conference on Information and Knowledge
of the XML Europe Conference (pp. 1-17). Paris, Management.
France: Graphic Communications Association.
Wiederhold, G. (1992). Mediators in the archi-
Reynaud, C., Sirot, J. P. & Vodislav, D. (2001). tecture of future information systems. IEEE
Semantic integration of XML heterogeneous data Computer, 25. March, 38-49.
sources. In Proceedings of the IDEAS Conference
Willcocks, L. P. & Lacity, M. C. (1998). The sourc-
(pp. 199-208).
ing and outsourcing of IS: Shock of the new? In
Rosenberg, F. & Dustdar, S. (2005). Business L. P. Willcocks & M. C. Lacity (Eds.) Strategic
rules integration in BPEL - A service-oriented sourcing of information technology: Perspectives
approach. In Proceedings of the 7th International and practices. Wiley.
IEEE Conference on E-Commerce Technology.
Zhang, Z. & Yang, H. (2004). Incubating services
Sheth A. P. & Larson J. A. (1990). Federated in legacy systems for architectural migration. In
database systems for managing distributed, het- Proceedings of the 11th Asia-Pacific Software
erogeneous, and autonomous databases. ACM Engineering Conference (APSEC04) (pp. 196-
Computing Surveys, 22(3), 183. 203).
Seltsikas, P. & Currie, W.L. (2002). Evaluating Zhu, F., Turner, M., Kotsiopoulos, I., Bennett, K.,
the application service provider (ASP) business Russell, M., Budgen, D., Brereton, P., Keane, J.,
model: The challenge of integration. In Proceed- Layzell, P., Rigby, M. & Xu, J. (2004). Dynamic
ings of the 35th Annual Hawaii International Data Integration Using Web Services. In Pro-
Conference, (pp. 2801-2809). ceedings 2nd International Conference on Web
Services (ICWS04).
00
Chapter VI
Using Patterns for Engineering
High-Quality Web Applications
Pankaj Kamthan
Concordia University, Canada
aBsTracT
In this chapter, we view the development and maintenance of Web applications from an engineering per-
spective. A methodology, termed as POWEM, for deploying patterns as means for improving the quality
of Web applications is presented. To that end, relevant quality attributes and corresponding stakeholder
types are identified. The role of a process, the challenges in making optimal use of patterns, and feasibility
issues involved in doing so, are analyzed. The activities of a systematic selection and application of pat-
terns are explored. Following a top-down approach to design, examples illustrating the use of patterns
during macro- and micro-architecture design of a Web application are given. Finally, the implications
towards Semantic Web applications and Web 2.0 applications are briefly outlined.
Copyright 2008, IGI Global, distributing in print or electronic forms without written permission of IGI Global is prohibited.
Using Patterns for Engineering High-Quality Web Applications
within a systematic approach to the develop- interaction, they are expected to be an exemplar
ment of high-quality Web applications and to of universality (delivered to anybody, anywhere,
point out the benefits and challenges in doing so at any time, on virtually any device), and so on.
(Kamthan, 2008). These characteristics naturally manifest in their
The rest of the chapter is organized as follows. development, operation, and maintenance.
We first outline the background and state-of-the-
art necessary for the discussion that follows and Engineering of Web applications
state our position in that regard. This is followed
by a discussion of the suitability of a process The need for managing increasing size and
model, the presentation of the quality model that complexity of Web applications and the neces-
includes quality attributes at a granular level for sity of a planned development was realized in
representations in Web applications, selection and the late 1990s (Coda et al., 1998; Powell, Jones,
application of patterns as means for addressing & Cutts, 1998). This led to the discipline of Web
the quality attributes in the quality model, and Engineering (Ginige & Murugesan, 2001), which
supporting examples. Next, challenges and direc- has been treated comprehensively in recent years
tions for future research are outlined and, finally, (Kappel et al., 2006; Mendes & Mosley, 2006;
concluding remarks are given. Rossi et al., 2008).
Web Engineering is defined as a discipline
concerned with the establishment and use of sound
BacKGrouNd scientific, engineering and management principles
and disciplined and systematic approaches to the
In this section, we present a synopsis of Web successful development, deployment, and mainte-
Engineering, quality in Web applications, and nance of high-quality Web applications. It relies
patterns. and draws upon other engineering disciplines
including computer engineering, document en-
characteristics of Web applications gineering, hypermedia engineering, information
systems engineering, media engineering, network
There are certain uniquely defining social and engineering, software engineering, and systems
technical characteristics of Web applications that engineering for its existence.
bring enormous benefits to the users. They also For the rest of the chapter, a Web application
pose a variety of new challenges that the provid- will mean a Web site that behaves like an inter-
ers must deal with. active software system specific to a domain in
Specifically, Web applications differ from a distributed client-server environment. A Web
traditional software in many ways including application will in general require programmatic
that they are largely document-centric (rather ability and may deploy additional software (such
than data-centric), they are delivered to a user as application servers, media servers, or database
over the network (rather than locally installed), servers) for some purpose (such as dynamic de-
their users often have little control over the be- livery of resources).
havior or rendering of information, they need to
increasingly compete for visibility, the laws of quality of Web applications
jurisdictions from where they are being served
and where they being consumed can be quite The unique nature of Web applications as com-
different, they are based on user interfaces that pared to traditional software makes the need for
currently lack standards for presentation and high-quality all the more critical. That Web
0
Using Patterns for Engineering High-Quality Web Applications
0
Using Patterns for Engineering High-Quality Web Applications
0
Using Patterns for Engineering High-Quality Web Applications
A flexible user-centric process aiming for the component-based systems. OPEN defines a
development of high-quality Web applications process meta-model that can be instantiated
will typically be non-linear (iterative and incre- to suit large size projects.
mental), and address aspects of both the analysis
and the synthesis. Furthermore, both analysis Each of XP (Wallace, Raggett, & Aufgang,
and synthesis will typically have their own set 2002), RUP (Kappel et al., 2006), and OPEN via
of workflows. During analysis, an understanding its dialect Web OPEN (Henderson-Sellers, Lowe,
and specification of the problem domain will take & Haire, 2002) have been adapted to Web ap-
place, leading to artifacts such as the domain plications. There is explicit support for the use
model and use model, and based on them, the of patterns during design in XP, UP, and OPEN
requirements specification. During synthesis, an and, by reference, their extensions/instantiations
understanding and specification of the solution for Web applications.
domain will take place, leading to artifacts for the The benefits and drawbacks of agile and dis-
macro-architecture design and micro-architecture ciplined approaches to development have been
design, followed by the implementation of source pointed out and a heterogeneous combination
code and data. that balances agility and discipline is suggested
(Boehm & Turner, 2004). Further discussion of
The Agility-Discipline Spectrum this issue is beyond the scope of this chapter.
0
Using Patterns for Engineering High-Quality Web Applications
The steps of the construction are as follows: We contend that the quality attributes in Table
1 are necessary, however, make no claim of their
1. View: From a semiotics perspective, we can sufficiency. The relevance of these quality at-
view a Web application on six interrelated tributes that justifies their inclusion is discussed
levels: physical, empirical, syntactic, seman- later.
tic, pragmatic, and social. In this chapter, The quality attributes within the same tier in
we shall restrict ourselves to the pragmatic Table 1 not necessarily mutually exclusive. For
level, which is responsible for the relation of example, the steps taken towards improving reli-
signs to their interpreters. The interpreters ability (say, fault tolerance) may lead to redundant
in our case are the stakeholders, namely the source code or data (that can be unfavorable to
producers and the consumers of the Web maintainability) and but enable ease-of-use (that
application. can be favorable to usability).
2. Decompose: We contend that quality is a The quality attributes in Tier 2 depend on
multi-dimensional concept, and decompose that in Tier 1. For example, if an engineer cannot
it into granular levels that consist of known comprehend the information in a Web applica-
attributes that can be addressed directly or tion, he/she may not be able to maintain it to its
indirectly (Fenton & Pfleeger, 1997). These desired expectations.
quality attributes could for example manifest
themselves as non-functional requirements The Pragmatic Quality-Stakeholder
of a Web application. For the definitions of Contract
these quality attributes, we adopt the IEEE
Standard 1061-1998 and the ISO/IEC 9126-1 For the sake of this chapter, we view pragmatic
Standard. quality as a contract between a Web application
3. Assign: Among the possible means, we and a stakeholder. For the sake of simplicity,
choose patterns for improving the quality we will limit ourselves to the discussion of (not
attributes of a Web application. necessarily mutually exclusive) stakeholders of
the type end-user and engineer.
The aforementioned construction summarized The relevance of quality attributes in Table 1
in Table 1. varies with respect to stakeholder types. The qual-
Table 1. A model for addressing the semiotic quality of Web applications by means of patterns
Means for Quality
Semiotic Level Quality Attributes
Assurance
[Tier 2]
Maintainability, Usability
Pragmatic Patterns
[Tier 1]
Comprehensibility, Performance, Readability, Reliability
0
Using Patterns for Engineering High-Quality Web Applications
0
Using Patterns for Engineering High-Quality Web Applications
Figure 1. A view of the macro-architecture design patterns in the development of Web applications
0
Using Patterns for Engineering High-Quality Web Applications
0
Using Patterns for Engineering High-Quality Web Applications
0
Using Patterns for Engineering High-Quality Web Applications
(Lyardet & Rossi, 1998; Van Duyne, Landay, & Over the years, various patterns for searching
Hong, 2003). These navigation patterns, when Web applications have been proposed (Lyardet,
use appropriately, aid usability. For example, Rossi, & Schwabe, 1999; Van Duyne, Landay, &
the BREADCRUMBS pattern could be used to Hong, 2003). The searching patterns, when use
inform the user of his/her location and the FLY- appropriately, can aid performance. The use of
OUT MENU pattern could be used to present STRAIGHTFORWARD SEARCH FORMS with
content organized in a compound menu where a SIMPLE SEARCH INTERFACE that require
each menu item itself has a sub-menu. The FLY- minimal technical background on part of the user,
OUT MENU pattern could itself be arranged SELECTABLE SEARCH SPACE that can restrict
horizontally or vertically as suggested by the the search to a specific category, SELECTABLE
HORIZONTAL NAVIGATION or VERTICAL KEYWORDS that based on the past experience
NAVIGATION patterns (Marks & Hong, 2006), can suggest keywords for improving subsequent
respectively. The CLEAR ENTRY POINTS search results, and ORGANIZED SEARCH
pattern presents only a few entry points into the RESULTS that present a summary of the most
interfaces, which can restrict the navigation to a relevant search results, improve the effectiveness
specific category and make it task-oriented. of the searching activity.
Any navigation design must take exceptional
behavior into consideration to support usability. Examples
The SESSION pattern (Weiss, 2003) can help
maintain the state of the Web application in the Figure 2 gives an abstract illustration of some of
event of an interruption of navigation flow. The the interaction design patterns mentioned previ-
MISSING LINK pattern (German & Cowan, ously. The numbers indicate the order of applica-
2000) informs the user that certain hyperlink tion and the FLY-OUT MENU items are shown
does not exist and suggests alternatives. in dashed lines to exemplify non-permanence (as
There are navigation design patterns that aid the items hide-and-show and are on the canvas
comprehensibility (Tidwell, 2005). For example, only temporarily). Since, in general, many of the
the WIZARD pattern leads the user through the patterns (such as those that are behavioral) in the
interface step by step for carrying out tasks in a pre- development of Web applications are not visual
scribed order. The RESPONSIVE DISCLOSURE in nature, Figure 2 is not representative but rather
pattern starts with a very minimal interface, and presents only one view.
guides a user through a series of steps by showing Figure 3 gives a concrete example of the use of
more of the interface as the user completes each some interaction design patterns in the Products
step. These two patterns could, for example, be Page at Adobe Systems. A close examination
used for carrying out a registration process. can lead to the discovery of other patterns not
highlighted in the snapshot (to prevent crowd-
search design ing) or even to other patterns not mentioned in
this chapter.
Search design is concerned with the ease, rele-
vancy, and speed of finding information requested Feasibility of Selecting and Applying
by a user. Searching is not native to Web applica- Patterns
tions, but has become ever more challenging as
the amount of information to be searched through The adoption and subsequent deployment of pat-
increases. terns needs to be viable. The challenges in the
patterns selection process stem from a variety
of factors that we now discuss.
0
Using Patterns for Engineering High-Quality Web Applications
Figure 3. An assembly of some interaction design patterns in the development of Web applications
Using Patterns for Engineering High-Quality Web Applications
locatability of patterns There are some patterns that may be classified into
familiar categories (like structural or behav-
Even when it is ascertained that for a given prob- ioral) while others may be presented as a linear
lem, a pattern does exist, that pattern needs to and loosely related collection. These collections
be located. There are a few obstacles in locating may be only print-based (say, in books), be only
desirable patterns, of which representation and electronically-based (say, on the Web), but may
classification of patterns are critical. only rarely be a combination thereof. In spite of
Representation. There is at present no unique some isolated efforts, patterns are currently also
way of representing patterns. There are a variety of not organized by quality attributes. This could
notations with varying degree of formality in use adversely impact the task of locating desirable
for representing patterns. Furthermore, the qual- patterns (Segersthl & Jokela, 2006).
ity of representing patterns varies significantly.
Not all patterns make proper use of mandatory cost of selecting patterns
elements of a pattern, while others make seldom
use of optional elements. It has been pointed out One of the benefits of pattern solutions is con-
(Meszaros & Doble, 1998) that the name assigned ceptual reuse. However, reuse of any knowledge,
to a pattern by its author is crucial. However, including the use of patterns in the development
there are some patterns that have obtuse rather of Web applications, is neither automatic, nor
than evocative names (Meszaros & Doble, 1998) free. There is a cost in terms of time, effort, and
that may not be familiar to a typical reader. Also, resources of learning and adaptation involved in
there are patterns similar or same names but se- any reuse (Boehm et al., 2001), and patterns are
mantically different functionality, and patterns in no exception.
different collections with similar intent or func- For example, there is a learning curve involved
tionality but with different names. For example, in aspects such as understanding the pattern de-
the EASY UNDO pattern from one collection scription at large, checking if and how accurately
(Rossi, Lyardet, & Schwabe, 2000) is similar to the context of the pattern matches with that of the
the MULTI-LEVEL UNDO pattern from another problem of the Web application under develop-
collection (Tidwell, 2005). These patterns may ment at hand, and the constraints under which
have been (re)discovered independently. the solution suggested by the pattern exists. The
Classification. There is currently no unique trade-offs and consequences associated with the
classification scheme for organizing patterns.
Figure 4. Patterns help the engineering of large-scale Web applications, and conversely, Web applica-
tions help the distribution of patterns to it's global community of users
Using Patterns for Engineering High-Quality Web Applications
solution proposed by the pattern can help deter- patterns for designing Web applications and
mine the suitability of the solution with respect make them publicly available. This collection,
to the required time, effort, and resources. It is namely Patterns for Web Applications (PWA),
crucial that the team responsible for the Web ap- would explicitly acknowledge original sources,
plication must have the knowledge and skills to be navigable, searchable, and evolvable. Users of
be able to understand the constraints of a pattern, P4W4P would have context-dependent help and
including the forces that must be overcome to opportunities for feedback available to them at all
implement a pattern in the available technolo- times. P4W4P would also provide maintenance
gies-of-choice. facilities such as modifying the information of an
In general, patterns can be related in many existing pattern and adding/deleting a pattern. The
ways. We discuss two cases here. The application access to these administrative services would be
of a pattern may require that certain pattern(s) restricted. Moreover, P4W4P would apply PWA to
have already been applied (similar to a pre- itself. In other words, P4W4P would help PWA,
condition(s)). Also, the application of a pattern and in turn, PWA would help P4W4P. Figure 4
places the system under development in a new illustrates this symbiosis.
context (similar to a post-condition(s)). Indeed, An initial, albeit informal and elementary,
due to such context-driven relationships among feasibility study for P4W4P was performed. The
them, the use of one pattern can necessitate the development of P4W4P followed an instance of
use of other pattern(s). That means, the decision UP with minor variations such as more emphasis
of selecting patterns cannot be singular; it must on NFRs and on interaction design, and less on
take into account the application of patterns as a lengthy documentation. Based on instructors
collective that is usually a directed acyclic graph formative assessment, some of these deliverables
(DAG). were revisited and revised for compliance with
future submissions. Many of the patterns men-
poWEm in software Engineering tioned previously were included in PWA and used
Education during the development of P4W4P.
Using Patterns for Engineering High-Quality Web Applications
Using Patterns for Engineering High-Quality Web Applications
lecting and applying these patterns in the devel- to come to a realization, however, the efforts
opment of Web applications. Furthermore, such towards a systematic approach towards address-
extensions would also require that the aspects of ing the quality of ontologies for the Semantic
micro-architecture design to which the patterns Web (Burton-Jones et al., 2005) and patterns for
are applied, are essentially different than those developing ontologies (Gangemi, 2005) will be
dealt with in this chapter. For example, in case crucial.
of applying patterns for privacy and security, the For the sustainability of the architecture of
attention would be more on the server-side rather the Web and for the sake of mutual benefit, it is
than on client-side components. essential that the extensions of the Web evolve har-
monically. Therefore, the Semantic Web initiative
Patterns in Semantic Web Engineering and the Social Web efforts such as Web 2.0 need
to co-exist (Lassila & Hendler, 2007; Shadbolt,
The original goal of the Web was the invention Hall, & Berners-Lee, 2006). This will inevitably
of a medium for both human- and machine-con- be crucial for the evolution of POWEM and for
sumption of information. This vision, particularly the newer generation of Web applications.
the latter, however, has not been completely real-
ized yet. anti-patterns for quality of Web
The Semantic Web has recently emerged as applications
an extension of the current Web that adds tech-
nological infrastructure for better knowledge An anti-pattern (Brown et al., 1998) is defined as
representation, interpretation, and reasoning a combination of two aspects. First, for a recur-
(Hendler, Lassila, & Berners-Lee, 2001). It thus ring problem in a given context, there is a solution
makes information far more amenable to ma- such that if this solution is applied, the system
chine-consumption than that is possible within is placed in a state worse than it was previously.
the current Web. Second, to ameliorate this, the negative solution
An ontology is an explicit formal specification is refactored to a positive solution. If a pattern
of a conceptualization that consists of a set of reflects a best practice, then an anti-pattern
concepts in a domain and relations among them reflects a lesson learned (Appleton, 1997).
(Gruber, 1993). Ontologies provide precise means A pattern applied to an inappropriate context
of representing knowledge and, arguably, form one can compromise the benefit it offers and give the
of the most important layers in the Semantic Web appearance of an anti-pattern. For example, pat-
infrastructure. By enabling better (perhaps even terns that suggest solutions involving the use of
intelligent) opportunities for organization and color will not be applicable in situations where
inferencing from given information (via naviga- the underlying monitor does not support it (such
tion or searching), ontologies can play a crucial as when the screen is monochrome) or the user
role in Web Engineering of the future (Kamthan is color blind.
& Pai, 2006). There is currently an apparent lack of stable
In other words, pattern-oriented Semantic and mature collection of anti-patterns for Web
Web Engineering, when practiced well, could applications. However, there is much negative
spawn a new generation of Web applications that guidance available such as for establishing trust
are developed by taking past, present, and future (Sillence et al., 2006) that could be captured and
into consideration. An elaboration of the semantic structured as anti-patterns for Web applications.
level of Table 1 could help towards accommodat- This will inevitably strengthen POWEM.
ing applications for the Semantic Web. For that
Using Patterns for Engineering High-Quality Web Applications
patterns for mobile Web Engineering ment life cycle and maintenance of high-quality
Web applications.
The use of mobile devices continues to increase In conclusion, patterns provide the rigor
and the future of mobile applications appears necessary for Web Engineering to mature as an
promising. A pattern-oriented systematic ap- engineering discipline. They provide a practi-
proach for a development of mobile applications cal and preventative (rather than curative) means
would be of interest. There have been initiatives to addressing the quality of Web applications, if
for addressing the quality (Spriestersbach & they are located, adopted and applied with care,
Springer, 2004) and patterns proposed for the taking feasibility issues into consideration. By
development of mobile applications (Ahlgren & adopting and investing in a user- and quality-cen-
Markkula, 2005; Ballard, 2007; Roth, 2002). tric and pattern-oriented approach as manifested
However, recasting POWEM for mobile in POWEM, all stakeholders can benefit in the
applications would neither be trivial, nor auto- long-term.
matic. The constrained environment of mobile
applications is uniquely different from that of the
stationary (desktop) applications (Ocampo et al., acKNoWlEdGmENT
2003), and must to be taken into consideration.
The author would like to thank his students for
their dedicated participation in P4W4P, and the
coNclusIoN reviewers for their feedback and suggestions for
improvement.
The society has increasingly become dependent
upon the services provided by Web applications. If
the surveys are any indication, this trend is likely rEfErENcEs
to continue. However, the services provided by
a Web application may not be unique: for a pro- Ahlgren, R., & Markkula, J. (2005, June 13-15).
ducer, this means competition; for a consumer, Design patterns and organisational memory in
this means choice. Therefore, for a Web applica- mobile application development. Paper presented
tion, meeting stakeholder expectations of high at the Sixth International Conference on Product
quality is not only a reflection of the ethical and Focused Software Process Improvement (PRO-
moral obligation of its products but an imperative FES 05), Oulu, Finland.
for its survivability.
Ahluwalia, K. S., & Jain, A. (2006, October 21-23).
The demands and expectations from users
High availability design patterns. Paper presented
of Web applications over the last decade have
at the 13th Conference on Pattern Languages of
evidently had an impact on how these systems
Programs (PLoP 06), Portland, USA.
have been developed. Indeed, the development
environment of Web applications is constantly Ballard, B. (2007). Designing the mobile user
facing technological and social challenges posed experience. John Wiley and Sons.
by new implementation languages, variations in
Beck, K., & Andres, C. (2005). Extreme program-
user agents, demands for new services, and user
ming explained: Embrace change (2nd Edition).
classes from different cultural backgrounds, age
Addison-Wesley.
groups, and capabilities. This motivates the need
for a methodical approach towards the develop- Beck, K., Crocker, R., Meszaros, G., Vlissides,
J., Coplien, J. O., Dominick, L., & Paulisch, F.
Using Patterns for Engineering High-Quality Web Applications
(1996, March 25-29)). Industrial experience with Firesmith, D., & Henderson-Sellers, B. (2002).
design patterns. Paper presented at the 18th In- The OPEN process framework: An Introduction.
ternational Conference on Software Engineering Addison-Wesley.
(ICSE 1996), Berlin, Germany.
Gamma, E., Helm, R., Johnson, R., & Vlissides,
Boehm, B. W., Abts, C., Brown, A. W., Chulani, J. (1995). Design patterns: Elements of reusable
S., Clark, B. K., Horowitz, E., Madachy, R., Reifer, object-oriented software. Addison-Wesley.
D., & Steece, B. (2001). Software cost estimation
Garzotto, F., Paolini, P., Bolchini, D., & Valenti,
with COCOMO II. Prentice Hall.
S. (1999, November 15-18). Modeling-by-pat-
Boehm, B., & Turner, R. (2004). Balancing agil- terns of Web applications. Paper presented at
ity and discipline: A guide for the perplexed. the International Workshop on the World Wide
Addison Wesley. Web and Conceptual Modeling (WWWCM 99),
Paris, France.
Brajnik, G. (2001, June 4-6). Towards valid qual-
ity models for Web sites. Paper presented at the German, D. M., & Cowan, D. D. (2000, January
Seventh Conference on Human Factors and the 4-7). Towards a unified catalog of hypermedia
Web (HFWeb 01), Madison, USA. design patterns. Paper presented at the 33rd Ha-
waii International Conference on System Sciences
Brown, W. J., Malveau, R. C., McCormick, H. W.,
(HICSS 00), Maui, USA.
& Mowbray, T. J. (1998). AntiPatterns: Refactor-
ing software, architectures, and projects in crisis. Gilb, T. (1988). Principles of software engineering
John Wiley and Sons. management. Addison-Wesley.
Burton-Jones, A., Storey, V. C., Sugumaran, V., Gillenson, M., Sherrell, D. L., & Chen, L. (2000).
& Ahluwalia, P. (2005). A semiotic metrics suite A Taxonomy of Web site traversal patterns and
for assessing the quality of ontologies. Data and structures. Communications of the AIS, 3(4),
Knowledge Engineering, 55(1), 84-102. 2000.
Buschmann, F., Meunier, R., Rohnert, H., Som- Ginige, A., & Murugesan, S. (2001). Web en-
merlad, P., & Stal, M. (1996). Pattern oriented gineering: An introduction. IEEE Multimedia,
software architecture, volume 1: A system of 8(1), 14-18.
patterns. John Wiley and Sons.
Graham, I. (2003). A pattern language for Web
Coda, F., Ghezzi, C., Vigna, G., & Garzotto, F. usability. Addison-Wesley.
(1998, April 16-18). Towards a software engineer-
Gruber, T. R. (1993). Toward principles for the
ing approach to Web site development. Paper
design of ontologies used for knowledge sharing.
presented at the Ninth International Workshop on
In N. Guarino & R. Poli (Eds.) Formal ontology
Software Specification and Design (IWSSD-9),
in conceptual analysis and knowledge representa-
Ise-shima, Japan.
tion. Kluwer Academic Publishers.
Dustin, E., Rashka, J., & McDiarmid, D. (2001).
Hafiz, M. (2006, October 21-23). A Collection
Quality Web systems: Performance, security, and
of privacy design patterns. Paper presented at
usability. Addison-Wesley.
the 13th Conference on Pattern Languages of
Fenton, N. E., & Pfleeger, S. L. (1997). Software Programs (PLoP 06), Portland, USA.
metrics: A rigorous & practical approach. Inter-
Hasan, L. R., & Abuelrub, E. (2006, June 19-
national Thomson Computer Press.
21). Criteria for evaluating quality of Websites.
Using Patterns for Engineering High-Quality Web Applications
Paper presented at the Sixth IBIMA Conference Kappel, G., Prll, B., Reich, S., & Retschitzeg-
on Managing Information in Digital Economy, ger, W. (2006). Web engineering. John Wiley
Bonn, Germany. and Sons.
Henderson-Sellers, B., Lowe, D., & Haire, B. Kendall, E. A. (1998). Utilizing patterns and pat-
(2002). OPEN process support for Web develop- tern languages in education. Annals of Software
ment. Annals of Software Engineering, 13(1-4), Engineering, 6(1-4), 281-294.
163-201.
Kruchten, P. (2004). The rational unified process:
Hendler, J., Lassila, O., & Berners-Lee, T. (2001). An introduction (Third Edition). Addison-Wes-
The Semantic Web. Scientific American, 284(5), ley.
34-43.
Kumar, K., & Welke, R. J. (1992). Methodology
Highsmith, J. (2002). Agile software development engineering: A proposal for situation-specific
ecosystems. Addison-Wesley. methodology construction. In W. W. Cotterman
& J. A. Senn (Eds.), Challenges and strategies for
Jacobs, I., & Walsh, N. (2004). Architecture of the
research in systems development, (pp, 257-269).
World Wide Web, volume one. W3C Recommenda-
John Wiley and Sons.
tion. World Wide Web Consortium (W3C).
Lassila, O., & Hendler, J. (2007). Embracing Web
Jacobson, I., Booch, G., & Rumbaugh, J. (1999).
3.0. IEEE Internet Computing, 11(3), 90-93.
The unified software development process. Ad-
dison-Wesley. Lindland, O. I., Sindre, G., & Slvberg, A. (1994).
Understanding quality in conceptual modeling.
Kaminski, H., & Perry, M. (2007, May 27-30).
IEEE Software, 11(2), 42-49.
Open source software licensing patterns. Paper
presented at the Sixth Latin American Conference Lyardet, F., & Rossi, G. (1998, August 11-14).
on Pattern Languages of Programming (Sugar- Patterns for designing navigable information
LoafPLoP 07), Porto de Galinhas, Brazil. spaces. Paper presented at the Fifth Conference
on Pattern Languages of Programs (PLoP 98),
Kamthan, P. (2007). Towards a systematic ap-
Monticello, USA.
proach for the credibility of human-centric Web
applications. Journal of Web Engineering, 6(2), Lyardet, F., Rossi, G., & Schwabe, D. (1999, July
99-120. 8-10)). Patterns for adding search capabilities
to Web information systems. Paper presented
Kamthan, P. (2008). Patterns for improving the
in the Fourth European Conference on Pattern
pragmatic quality of Web information systems.
Languages of Programming and Computing
In C. Calero, M. . Moraga, & M. Piattini
(EuroPLoP 1999), Irsee, Germany.
(Eds.), Handbook of research on Web informa-
tion systems quality. Hershey, PA: Idea Group Mahemoff, M. (2006). Ajax design patterns.
Publishing. OReilly Media.
Kamthan, P., & Pai, H.-I. (2006, May 21-24). Se- Manolescu, D., & Kunzle, A. (2001, September
mantic Web-enabled Web engineering: The case 11-15). Several patterns for eBusiness applica-
of patterns. Paper presented at the Seventeenth tions. Paper presented at the Eighth Conference
Annual Information Resources Management As- on Pattern Languages of Programs (PLoP 01),
sociation International Conference (IRMA ;06), Monticello, USA.
Washington, D.C.
Using Patterns for Engineering High-Quality Web Applications
May, D., & Taylor, P. (2003). Knowledge Man- ing wireless Internet services. IEEE Transactions
agement with Patterns. Communications of the on Software Engineering, 29(12), 1122-1134.
ACM, 46(7), 94-99.
Offutt, J. (2002). Quality attributes of Web soft-
McPhail, J. C., & Deugo, D. (2001, June 4-7). ware applications. IEEE Software, 19(2), 25-32.
Deciding on a pattern. Paper presented at the
Olsina, L., & Rossi, G. (2002). Measuring Web
14th International Conference on Industrial and
application quality with WebQEM. IEEE Multi-
Engineering Applications of Artificial Intelligence
media, 9(4), 20-29.
and Expert Systems (IEA/AIE 2001). Budapest,
Hungary. OReilly, T. (2005). What is Web 2.0: Design
patterns and business models for the next genera-
Mendes, E., & Mosley, N. (2006). Web engineer-
tion of software. OReilly Network, September
ing. Springer-Verlag.
30, 2005.
Meszaros, G., & Doble, J. (1998). A pattern
Paulk, M. C., Weber, C. V., Curtis, B., & Chris-
language for pattern writing. In R. C. Martin,
sis, M. B. (1995). The capability maturity model:
D. Riehle, & F. Buschmann (Eds.). Pattern lan-
Guidelines for improving the software process.
guages of program design 3. Addison-Wesley,
Addison-Wesley.
(pp 529-574).
Perry, M., & Kaminski, H. (2005, July 6-19). A
Mich, L., Franch, M., & Gaio, L. (2003). Evaluating
pattern language of software licensing. Paper
and designing Web Site quality. IEEE Multimedia.
presented at the Tenth European Conference on
10(1), 34-43.
Pattern Languages of Programs (EuroPloP 05),
Montero, F., Lpez-Jaquero, V., & Molina, J. Irsee, Germany.
P. (2003, September 1-2). Improving e-Shops
Pertet, S. M., & Narasimhan, P. (2005). Causes
environments by using usability patterns. Paper
of failure in Web applications. PDL Technical
presented at the Second Workshop on Software
Report PDL-CMU-05-109. Carnegie Mellon
and Usability Cross-Pollination, Zrich, Swit-
University, Pittsburgh, USA.
zerland.
Powell, T. A., Jones, D. L., & Cutts, D. C. (1998).
Montero, F., Lozano, M., & Gonzlez, P. (2002,
Web site engineering. Prentice-Hall.
August 5-7). Designing Web sites by using design
patterns. Paper presented at the Second Latin Perzel, K., & Kane, D. (1999, August 15-18).
American Conference on Pattern Languages Usability patterns for applications on the World
of Programming (SugarLoafPLoP 02), Rio de Wide Web. Paper presented at the Sixth Confer-
Janeiro, Brazil. ence on Pattern Languages of Programs (PLoP
99), Monticello, USA.
Nelson, T. H. (1984). Literary machines. Mind-
ful Press. Preece, J., Rogers, Y., & Sharp, H. (2002). Interac-
tion design: Beyond human-computer interaction.
Nguyen, H. Q., Johnson, R., & Hackett, M. (2003).
John Wiley and Sons.
Testing applications on the Web: Test planning for
mobile and Internet-based systems (2nd Edition). Romanosky, S., Acquisti, A., Hong, J., Cranor, L.
John Wiley and Sons. F., & Friedman, B. (2006, October 21-23). Privacy
patterns for online interactions. Paper presented
Ocampo, A., Boggio, D., Mnch, J., & Palladino,
at the 13th Conference on Pattern Languages of
G. (2003). Towards a reference process for develop-
Programs (PLoP 06), Portland, USA.
Using Patterns for Engineering High-Quality Web Applications
Ross, M. (2002). Quality in Web design for visu- Selmi, S. S., Kraem, N., & Ghzala, H. H. B.
ally impaired users. Software Quality Journal, (2005, July 27-29). Toward a comprehension view
10(4), 285-298. of Web engineering. Paper presented at the Fifth
International Conference on Web Engineering
Rossi, G., & Koch, N. (2002, July 3-7). Patterns
(ICWE 05), Sydney, Australia.
for adaptive Web applications. Paper presented
at the Seventh European Conference on Pattern Shadbolt, N., Hall, W., & Berners-Lee, T. (2006).
Languages of Programs (EuroPLoP 02). Irsee, The Semantic Web revisited. IEEE Intelligent
Germany. Systems, 21(3), 96-101.
Rossi, G., Lyardet, F. D., & Schwabe, D. (1999). De- Sillence, E., Briggs, P., Harris, P, & Fishwick,
veloping hypermedia applications with methods L. (2006). A framework for understanding trust
and patterns. ACM Computing Surveys. 31(4es). factors in Web-based health advice. Interna-
tional Journal of Human-Computer Studies, 64,
Rossi, G., Lyardet, F., & Schwabe, D. (2000, July
697-713.
5-9). Patterns for E-commerce applications. Paper
presented at the Fifth European Conference on Simon, H. (1996). The Sciences of the Artificial
Pattern Languages of Programs (EuroPLoP 2000), (3rd Edition). The MIT Press.
Irsee, Germany.
Spriestersbach, A., & Springer, T. (2004). Quality
Rossi, G., Pastor, O., Schwabe, D., & Olsina, L. attributes in Mobile Web Application Develop-
(2008). Web engineering: Modelling and imple- ment. In F. Bomarius & H. Iida (Eds.). Product
menting Web applications. Springer-Verlag. Focused Software Process Improvement. (pp.
120-130).Springer-Verlag.
Rossi, G., Schwabe, D., & Lyardet, F. (1999, May
11-14). Improving Web information systems with Stamper, R. (1992, October 5-8). Signs, Organi-
navigational patterns. Paper presented at the zations, Norms and Information Systems. Paper
Eighth International World Wide Web Conference presented at the Third Australian Conference on
(WWW8), Toronto, Canada. Information Systems, Wollongong, Australia.
Roth, J. (2002). Patterns of mobile interaction. Tate, B. A., & Hibbs, C. (2006). Ruby on Rails:
Personal and Ubiquitous Computing. 6(4), 282- Up and Running. OReilly Media.
289.
Tidwell, J. (2005). Designing interfaces: Pat-
Schmidt, D. C., Stal, M., Rohnert, H., & Busch- terns for effective interaction design. OReilly
mann, F. (2000). Pattern-oriented software archi- Media.
tecture, Volume 2: Patterns for concurrent and
Van Duyne, D. K., Landay, J., & Hong, J. I.
networked objects. John Wiley and Sons.
(2003). The design of sites: Patterns, principles,
Schumacher, M., Fernandez-Buglioni, E., Hy- and processes for crafting a customer-centered
bertson, D., Buschmann, F., & Sommerlad, P. Web experience. Addison-Wesley.
(2006). Security patterns: Integrating security
Vijayaraghavan, G. V. (2003). A taxonomy of E-
and systems engineering. John Wiley and Sons.
commerce risks and failures. Masters Thesis.
Segersthl, K., & Jokela, T. (2006, April 22-27). Florida Institute of Technology. Melbourne,
Usability of interaction patterns. Paper presented USA.
at the CHI 2006 Conference on Human Factors in
Wallace, D., Raggett, I., & Aufgang, J. (2002).
Computing Systems, Montral, Canada.
Extreme programming for Web projects. Ad-
dison-Wesley.
0
Using Patterns for Engineering High-Quality Web Applications
Weiss, M. (2003, September 8-12). Patterns for on Software and Usability Cross-Pollination,
Web applications. Paper presented at the Tenth Zrich, Switzerland.
Conference on Pattern Languages of Programs
Yoder, J., & Barcalow, J. (1997, September 3-5).
(PLoP 03), Urbana, USA.
Architectural patterns for enabling application
Wentzlaff, I., & Specker, M. (2006, July 10). security. Paper presented at the Fourth Confer-
Pattern based development of user friendly Web ence on Pattern Languages of Programs (PLoP
applications. Paper presented at workshop on 1997), Monticello, USA.
Model-Driven Web Engineering (MDWE 06),
Ziemer, S., & Stlhane, T. (2004, July 27). The
Palo Alto, CA, USA..
use of trade-offs in the development of Web ap-
Wesson, J., & Cowley, L. (2003, September 1-2). plications. Paper presented at the International
Designing with patterns: Possibilities and pit- Workshop on Web Quality (WQ 2004). Munich,
falls. Paper presented at the Second Workshop Germany.
Using Patterns for Engineering High-Quality Web Applications
appENdIx
Table 2 summarizes the patterns mentioned in this chapter. It clearly reflects that the mapping between
patterns and quality attributes is many-to-many. The following rating scheme is used: a (+) label adja-
cent a pattern name reflects a positive impact on the corresponding quality attribute, whereas a () label
reflects a negative impact. The list of patterns is subject to evolution. (The purpose of the chapter was
not to provide a definitive list of patterns or point out every single pattern for a given quality attribute.)
The rating scheme can also evolve to become more granular.
Table 2. Pragmatic quality attributes of a Web application and corresponding patterns with ratings
Chapter VII
Component-Based Deployment
for Web Applications:
Experiences with Duct Tape and Glue
Kevin Gary
Arizona State University, USA
Harry Koehnemann
Arizona State University, USA
aBsTracT
The software engineering community touts component-based software engineering as a solution for
many of its woes including reducing cycle time, reducing costs, increasing productivity, allowing easier
integration to name just a few. Indeed, many Web-based systems are now built with open-source and
vendor provided component technologies. While these advances have led to improvements in the de-
velopment process, they have also led to a great deal of pressure on downstream processes as these
systems must be deployed, tuned, and supported. The complexities in deploying and supporting com-
ponent-based software for distributed and Web-based applications are not understood in the academic
or professional communities. This chapter stresses the need for addressing this problem by presenting
component-based software for Web applications from a deployment perspective, characterizing the is-
sues through real-world experiences with highly component-based applications, and presents strategies
and directions for the community to pursue.
INTroducTIoN aNd moTIvaTIoN AJAX, and so on. These discussions are de-
served, and show the rapid pace at which the
Discussion of the engineering of modern Web- understanding of engineering such applications
based systems inevitably focuses on many of has evolved. These technologies are realized
todays popular buzzwords such as services- through a proliferation of methods and frame-
oriented architecture (SOA), n-tier architecture works giving architects literally dozens of tools
patterns, lightweight and Agile methodologies, to construct applications to deploy on the Web.
Copyright 2008, IGI Global, distributing in print or electronic forms without written permission of IGI Global is prohibited.
Component-Based Deployment for Web Applications
However, this chapter considers a topic that has More to the point, do we hear our application
not received fair attention or debate. That topic support personnel espousing the benefits of flex-
is the downstream issues and costs involved in ible and collaborating components as frequently
deploying (and redeploying) component-based as we hear from developers? Rhetorically the
software for distributed and Web-based applica- answer is no as the application support teams
tions. The main body of attention in Web-based members are too busy writing scripts, trying
software engineering is from point of view of the to understand deployment descriptors, figuring
architects and developers, with ample debate on out what component is in what package, discov-
the merits of methods, patterns, and frameworks. ering undocumented hidden dependencies in
While development teams tend to fall in love components by tracing through stack traces, and
with these technologies, adequate consideration finding a way to get the entire system talking in
is rarely given to the ramifications of supporting a particular Web application server production
them once the application is thrown over the environment.
wall to the application support team. The application support team, which includes
Component-based software engineering assemblers, deployers, and operators, cannot
(CBSE) is a relatively new driver in Web-based remain the forgotten partner for long. Configura-
software engineering and has enjoyed rapid ac- tion management, release management, testing,
ceptance in both industry and the research com- deployment, and other business functions will
munity. Spurred by the advent of distributed com- continue to raise issues related to CBSE:
puting via the Internet, academic institutions and
professional communities alike now teach, train, Configuration management (CM): The
and mentor in the well-founded principles of ob- componentization of the software system
ject-oriented design and programming, and extend means more possible permutations of com-
this model to coarser-grained component-based ponents (configurations) to manage and sup-
computing. Many (if not most) Web developers port. For systems of any size there can be an
today espouse the benefits of component-based explosion in permutations as development
computing including reusability, flexibility, loose decompose systems into components.
coupling, modularity, separation of concerns, and Release management (RM): Closely re-
so forth, without necessarily understanding how lated to CM, RM is also concerned with
component-based computing delivers on these coordinating all business processes related
promises. We by no means imply component- to getting software out the door, as well as
based Web applications are wrong; but we do how to provide updates, patches and migra-
feel there are significant gaps and assumptions tion to new releases. Given the potentially
made about the goodness of these principles that dynamic and plug-n-play nature of CBSE,
fails to address significant issues that may arise, this becomes a high-risk area to organiza-
specifically in the areas of deployment and post- tions supporting Web-based applications.
deployment support. CBSE, while demonstrating Software test: The proliferation of compo-
value-add for software development processes, nents coupled with dynamic composition
is not yet proven across the full set of business creates a tremendous burden on test groups
processes supporting enterprise class software. to validate that the software system will
CBSE may in fact imply greater complexity, and remain robust in the face of various com-
therefore higher costs for supporting deployment ponent configurations. When can the group
and release processes for Web-based systems. be comfortable that a sufficient coverage of
Component-Based Deployment for Web Applications
deployable configurations is stable? Note are re-emerging in the CBSE community and will
testing activities are separated from Quality continue to grow due to several influences:
Assurance processes, as one may claim that
CBSE has a greater potential for delivering The availability of off-the-shelf architectures
quality software out of development, and and frameworks, both commercial and open
that point is not debated. source;
Deployment: This process packages soft- Design techniques like aspect oriented pro-
ware and physically installs it onto appropri- gramming and model driven architecture
ate hardware resources and then configures that continue to separate system functional-
the system under the constraints presented ity into more refined modules;
in the hosted environment. The explosion of The growing popularity of open source
distributed and component-based software computing;
systems increases system complexity dra- Innovations in training and education;
matically, and is a focal point of the ideas The impact of the Internet and distributed
presented in this chapter. computing;
Application support: Post-deployment Software economic pressures such as an
processes for supporting deployed produc- increase in outsourcing, elevated risks (and
tion-level software systems. These processes costs) of failure, and the dot-com bust force
include production system monitoring, post- software organizations to reconsider reuse
deployment application tuning, execution and component assembly.
failover/rollover processes, and deploying
upgrades and patches. The separation between development and de-
Other business issues: There are also a ployment has all but become institutionalized.
host of organizational and social issues Development teams and deployment teams meet
involved in deploying component-based on organizational charts at a relatively high
systems. Customers often must be educated level. Lines of communication are informal
on new ways of receiving software and sup- where deployment teams may borrow develop-
port. Licensing terms must be stated that ers to help resolve their issues. Product vendors
define legal concerns, intellectual property, for software development also contribute to the
and cost issues for systems composed of separation by aligning tools along the developer
components obtained from a wide variety and deployer/operator line. For example, developer
of sources. Application support personnel tools (e.g., IBM-Rational Application Developer)
need to be trained with new skill sets for and the deployment operation products (e.g., IBM
deploying and maintaining component- WebSphere, IBM Tivoli) may not developed by
based software systems. Strategic planners the same organizations. While they are inte-
(executive decision-makers) and tacticians grated, the products are created, marketed, and
(project managers) must understand the sold separately.
ramifications of CBSE.
Component-Based Deployment for Web Applications
definitions share some common themesencap- Java Database Connectivity (JDBC) is a popu-
sulates functionality, communicates through lar software package that will serve as a concrete
well-defined interfaces, provides a simple plug- example. The JDBC Component Specification
and-play model, and allows easy replacement defines several Component Interfaces (Connec-
of system behaviors. Few definitions consider tion, Statement, ResultSet) and has many vendor
all the forms a component will manifest itself Component Implementations, including MySQL,
throughout the development lifecycle. Cheesman Oracle, and so forth. Figure 1 provides a diagram
& Daniels (2002) presented a view of components illustrating the relationship of these three compo-
from the complete software lifecycle and discussed nent forms defined by Cheesman & Daniels (2002).
components in the following forms: A deployer installs the binary representation of
the Installed Component as a file mysql.jar on all
Component interface: Defines a set of appropriate nodes requiring connectivity. The
features offered; analogous to a CORBA Installed Component might require configuration
or Java interface in some property file that must also be deployed
Component specification: A software unit with the system. Finally, at run-time there is an
that describes behavior for a component as instance of that component providing connectivity
a set of Component Interfaces to the external data source.
Component implementation: An assembly
that implements a Component Specifica- component dependencies Issues
tion
Installed component: A specific instal- There can be many hidden dependencies with this
lation and configuration of a Component simple example that impact a deployment. The first
Implementation simple dependency is that JDBC refers to classes
Component object: A run-time instance of a in the Java library, meaning the components
component with unique state and identity
java.sql
Factory
DriverManager Date
com.mysq l.jdbc
org.apache.log4j
MySQLDriver
Statement
ClientConnection ResultSet
artifact artifact
Config Config
-MySQLDefs
Component-Based Deployment for Web Applications
specification, and therefore its implementation, a mild amount of pain reconfiguring. But once
has an implicit dependency on some version of completed, the process and lessons learned are
the J2SE. Also, the component implementation typically undocumented and then forgotten. When
(MySQL in this example) obtains configuration the pain repeats itself too often, developers will
information from an external property file so that commonly create scripts to speed the reconfigure
file must exist and be properly configured at run- process and also help them remember it (e.g.,
time. It also requires a specific version of the log4j homegrown scripts for connecting to different
component which itself depends on a property databases, such as a development database or a
file for configuration. Finally, the implementa- test database). While undocumented activities
tion depends on a database process executing on like this (a form of duct tape and glue) are ef-
some node and the configuration file be properly fective in development, production deployments
configured to reference this node. have larger and more variable environments, and
Quality of service is also an issue. Replacing this approach will not scale for the application
the MySQL implementation with a new one can support team.
greatly impact the execution profile for the node
running the component. Processing and memory Build-Time vs. run-Time
requirements vary widely across implementa-
tions. The previous section described the many forms a
Lastly, versioning can be an issue. While the component takes through the software lifecycle.
MySQL component requires a specific version Software components are an independently
of the log4j component, a component in another deployable and enactable portion of a software
part of the system may require a different version. system. Deploying and enacting a component
Separating the executable space of components (the run-time view of a component) can lead
can be solved in some instances (Java Classload- to issues. The 4+1 software architecture model
ers provide a nice facility), but the system must (Krutchen, 1995) espoused by the rational uni-
have been initially designed and architected to fied process (RUP) addresses, at least through
support such a feature. notation, the issues of deploying and enacting
Developers rarely have issues with hidden components. Figure 2 shows the 4+1 model and
dependencies, if they have them at all. They con- its related views.
figure their environment early and rarely need to The Logical View provides the systems logical
change it. When there are changes, they experience organization defining how functionality is parti-
Component-Based Deployment for Web Applications
tioned into packages, subsystems, and interfaces, tion of a system. Questions like, do we need a
as well as those elements implementations. UML JDBC 2.0 compliant database? or will a given
package and class diagrams are commonly drawn node support the computational and memory re-
to illustrate this view. The Implementation view quirements for this set of components? or what
describes how the conceptual logical elements property files must I configure? can be answered
map to physical artifacts (source files) and then with a Deployment View of the system. Many
how those physical elements are built into compo- researchers have advocated quality of service
nents (UMLs definition of component) and other information and languages for CBSE. However,
artifacts required for execution. Makefiles, Ant it is unfortunate that few of those efforts have
build descriptors, and other scripts commonly made it into practice so deployers and operators
represent this view. The Process View depicts are left with few if any characteristics to reason
the processes that execute in the system and the about their systems.
Deployment View depicts those processes on
physical nodes in which they execute.
The Logical and Implementation views (the rEal World scENarIos
build-time views) are vital to developers and are
typically understood on most successful software This section presents experiences from actual
projects. However, the Process and Deployment systems that reveal the pain and cost of deploy-
views (the run-time views) are not as well con- ing highly configurable systems based on com-
sidered on most projects. In fact, many projects ponents.
do not properly consider deployment aspects
of the Implementation view. Figure 3 shows an Hidden dependencies
example deployment view of Component Ob-
jects at execution time for the database example Hidden dependencies are a large problem in
discussed earlier. understanding and deploying systems. Some
With the proper performance and quality motivational examples were presented in the
characteristics, Deployment Diagrams can help previous section. In this section we elaborate on
deployment and operations teams make informed types of hidden dependencies and present real
decisions regarding the installation and configura- world scenarios.
Component-Based Deployment for Web Applications
Component-Based Deployment for Web Applications
but typically not responsible for its operation with to Cauchos Resin processor to speed rendering
other applications. It is not until the deployment requests. By leveraging the TraX API, the software
team configures the system for a particular site was able to incorporate this change transparently
that these problems are typically revealed, then to developers. Some performance enhancements
resolved with a little duct tape and glue. were mentioned in the release notes, but there
Another common example of versioning were no interface changes at the programmatic
components is found in HTML for browsers. level. The system built and functional unit tests
Developers and testers must consider the different passed. However, the system and scalability
types and different versions of browsers found tests failed. Several days of analysis showed the
in their user base. Browser variants can differ internal implementation of the XSLT processor
dramatically with variants in HTML, different improved its performance by holding references
Javascript language support, supported plugins. to stateful internal buffers. While caching these
The problem is compounded when considering buffers improved performance, it caused dramatic
the variable WAP devices and their different changes to the resource consumption profile for
form factors. the component in terms of memory and CPU
utilization.
plug-n-playplug-n-poof
While the idea of plug-n-play components
One of the major benefits touted by the compo- is attractive, it is not enough for a component to
nent community is the ability to drop in alternate conform to a standard interface. Deployers must
implementations of a component transparently understand how the run-time characteristics of
to the rest of the system. The ability to provide alternative components affect the overall behavior
an alternate implementation, the argument goes, of the system. Compile-time interfaces provide
allows for greater deployment flexibility leading encapsulation, but at run-time the entire set of
to easier maintenance, localization of error, best- components deployed to a node must compete
of-breed economies for components, and so on. for the same set of resources. In other words, the
However, experience has found components can resource consumption characteristics of compo-
rarely be interchanged in a production system nents should not be encapsulated, because the
without potentially serious consequences. In this resources consumed are not encapsulated, but
section we examine how things can go awry. instead shared across all of the components of
the system.
Dynamic Component Assembly
Binding to Non-Standard Interfaces
Dynamic component assembly at run-time is con-
sidered a huge win, and significant effort is being Component vendors provide value-added services
spent in the component community constructing as a means to draw customers to use their compo-
formalisms and methodologies for assembly. The nents. These services include robust toolsets (such
existence of well-defined interfaces and configu- as IDE integration), well-written documentation,
ration and wiring standards supposedly allows and the inclusion of unit test suites. One common
for the plug in plug-n-play. form of value-add service is to include additional
APIs outside the APIs defined for a component
A content delivery system included a particular standard. Customers who use these APIs are (often
version of the open source XSLT processor Xalan. unwittingly) tied to the vendor implementation,
The next deployment included an XSLT upgrade
0
Component-Based Deployment for Web Applications
and their software will no longer port to alterna- alternative implementations may be introduced
tive component implementations. without rebuilding and retesting the software
across all possible configurations, introducing
In an open source enterprise portal, the 2.0 costs instead of saving time and money.
implementation had a compile-time dependence
on Xerces XML parsing APIs, so when an alterna- Component Quality of Service
tive parser was introduced, the system would not
build. The problem was identified and rectified in A final variant on plug-n-play situations occurs
the next version of the portal, but demonstrates when the semantics of the component implemen-
that software development with a component- tation deviate from expected semantics, yet there
based philosophy must be built against alternative is no mechanism for expressing the different
component implementations to ensure tight cou- behavior.
pling to specific extensions has not occurred.
A Web application used Oracle for its data-
The preceding example is common and base server and was being ported to SQL Server.
troublesome, but the bright side is that such issues The application would occasionally deadlock
can be addressed during development as they are when trying to perform database writes. Analy-
compile-time issues. More serious issues occur sis showed the developers assumed row-level
downstream during test and deployment if alter- database locking when accessing objects, yet
native component implementations are provided the version of SQL Server being used provided
that build with the rest of the system, but throw page-level locking.
run-time errors when certain functionalities are
not supported. Certainly, when testing against the SQL Server
database such situations should be uncovered, but
Early versions of the Postgres and JTDS SQL how will they be addressed? If they are addressed
Server JDBC drivers threw MethodNotSupport- by rewriting sections of application code to avoid
edExceptions for unsupported JDBC 2.0 standard deadlocks, then in fact we have again violated
APIs. Although JDBC 2.0 provides methods to the plug-n-play principle by forcing changes in
check for the support of various features, it is an application component to deal with the level
difficult to programmatically check and provide of service provided by the database component.
alternative implementations at a method level Furthermore, there is no standard mechanism
for each interface that is used, and there is no by which one can express this assumption; it is
guarantee that even if you do so you will prevent merely understood by developers and imple-
all possible exception scenarios. So developers menters alike. It is possible that Ontology-based
using these incomplete database drivers would approaches (for example, the KAON project
not reveal their problem until run-time. Hopefully (Oberle, Eberhart, Staab, & Volz, 2004)) might
developer unit tests catch these problems, but address this problem, but these solutions have not
some may be missed and are hopefully revealed made it from the lab to the market yet.
in more formal system testing. The plug-n-play scenarios in this section are
certainly preventable, but not without additional
Vendors need to provide value-added services effort spent on testing various configurations that
that may take the form of standard API extensions include alternative component implementations.
or partial implementation of API standards. The is- It is also counter to a culture that grabs the latest
sue this causes for deployers is an uncertainty that
Component-Based Deployment for Web Applications
open source implementation without stressing requirements occur with the system in operation,
conformance and compliance processes. not in keeping the system operating. Second,
the cost of deployment is expensive if it requires
missed requirements for operations developers on site to provide assistance. Finally,
scripts are a better, more reliable, duct tape and
Poor planning and requirements also lead to run- glue than people.
time duct tape and glue. While many requirements
address the systems functionality and behavior,
requirements on the support and operation of the BusINEss ImpacTs
running system are often late or incomplete if
they are even considered. The previous section related experiences with the
immaturity of deployment technology; unfortu-
Despite years in planning and development, nately this immaturity dwarfs in comparison to
a large, global telecommunications system did the understanding of the full range of business
not have an automated strategy for periodically impacts in this area. This is a large area in which
uploading required routing data to its distributed the community has very little understanding.
nodes. The interim solution was to manually
transfer generated files to the proper nodes scat- lifecycle model Improvements
tered around the world until the system had an
automated method for getting the proper data onto Software process models should be revisited to
the proper nodes. Surprisingly this task, which provide more support for back-end, post-devel-
kept the entire communication system function- opment activities. The community needs to raise
ing, was completely manual. Instead of scripts, deployment to the level of a first class process
operators manually uploaded data files via ftp on phase. While most software methodologies have a
a daily basis. Even more surprising, the operators deployment activity or phase, their major activities
did not have an appreciation for the activitys and discussions center on the ones close to devel-
importance; that failure to upload the files by a opment. The inclusion of deployment is almost
specific time, loading the wrong file on the wrong a token to show completeness. For example, the
node, or an error in the files transmission would rational unified process (RUP) defines workflows
cause a catastrophic system failure. Fortunately for requirements, analysis, design, implementa-
the manual process was quickly replaced. After tion, test, and deployment. (Jacobson, Booch,
the system went live, developers were kept on at & Rumbaugh, 1999) devotes an entire chapter to
the deployment site and one of them who knew every workflow in the Rational Unified Process,
the possible ramifications recognized the risks except deployment.
with the current process. Scripts were created In addition, the information and the respec-
to automate the process and check the uploaded tive representation advocated by process models
files for errors. in the deployment area also need to be revisited,
particularly as they relate to components. The
Situations such as these provide several impor- UML provides notation support with Component
tant lessons. First, deployment requirements are Diagrams and Deployment Diagrams, but that
typically not sufficiently expressed even in large information is not semantically rich enough to ad-
complex systems with significant deployment dress the problems characterized here. While work
responsibilities. Operational requirements are in the area of component quality of service and
easy to overlook since most of the interesting contracts will help, components need to provide
Component-Based Deployment for Web Applications
more deployment information through metadata job roles. Both are vital to their systems success.
similar to J2EE Deployment Descriptors. Ad- However the cost of an experienced, graduate
ditional work in component metadata facilities degreed developer is significantly more than the
(JSR-175, 2003), languages, and additional qual- traditional operator.
ity attributes for deployment will lead to better Universities need to address these gaps. There
processes and tools. is some understanding of the skill sets required,
The scripts, tools, and hacks described above but these need to make their way in to university
are vital to deployment organizations and to the curricula. Furthermore, the curricular tracks,
success of many products. However, process even when present, are too separated; a more in-
models do not discuss them as a formal activity. tegrated form of learning experience is required.
Consequently, they are typically created outside For example, students may receive a Bachelors
the scope of the planned product lifecycle. These degree in Computer Science, Information Systems
activities need to be raised to first class status (CIS/MIS), or Information Technology, but dif-
and considered a business asset. They should be ferent academic units in different colleges within
managed projects with a formal requirements the university typically deliver these. While an
activity, regular release cycle, and supporting MIS student may be asked to take a program-
documentation. ming course or two, this does not expose them
to how scalable enterprise Web applications are
Economics constructed, nor does it truly expose them to
working in teams with their future software engi-
Research into the cost models for component- neering counterparts. Interdisciplinary study and
based systems remains open. While many tout integrated hands-on learning experiences must
the cost benefits of CBSE, practical experiences be provided in university programs.
show increased pain and expense on the backend
likely not considered before now. While it would Better understanding of product
be foolish to move back to monolithic systems, scope
those expressing the benefits of components are not
considering all the costs. What does the intersec- Lack of planning is perhaps the largest reason
tion of application types, deployment scenarios, we experience pain and expense deploying
and business models tell us about the complete component-based systems. While the 4+1 Ar-
lifecycle costs of CBSE? Are there more factors chitecture Model (Krutchen, 1995) advocates
that help determine the costs? Can some of the scenarios in all four views, few systems have
risk be mitigated and if so, how? formal requirements around deployment and
CBSE has also changed the nature of deploy- operational scenarios. Most requirements and
ment and operations, requiring more sophisticated analysis activities focus primarily on functional
skill sets and training for those positions. Not long requirements and secondarily on non-functional
ago operators were strong system administrators requirements. Requirements are commonly
with networking and scripting skills. Component evaluated using the FURPS framework (Grady
based systems have become so complex that we & Caswell, 1987)functionality, usability, reli-
now find traditionally trained software devel- ability, performance, and supportability. The
opers deploying and monitoring the health of supportability requirements discussed here are
these systems. Now we commonly see workers typically very limited, non-existent, or discovered
with M.S. degrees in Computer Science with too late in the process to properly address before
significant development experience filling these deployment. Developers can only plan and design
for known requirements.
Component-Based Deployment for Web Applications
The business side of a software product or- of license variants today makes attempting to
ganization needs to understand and commit to combine off-the-shelf components into a solution
a component strategy suitable to their market. a harrowing experience.
If platform X and database Y are on the product
roadmap, then developers and testers exercise
those component combinations on every release. dIscussIoN aNd opEN
The engineering side has the obligation to commu- dIrEcTIoNs
nicate the cost of supporting those combinations
so the business organization can decide where Insufficient attention has been paid to compo-
they belong on the product roadmap and how to nent-based deployment and post-deployment
charge for them. A salesperson the committing to processes. We are not alone in this belief. Recent
the product running on some other platform with symposia and workshops include tracks dedicated
some other database in a short timeframe unwit- to these issues (including Component Deployment
tingly commits the organization to a component 2002, 2004, and 2005, ICSE Workshop on CBSE
deployment it cannot support. 2003, 9th IEEE Conference on Engineering of
The organizational commitment to a compo- Computer-based Systems 2002). While certainly
nent roadmap extends to licensing issues as well. welcome, more discussion is given to architecture
An organization must perform due diligence to description languages (ADLs), dynamic compo-
ensure the acquired component may be used in nent assembly, and QoS/resource optimization
the ways the providers licensing model allows. than to the tangible pain of application support
Licensing models may provide unanticipated teams. When deployment is discussed, the fo-
constraints, such as pricing by CPU versus pric- cus is on specific techniques in transitioning
ing by concurrent requests versus pricing over architectures into deployed systems, and not on
an aggregate load on the Web application in a a comprehensive discussion of the full range of
given timeframe (daily, monthly, etc.). These issues facing application support teams.
constraints may be difficult to understand, add This is not to say that there is no discussion in
complexity to a deployment architecture, and academic and industry research. Crnkovic (2003)
lead to unpleasant cost surprises, particularly in presents an overview of CBSE and includes a dis-
hosted environments. Open source components cussion on deployment issues, though not quite at
add another dimension to these constraints. the same playing field as more evolutionary issues
Open source components may suffer from poor such as component maintenance. Van Ommering
understanding of the license and specialized (2001) describes four aspects of independent
variants of standard licensing models. There is deployment, yet these aspects really map to an
a significant difference in intellectual property orderly description of versioning issues between
and commercialization of software distributed components across the full component lifecycle.
under the GNU public license (GPL), lesser GPL Weyuker (1998) also tackles a specific dimen-
(LGPL), and BSD style licenses. Newer dual- sion of the component problem, noting as long
licensing models, such as the MySQL and PHP as a decade ago that testing component-based
licenses, attempt to promote open source while systems may lead to additional complexity and
at the same time protecting commercial interests, cost. Hoffmann & Neubauer (2005) acknowledge
but may inadvertently make it more difficult for that to discuss practical component-based systems
adopters to understand how the solutions may be today requires considering platform-specific
repackaged. While the community is fond of the technologies, and compares platform-indepen-
colloquial open source term, the proliferation dent technologies eODL, UML 2.0, and OMGs
Component-Based Deployment for Web Applications
Deployment and Configuration (DnC) configura- determine where each component or collocation
tion (2003 version). Lau & Ukis (2006) identify is to be placed (p. 6-68). No recommendations
that too few discussions focus on binding binary on how such as decision is made are provided.
components in the deployment phase. The deployment and configuration specification
Perhaps the most comprehensive academic (OMG 2006) addresses this gap by taking making
study of component deployment issues is provided the usual platform independent model (PIM) and
by (Carzaniga, Fuggetta, Hall, Heimbigner, van platform specific model (PSM) mappings, and
der Hoek, & Wolf, 1998). Although dated, this defining a UML Profile with specific actors for
group walks the reader through a complete treat- executing the process. While this abstract model is
ment of deployment from the process perspective useful for tool developers, it is not directly useful
and presents a range of challenges for component for application support people.
deployment that exist still today. They then sug- Vendors do not necessarily facilitate emerg-
gest a taxonomy for framing the set of technolo- ing standards in this area as well. They are aware
gies related to this area. This is presented almost that open, standard deployment environments
exclusively from a process perspective, which is may sacrifice some value-added capabilities in
a useful viewpoint, but does not provide a neat their tools. Application support managers, whose
conceptual mapping for the set of related method- purchasing power typically falls under the IT divi-
ologies (such as ADLs, notations like UML, etc.). sion of an organization (instead of the engineer-
However, to date this is the most comprehensive ing division) will make buy or no-buy decisions
treatment, and yet it is a technical report nearly based on the robustness of tools for supporting
a decade old! deployment and post-deployment processes. So
Industry standard component models while standards exist for developers in technology
such as Javas J2EE model (JCP 2002) and the platforms such as J2EE and CORBA, the usability
CORBA Component Model (CCM 2002) provide of tools provided by vendors varies widely and
deployment configuration specifications. The may facilitate proprietary extensions.
J2EE component model identifies the roles of Unfortunately, the real answers to how scope
Application Component Provider, Application and importance in these issues are not within
Assembler, and Deployer, but does not include our grasp today. Further research must be done,
in the model an expression of meta-information not just on specific tools and experiences, but
for determining how to arrange components. on broader and more ambitious agendas that
Deployment descriptors provide a description of define the problem, the range of solutions, and
a deployed environment, but are not the means to the economic impact of these downstream activi-
get there. An assumption is made that tools will ties on the health of web-based application and
be available to each role to facilitate the process; system providers. Here are some directions for
but again it is not clear how the tools would assist the community:
in decision making.
The CORBA Component Model specifica- Common process models: RUPs 4+1
tion (OMG 2002) suffers from the same gap. architecture model is a start, but merely
Component assembly and deployment on various implies a use case driven process where one
host environments is described in the specifica- evolves from logical to physical (or concrete)
tion, including a discussion of the participants in deployment models. A more explicit and
deployment process. But a sample deployment comprehensive consideration of process
scenario starts by assuming The deployment models, such as that given in (Carzaniga,
application has a conversation with the user to
Component-Based Deployment for Web Applications
Fuggetta, Hall, Heimbigner, van der Hoek In this chapter we have attempted to energize
& Wolf 1998), is needed. the community around the practical issues of
Common terminology: A common vocabu- deployment of component-based systems. We
lary for deployment is required. Too often believe this area is undernourished and is fertile
narrowly defined problems such as version- ground for the development of models, tools, and
ing or component assembly are described in methods for both academia and industry. We
general deployment terminology. have presented motivating scenarios based on
Formal definitions of languages and our practical experience in industry, and outlined
models:Liu & Smith(2006) have broken some research issues to follow. A survey of the
new ground with an attempt to formally community shows that others are also beginning to
characterize software deployment processes address the issues, but much more work is needed
and constraints. This work is fresh in the for us to both understand the problem space and
sense is deals with deployment directly, in- recommend solutions.
stead of through an extension to an existing
notation such as UML or an ADL. While
extensions to such languages may eventually rEfErENcEs
be folded in, the direct formal representation
of deployment processes will help mature Carzaniga, A., Fuggetta, A., Hall, R., Heimbig-
understanding of the field. ner, D., van der Hoek, A., & Wolf, A. (1998). A
Deployment evaluation: Extensions to characterization framework for software deploy-
architecture evaluation techniques to ac- ment technologies (Tech. Rep. CU-CS-857-98).
count for deployment Quality attributes Boulder, CO: University of Colorado, Department
identifying and quantifying deployment of Computer Science.
characteristics could have the same impact
Cheesman, J. & Daniels, J. (2002). UML
on deployment as quality attributes for
components: A simple process for specifying
software architectures have had for systems
component-based software. Reading, MA: Ad-
design.
dison-Wesley.
Economic impact models: There is a need
to model downstream costs versus upstream Crnkovic, I. (2003). Component-based software
benefits.This model should incorporate cost engineering New challenges in software devel-
models, licensing models, risk assessments, opment. Paper presented at the 25th International
and organizational impacts. Data is needed to Conference on Information Technology Inter-
shed light on just how expensive this problem faces. Cavtat, Croatia.
is, where the greatest pain lies, and uncover
Grady, R. & Caswell, D.L. (1987). Software
cause-and-effect between upstream design
metrics: Establishing a company-wide program.
activities versus downstream deployment
Upper Saddle River, NJ: Prentice-Hall.
and post-deployment activities.The impacts
on the full range of business activities must Hoffman, A., & Neubauer, B. (2004). Deploy-
be considered. ment and configuration of distributed systems.
Better education and training: Univer- Paper presented at the 4th International SDL and
sities need to respond to the challenge to MSCWorkshop. Ottawa, Canada.
teach students that a software system is not
Jacobson, I., Booch, G. & Rumbaugh, J. (1999).
complete if it cannot be reliably deployed
The unified software development process. Read-
and re-deployed.
ing MA: Addison-Wesley.
Component-Based Deployment for Web Applications
Krutchen, P. (1995). The 4+1 View Model of Oberle, D., Eberhart, A., Staab, S., & Volz, R.
software architecture. IEEE Computer, 12(6), (2004). Developing and managing software com-
42-50. ponents in an ontology-based application server. In
Proceedings of the 5th International Middleware
Java Community Process (2002). JSR 88: Java EETM
Chapter VIII
Evolving Web Application
Architectures:
From Model 2 to Web 2
David Parsons
Massey University, New Zealand
aBsTracT
This chapter explores how Web application software architecture has evolved from the simple begin-
nings of static content, through dynamic content, to adaptive content and the integrated client-server
technologies of the Web 2.0. It reviews how various technologies and standards have developed in a
repeating cycle of innovation, which tends to fragment the Web environment, followed by standardisation,
which enables the wider reach of new technologies. It examines the impact of the Web 2.0, XML, Ajax
and mobile Web clients on Web application architectures, and how server side processes can support
increasingly rich, diverse and interactive clients. It provides an overview of a server-side Java-based
architecture for contemporary Web applications that demonstrates some of the key concepts under dis-
cussion. By outlining the various forces that influence architectural decisions, this chapter should help
developers to take advantage of the potential of innovative technologies without sacrificing the broad
reach of standards based development.
Copyright 2008, IGI Global, distributing in print or electronic forms without written permission of IGI Global is prohibited.
Evolving Web Application Architectures
The cycle of innovation that saw the change may converge into new approaches. Illustrative
from static to dynamic content in the mid 1990s examples are provided using the Java Enterprise
has continued unabated. The post dot com era Edition and supporting open source tools.
has seen Web application design move into a
number of new areas. On the one hand we see a
rapid evolution of the Web client into the mobile, THE WEB fraGmENTaTIoN cyclE
cross-platform space, with mobile browser-hosted
technologies such as XHTML-MP (extensible One of the characteristics of the evolution of the
hypertext markup languagemobile profile, the Web is what we might term the Web fragmenta-
standard mark-up promoted by the Open Mobile tion cycle, which is the effect of technology driven
Alliance, a consortium of commercial interests in change in two conflicting directions. On the one
the mobile communications industry), and micro hand, we have seen that a particular Web technol-
browsers like Opera Mobile that run on top of a ogy, for example a particular type of browser or
Java Micro Edition environment. On the other server side application, can drive Web evolution
hand we see a change on the server side from the using features specific to that technology. An
walled garden Web application, providing only early example of this was the introduction into
content from a single source, to open Service-Ori- Netscape Navigator of HTML tags for presenta-
ented Architectures that enable disparate services tion (Lie & Bos, 1999). Netscapes development
from many sources to be integrated by exchanging of LiveScript (later JavaScript), and Microsofts
data using the extensible markup language (XML). introduction of the XMLHttpRequest into Outlook
On both client and server we see service driven Web Access (Van Eaton, 2005) can also be seen
mashups (re-used, intermingled services) and the in this light. On the other hand we see prolifera-
programmable Web, aspects sometimes associ- tion of Web access tools that increase the reach
ated with the umbrella term the Web 2.0. These of the Web across many different types of client.
changes raise questions about the future of the One example of this was the consortium of mobile
Web application, for example, can we realistically phone network operators that joined in the WAP
consider both a rich client and a mobile applica- (wireless access protocol) Forum in the late 1990s
tion that will work across many different types to enable Web access via a wide range of mobile
of device? How do extensible markup language devices by introducing the WAP browser and the
(XML) based technologies like Web services and wireless markup language (WML).
XSLT (extensible stylesheet language transfor- The effect of technology specific innovation
mations) fit in to Web application architecture? is to narrow the accessibility of Web content
How will the Web client evolve with the increas- to those who have the appropriate technology.
ing use of browser hosted applications and Ajax While these innovations may increase qualities
(Asynchronous JavaScript and XML)? Much of such as usability and functionality for some,
the discussion around the Web 2.0 focuses on the they will exclude those who do not have the right
social networking aspects of Web based applica- technology. In contrast, the effect of wider reach
tions, but there is an equally important discussion is to encourage generic technologies for Web
to be had about the underlying architectures and access that enable more types of client to access
technologies of applications in the Web 2.0 era. Web-based content, while potentially decreasing
In this chapter we try to address some questions usability and functionality due to the need to run
about how Web application architecture contin- on a lowest common denominator platform. The
ues to evolve, what forces come into play, and resolution to this dichotomy has traditionally
how apparently conflicting paths of development been the introduction of standards on a post hoc
Evolving Web Application Architectures
W eb Status Quo
Proprietary I nnovation
Increasing R each
in One T ool
Post H oc S tandards
basis, which set an industry-wide benchmark that platform, language independent view of how a
most products will ultimately comply with. These document should be accessed and manipulated,
standards enable the fragmentation caused by in- but was partly based on the concept of the level
novation to be (at least partially and temporarily) 0 DOM, which was the de facto standard al-
resolved by integrating propriety innovation into ready implemented in the browsers of the time.
a common Web technology platform (Figure 1). Similarly, at around the same time, the HTML
Once proprietary innovations have been integrated specification, including its many contradictions
into a common standard, those technologies enjoy and lack of well-formedness, was engineered from
broader implementation and wider reach, and the innovations already established by browsers in
Web status quo moves forward. common use. While the fragmentary, proprietary
views of the DOM and HTML were emerging,
Identifying the Web fragmentation others were attempting to maintain the original
cycle in practice concepts of separation of structure, content and
presentation that were originally intended for
Of course the fragmentation cycle shown in Web-based documents, for example, by promoting
Figure 1 is an over-simplification, since there are the standardisation and use of style sheets (Lie
many overlapping cycles related to different Web & Bos, 1999). Over a series of standardisation
application technologies. Therefore the concept cycles, that concept has gradually been reasserted,
of the Web status quo is somewhat misleading, with the development of the extensible hypertext
since there is never a stable point from which we markup language (XHTML) and cascading style
embark on a new cycle. However it is possible to sheets (CSS). Unlike HTML, XHTML does not
identify specific instances of this cycle at vari- allow the arbitrary mixing of content, structure
ous points in time and identify the two aspects and presentation, delegating presentation and, to
of innovation and reach. One such example was some extent, structural management of Web page
the level 1 document object model (DOM), which content (written in XHTML) to external style
was designed to introduce a standard, cross sheets (written in CSS).
0
Evolving Web Application Architectures
U se r In te rfa ce
X M L D a ta
Evolving Web Application Architectures
by Garrett are not the only way to provide one- page (if there are errors) or the next logical page
page applications on the Web, since alternative in the business process. In contrast an Ajax ap-
technologies like Flash can be used to similar proach might be to trigger a local Ajax function
effect. by an event such as a button being pressed (or
As a simple example of how Ajax might be tabbing fields, or keys being pressed) rather than
applied, we might consider how it could be used submitting a form to a server side URI.
to manage the submission of login data from a
Web page. In the usual client server interaction, <input name="submit type="button"
an HTML form will submit data to the server us- onclick="ajaxLogin();" value=Submit" />
ing a standard action that posts the data to a URI.
JavaScript may perform some surface validation The local Ajax function will use an XML-
on the client (e.g., checking for empty fields or HttpRequest to communicate asynchronously
password length), but true validation (checking with the server, and trigger a function that pro-
the users ID and password against the security cesses the return value and interacts with the
domain) is done after the page is submitted to current page to update it appropriately.
the server. Here for example an HTML form
tag submits to a server side URI after invoking
a local validation function xhrequest = getXMLHttpRequest();
<form action="/processlogin" method="post " xhrequest.onreadystatechange = processLogin;
onsubmit="return validateLoginData(this);"> xhrequest.open("post", url, true);
xhrequest.send(null);
The server response will then be to generate
a different client page, either a regenerated login
Figure 3. Standard multi-page processing compared with the Ajax one page approach
S ta n d a rd M u lti-P a g e D e sig n
W eb P age
S e rve r s id e w e b
L o g in fo rm W eb P age
a p p lica tio n
A ja x O n e P a g e D e sig n
W eb P age
L o g in fo rm
A ja x F u n ctio n S e rve r s id e w e b
a p p lica tio n
Evolving Web Application Architectures
Evolving Web Application Architectures
Specialised m obile
Ajax C ontent
content
D evice In dependent
R ich C ontent
</script>
</body>
</html>
Evolving Web Application Architectures
Innovations That do Not Become cycle that sees a clean merging of innovations and
standards standards will not always apply.
Evolving Web Application Architectures
Listing 2. An example of the Template View pattern using a JavaServer Page and the JSTL
<?xml version=".0"?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:c="http://java.sun.com/jsp/jstl/core"
doctype-public="-//WC//DTD XHTML .//EN"
doctype-system=" http://www.w.org/TR/xhtml/DTD/xhtml.dtd "
version=".">
Model 2 architecture (Seshadri, 1999). Here, a (2003) characterises this as the Template View ap-
server side component at the controller layer, the proach to page generation, where the server page
Front Controller (Fowler, 2003), is responsible for provides the presentation template and dynamic
interpreting client requests, delegating to other content is inserted into it at predefined locations,
server side components in the model layer to preferably using XHTML compliant tags. The
provide the necessary data objects, and ensuring code example in Listing 2 shows a JSP that uses
that the thread of control is ultimately forwarded the template view approach. It is a document in
to a component suitable for rendering the client XML format that contains a combination of stan-
response. This component is usually a server dard mark-up tags, using XHTML (the template,
page, which is able to embed dynamic content into highlighted in bold text), and other tags, specific
presentational markup using special tags. Fowler to the Java server side environment, that generate
Evolving Web Application Architectures
Figure 5. The Web 1.0 application architecture, based on the Model 2 and Template View patterns
Front Controller
1 re q u e st Data Access Object
2 U p d a te / q u e ry
O b je ct M o de l
Co m m a n d
S e rvle t DTO O /R D A O
O b jects
3 SQL
5 re sp o n se 4 co n te n t
Model 2 S e rve r P a g e
Tag
L ib ra ry
Template View Data Transfer Object D atabas e
dynamic content. These tags are a combination Content is returned in DTOs that can be processed
of standard JSP tags (jsp:root, jsp:useBean, by the object model layer and/or embedded into
jsp:getProperty) and the if tag from the JSP server page components using tag libraries (4).
Standard Tag Library (JSTL). These server page components can then gener-
Behind the view/controller layer, the map- ate a dynamic response (5). In traditional Web
ping between the data store and the model is the applications, that response has typically been in
responsibility of data access objects (DAOs) that the form of HTML.
interact with the higher levels of the system via
data transfer objects (DTOs) (Alur et al., 2003). In The xml Transformation model
most real world cases the data store is a relational
database, requiring some object relational (O/R) More recently, XML (extensible markup language)
mapping, enabling the structured query language based technologies have become popular in Web
(SQL) to be used to read and write persistent data. application architectures, in no small part due to
The DTO components that encapsulate updates or the limitations of HTML, which is purely a page
query results can be embedded into server pages mark-up syntax and cannot be used to represent
using appropriate tag libraries. data at any level of abstraction, whereas XML can
Figure 5 illustrates the basic Web 1.0 archi- be used to represent semi-structured data that is
tecture. Initial routing of all hypertext transfer not restricted to page mark-up (Abiteboul, Bun-
protocol (HTTP) requests from Web clients is eman, & Suciu, 2000). Certain principles underlie
handled by the front controller component that the use of XML in a Web application. Its role is
receives all the requests, parses their parameters essentially to provide services that cannot be sup-
and delegates to the appropriate object model layer ported using more traditional approaches to Web
components via command objects (1). There are a applications based on representing content directly
number of frameworks that encapsulate this design in HTML. There are four broad categories where
pattern, including Struts and JavaServer Faces. In XML provides such services (Bosak, 1997):
both cases, the front controller component is a Java
servlet. Any interaction between the model and Applications that require the Web client to
persistent data is done via the DAO/DTO layer (2), mediate between two or more heterogeneous
which interacts with the underlying data store (3). databases;
Evolving Web Application Architectures
Figure 6. The Transform View pattern, where a source document is transformed into a client page using
an XSL Transformation
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" From XML
href="transform2.xsl"?>
<policy-claims>
<company-domain>
http://www.WebHomeCover.com
</company-domain> Via XSLT
<contents-image>
contents.gif
</contents-image>
<?xml version="1.0"?>
<buildings-image>
<xsl:stylesheet version="1.0"
buildings.gif
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
</buildings-image>
<xsl:output method="xml"
<policy type="contents">
doctype-public="-//W3C//DTD XHTML 1.1//EN"
<policy-holder>A. Liu</policy-holder>
doctype-system="
<claims>
http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd "/>
<claim>
<xsl:template match="/">
<year>2002</year>
<html xmlns="http://www.w3.org/1999/xhtml"
<details>Stolen TV</details>
xml:lang="en">
</claim>
<head>
</claims>
<title>Insurance Claims</title>
</policy>
Etc </head>
<body>
<h1>Claimants and policy types</h1>
<xsl:for-each select="policy-claims/policy">
<p class="{@type}">
<?xml version="1.0"?>
Name: <xsl:value-of select="policy-holder"/>
<!DOCTYPE html<xsl:choose>
PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
etc
<html xmlns="http://www.w3.org/1999/xhtml"
xml:lang="en">
<head>
<title>Insurance Claims</title>
</head>
<body>
<h1>Claimants and policy types</h1>
<p class="contents">
Name: A. Liu
<img src="contents.gif" alt="contents"/>
To
</p> XHTML
etc
Evolving Web Application Architectures
template, the XML based model requires some perform the dynamic transformation. In contrast,
kind of transformation to take place from data, a transformation executed on the server can be
taken from some source and represented by XML, applied dynamically and reliably, independent
into mark-up that can be interpreted by the client. of the client. Listing 3 shows an example of how
Fowler (2003) characterises this approach as the such transformations can be executed on the server
Transform View model where, instead of using a using tags from the JSP Standard Tag Library.
server page to embed object model components Specifically, the transform tag from the JSTL
into a page template, an extensible stylesheet XML library applies an XSL transformation style
language (XSL) processor is needed to transform sheet to an XML document.
an XML document into a generated client page. A simplified visualisation of the distinction
In order to make this transformation, the XSL between the template and transform approaches
processor applies an XSL transformation (XSLT) in shown in Figure 7. In the template view, the
stylesheet that defines how the input document is server page integrates components from the object
to be transformed. model into a mark-up based template. The page
Figure 6 shows how an XML document is template is embedded in the server page itself.
transformed by an XSL Transformation into an In the transform approach the XSL processor
XHTML client page. This transformation can integrates elements from XML documents into
take place either on the client or the server, de- a mark-up based transformation, with the page
pending on whether the client is able to process template embedded in the transformation style
the transformation (most desk top browsers are sheet. If the transformation is performed on the
able to do this). server, the server page simply triggers the trans-
The main problem with executing transfor- formation process.
mations on the client, even assuming the client
is able to perform those transformations, is that xml in Web applications
they will provide static content, since the assign-
ment of the transforming style sheet will be hard Bosaks (1997) four roles of XML can be sup-
coded into the XML document. Alternatively, ported in various ways by the transform model.
we would have to rely on the client providing Mediation between heterogeneous databases can
the necessary scripting and DOM support to be seen from more than one perspective. In some
Listing 3. The Transform View pattern implemented on the server using the JSP Standard Tag Library
<?xml version=".0"?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:x="http://java.sun.com/jsp/jstl/xml"
version=".0">
<jsp:directive.page contentType="text/html"/>
<jsp:output omit-xml-declaration="true" />
</jsp:root>
Evolving Web Application Architectures
Server Page
D ata Source Object Model Eng ine C lient Page
View
cases, XML Web services can be used to integrate There are various ways that XML can be
the various data sources of a single organisation used to offload some of the processing from
or collaborating group of organisations. In this the server to the client, but again some aspect
sense XML can be seen as the natural succes- of transformation is essential. XML documents
sor to more traditional forms of electronic data provide a presentation neutral way of represent-
interchange (EDI). In other cases, such as those ing the underlying content of an application, but
included in the patterns of the Web 2.0, there is the typical role of the Web client is to render that
the concept of specialised databases being the core data in an appropriate way. Tools for this type
item of value in a system, with the opportunity of transformation, such as XSLT, are therefore
to reuse these databases in new combinations of an essential component of an XML-centric Web
services. In this type of scenario the databases application architecture. This is what underlies
in question may be distributed over a wide range the concept of the transform model, since XSLT
of providers, with no formal relationship or set is able to express how one XML document may
of contracts between them. Here, the XML Web be transformed into another document, which
services are in the public domain. From any of may be XML or may use a different syntax such
these perspectives, raw XML data may be the as XHTML. The way that processing can be
way of communicating between systems, but offloaded from the server to the client ranges in
transformations are necessary to apply queries sophistication from the simple separation of XML
or filters to the data and transform it to meet the data, XSL transformations and CSS (cascading
specific requirements of a client system. style sheets, used to style the presentation of a
document) to Ajax applications. In the former case,
0
Evolving Web Application Architectures
we rely on the ability of the browser to download, aspect of XML is what supports the concept of the
cache, and process by transformation and styling, semantic Web, enabling a greater degree of reflec-
XML documents. Since the same transformations tion about Web-based information sources on the
and style sheets can be used with multiple XML part of Web applications. Although discussion
documents from similar data sources (i.e., related of the Semantic Web is beyond the scope of this
but different queries across the same data source) chapter, XML and XML Schema are important
all that is required of the server is to send the foundation technologies that support the higher
XML documents to the client for processing. In level aspects of the Semantic Web technology
the latter case, various Ajax tools can be used to stack such as the resource description framework
develop rich client processes based on JavaScript (Hendler, 2001).
and asynchronous XML messaging. This is a
more complex approach, since instead of relying The limitations of the Transform
on the browsers native ability to process XSLT, model
we are relying on a JavaScript application to sup-
port client side processing and parsing of XML Whilst transformations, used directly, can have
documents. While it is possible to offload some certain advantages such as the ability to leverage
presentational style sheet processing to small the common abilities of browsers to perform XSL
devices using this kind of markup, not all mobile transformations on the client, on their own they
clients are able to manipulate XML documents have a number of drawbacks. First, the syntax of
using XSL Transformations or by using client the XSL transformation is complex, and can be
side scripting languages like JavaScript. However, difficult to maintain, particularly where the ap-
many small devices can support the use of Java ply-templates approach is used to transform the
Micro Edition to manipulate XML documents XML documents using pattern matching. Second,
on the client, using small footprint parsers such using a transformation directly cannot easily be
as kXML. Therefore an Ajax-style approach is integrated with other server side processes, even
possible even in the absence of JavaScript. if the transformations are actually executed on
Where it is not possible to offload the process- the server rather than the client. The advantage
ing necessary for XML transformations onto the of the XSLT approach is that a relatively small set
client, the server can take responsibility for en- of transformations can be used to manage a large
abling the Web client to present different views of number of XML documents in a Web applica-
the same data to different users. One of the useful tion. However they are not particularly flexible.
ways that we can apply XSL transformations of In contrast, using a tag-based template approach
XML data in a Web application is to provide dif- gives us a highly flexible way of integrating both
ferent transformations for different types of client mark-up and programmatic logic. Passani &
device. For example, the same content, represented Transatti (2002) argue that XSL Transformations
in XML, could be transformed into XHTML for are a very poor approach to providing adaptive
desktop browsers, wireless markup language mark-up for different devices, because they mean
(WML) for legacy mobile phones, XHTML-MP writing separate transforms for each type of cli-
for more recent mobile phone browsers, and so ent. In contrast, template based tools such as the
on. The same techniques can be use for person- wireless abstraction library (WALL) enable us
alisation or customisation of the content itself, to encapsulate different page generation behind
targeting the user as well as the device processing tags (Passani & Transatti, 2002). It is
Finally, agents can utilise XML because it possible, however to use parts of XSL combined
provides metadata about Web-based content. This with tags to gain the benefits of both approaches.
Evolving Web Application Architectures
Server Page
XM L D ocum ent XSL P rocessor C lient Page
Engine
Listing 4. Combining the Template View and Transform View approaches in a JSP
<?xml version=".0"?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:x="http://java.sun.com/jsp/jstl/xml"
version=".">
<jsp:directive.page contentType="text/html"/>
<jsp:output omit-xml-declaration="false"
doctype-root-element="html"
doctype-public="-//WC//DTD XHTML .//EN"
doctype-system="http://www.w.org/TR/xhtml/DTD/xhtml.dtd" />
</div>
</body>
</html>
</jsp:root>
Rather than transforming documents in a single template model. However the key is to combine
process, we can combine partial transformations both transformations and templates into a single
with template based mark-up. This can help us server page to ensure adequate performance. It
to gain the benefits of XML in Web applications is technically possible to generate a server page,
without losing the programmatic flexibility of the marked up using device adaptive tags, from
Evolving Web Application Architectures
a transformation, and then run that generated approach, but in the server page in the combined
page through the server page engine. However template/transform approach.
this two stage process can be very inefficient.
The alterative approach is to integrate partial
transforms, for example using XPath filters on WEB 2.0 GENEraTIoN
the XML data, within the same server page as applIcaTIoN arcHITEcTurE
the adaptive mark-up. This means a single pass
through the server page (Figure 8). In the previous sections we introduced some of the
The code extract in Listing 4 shows the basic architectural features of Web applications that may
principles of this approach. The template view use either template or transform approaches, or a
provides the main structure of the page and gener- combination of both. In this section we describe a
ates the XHTML tags that build the presentation. Web 2.0 generation architecture for adaptive Web
Within this page, however, XPath expressions are applications that leverages XML as a data repre-
applied to an XML document to insert dynamic sentation format within an adaptive architecture,
content. One of the main contrasts between the integrates service oriented aspects, and combines
transform and mixed template and transform ap- both template and transform elements. Perhaps the
proaches is that the responsibility for the XHTML most important feature of this architecture is the
mark-up is in the XSLT document in the transform introduction of an XML data layer that integrates
3a
E xte rn a l u rl E xte rn a l
w e b se rvice w e b se rvice
clie n t se rve r
XML
X M L D a ta L a ye r
1b W eb
re q u e st 6 b re sp o n se
se rvice
1 a re q u e st XML 2 3 b U p d a te / q u e ry
U p d a te / q u e ry
F ro n t C o n tro lle r O /X M L
DTO O /R D A O
XML
6a re sp o n se 5 4 SQL
co n te n t
O b je ct M o d e l
S e rve r P a g e
XHTML Tag
L ib ra ry
D atabas e
S tyle X S LT /
S tyle X S L P ro ce sso r
S heet XXPPa th
a th
S heet
Evolving Web Application Architectures
disparate data sinks and sources into a cohesive parts of a document. These XML path queries
XML management process at the same level as should be performed via a server page using tag
the object model. This enables a system to man- libraries that integrate both XML data retrieval
age requests and responses in a consistent way, and adaptive markup to ensure encapsulation and
regardless of whether the client request is for a reuse. Once the content is transformed it can be
Web service or presentation mark-up, and whether transferred to the device in the generated mark-up
our data sources are local databases or remote format for processing by the client. This may be a
Web services. An outline of the architecture and device oriented mark-up (6a) or a Web service (6b).
its core processes is shown in Figure 9. Of course many mobile devices can both process
In this architecture, client requests to a front mark-up and act as end points for Web services. It
controller component may come either from should be noted that services may take different
presentation oriented devices (1a) or external forms. For example, a server side component may
Web service clients (1b). The request is delegated provide XML messaging service for Ajax clients
to a joint XML data and object model layer (2). by using the mechanism described above, whereby
Depending on the requirements of the request, program components generate XML documents
queries delegated via the XML data layer may and stream these to JavaScript components on the
either retrieve XML content from one or more client. However Web services may take a more
external services running on other Web servers heavyweight form, using standards such as Web
(3a), generate XML content from a local database services description language (WSDL), simple
via suitable queries (3b) or perhaps combine object access protocol (SOAP) and universal
multiple data sources. Where content is based on description, discovery and integration (UDDI).
external Web services, content will already be in In this case, generation of XML from program-
XML format. Where content is held locally in a ming components will typically be done via tool
database that is not natively XML, some kind of support to generate the necessary XML docu-
transformation will be required between relational ments, stubs and skeletons to enable client/server
and XML data. Rather than implementing such a interoperability. The current generation of Java
direct transformation, which would provide only Web service tools are based on the Java API for
XML to the controller layer, it is probably wise XML Web services (JAX-WS).
to maintain the data transfer object (DTO) pat- This type of XML centric architecture has a
tern, but add XML generation capabilities to the number of benefits. First, we can gain reuse of
DTOs. This approach means that the DTOs can both external Web services and local components.
be used both as objects in their own right within Second, we can provide adaptivity that integrates
the object model of the underlying entities in both client device mark-up and Web service end-
the system and as sources of XML documents. points. From a business perspective it provides
A layer of object/relational data access objects maximum leverage of external services and APIs
(DAOs) is required to perform the translation while gaining maximum potential distribution
from relational data to object model and create across all possible client types. Encapsulation of
the XML generating DTOs (4). Multiple XML data access and transformation should provide
documents may be generated from a model that benefits in terms of maintainability and cost.
is created from a single database query, since For example, separating out concerns between
multiple object level queries can be used against XML, object models and the database, rather
any graph of DTOs. The XML content returned than directly generating XML from the database,
from the XML data layer (5) is transformed via can assist in the reuse of legacy data sources and
an XSL process utilizing XPath queries to build provide added security through additional layer-
Evolving Web Application Architectures
ing. In terms of the Web fragmentation cycle, the These beans provide both an object model to
architecture is based on common XML, Java and organise the requested set of data and a way of
SQL standards while integrating some aspects of generating XML documents from one or more
innovative Web 2.0 service based and cross-device beans. This is particularly useful where a client
architectures. page will include data from multiple tables that
have some kind of associative relationship, realised
Integrating Java and xml in the application as a related graph of objects.
Generating XML from JavaBeans can be done
So far we have introduced a number of features using frameworks or custom code. Geary (2001),
of Web application architecture relating to either for example, provides some guidance on how to
XML or Java, but indicated that a Web applica- implement JavaBeans that can generate XML. In
tion architecture need to be able to support data cases where the XML content encapsulates nested
objects that can convert to and from Java and elements from multiple domain components, the
XML. In this section we discuss some aspects of beans will form a composite pattern (Gamma et al.,
how Java and XML can be integrated, including 1995) with the composite objects organising sub
some standard tools. In a Java based architecture, elements and the leaf objects generating element
the O/XML DTOs should be based on the relevant content. Listing 5 shows a simple implementation
parts of the JavaBean specification that enable of this pattern, where the class that implements
them to be used via tag libraries in JSPs, and be the getXmlElement method (representing an
manipulated by the JSP Expression Language. insurance policy) is associated with a collection
Evolving Web Application Architectures
of Claim objects that generate their own XML This can be done manually using the Java API
content via a call to a polymorphic getXmlEle- for XML processing (JAXP) but is perhaps bet-
ment method. Each of these methods generates ter performed by tools like JAXB, particularly
a fragment of a larger XML document. since more recent versions of JAXB, unlike the
The link between the JavaBeans and the data- original implementation, can convert both from
base will depend on the nature of the database and XML to Java and from Java to XML. The partial
the transactional requirements of the persistence code example in Listing 6 shows how JAXB can
layer. In some cases a simple manual mapping be used to generate XML documents from Java
using JDBC may be adequate, but it is likely that objects via a Marshaller, in this case a collection
frameworks implementing standards such as the of Policies objects. The collection of Policies is
Java Persistence API will be required for indus- derived from an ObjectFactory class generated
trial strength persistence. How the JavaBeans by the JAXB framework.
interact with the XML layer will also depend on Once XML documents are generated from
the requirements of the application. As we have the JavaBeans layer, XML processing should
described, manual solutions are possible, but it be performed via JSPs using tags from libraries
may be more appropriate to use tools such as such as the JSP standard tag library (JSTL), which
the open source XMLBeans (Apache Software includes a dedicated sub-library for XML process-
Foundation, 2006) or Java XML binding (JAXB) ing. However there are a number of other XML
which is integrated into the standard Java plat- processing tag libraries available in Java that may
form from version 6 onwards. The choice here be used instead. Listing 7 shows the JSTL being
will often depend on whether the application is used for a simple XSL transformationsimilar to
mainly driven by an object model or by XML listing 3but this time, not using a static XML
documents, since frameworks like XMLBeans document. A JavaBean is used to generate an
and JAXB depend on the data model being XML document which is transformed by a style
derived from XML Schemas, and Java objects sheet using JSTL tags. In this code example we
being generated subservient to that XML data assume that the getXmlDocument method is re-
model. Another important consideration is the sponsible for marshalling the various components
generation of Java objects from XML documents. of a complete XML document, in contrast to the
Marshaller m = ctx.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
m.marshal(policies, System.out);
try
{
OutputStream os = new FileOutputStream (new File("newpolicies.xml"));
m.marshal(policies, os);
}
catch(Exception e)
{
e.printStackTrace();
}
Evolving Web Application Architectures
Listing 7. Using the JSTL tags for processing of JavaBeans that generate XML
<?xml version=".0"?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:x="http://java.sun.com/jsp/jstl/xml"
version=".0">
<jsp:directive.page contentType="text/html"/>
<jsp:output omit-xml-declaration="true" />
</jsp:root>
getXmlElement method we saw in Listing 5, which model, using WALL syntax, can be integrated
generated a fragment of a larger document. Using with XML elements using the transform view
the JSP Expression Language, claim.xmlDocu- model by applying tags (such as those from the
ment refers to the getXmlDocument method of JSTL) that enable XPath queries to be applied to
a JavaBean stored in the scope of the Web page an XML document and the results included in
under the lookup name claim. a server page. During the page processing, the
WALL tags will be turned into the appropriate
adapting to client devices mark-up for the client device while the XPath
elements will provide the content from the source
If an architecture is to be flexible enough to manage XML document. Listing 8 shows part of a server
multiple types of client browsers, the server side page that incorporates WALL tags to generate
page generation has to be able to adapt to different adaptive mark-up, along with XPath queries using
types of client device, which can be identified by the JSTL. The key difference between the XML
the User-Agent field in the HTTP request header. processing in Listing 7 and that in Listing 8 is
If an XML transform layer is in place, the under- that the former uses the transform view pattern,
lying content can easily be adapted, but how it is whereas the latter uses the combined template and
actually adapted is another question. Fortunately, transform view pattern outlined in Figure 8.
there are a number of Java-based technologies that By using the WALL device aware library we
can assist us in adapting server-side content to are able to provide a single server page for many
the client device without manually interrogating different types of device. However we might in
the user-agent field. One example is the wireless addition choose to provide our own customised
abstraction library (WALL), a JSP tag library transform for particular types of device. For
that builds on the wireless universal resource file example, a transform could be used that would
(WURFL) (Passani & Trasatti, 2002). WURFL is take advantage of the rich client technologies
an XML database that is able to map user agent available on the desktop. Many Web 2.0 applica-
information to the capabilities of the originating tions leverage Ajax and Flash, though there are
device, while WALL generates device specific many other possibilities. At the least, we might
mark-up. JSP pages based on the template view apply a cascading style sheet (CSS) to manage
Evolving Web Application Architectures
Listing 8. Combining the WALL library with the JSTL to generate adaptive mark-up
the presentation in the browser. Where the client Ajax applications but also deliver cross platform
is a service end point, and the system provides applications to both desktop and mobile clients.
content as a Web service, direct XSLT transforms To be innovative while broadening reach as much
can be used, since they would not be generating as possible it is necessary both to work within
presentation mark-up but XML documents suit- well supported standards (e.g., parts of the DOM)
able for Web service use. but also to leverage tools that provide flexibility
across platforms, whether it be increasing support
for certain technologies on multiple platforms
coNclusIoN (e.g., JavaScript support in mobile browsers) or
tools that adapt themselves to different clients
In this chapter we have described how Web appli- (e.g., tag libraries for adaptive mark-up.) To sup-
cations have evolved from static content, through port the integration of different approaches and
dynamic content based on a server page template technologies, a highly flexible architecture that
model, to contemporary architectures that rely leverages patterns, layers and XML centric data
heavily on the transformation of XML documents management is necessary. In this chapter we have
and increasingly complex client side applica- described a reference architecture that is based
tions. We have discussed this evolution within a on Java, XML and server side tag libraries that
model that shows how Web technologies tend to supports the transformation of local or service
fragment as a result of innovation, and then find based content into client-adaptive output formats,
broader reach as a result of standardisation. To using a combination of the template view and
develop Web applications in this context we need transform view design patterns. This architecture
to be aware both of new technological develop- takes into account both current thinking on the
ments and also how generic standards support is technologies of Web-based applications and the
evolving. For example we may wish to develop encapsulation and reuse of standard libraries.
Evolving Web Application Architectures
Building Web applications based on this architec- Garrett, J. (2005). Ajax: A new approach to Web
ture should enable developers to gain maximum applications. Retrieved on July, 2007, from
flexibility and reach without relying too heavily http://www.adaptivepath.com/publications/es-
on proprietary tools. says/archives/000385.php
Geary, D. (2001). Advanced JavaServer pages.
Upper Saddle River, NJ: Sun Microsystems Press
rEfErENcEs
/ Prentice Hall.
Abiteboul, S., Buneman, P., & Suciu, D. (2000). Hendler, J. (2001). Agents and the Semantic Web.
Data on the Web - From relations to semistruc- IEEE Intelligent Systems, 16(2), 30-37.
tured data and XML. San Francisco: Morgan
Koch, P. (2006). ppk on JavaScript. Berkeley,
Kaufmann.
CA: New Riders.
Alur, D. Crupi, J., & Malks, D. (2003). Core J2EE
Le Hgaret, P., Whitmer, R., & Wood, L. (2006).
patterns: Best practices and design strategies,
Document object model (DOM). Retrieved on
2nd Edition. Upper Saddle River, NJ: Sun Mi-
July, 2007, from http://www.w3.org/DOM/Over-
crosystems Press / Prentice Hall.
view
Apache Software Foundation. (2006). Apache
Lie, H. W., & Bos, B. (1999). Cascading style
XMLBeans. Retrieved on July, 2007, from http://
sheets: Designing for the Web, 2nd edition. Harlow,
xmlbeans.apache.org/index.html
England: Addison Wesley Longman.
Berners Lee, T. (2004). New top level domains
OReilly, T. (2005). What is Web 2.0: Design
.mobi and .xxx considered harmful. Retrieved
patterns and business models for the next gene-
on January, 2007, from http://www.w3.org/De-
ration of software. Retrieved on July, 2007, from
signIssues/TLD
http://www.oreillynet.com/pub/a/oreilly/tim/
Bosak, J. (1997). XML, Java, and the future of the news/2005/09/30/what-is-web-20.html
Web. Retrieved on July, 2007, from http://www.
Passani, L., & Trasatti, A. (2002). WURFL. Re-
ibiblio.org/pub/sun-info/standards/xml/why/xm-
trieved on July, 2007, from http://wurfl.source-
lapps.htm
forge.net/
Buschmann, F., Meunier, R., Rohnert, H., Som-
Seshadri, G. (1999). Understanding JavaServer
merlad, P., & Stal, M. (1996). Pattern-oriented
pages model 2 architecture: Exploring the MVC
software architecture: A system of patterns.
design pattern. JavaWorld, December.
Chichester: Wiley.
Van Eaton, J. (2005). Outlook Web access - A
Fowler, M. (2003). Patterns of enterprise applica-
catalyst for Web evolution. Retrieved on July,
tion architecture. Boston: Addison-Wesley.
2007, from http://msexchangeteam.com/ar-
Gamma, E., Helm, R., Johnson, R., & Vlissides, chive/2005/06/21/406646.aspx
J. 1995. Design patterns: Elements of reusable
object-oriented software. Reading, MA.: Ad-
dison-Wesley.
0
Chapter IX
Applying Agility to Database
Design
Guoqing Wei
FedEx Corporation, USA
Linda Sherrell
University of Memphis, USA
applyING aGIlITy To daTaBasE coupled partitions and resolves the above conflicts
dEsIGN by applying certain agile practices. The result
is that the database development becomes more
Agile methods are flexible, allowing software de- iterative and incremental . This has the added
velopers to embrace changes during the software benefit of supporting rapid application develop-
development life cycle. But the introduction of ment in a dynamic environment, a fundamental
agile practices into software organizations may characteristic of most Web applications.
cause unhealthy tensions between the developers
and data professionals. The underlying reason is
that when agile methodologies are employed, the BacKGrouNd
two communities use incompatible approaches,
namely simple design and iterative develop- Traditional software Engineering
ment, which are practices associated with all
agile methodologies, and big design up front Traditional software life cycle models, also known
(BDUF), a popular database technique. BDUF as plan-driven or document-driven approaches,
is inflexible, as once the database foundation is treat software development as a linear planning
set, it is difficult to make changes throughout the process where the majority of the planning is
software development life cycle. This chapter completed before design. The waterfall model,
describes a database development method for which consists of five phases, as shown in Figure
a Web environment. Using this method, a data 1, is the most common example. In the require-
professional divides the database into loosely ments phase, developers aim to determine their
Copyright 2008, IGI Global, distributing in print or electronic forms without written permission of IGI Global is prohibited.
Applying Agility to Database Design
clients needs based on interviews or question- rent analysis, design or implementation, return to
naires. Then in the analysis phase, developers the requirements phase, and renegotiate the SRS.
analyze and refine the requirements and amend This process may also involve a change control
their findings in a software requirements specifi- board. The development can not continue until
cation (SRS) document, which acts as a contract the requirements have been finalized again; this
between the developers and clients. Once the SRS consumes time and resources. Another drawback
is agreed upon, developers move to the design is that clients do not see the product until the devel-
phase. The implementation phase does not start opment organization finishes the implementation
until completion of the overall design. After the and releases the product. Furthermore the different
product implementation phase, product delivery background knowledge between developers and
to the clients occurs, and finally the software clients can also lead to alternative understand-
development lifecycle moves to the last phase, ings of the SRS with the final product often not
post-delivery maintenance (Schach, 2003). meeting the clients expectations.
About 40% of software development com- To help counteract the limitations of the
panies still use the traditional waterfall model waterfall model, the rapid prototyping software
(Neil & Laplane, 2003). The document-driven life cycle model may be employed. In particular,
approach is seen as an advantage for large, com- this model allows feedback from the customer
plex projects such as safety critical software or during requirements analysis, so there is a bet-
aerospace projects where there may be multiple ter likelihood that the final product will meet the
contractors. The associated standards with their customers needs. Software developers may even
predictability help to mitigate personnel turnover decide to use an incremental model in order to
and allow management to better compare projects gain feedback from the customer multiple times
(Boehm & Turner, 2004). in the software life cycle. Note that this model
However, there are several drawbacks to the still requires extensive planning of the overall
waterfall model. In particular, when the require- architectural design before increments are imple-
ments change, the developers have to stop the cur- mented (Schach, 2003).
Applying Agility to Database Design
Although rapid prototyping and incremental Customer collaboration over contract negotia-
development allow for more feedback from the tion.
customer than the waterfall model, plan-driven Responding to change over following a plan.
approaches are still more appropriate when the
requirements are mostly stable (Boehm & Turner, That is, while there is value in the items on the
2004). In modern software development, it is al- right, we value the items on the left more
most impossible to ask stakeholders to give all of (Boehm & Turner, 2004, p. 195).
the requirements at the beginning of the project and
expect them not to make changes later on. Projects In addition, a truly agile method must be
with dynamic requirements due to rapidly chang- iterative (several cycles) and incremental (not
ing markets are more commonplace. Especially deliver the product all at once) (Boehm & Turner,
in the Internet-based economy, clients not only 2004, p. 17)
require the flexibility to change or add require- Many software developers or companies have
ments during the software development lifecycle, begun to use agile methodologies (Lindvall, et al.,
but they also want quick product delivery. 2002; Sanja, 2005). For example, Sabre Airline
In summary, plan-driven methodologies are Solutions Corporation has advocated using and
especially problematic for Web applications for adapting XP throughout the organization for many
three main reasons. First, most Web applications years. To date, there are over 30 teams, with more
require rapid application development. Second, than 300 developers that have successfully used
Web applications are highly dynamic in nature, XP to develop projects (Layman, Williams, and
and third, feedback from the customer should not Cunningham, 2004). At Microsoft, Scrum has
wait until final delivery of the product. been accepted and used in different development
teams (Schwaber, 2003; Taft, 2005).
modern agile software Engineering
How agile methodologies resolve
In order to better satisfy the demands of soft- Traditional limitations
ware development with a dynamic nature, agile
software engineering approaches were invented. As mentioned above, there are two major limi-
Some of the agile methodologies currently in use tations to the waterfall modelthe inability to
include Scrum (1986), Schwaber & Beedle (2002), facilitate changing requirements and the release
Crystal (1996), Cockburn (2005), Feature Driven of the product to the customer near the end of the
Development (1995), Palmer & Felsing (2002), software life cycle. Agile methodologies solve
eXtreme Programming (1996), and Beck (2005). these problems with their incremental and iterative
All the agile methodologies share a set of com- development philosophy. To illustrate, we use the
mon goals, which were formalized in the Agile life cycle model of extreme programming (XP)
Manifesto in 2001. The following quote clearly (Figure 2). Projects are divided into a number of
outlines the agile objectives in relationship to increments, and each increment includes user
traditional software development. stories that are prioritized by the customer. User
stories consist of one or two sentences on 3 X
Individuals and interactions over processes and 5 index cards. The implementation (see inside
tools. the dashed line frame) includes a number of
Working software over comprehensive documen- iterations. Each iteration typically lasting about
tation. two weeks, implements one piece of the product.
During the implementation, customers can revise
Applying Agility to Database Design
Applying Agility to Database Design
Applying Agility to Database Design
the data professionals define the attributes and the base based on the initial requirements and then
corresponding data type for each entity. In other selected agile practices to develop the software
words, the conceptual model is transformed to the application. However, they soon experienced
logical data model. At this stage, the data profes- difficulties. Because of the lack of complete
sionals must determine the relationships between details in the initial requirements, they designed
entities. Finally, based on the logical data model, and implemented entities and attributes in the
the physical data model will be implemented by anticipation of future needs. Nevertheless, as the
the data definition language (DDL) and stored on requirements kept changing, the early anticipation
the hard disk. Also at this time, each attributes designs became even more speculative, and the
data constraints will be defined. authors were not sure whether it was worth it to
BDUF works perfectly with the conventional implement the designs. Therefore, in order to get
software engineering approach. The software rid of the distraction from speculative designs, they
developers work with data professionals together eliminated the speculative attributes and entities
acquiring and analyzing the requirements in the before coding an iteration, and implemented the
requirements and analysis phase. In the design database to just fit the current requirements.
phase, the domain model and data model are Morien (2005) explains the focal entities pro-
designed by each community respectively. Then totyping approach. Instead of fully implement-
in the implementation phase, software developers ing a database based on the initial requirements,
use programming languages such as Java or C++ he uses the Entity Modeling technique, which
to pass data to the database, and data profession- focuses on identifying the entities and their rela-
als use the data manipulation language (DML) to tionships; then, he transfers this information to
store the data and update the database. the physical database model. After developing a
However, apparently BDUF is not suitable for corresponding part of the application, delivery of
agile approaches. When the software developers this partial system and database occurs to allow
start the first iteration, there is no database for the client to validate. The development cycle is
them because data professionals are still waiting repeated so that database development becomes
to finalize the whole set of requirements. iterative and incremental.
Applying Agility to Database Design
the future situation could become useless. As an As with any system development, some up-front
example, in the beginning of a project, we can analysis must be undertaken. How much analysis,
model a laptop as a laptop entity with attributes and how complete that analysis must be, is the
such as serial number, manufacturer, size, color major point of difference between the Heavyweight
and all its components. However, if in the final Models of development, and the alternative Light-
requirements, it turns out that the laptop entity weight / Evolutionary development models.
only needs to store its serial number, then the
original model of the laptop was only speculative, Based on these findings, the authors decided
and it must model back as an attribute within to include up front analysis in agile database
other entities. This change will impact all of development to balance the two techniques. To
the relationships that were associated with the the authors knowledge, there is no literature or
laptop entity, and propagate up to the correlated guidance on how to balance or adjust up-front
domain models and the related code. Therefore, design with agile practices in a database devel-
it is important to apply the rule of thumb YAGNI opment environment. Although Morein claims
(you are not going to need it) (Beck, 2005). In that some of up-front analysis is necessary in
other words, only include the necessary features. agile development, he does not have any further
However, with too simple a design, it is hard to discussion. According to the authors hypothesis,
make a projects development move forward. if the data professionals can have a piece of a
For example, if we originally define the laptop high stable database ready for an iteration using
as the attribute, serial number, but later on the agile development, when the software develop-
requirements indicate that the laptop should be ers start coding the application, the developers
modeled as an entity, then the database model can focus on writing the application code, and
needs to change and the impact for the develop- not be distracted by the database revision. If the
ment will occur again. With agile development, data professionals can continue to deliver a high
simple design may result in code that smells bad stable database piece to the software developers,
(Beck, 2005), so developers need to be ready to the entire development process can become itera-
re-factor the code. Similarly, in agile database tive and incremental. So now the question is how
development the database can also smell bad. No to design this database piece? The authors have
matter whether we use just in time or focal learned that dividing the initial database model
entities prototyping, as long as requirements into loosely coupled partitions greatly helps to
changes affect the data model structure, we are achieve this objective.
not able to avoid database re-factoring. To test their hypothesis about combining agile
So applying agility in database development, and database practices, the authors used their new
but at the same time reducing database refactoring approach in two projectsan online inventory
as much as possible becomes the major challenge. system (OIS) and the marketing simulation study
As mentioned above, the essential idea of agile manager (MSSM), both of which are described
methods is iterative and incremental development. in the next section. OIS was built using PHP and
Also in order to reduce database refactoring, data MySQL, but not using object-oriented and model-
professionals must do enough up front analysis in view-controller (MVC) design pattern technolo-
database development as Morein (2005, p. 105) gies. MSSM was built with JSP, Java, MySQL
points out, and the MVC framework, Struts, and the object-
relational mapping framework, Hibernate.
Applying Agility to Database Design
casE sTudIEs There are two different report levels for both
XYZ and its customers. The high level reports
online Inventory system display the overview for the filters, such as how
many filters are received, cleaned or returned
Initial Requirements based on the time period or shipment. The low
level reports contain detailed descriptions for
The online inventory system is developed for a each filter, such as, the filter attribute (barcode,
company (called XYZ in this chapter) to record size, color, manufacturer), filter status (received,
the number of filters the company receives, cleans, cleaned, destroyed, warehousing, shipped), and
and ships to their customers. The system can au- when and how the filter was cleaned, who cleaned
tomatically generate online reports for managers it and so on.
of XYZ and their customers, who own the filters,
to track filter status based on the time period or Database Development
the shipments.
Every employee and customer must register In the online inventory system, based on up front
an account with the appropriate security level analysis for the initial requirements, the authors
in the system. Each account can only access or divided the initial database model into four
modify the current or lower security levels data. partitions: User Account; Filter Receive; Filter
For instance, a received level employee account Cleaning; and Filter Shipping. The User Account
can only access the subsystem that is responsible partition only includes the entities that store the
for receiving the filter, but not the section to clean information related to the Web user, such as the
the filter, while the filter cleaner account can username, password, contact information, and
review how many filters were received for clean- associated customer with his/her company in-
ing. Similarly, for the customers, for example, a formation. The Receive partition has the entities
manager of customer As branch in Memphis only that store all filters attributes, such as the size,
can access the filter data in the Memphis branch, color, manufacturer, and the receive status. The
but a president of customer A can access all the Cleaning partition stores the filter cleaning data
filter data throughout the country. such as remove dusty weight, post test record,
When the dirty filters first arrive at company cleaned status and so on. The last partition stores
XYZ, the filter receivers scan the filter barcode the shipping information such as the date and time
(filterID) into the system. If the filter is not in the for shipping and the track number. As shown in
system, the application must remind the user to Figure 5, these four partitions are loosely coupled.
register the filter first. Only a registered filter can There is only one foreign key (customerID) among
go on to the clean process and XYZ sends back the partitions. The foreign key customerID is a
only cleaned filters to its customers. A filter can reference to the customer that owns the filter.
be marked as bad if it fails to pass the post test If we know a filterID in the Receive partition, we
after cleaning. Bad filters must be destroyed, can use its associated customerID to retrieve the
and this information must be recorded in the customer information in the User Account parti-
system. The system monitors each filters status tion. Similarly the filterID can be used to join the
by its barcode, which is scanned in each step; entities among the Receive, Cleaning and Shipping
the process provides insurance that there is no partitions to retrieve the filter information and its
invalid operation. corresponding status.
Applying Agility to Database Design
Once the partitions are defined, the next step is marketing simulation study manager
to conduct up front analysis for the partition that
will be used for the current development itera- Initial Requirements
tion. In the dynamic environment, it is difficult
for the clients to specify all the requirements in The marketing simulation study manager (MSSM)
the beginning, but it is possible to capture most is a Web-based application with a database. The
of the requirements for the design in a single application allows researchers (investigators) to
partition of the database. If there are difficulties predefine, or generate their own marketing re-
for clients to specify the requirements, as with search Web sites (research studies) or to modify
agile practices, you can always develop a quick existing studies through Web manipulation fea-
prototype to facilitate requirements elicitation. tures. Each of these research Web sites can simu-
Rapid prototyping is especially helpful when late a set of marketing experiments. Inside each
there are not enough requirements to start the experiment, there will be a number of questions
development. Once the analysis is completed, we for the respondent to answer about one product.
can implement both the logic data model and the Furthermore, based on whether the experiment
physical data model for the partition. will be visited by a control group or one of an
Notice partitioning the database is not based experimental group of respondents, the site may
on the task load of an agile iteration. In agile or may not have media files (stimuli), which could
development, an iteration is defined by its time be videos, audios or pictures for that product. The
period (e.g., two weeks in eXtreme Programming), researchers will compare and find out the differ-
and each iteration can have various tasks. The ence between these answers based on whether
basic idea behind partitioning the database is to the respondents experience the stimuli, and then
locate and to group together the entities that are conclude how these stimuli could affect the other
highly coupled, eliminating entities exhibiting no products in the market.
or low coupling. So it is normal if the partition Each customer (respondent) of a research study
over fits the current development iteration by Website must register an account, if he or she wants
containing entities that are not for the current to participate in an experiment. Respondents do
application development. For example, to imple- not know if they are members of a control group
ment an account management system for Web or an experimental group. Group assignments
application, it may take more than one iteration, are made manually by the investigator or auto-
but all the entities of the account management matically by the software application. Each group
partition should be designed and implemented can visit only one experiment per study. As the
before the first iteration starts.
Applying Agility to Database Design
respondents go through their experiments, the from the investigator or respondent, he or she can
answers from each respondent are saved in the determine which study belongs to which investiga-
database. Finally, the MSSM resulting data will be tor and which respondents are registered to that
transferred from the database to the researchers study. Also through the study id, the study data
analytical tools (e.g., SAS). can be provided to the investigator. Similarly, one
only needs the question ids of a study to reference
Database Development the questions from the result partition; then it can
be determined which answer is corresponding to
The database development approach has two steps. which question in which study.
The first step is to analyze the initial requirements In an iteration that implements the features to
and to define the database structure, dividing it into upload the stimuli and input the Web page text
a number of loosely coupled partitions. Second, information, questionnaires and multiple choice
based on the software development requests, the answers for the study, the software developers only
data professionals choose a partition, and using need the stimuli, text information and question-
the up-front approach, analyze, define, and imple- naires entities for that iteration. But again if these
ment entities within that partition. entities are highly coupled with other entities (e.g.,
In the MSSM project, based on the initial the study entity), then all related entities must be
requirements, the authors split the database into in the same database partition as well. After the
three components. The first component stores the definition of each partition of the database is com-
Web users information, such as the administra- plete, the developer can start using agile practices
tor, investigators, and respondents. The second to gather enough requirements for the partition
part stores the necessary data for investigators and implement the physical data model.
to create their research or study Web sites: for Compared to the work of Harriman, Leo,
instance, the number of experiments that will and Hodegetts (2004) and Morein (2005), the
be in a study; what are the questions for the re- main difference here is that before the start of an
spondent in each experiment; what are the stimuli iteration, there is a fully implemented database
that will be displayed in each experiment, and so partition for the software developers. Although, in
on. Finally, the third partition of the database is a dynamic environment, the database piece could
a collection of tables that store the respondents be refactored due to a requirements revision, our
answers or the study results of each Website. As approach is better than the just in time design
shown in Figure 6, these three partitions exhibit or the focal entities prototyping approach.
low coupling. In other words, no matter how Database revisions are more likely when teams
much the requirements relating to the Web user are composed of software developers who take on
are revised, the changes will not affect the data both the roles of developer and data professional,
model design for the study partition. As long as because of the technologies, culture, visions and
one can acquire the identification id of the study priority differences between the software devel-
Applying Agility to Database Design
opers and data professionals. In fact, when the The object-relational Impedance
software developer and data professional is the mismatch
same individual, the database maintenance may
become unwieldy because the underlying para- In MSSM, we are using both object-oriented and
digms required for each role are different. When relational technologies, because they both are
developers implement the database, usually the leading technologies in programming and data-
implementation is based on their perspective as base environments, and both are widely used by
opposed to that of the data professional. In order most organizations. But it is clear that the match
to resolve this issue the software developers and between these two technologies is not perfect.
data professionals should be responsible for the The problem is called the object-relational im-
application and database development respectively pedance mismatch (Ambler, 2003). So far there
based on a design agreement (Ambler, 2003). is no perfect solution for this problem, since to
Furthermore, applying some techniques such as adapt either, the object-oriented or the relational
database encapsulation will help to resolve the database technologies to complement the other,
technology differences between the software the corresponding site will violate the rules of one
developer and the data professional. For more of the technologies. One author even describes
information on the difference in roles between this problem as the Vietnam War in computer
the software developer and the data professional, science (Newward, 2006). The history behind
please refer to Ambler (2003).
0
Applying Agility to Database Design
this mismatch involves the different technical other words, the database should hide both the
and cultural backgrounds between the software details of the implementation and the physical
and data communities. schema from the software developers. However,
According to the documentation of Hibernate the database does provide the services for the
(2006), the attribute of a class is called a property, software developers to create, read, update, and
whereas the attribute of a database entity is called delete (CRUD) their business objects persistently
an attribute. A predominant impedance mismatch (Ambler, 2003).
between these two technological features appears The advantage of database encapsulation is
in Figure 7. Note that the information in the figure obvious. It dramatically reduces the coupling
is from the MSSM case study. On the left, is a between the object schema and the data schema.
UML diagram containing Investigator and Study Usually the database encapsulation layer lies
classes. Similarly, the UML diagram for the In- between the business object and the data model
vestigator and Study entities is on the right. The layers, and all the business objects need to talk
diagrams look analogous, as both Investigator and to just the database encapsulation layer instead
Study classes and associated entities have similar of communicating with the database.
properties and attributes. The only major differ- Ambler lists three database encapsulation
ence is that there is one more associative table, approaches: (1) Implement the data access object
Investigator Study, between the Investigator (DAO) layer; (2) Use the transparent persistence
and Study entities in the entity model. The reason technique; (3) Use enterprise service. In MSSM,
for this additional table in the MSSM database we selected option two, because it has a big ad-
is that an Investigator needs to be able to create vantage over the other two options. In particular,
one or more studies in MSSM. Note that a study the SQL can automatically be generated by the
may involve a group of investigators. Therefore persistence framework on the fly. Therefore, the
the relationship between the Investigator and the usage of the transparent persistence technique can
Study entities is a many-to-many relationship. reduce the code significantly by a factor of four
Since relational databases do not support this type to five when compared to the conventional Java
of relationship, typically an associative table will database connectivity (JDBC) call-level interfaces
be introduced between the entities with multi- (Barry & Stanienda, 1998).
plicity greater than one. Since object technology
naturally supports the many-to-many relationship, Hibernate
there is no need for an association class between
the respective classes (Ambler, 2003). Hibernate is the transparent persistence frame-
work used in MSSM. In traditional JDBC call-level
database Encapsulation strategies interfaces, the developers are required to write a
large amount of code to store and retrieve busi-
Ambler suggests that an agile database administra- ness objects to and from the database. This coding
tor (DBA) should have the ability to work between job is usually complex, tedious and costly (Baure
both the object and data worlds and between the & King, 2004). However, Hibernate can resolve
agile and traditional worlds. And furthermore, this coding issue well, as it can provide a batch
he recommends using the database encapsula- of highly flexible methods to persistence objects
tion strategies to overcome the object-relational in the relational database. For more information
mismatch. (Ambler, 2003) about how to use Hibernate, please refer to the
In agile database development, ideally the Hibernate documentation (2006) or Peak and
database system should act as a black box. In Heudecker (2005).
Applying Agility to Database Design
Figure 8 (adapted from (Ambler, 2003)) shows resolve the object-relational impedance mismatch,
the layout among the business objects, Hibernate, Hibernate provides a sophisticated idea. Recall
and the database. Because the Hibernate layer lies that the mismatch is the additional associative
between the application and the database, it helps table caused by the many-to-many relationship
separate the objects schema and the data schema. between the Investigator and Study entities. In Hi-
The advantage of Hibernate is it provides a facil- bernate, data professionals just need to specify
ity to map the business objects to the relational this relationship in both the Investigator and Study
database and automates the loading and saving of mapping files. When the objects are mapped
objects based on the configuration of the mapping to the database, Hibernate will take care of the
files (Peak & Heudecker, 2005). mismatch. Software programmers can write their
For instance, in Figure 7 there are both Inves- object-oriented code as usual. For example when
tigator and Study classes and entities. Hibernate assigning an Investigator to a Study, programmers
uses a mapping file for each of these classes, just need to use a Java collection, (e.g., List, Set or
respectively mapping all the properties from a Map) to add the Investigator object to the collection
class to its entity or entities in the database. property in the Study class:
To store the Investigator and Study objects in
the database, software developers simply need study.getInvestigator( ).add(Investigator);
Applying Agility to Database Design
Applying Agility to Database Design
is equal to applying the MVC design pattern to in the third group first, data professionals can
Web development. start the database design early and, in the mean
However, implementing the MVC design pat- time, the software developers can still gather
tern from scratch is time consuming; a better way their requirements for the application design. The
is to use an existing MVC framework. Since the parallel activities can reduce the time for agile
authors of the MSSM project are using JSP and database development.
Java as implementation languages, the preferred
framework is Struts. Struts is an open-source database refactoring
framework and fully implements the MVC design
pattern. Although several other frameworks are In a highly dynamic development environment,
excellent, none of these frameworks offer the refactoring can not be avoided. This section de-
broad-range of features and functionality for scribes the authors experiences from refactoring
which Struts is known (Siggelkow, 2005, p. viii). the database caused by the requirements changes
The authors objective is to achieve an architecture in MSSM. The associated implementation for a
with the minimal amount of coupling. See Figure 9 requirements revision requires at least 7 steps,
for an overall view and clarification of the MSSM as shown below:
architecture. For more information about Struts,
and how to use it, please refer to Siggelkow (2005) 1. Revise the entities tables by inserting (delet-
or the Struts User Guide (2005). ing) the attributes.
2. Change the Hibernate mapping file for the
affected tables.
ExpErIENcE rEporT 3. Add (delete) the corresponding properties
to the associate business objects.
Since agile methodologies advocate simple de- 4. Revise the Java code in the Struts action
sign and short release times, there was initially class (the application logic code) that needs
some concern that the amount of time spent on to access those business objects.
database analysis would slow down develop- 5. Revise related Struts Form Beans (the input
ment. However, using another metaphor, just as logic).
sharpening the chefs knife will not slow down 6. Revise the remainder of the related code due
how fast he cuts through foods, some up-front to the above changes (e.g., testing code)
analysis makes the database much more stable 7. Add the input field for the attributes in the
and robust. When the application implementation corresponding Web pages.
is ongoing, there is no speculation about entities
or attributes in the database. Therefore, the up The authors have discovered that the cost of
front analysis significantly reduces the chance changes in agile database development is still
of database refactoring, allowing the software much higher than the cost of revisions to applica-
developers to focus on application development tion code. More research needs to be undertaken
and code revision. to see if it is possible to further reduce the com-
A valuable lesson the authors learned during plexity and cost of database refactoring.
the development of MSSM is in Internet-based Based on the authors experiences, having a
projects, requirements can be classified into three partition database in place prior to each iteration
basic groups:(1) Web interface; (2) Web applica- is absolutely necessary in agile database devel-
tion; and (3) database design and implementation. opment. Although the partitions do not facilitate
So by focusing on the gathering of requirements database refactoring, they can dramatically reduce
Applying Agility to Database Design
the chance of refactoring. In other words, in soft- According to Hibernate Reference Docu-
ware development projects, database refactoring mentation version 3.1.1 (2006), when using the
should be limited to requirements revision, not object-relational mapping, Hibernate will generate
speculative design. Another big advantage of our two SQL statements. The extra SQL is used to
approach is since the database is incrementally retrieve a StudyType instance for the type property
and iteratively developed, when the database of the Study object, because in the business model,
refactoring happens, it affects only the current the type property is an instance of the StudyType
database partition. Compared to the BDUF, our class. So before Hibernate can insert the Study
approach is able to avoid the refactoring of the into the database, it has to fill the type property
entire database. for that Study object.
The one-to-many relationship is the most com-
database performance mon relationship in the relational database. A child
table can also have more than one foreign key ref-
The object-relational mapping technique provided erence to a different parent table. Furthermore, an
by Hibernate greatly benefits the application de- Internet-based system needs to handle many users
velopment. Hibernate users do not need to write accessing the database simultaneously. Therefore
as many SQL statements to create, read, update generating extra SQL statements to perform the
and delete database operations. Although there database operation could slow down the database
are many advantages of the object-relational map- performance. For more information about other
ping approach, there is a metaphor that we apply object-relational mapping data retrieval concerns,
to the database world, namely, there is no free please refer to Neward (2006).
lunch. The reason for this claim is Hibernate
always needs to generate extra SQL statements
when inserting a new data object into the database coNclusIoN
if that object was mapped as a child table.
In a relational database, a foreign key of a child Applying agile practices and iterative and incre-
table references a tuple (record or instance) of its mental development to the database arena makes
parent table. In the object-relational mapping, a the database development better suited to agile
tuple usually represents an instance, which is an software engineering processes. Moreover, the
object of the class. For example, in MSSM, each whole application development process can be
Study object associates to one StudyType, and the dynamic in nature, thereby more readily satisfying
typeID references an instance of Study type in the the clients needs. However, due to the high cost
StudyType table. A Studytype can include one or more of database refactoring, data professionals should
than one Study. So the Study table is the child table balance agility practices and up front analysis
and the StudyType is the parent table. The Study and during development. In particular, by introducing
StudyType tables exhibit a one-to-many relation- some up front analysis, where a database partition
ship. In the object-relational mapping, the typeID is in place prior to all agile development itera-
attribute of Study maps to the studyType class. But tions, data professionals can effectively provide
the drawback of this mapping is obvious. Without the necessary balance. Also using encapsulation
using the object-relational mapping, the system techniques can decouple the database from the ap-
creates a new Study that needs to persist in the plication as well as the layers inside the application.
database. The corresponding SQL follows: Decoupling allows each development community
to focus on its own project responsibilities, and
INSERT INTO Study VAULES (typeID, StudyAttribute- significantly improves the development process.
value, StudyAttributevalue )
Applying Agility to Database Design
Furthermore, decoupling reduces the difficulty large, complex projects. Just as the metaphor
of maintenance. says there is no silver bullet; agile methods are
more suitable in the dynamic development envi-
future Trends ronment, but plan-driven approaches have more
advantages for large, complex projects when the
Test-driven development (TDD) or test-first de- requirements are mostly stable. Therefore, further
velopment is a characteristic of some of the agile combinations of plan-driven and agile methods
methods (e.g., XP) As the name suggests, test-first may be required to handle database modeling,
development means software developers design performance, and robustness in large database
and implement the test cases before they write the project environments.
application code. The approach is a good way to
facilitate the design process, and it can guarantee
100 percent test coverage of the application code acKNoWlEdGmENT
(Ambler, 2003; Beck, 2005). According to our
experiences, test-driven database development
The authors would like to thank Mr. David Mills
(TDDD) is not as easy as test-driven applica-
and Dr. Dan Sherrell. Mills is a graduate student
tion development. Most test-driven approaches
in the Department of Computer Science at the
heavily rely on third party tools. For software
University of Memphis and served as Weis agile
applications, the xUnit family is the most popular
partner in the MSSM project. His focus in the
test-driven framework. However, in the database
project was on the Web site design and imple-
world, finding tool support for test-driven database
mentation. Dr. Dan Sherrell, who is the client
development is the big challenge. The open source
for MSSM, is a professor in the Department of
tool, DBunit, is still an emerging technology
Marketing and Supply Chain Management at the
(Ambler, 2003). Two commercial tools found in
University of Memphis.
(Ambler, 2007) are available only for database
internal testing. The tools are Qute, a Quest unit
testing engine for Oracle, and the testing tool in
rEfErENcEs
Visual Studio Team System for an SQL server.
In summary, it still remains to be seen how much
Ambler, S. W. (2003). Agile database techniques.
test-driven development will be used in the future
Indianopolis, IN: Wiley.
for database development.
Although the object-relational mapping Ambler, S. W. (2004). The object primer: Agile
(ORM) technique may be considered as one of the modeling-driven development with UML 2.0,
methods to solve the object relational impedance Cambridge University Press.
mismatch problem, it does have a disadvantage
Ambler, S.W. (2007). Test-driven development
when compared to the data access object (DAO)
of relational database. IEEE Software, 24(3),
technique. ORM generates the queries on the fly,
37-43.
which makes the query tuning much harder to
do than with the DAO. In other words, the data Barry, D., & Stanienda, T. (1998). Solving the
retrieval mechanism of ORM limits its database Java object storage problem. IEEE Computer,
performance. Future research should address 31(11), 22-40.
ORMs performance issues.
Another focus for future study is the scal- Baure, C., and King, G. (2004). Hibernate in Ac-
ability of our database partition approach to tion. Greenwich, CT: Manning Publications.
Applying Agility to Database Design
Beck, K. (2005). Extreme programming explained. Mills, D. L., Sherrell, L. B., Boydstun, J., & Wei, G.
Upper Saddle River, NJ: Pearson Education. (2006). Experiences using agile software develop-
ment for a shopping simulation. In Proccedings
Boehm, B., & Turner, R. (2004). Balancing agility
of IEEE Southeast Con 2006 (pp. 285-290).
and discipline. Boston: Pearson Education.
Morein, R. (2005). Agile development of the
Cavangess, C. (2004). Programming Jakarta
databasea focal entity prototyping approach.
struts. Sebastopol, CA: OReilly.
In Proceedings of the Agile Development Confer-
Cockburn, A. (2005). Crystal clear, A human- ence, (pp. 103-110).
powered methodology for small teams. Boston:
Neill, C., & Laplane, P. (2003). Requirements
Addison-Wesley.
engineering: The state of the practice, IEEE
Davis, M. (2001, February) Struts, an open-source Software, 20(6), 40-45.
MVC implementation. Retrieved on January 3,
Newward, T. (2006). The Vietnam of computer
2007, from http://www-128.ibm.com/developer-
science. Retrieved on May 28, 2007, from http://
works/java/library/j-struts/
blogs.tedneward.com/2006/06/26/The+Vietnam+
Fowler, M. (2001). Separating user interface code, Of+Computer+Science.aspx
IEEE Software, 18(2), 96-97.
Palmer, S. R., & Felsing, J. M. (2002). A practi-
Harriman, A., Leo, M., & Hodegetts, P. (2004) cal guide to feature-driven development. Upper
Emergent database design: Liberating database Saddle River, NJ: Prentice-Hall.
development with agile practices. In Proceed-
Peak, P., & Heudecker, N. (2005). Hibernate
ings of the Agile Development Conference, (pp.
quickly. Greenwich, CT: Manning Publications.
100-105).
Sanja, A. (2005). Overview of agile management
Hibernate (2006). Hibernate reference documen-
project perfect. White Paper. Retrieved on Janu-
tation version 3.1.1. Retrieved on January 2, 2007,
ary 2, 2007 from http://www.projectperfect.com.
from http://www.hibernate.org/5.html
au/info_agile_programming.php
Jeffries, R. (2001, November). What is eXtreme
Schach, S. R. (2003). Object-oriented & classi-
programming? XP Magazine. [Electronic version]
cal software engineering. New York: McGraw-
Retrieved on January, 2006, from http://www.
Hill.
xprogramming.com/xpmag/whatisxp.htm
Schwaber, K. (2003). Agile project management
Knight, A., & Dai, N (2002). Objects and the
with scrum. Microsoft Press.
Web. IEEE Software, 19(2), 51-59.
Schwaber, K., & Beedle, M. (2002). Agile software
Layman, L., Williams, L., & Cunningham, L.
development with scrum. Upper Saddle River,
(2004). Exploring eXtreme programming in con-
NJ: Prentice Hall.
text: An industrial case study. In Proceedings of
the Agile Development Conference (pp. 32-41). Siggelkow, B. (2005). Jakarta struts cookbook.
Sebastopol, CA: OReilly.
Lindvall, M., Basili, V., Boehm, B., Costa, P.,
Dangle, K., Shull, F., Tesoriero, R., Williams, Steiner, D. H., & Palmer, D. W. (2004). Extreme
L., & Zelkowitz, M. (2002). Empirical findings software engineering. Upper Saddle River, NJ:
in agile methods. In Proceedings of XP/Agile Pearson Education.
Universe 2002, (pp. 197-207).
Applying Agility to Database Design
Struts (2005). The Struts user guide. Retrieved Taft, D. K. (2005, November 11). Microsoft
on January 2, 2007, from http://struts.apache. lauds Scrum method for software projects.
org/struts-doc-1.2.9/userGuide/index.html eWeek. [electronic version] Retrieved on Janu-
ary 3, 2007, from http://www.eweek.com/ar-
ticle2/0,1895,1885883,00.asp
Chapter X
Automatic Creation of GUIs for
Web-Based ERP Systems
Jorge Marx Gmez
Universitt Oldenburg, Germany
Daniel Lbke
Leibniz Universitt Hannover, Germany
aBsTracT
Service-oriented architecture (SOA) is an emerging architectural style for developing and structuring
business applications, especially enterprise resource planning (ERP) systems. SOA applications are
composed of small, independent, and network-accessible software components, named services. The
service composition is normally based on the enterprises business processes. However, current composi-
tion standards like BPEL have no ability to interact with users. Therefore, we propose a mechanism for
including user interaction descriptions into the composition and extending the composition platform for
generating user interfaces. In our case study, a federated ERP (FERP) system, this mechanism has been
implemented in a prototype based on yet another workflow language (YAWL) dynamically generating
Web pages for accessing the ERP system. Because every aspect including the user interfaces can be
manipulated through the service composition, such systems are highly flexible yet maintainable.
Copyright 2008, IGI Global, distributing in print or electronic forms without written permission of IGI Global is prohibited.
Automatic Creation of GUIs for Web-Based ERP Systems
very high abstraction level, the resulting system compositions are explained first. Afterwards, our
can be changed easily. concept for annotating user interfaces is presented.
An SOA is defined in this chapter as an en- In the following section the generation algorithm is
terprise-wide distributed software architecture presented. Then a case study, namely the federated
for business applications that consists of services ERP system, is presented, which heavily utilizes
as its elementary software components. Those the generation facilities described before. Finally,
services are composed according to given busi- a conclusion and an outlook are given.
ness processes, and linked to the processes at
run-time. SOAs main design goals are flexibility
and maintainability in regard to changes affecting BusINEss procEssEs aNd
these business processes. sErvIcE composITIoNs
SOA is currently most often realized by uti-
lizing Web service standards. Web services are Business processes define how activities in an
based on XML. For calling Web services the enterprise should be performed. Additionally,
SOAP protocol (Gudgin, Hadley, et al., 2003) they define who is responsible for performing
has been defined. Composition of Web services these activities and which resources are affected.
is defined in the business process execution lan- Business processes are designed from the manage-
guage (BPEL) (Andrews, Curbera, et al., 2003). ment point of view. Based upon their definition,
While BPEL aims to support the alignment of activities within enterprises can be improved, and
Web services with business processes, it lacks one supporting IT systems can be designed. There are
critical component of business processesinter- many notations available for modeling business
action with and involvement of responsible users. processes, among them event-driven process
Recently, BPEL4People (Kloppmann, Koenig, et chains (EPCs) (Mendling & Nttgens, 2005) and
al., 2005)an extension for BPEL has been pro- the Business Process Modeling Notation (BPMN)
posed. However, BPEL4People treats end-users (White, 2006). Taking an order as an example for
merely as just other services. The developers and an administrative business process is illustrated
system integrators still have to develop matching in EPC notation in Figure 1.
user interfaces in traditional programming lan- Service Compositions have a similar struc-
guages. Development of user interfaces requires ture compared to business processes (Henkel,
much effort and runs contrary to the suggested Zdravkovic, et al., 2004). However, they offer
flexibility of SOA. a technical view of the IT landscape of an en-
This problem becomes even more dominant for terprise. They define the control-flow between
smaller enterprises, which need to be very flexible different services, related error-handling, and
in the market for maintaining their competitive data management. While the control-flow should
edge but do not have many resources that they optimally match the one of the underlying busi-
can devote to their IT infrastructure. ness processes, technical constraints often require
In this chapter we present a solution on how slight differences. For example, it is possible that
to make user interfaces for ERP systems more certain activities cannot be performed in parallel
flexible by incorporating parts of user interface due to constraints of the software. For maintaining
models into the service composition. Thereby, the a SOA it is therefore a critical task to synchronize
user interface can be easily modeled and updated changes of the business process with the service
without having programming skills. composition.
Within the course of this chapter, the differ- However, this is not the only difference be-
ences between business processes and service tween business processes and service composi-
0
Automatic Creation of GUIs for Web-Based ERP Systems
tions. Currently, the most often used service As a reaction to the missing user interaction,
composition language is BPEL, which focuses on BPEL4People (Agrawal, Amend, et al., 2007)
system-to-system interaction. Consequently, only has been proposed, which integrates users into
fully automated business processes without human the BPEL composition.
interaction can be modeled satisfyingly in BPEL. However, it treats human users merely as
As a consequence, BPEL has often been criticized different services, which can send XML to and
as being not suitable for building complex SOA receive it from BPEL compositions. During de-
systems. The general structure of the control-flow velopment, user interfaces need to be developed,
for BPEL is shown in Figure 2the clients have which offer matching user interfaces which can
to call the BPEL processes that return some data. handle the corresponding XML data. While the
Then, the clients can show user interfaces and BPEL4People composition can better reflect the
invoke the BPEL process again. control-flow of the original business process
Automatic Creation of GUIs for Web-Based ERP Systems
Figure 2. Control-flow partition for user interac- Figure 3. Control-flow partition for user interac-
tive processes using BPEL tive processes using BPEL4People
C lie nt A pplication
calls C ontrol
F lo w C lie nt A pplication
B P E L P rocess
B P E L4P eo ple
P rocess calls
returns
calls calls
B P E L P rocess
C ontrol
F lo w
(Lbke, 2007) (see Figure 3 for the control-flow integrated into service compositions but require
of the BPEL4People solution), the development new models.
and maintenance effort still remains very high. The main goal of our approach is to make an
In the following section, a concept for modeling SOAand consequently the applications built
the user interface on the same abstraction level upon itmore flexible by managing the user
as the composition is presented which addresses interfaces completely with the service composi-
these problems. tion. Not only the control-flow of the composition
resembles more closely the one of the business
process, but furthermore, the user interfaces do not
usEr INTErfacE dEscrIpTIoNs need to be developed using traditional languages.
IN sErvIcE composITIoNs Therefore, service compositions can be easier
modified. As a result, the deploying organization
Some approaches for modeling user interfaces can change its business processes more often and
exist. For example, TERESA (Mori, Patern, et with less effort and associated costs.
al., 2004) and an approach for supporting busi- To achieve this goal, the user interface must
ness processes with user interfaces by Sliski et al. be modeled within the service composition and
(Sliski, Billmers, et al., 2001) have been proposed. consequently on the same abstraction level. For
These are very heavyweight user interface mod- some time, research has been done in the area of
els that allow modeling of rich user interfaces. model-based user interfaces (MB-UI) (Lbke,
However, creating such models is a time-con- 2007), which has yielded many results. Many
suming task and hindered the adoption of these approaches are based upon so-called Task Mod-
approaches in practice. The same has happened els (Silva, 2000). These task models describe
with all heavy-weight user interface modeling the activities a user should be able to perform.
approaches. Furthermore, such approaches are not However, many models from this area have been
too complex to be useful in practice.
Automatic Creation of GUIs for Web-Based ERP Systems
Edit The user edits some information object from the data model attached to the
business function.
Control The user explicitly invokes some action. This is used to model navigational
decisions.
Since task models resemble business processes this, following annotations are introduced (Lbke,
on a very low level (Trtteberg, 1999), they can be Lecke, et al., 2006), which together resemble a
integrated well into service compositions, which small task modelSelection, Edit, Control, and
shall resemble the business process control-flow. Visualize. This task model can be practically used
Our approach uses activities which already exist due its small size. The annotations are illustrated
in all business process modeling languages and in Table 1.
service compositions. The activities are decom- Additionally, each user-performed activity is
posed using sub-processes. The sub-process is assigned a typed variable. The variable type is
treated as a task model and annotated. To achieve used to generate a matching viewer and editor,
Automatic Creation of GUIs for Web-Based ERP Systems
and to store the results delivered by the user. mum if a primitive data type is detected, for which
Variable Types can be simple types and aggregate a viewers and editors are available in the system
types, like lists. at a minimum. Primitive data types are string,
Using this method, it is possible to annotate integer, Boolean, date and so on. The generation
business processes and service compositions alike. of a customer editor is shown in Figure 5.
For instance, a part of the example process with The whole generation of a sample process to
user interface annotations is shown in Figure 4. a matching user interface is shown in Figure 6;
Using these annotated processes or composi- for each activity in the task model a matching
tions our algorithm can generate user interfaces viewer or editor is created as discussed before.
at run-time and pre-generate them at design-time. The generated components are aggregated on a
The algorithm is presented in the following sec- single form as shown in the sub-window on the
tion. right hand side of Figure 6. The client surround-
ing this sub-window provides the management of
tasks. Users can initiate new business processes
GENEraTIoN of usEr and manage their tasks by using the standard
INTErfacEs functionality of the client application.
After the user has entered all data and has sub-
algorithm mitted them, the client sends the data back to the
service composition which can proceed and call a
The generation algorithm for generating the service or initiate another user interaction.
matching user interfaces works by recursively The presented algorithm is independent from
going through all data types required for the the implementation. Target user interfaces can be
concerned variables. Each data type is traversed for example traditional clients and Web interfaces.
separately. If for the main data type a match- Additionally, the interface is described on such a
ing editor or viewer (depending on the task) is high abstraction level, that interfaces can be gen-
available, it is used for the user interface. If no erated for different devices with different screen
such editor or viewer is available in the system, a sizes. For example, a PDA can have a registry
screen area is reserved that is populated with the of components, which is completely different
sub-types. For each sub-type an editor or viewer from a desktop computer. Therefore, this simple
is looked up. If none is available, the structure is annotation of business processes can be used to
traversed further. The recursion ends at a mini- accommodate different devicesonly matching
generators need to be implemented once.
Automatic Creation of GUIs for Web-Based ERP Systems
C h e ck V is u a lize
? p ro fit m a rg in (P M ) d iffe re n c e
X D iffe re n ce
visu a lize d
PM
P M o .k.
to o lo w M a ke
d e cisio n
Manager M a n a g e r d e cid e s
X
X E d it
se le cte d
A p p ro ve d R e je cte d
E d it P M
X
A p p ro ve d R e je cte d
F o rw a rd o rd e r
Ws to p ro d u c tio n
O rd e r
fo rw a re d
Furthermore, the editor and viewer registry the fly. Therefore, the editor and viewer registry
allows flexibility for advanced user interface de- must be available for each client.
sign when needed. Advanced components can be Run-time generation allows easy maintenance
stored in the registry for their corresponding data of the service compositions, since the composition
types. Although they need to be implemented in can change without the need to change the client
traditional languages, they can be reused by all if no additional editors and viewers are needed.
business processes, still saving some effort. Furthermore, the service composition designer
does not need to have technical knowledge in
run-Time Generation programming user interfaces. However, the
clients generator is the limiting factor. Since the
The presented algorithm can be used for differ- task model itself is very simple, advanced forms
ent purposes in the development process. This cannot be modeled.
section will explain the usage scenario for using The run-time generation is very suited for
run-time generation. developing initial software versions and prototype
In run-time generation, the composition places applications which can be changed on the fly
a user interaction request until the user logs into the during interviews and discussion. Additionally,
system. The request contains the task model, the it is well-suited within projects, which have the
data type description, and the data itself. When the ability to deliver a sufficient number of editors
user proceeds with the user interaction, the client and viewers to their customers. Therefore, the
downloads the task model and its accompanying customers can modify the services without the
data and generates the matching user interface on need to develop software themselves.
Automatic Creation of GUIs for Web-Based ERP Systems
Automatic Creation of GUIs for Web-Based ERP Systems
Automatic Creation of GUIs for Web-Based ERP Systems
The function of the GUI component is to realize nents. The engine is responsible for realizing the
the communication between the workflow-engine business processes workflow and the handling
and the end-user who runs the system. If interac- requests for functionality as well as reacting on
tion with the user is required during workflow incoming events. For generating the required
processes, the GUI generates the needed views. user interfaces during run-time, it is necessary to
The user accesses the system using a common supplement existing models of existing workflows
Web browser via HTTP. The GUI is realized us- and composition languages Web services. There
ing a JSP- and Servlet-Technology running on a are two possible approaches for this purpose.
Java application server. The workflow engines On the one hand, it would be possible to add ad-
main function is to take care of the execution of ditional information to the Web services, which
the stored workflows, which represent the busi- specify the required GUI elements. Principally,
ness processes within the enterprise. The engine the existing constructs and standards would be
controls the sequence of activities considering the adequate for that. On the other hand, the second
terms and conditions, which are defined by the approach for integrating GUI information into
workflow designer. the process flow is about to expand the business
process definitions. In this case, the process de-
prototype Implementation signer (workflow designer) is the one, who adds
the required information to the process definitions.
The prototype was developed mainly to gain An overview about the planned structure of the
experiences with the following components: the prototype is shown in Figure 9.
workflow engine; the Web service interface; the The prototype architecture is based on the
process parser; and the generation of graphical model view controller (MVC) pattern. Thus, there
user interfaces. Modules including basic func- is loose interconnection between those three parts,
tionality and the connection to the enterprises so that changes in one of these parts will hope-
database are not realized yet. It is assumed that fully not require modification of the others. For
these components are realizable via Web services realizing the MVC concept, the Struts Framework
later. The core of the application is the workflow is used. Figure 10 shows the MVC structure and
engine, which connects all the involved compo- its specification regarding the FERP prototype.
Automatic Creation of GUIs for Web-Based ERP Systems
Automatic Creation of GUIs for Web-Based ERP Systems
0
Chapter XI
Prototyping in Web
Development
Clif Kussmaul
Clif Kussmaul, Elegance Technologies, Inc., USA & Muhlenberg College, USA
Roger Jack
Elegance Technologies, Inc., USA
aBsTracT
This chapter addresses issues, alternatives, and best practices for prototyping in Web development. The
chapters primary objective is to provide a clear and concise overview of key concepts and best prac-
tices for practitioners and students, as well as other audiences. The chapter focuses on graphical user
interface (UI) prototyping for Web development, but many of the principles apply to non-UI prototyping
and other sorts of software development. First, we introduce and motivate the chapter, and review the
major objectives, benefits and risks, and classifications of prototypes. Second, we describe the major
approaches to prototyping. Finally, we conclude with future trends and a summary of best practices.
Copyright 2008, IGI Global, distributing in print or electronic forms without written permission of IGI Global is prohibited.
Prototyping in Web Development
Creating Prototypes. Third, we review the simulate, document, and review prototypes for
prototype to understand what works well, what Web applications and other software systems.
could be improved, and what new issues have
been identified. Several evaluation methods are
described in the section titled Reviewing and BacKGrouNd
Reacting. Fourth, we react to the prototype and
determine what to do next. In some cases there In this chapter, development team is the group
may be nothing more to learn from the prototype, of analysts, designers, software developers, and
and it can be discarded, or archived for future other people responsible for building a Web-based
reference. More often, the evaluation will lead to application, or system, which may be divided
more iterations through these four key steps. into numerous components. Stakeholders
This chapter provides a concise overview of are other people or organizations with a sig-
key concepts and best practices for practitioners nificant interest in the project, including upper
and students, as well as other audiences. The management, other business functions such as
chapter focuses on graphical user interface (UI) sales, and (of course) the intended end users of
prototyping for Web development, but many the system.
of the principles apply to non-UI prototyping. Web development, like other software de-
Similarly, prototyping issues and approaches ap- velopment, involves a wide variety of activities.
ply to many sorts of software development, but These activities can be grouped into four broad
the chapter emphasizes Web applications, based categories that span the systems life cycle. First,
on a variety of Web development projects the the team must analyze the problem to understand
authors have been involved with in the last ten users, their needs, important tasks, and other
years. We provide a multidisciplinary perspective, relevant requirements. Second, the team must
since effective prototyping involves a variety of design the system or component to fulfill these
disciplines, including business, psychology, and requirements. Third, the team must build the
software engineering. The chapter also draws on system or components; this includes activities
our experiences developing a tool to help design, such as coding, integration, and testing. Finally,
Prototyping in Web Development
the team must maintain the working system as potential users, as compared to more traditional
long as it is in use, by correcting defects and software systems.
adding enhancements. In waterfall develop- Some of these differences have particular im-
ment (e.g., Royce, 1970), activities are generally plications for prototyping. First, Web applications
performed in stages that parallel the categories often serve a diverse and evolving set of users, and
described above; the requirements are analyzed, users can easily switch to alternatives (Jeenicke,
then the entire system is designed and built, and Bleek, & Klishewski, 2003). As a result, Web ap-
so forth. However, a pure waterfall approach is plications need to place special emphasis on user
not feasible in many situations, since work in one requirements and expectations. Prototyping can
stage may reveal omissions or errors in an earlier help development teams understand how users
stage, and because requirements may change will approach a Web application and what they
during development. Thus, some organizations will try to do with it (Preece, Rogers, & Sharp,
prefer iterative or spiral development models, 2002). Second, Web applications often require
which consist of multiple cycles, each of which multidisciplinary development teams; prototypes
contains activities from all four categories. Ag- provide a simple, visual way for such teams to
ile development processes such as Scrum may communicate. For example, Holter (2006) states
contain many cycles, of a few weeks each (e.g., that the root of most Web development problems
Cockburn, 2002; Highsmith, 2002). is not technical but rather it is the failure to com-
Web development differs from other types of municate technical information non-technically
software development in some important ways. (p 25). Third, Web applications evolve continually
For example, Ginige and Murugesan (2001), Gi- in response to user needs and changing technolo-
nige (2002), and Murugesan and Ginige (2006) gies, and because it is relatively easy to deploy
identify several challenges in Web systems, new versions to a server. Prototyping makes it
including the continual growth of requirements, easier to explore possibilities and quickly identify
the continual change in information content, a the most promising.
diverse set of stakeholders, and the need for mul-
tidisciplinary development teams. They describe
a hierarchy of Web-based software, ranging from oBJEcTIvEs aNd scopE of
static Web pages through database-driven Web proToTypING
sites to complex Web systems, and propose a set
of processes to help address these challenges. Why Is prototyping Important?
Kappel, et al. (2003) describe a similar but larger
set of challenges, which are categorized by their Prototyping is essentially a way to reduce risk,
focus on product and content, usage context, sys- by exploring specific aspects of the system before
tem development, or system evolution. Chen and making final decisions. Prototyping can be used
Heath (2005) also identify challenges, including in almost any aspect of development; for example,
usability design, content maintenance, scalabil- a Web development team might use prototypes
ity, security, fast deployment, and competing to evaluate the effectiveness of an open source
architectures, platforms, and tools. Similarly, library, or to compare the performance of different
Mendes, Mosley, and Counsell (2006) identify database configurations.
12 areas of difference, and emphasize the wider This chapter focuses on UI prototyping.
range of people involved, the wide range and Roughly 50% of application code is devoted
rapid change of technologies, and the diversity of to UIs (Myers & Rosson, 1992). Furthermore,
Prototyping in Web Development
roughly 50% of software projects experience until late in the development process, although it
significant cost overruns, and inaccurate estimates is usually one of the first things noticed by users.
are often caused by UI issues (Lederer & Prasad, Effective prototyping can help to address all of
1992; Standish Group, 1994). Poor UIs can make these challenges.
products difficult or impossible to use (Norman,
2002). For example, a survey found that 63% of When and How can prototyping Be
new mobile phones returned as defective were used?
not broken; rather, users did not understand how
to use the phones (Williams, 2006). Conversely, Prototyping can be used throughout the develop-
Nielsen (1993) cites multiple examples of sig- ment process. Floyd (1984) identifies three broad
nificant cost savings from improved UIs, and classes of prototyping, although the boundaries
customers will often pay a significant premium are necessarily vague. First, exploratory proto-
for high-tech products that are also high-style, typing helps to clarify the systems broad scope
for example, attractive and easy to use (Cagen & and direction, by identifying missing require-
Vogel, 2002). However, developing effective UIs ments and considering multiple approaches.
presents challenges throughout the development Thus, prototyping is useful in the early stages of
process. System requirements can be difficult to ideation, product planning, and market research.
define accurately. As with any software system, Prototyping is also useful during requirements
there are usually multiple stakeholders with com- analysis and system design, since it can help to
peting priorities. In contrast with other types of identify additional requirements, and evaluate the
software development, Web applications often effectiveness of various implementation models.
target users who are widely dispersed, use the ap- Second, experimental prototyping evaluates the
plication briefly or sporadically, can readily switch suitability of a proposed solution before commit-
to alternatives, and have evolving expectations. It ting to full scale implementation. Third, evolu-
can be difficult to design and implement a Web tionary prototyping explores the consequences of
application in the face of continual improvements incremental changes to an existing system. The
in network bandwidth, storage space, process- relative position of each class in the system life
ing speed, and other technologies. Developers cycle is illustrated in Figure 2.
and users often think quite differently about the
application architecture; Hohmann (2003) refers Benefits and Risks
to these as tarchitecture (technical views for
developers) and marketecture (marketing views Prototyping provides many benefits. Prototyping
for customers). Too often, the UI is not a priority encourages creative trial and error. Prototyping
Prototyping in Web Development
makes it possible to explore more options for other alternatives, or focus on details that are not
the UI, starting early and continuing throughout yet relevant. For example, when reviewing a site
the development process. Prototyping improves navigation prototype, they may focus instead on
communication with project stakeholders, par- color choices and fonts. At the same time, a more
ticularly non-technical stakeholders who find polished prototype may lead some stakeholders to
experimenting with a prototype to be easier and assume that the entire system is nearly complete.
more inviting than reading technical documents. Thus, development teams should clearly articulate
Thus, prototyping helps the development team the issues addressed in a particular prototype. At
develop more accurate and complete requirements the other extreme, it is possible to fall into analysis
and designs for the UI. Better requirements lead paralysis, where the team becomes overwhelmed
to fewer and less severe defects in the system. by the range of possible issues and directions, and
Fewer defects lead to reduced development and is unable to make necessary decisions.
maintenance costs, and more satisfied users. There
is a rule of thumb that the cost to fix a defect Taxonomies
increases exponentially with the time between
occurrence and detection of a defect (Boehm, Prototypes can be classified using several taxono-
1976). In general, prototyping helps organizations mies, including scope, fidelity, longevity, and the
make better decisions faster, which usually saves prototyping technique.
time, money, and other resources. Scope or size describes how much of the
Prototyping also presents some risks. Prototyp- system is represented in the prototype. Figure
ing tools make it easy for developers to become 3 illustrates related terms using a graphical site
immersed in construction activities when they map, with pages in grey connected by links. A
should really be focused on analysis or design, shallow prototype shows a few key elements
which should be user-focused (Cooper, 1994). of the system, while a deep prototype provides
Stakeholders can become too attached to a par- much greater detail. Similarly, a broad prototype
ticular prototype, and be reluctant to consider addresses many aspects of the system, while a
Prototyping in Web Development
narrow prototype focuses on particular elements then discarded, while evolutionary prototypes are
of interest. Basic navigation for a new system intended to gradually develop into the final system.
will usually start out with a broad and shallow Throwaway prototypes can explore concepts and
(or horizontal) prototype, and then add depth as possible directions quickly, since developers can
needed. Conversely, changes or new features for simplify or even omit non-essential features and
an existing system are often explored by deep processes. However, any useful functionality in
and narrow (or vertical) prototypes. the prototype may need to be recreated in the final
Fidelity describes how closely a prototypes system. This apparent duplication of effort can be
appearance and behavior match the final system. difficult to justify to non-technical stakeholders
Low fidelity prototypes may be very rough, and who see a system that appears to be nearly com-
are often created quickly with pen and paper or plete. In many cases, however, the final system
basic drawing software. High fidelity prototypes will benefit from revisiting these issues. To quote
match the final look and feel more closely, are Brooks (1999), plan to throw one away; you
created using specialized prototyping tools or will, anyhow (p. 116). Conversely, evolutionary
normal developer tools, and require more time prototypes require more initial effort, or more
to create. Rudd, Stern, and Isensee (1996) argue rework. This can reduce the total development
that designers should use both high and low effort, but can also commit the development team
fidelity techniques, since both have advantages to decisions that were made prematurely, but are
and disadvantages. It can be useful to distinguish difficult to change. Often, the best approach is to
two sorts of fidelity. Visual fidelity focuses on the use specialized prototyping tools and techniques
visual appearance of the prototype, while inter- for the initial, throwaway prototypes, and then to
action fidelity focuses on the extent to which the switch to evolutionary prototyping once the team
prototype behaves like the final system. Figure is confident about key decisions and directions.
4 illustrates the relationship between visual and Other taxonomies have been proposed. For ex-
interaction fidelity. Thus, graphic designers might ample, Baumer, Bischofberger, Lichter, and Zul-
create images with high visual fidelity, but low lighoven (1996) identify four types of prototypes
interaction fidelity, while software developers (presentation, functional, breadboard, and pilot
might create proof of concept software with high systems) and four tool categories (Hypercard-like,
interaction fidelity but low visual fidelity. interface builders, fourth generation systems, and
Longevity describes how long the prototype is application frameworks).
used. Throwaway prototypes are used briefly and
Prototyping in Web Development
Prototyping in Web Development
ber of the development team who understands OpenOffice Writer) are already familiar to most
the intended functionality must be available to computer users, making it easy to get started. For
help a stakeholder review a paper prototype, and example, Nam and Gill (2000) and Verhoeven
as a result the prototype may behave differently (2003) describe prototyping techniques using
at different times. Furthermore, any prototyping Microsoft PowerPoint, and Arnowitz, Arent, and
technique also risks omitting essential details Berger (2007) describe techniques using a variety
through oversimplification, causing problems of applications, including Adobe Acrobat, and
that must be corrected later. Microsoft Word, PowerPoint, Excel, and Visio.
HTML editors (e.g., Mozilla Composer, or NVu)
mock prototyping can be useful for Web applications as well as
other sorts of user interfaces. Dedicated tools
Appropriate tools can be used to develop mock (e.g., Axure RP, Irise Studio, or Lucid Spec) are
prototypes with better fidelity than paper pro- designed specifically for prototyping, and range
totypes, but more efficiently than coding. Such in price from a few hundred dollars to tens of
tools enable users to quickly lay out the UI, usu- thousands of dollars. Novice users may find some
ally by dragging and dropping elements from tools difficult or intimidating, but experienced us-
a menu. Users can also modify the size, shape, ers can be very productive. Dedicated tools may
and color of each UI element, and reuse them. offer powerful functionality, such as templates
Although some tools can simulate the sequence for common screens and components, usability
of screens, the flow of data between screens, or testing, or code generation.
other functionality, in most cases users will need For example, Figure 6 shows a mock prototype
to document business logic, either using the tool of the book renewal page, with the same general
or in separate documentation. General purpose organization as the paper prototype. The tool
tools, such as drawing software (e.g., Adobe Il- (Lucid Spec) provides features to facilitate pro-
lustrator and Photoshop, Dia, or Microsoft Visio), totyping. To the left of the prototype is a panel
presentation software (e.g., Apple Keynote, Mi- to organize screens in the current document, and
crosoft PowerPoint, or OpenOffice Impress), or a set of controls that can be used in the current
word processing software (e.g. Microsoft Word or screen. To the right of the prototype is a panel for
Prototyping in Web Development
annotating the screen or specific controls, and a which can waste resources. Thus, Holter (2006)
panel to view and adjust their properties. recommends the use of greyscreen prototypes
Mock prototyping has advantages and dis- that focus on functionality rather than what the
advantages. The prototypes are usually either Web application will look like.
throwaway, or must be maintained as design docu-
ments, although some tools may generate HTML code prototyping
or other representations that can be used later in
the development process. General purpose tools Code prototypes are created using the same de-
are familiar to many people, reducing the cost and velopment tools, techniques, and even processes
the learning curve, although they may or may not that would be used for the final system. For Web
provide needed functionality, depending on the development, these might include Web authoring
goal of the prototype. Conversely, special purpose tools such as Adobe Dreamweaver and Microsoft
tools are specifically designed for prototyping, but Office FrontPage, as well as integrated develop-
development teams must purchase them and learn ment environments such as Eclipse, NetBeans, or
to use them effectively. Both general and special Microsoft Visual Studio. Compared to the final
purpose tools often present a tradeoff between system, however, a code prototype has lower
ease of use and complexity; tools that are easy for fidelity, and the scope is restricted to specific
novices to use may provide limited functionality, issues of interest. Thus, a code prototype might
while more powerful tools may be too complex include little or no error checking for user input,
for some users. Both types of tools can also be use dummy data instead of a real database, and
used by non-developers, making it easier for other use simple but inefficient algorithms. It is pos-
stakeholders to create, edit, or review prototypes. sible to develop code prototypes using different
Prototyping tools make it easy to adjust details technologies than the final system. For example,
that may not be relevant for a particular prototype, a large, complex Web site might be prototyped
Prototyping in Web Development
using PHP or Python although the final imple- and the fidelity of the resulting prototype. These
mentation uses Java. relationships are illustrated in Figure 8.
Figure 7 shows a code prototype of the book There is evidence that both high and low
renewal page, in a regular browser. fidelity prototyping are equally good at finding
Code prototyping has advantages and dis- usability issues (Walker, Takayama, & Landay,
advantages. It uses tools and techniques that 2002), although they emphasize different sorts of
are already familiar to the development team, problems (Virzi, Sokolov, & Karis, 1996; Nielsen,
which reduces the required skill set. While other 1990). Similarly, Bailey and Konstan (2003) com-
prototyping approaches may restrict what can be pared three approaches (paper, an experimental
created, code prototyping can use any features or low-fidelity tool, and a commercial high-fidelity
capabilities that could be used in the final system, tool) and found that different designers and clients
and can become evolutionary prototypes. Thus, preferred different tools for different tasks; no one
there is a risk of adding unnecessary detail to a approach was best in all situations.
code prototype. For example, developers may
be tempted to add error checking or graphic using multiple approaches
design elements (such as colors, fonts, or im-
ages) to a prototype intended to explore basic Given the advantages and disadvantages of the
screen layout. Similarly, code prototyping is different approaches, it is often most effective to
more resource intensive than other approaches. use multiple techniques in different parts of the
As a result, development team may be reluctant development process. Newman, Lin, Hong, and
to give up or throw away code prototypes, and Landay (2003) observed and interviewed Web
so incidental or erroneous choices may become designers, and found that they switch between
architectural decisions that will be even more lower and higher fidelity representations, using
difficult to change later. a range of tools suited for each task. When a
system or feature is first being explored, paper
comparing approaches prototyping is often most useful, since it is fast
and simple, making it easy to explore a variety of
The three approaches to prototyping are distin- possibilities. At this stage, it is easy for developers
guished by the tools and techniques employed, but to spend too much time using other techniques.
also differ in the resource investment required, As the requirements or design alternatives are
00
Prototyping in Web Development
Mock
Paper
Code
Prototyping Approach
Defects Findable 33% 33% 33%
Cumulative Defects Findable 33% 67% 100%
Relative Prototype Cost Per Pass 10 50 250
Relative Defect Removal Cost 10 50 250
Defect Identification Rate Per Pass 50% 50% 50%
Defect Cost Multiplier Per Pass 1.50 1.50 1.50
better understood, mock prototyping provides fects, since some defects can only be found using
more detail for the more promising approaches. higher fidelity approaches, but each approach can
Code prototyping can be reserved for issues that find defects that could not be found in the previous
can not be explored using other approaches, or for approaches. Third, there is a fixed cost to create
evolutionary prototyping that will iterate toward prototypes and remove defects, which increases by
the final system. a factor of five between approaches. Fourth, each
The benefits and risks of using paper, mock pass finds an equal percentage of the remaining
and code prototyping can be illustrated using a defects (50%). Fifth, the cost of fixing a defect
spreadsheet model of the relative cost of finding increases by a factor of 1.5 for each pass that is
and fixing defects, and the percentage of total remaining undetected. The model parameters are
defects found. The model makes some simplifying summarized in Figure 9.
assumptions. First, the prototyping process con- Figure 10 illustrates the results of the model
sists of multiple passes, each using one approach for four scenarios, which invest similar prototyp-
(paper, mock, or code). Second, each approach ing costs with differing results. Scenario A uses
finds a certain percentage (33%) of the total de- three passes of code prototyping. Scenario B uses
0
Prototyping in Web Development
five mock passes, then two code passes. Mock First is the user, who should be selected based
prototyping finds a subset of defects much more on the objectives. For example, the user might be
quickly; this results in fewer remaining defects a typical intended user of the Web application,
as well as lower total cost, since finding defects with little or no special knowledge. The user might
sooner is less expensive. Scenario C uses five be a stakeholder with insight into customer needs
paper passes, then four mock passes, then two and preferences, such as someone in sales, sup-
code passes, for roughly the same total prototyp- port, documentation, or quality assurance. The
ing effort. Paper prototyping finds some defects user might be a developer with more specialized
very quickly, providing a further head start for knowledge. In each case, the user will bring a dif-
the mock and code passes. Finally, scenario D ferent set of experiences and expectations, which
shows that each approach reaches a point of can affect the outcome of the review.
diminishing returns, when it has found most of The second role is the facilitator. This is
the remaining defects. Thus, too much prototyp- usually a member of the development team, or
ing may fail to continue reducing the number of perhaps a usability specialist. The facilitator has
defects, and may even increase the overall cost. two main objectives. First, he/she watches and
(These results are qualitative, not quantitative, listens to the user, to try to understand what the
but could be calibrated for specific organizations user is thinking and trying to do. The facilitator
and projects.) may also ask questions, although inappropriate
questions may bias the users responses. Second,
the facilitator tries to keep the review focused on
rEvIEWING aNd rEacTING the defined objectives.
The third role is the computer. For a code
Developers can learn a great deal from the process or mock prototype, the computer is a physical
of creating a prototype, even if no one else ever device, although for a mock prototype the facili-
sees it. However, prototypes are usually reviewed tator or an assistant may need to supplement the
with other stakeholders. Like a prototype, a review prototypes functionality with explanations. For
should have clearly defined objectives. Reviews paper prototypes, the computer is a person who
can identify requirements that were missing, or presents the appropriate sheets of paper based
imperfectly understood. Reviews can also help on the users actions and comments. This person
to identify features that work well, features that may even modify or create new screens during
need to be improved, or significant problems the review session, to address problems or explore
with a design. Reviews typically involve several new possibilities.
distinct roles, illustrated in Figure 11.
0
Prototyping in Web Development
The fourth role is the observer, who also concepts and skills should be familiar throughout
watches and listens to the user and takes notes the organization. For example, basic experience
where applicable. The observer may notice things with paper prototyping will benefit anyone who
the facilitator does not, since the facilitator is interacts with potential customers or is involved
focused on the user and ensuring that the review in product development. At the same time, it is
addresses its objectives. important to clearly define the objectives for
It can be helpful to make a video recording each prototyping effort, to minimize risks such
of the entire review, including the user, facilita- as analysis paralysis or premature commitment
tor, and reviewer, although some users may find to an inappropriate design.
this distracting or intimidating. There is a broad Prototyping also has implications for students
literature (e.g., Kuniavsky, 2003; Rubin, 1994) on and educators. The basic concepts can be learned
usability analysis and observational techniques, quickly and applied to a wide variety of situations.
such as surveys, focus groups, and usability In particular, prototyping makes it possible to
tests. explore a wider variety of options in a shorter
After reviewing a prototype with one or more timeframe, which makes it very useful for provid-
stakeholders, the development team should evalu- ing realistic experiences in a compressed academic
ate the results, and decide how to proceed. For timeframe. It also demonstrates the value of it-
example, if the prototype is for a proposed new erative development processes, and of consider-
feature and the user finds it intuitive and useful, ing multiple approaches before committing to a
the developers may be ready to implement it. specific direction. Several authors have reported
Alternatively, the review may identify potential on ways to help students learn about prototyping
problems or new possibilities that warrant further (e.g., Karat & Dayton, 1995; Frank, Naugler, &
prototyping. Traina, 2005; Kussmaul & Jack, 2006).
Dedicated tools are evolving rapidly to support
the growing interest in prototyping. Increasingly,
fuTurE TrENds these tools will target specific stakeholders (e.g.,
salespeople, developers, or end users), technolo-
The advantages of prototyping are well estab- gies (e.g., Web, desktop, or embedded applica-
lished, and prototyping will be used increasingly tions), and even application domains.
by a variety of organizations. Prototyping can be Web authoring tools and other development
used throughout the Web development life cycle, tools will increasingly support prototyping as
and can be used as part of almost any development well.
methodology, though it is particularly well suited
to iterative or agile processes. In fact, Schrage
(2000) argues that prototyping and other simula- coNclusIoN
tion-based activities are an essential component
of innovative product development at world-class Prototyping is easy to do, but it is also easy to
companies. do poorly. The following best practices can help
The use of prototyping in Web development maximize the benefits of prototyping. First, clearly
projects has implications for executives and define the objectives for a prototype, and com-
managers. For a modest investment, prototyping municate those objectives to stakeholders who
yields clear benefits to a variety of project stake- will develop and review the prototype. Second,
holders. Although prototyping can benefit from focus on the most common or important tasks
specialized experience and complex tools, some and goals; an old rule of thumb suggests that
0
Prototyping in Web Development
users spend 80% of their time on 20% of the ap- Baumer, D., Bischofberger, W., Lichter, H., &
plication, so focus on that 20%. Third, match the Zullighoven, H. (1996). User interface prototyp-
prototyping technique to the issues you want to ing-concepts, tools, and experience. In Proceed-
address, and the stage of development. Understand ings of the 18th International Conference on
how much fidelity is needed, and resist the urge Software Engineering (ICSE96) (pp 532-541).
to add unneeded detail, which wastes resources IEEE Computer Society.
and can distract people evaluating the prototype.
Boehm, B. (1976). Software engineering. IEEE
Fourth, learn as much as possible from prototype
Transactions on Computers, 25, 1226-1241.
reviews; for example, see if users can figure out
how to use the prototype without detailed instruc- Brooks, F. P. (1995). The mythical man-month:
tions. Finally, use prototyping iteratively; start Essays on software engineering. Boston: Ad-
with simple, throwaway prototypes, and refine dison Wesley.
gradually as you understand the problem and
Cagen, J. & Vogel, C. M. (2002). Creating break-
the solution.
through products: Innovation from product plan-
The value of prototyping can be summarized
ning to program approval. Upper Saddle River,
in two key ideas. First, prototyping enables Web
NJ: Prentice Hall.
development teams to perform multiple small ex-
periments and learn from the results. Tom Peters Chen, J. Q., & Heath, R. D. (2005). Web application
puts this succinctly as test fast, fail fast, adjust development methodologies. in W. Suh (Ed), Web
fast. Second, prototyping improves communica- engineering: Principles and techniques. Hershey,
tion among project stakeholders, who may have a PA: Idea Group Publishing.
wide variety of perspectives and backgrounds. To
Cockburn, A. (2003). Agile software development.
quote DeMarco and Lister (1999, p. 4), the major
Boston: Addison Wesley Professional.
problems of our work are not so much technologi-
cal as sociological. Prototypes and prototyping Cooper, A. (1994). The perils of prototyping.
tools are not silver bullets. The real value is in the Visual Basic Programmers Journal, August
prototyping process, not the resulting product, September 1994, 1.
which is reflected in our preference for using
DeMarco, T. & Lister, T. (1999). Peopleware:
prototype as a verb rather than a noun.
Productive projects and teams (2nd ed). New
York: Dorset House.
rEfErENcEs Floyd, C. (1984). A systematic look at prototyping.
In Budde, R., Kuhlenkamp, K., Mathiassen, L. &
Arnowitz, J., Arent, M., & Berger, N. (2007). Zullighoven, H., Approaches to prototyping, (pp
Effective prototyping for software makers. San 1-18). Berlin: Springer Verlag.
Francisco: Morgan Kaufmann Publishers.
Frank, C. E., Naugler, D., & Traina, M. (2005).
Bailey, B. P., & Konstan, J. A. (2003). Are infor- Teaching user interface prototyping. Journal of
mal tools better? Comparing DEMAIS, pencil Computing Sciences in Colleges, 20(6), 66-73.
and paper, and Authorware for early multimedia Consortium for Computing Sciences in Col-
design. In Proceedings of the SIGCHI Confer- leges.
ence on Human Factors in Computing Systems
Ginige, A. & Murugesan, S. (2001). Web en-
(pp 313-320). New York: ACM Press.
gineering: An introduction. IEEE Multimedia,
8(1), 14-18.
0
Prototyping in Web Development
Ginige, A. (2002). Web engineering: Managing Mendes, E., Mosley, N., & Counsell, S. (2006).
the complexity of Web systems development. In The need for Web engineering: An introduction.
Proceedings of the 14th International Conference In E. Mendes & N. Mosley (Eds.), Web engineer-
on Software Engineering and Knowledge Engi- ing. Berlin: Springer Verlag.
neering, (pp 721-729). New York: ACM Press.
Murugesan, S. & Ginige, A. (2005). Web engi-
Highsmith, J. (2002). Agile software development neering: Introduction and perspectives. In Suh, W.
ecosystems. Boston: Addison Wesley Profes- (Ed.), Web engineering: Principles and techniques
sional. (pp 1-30). Hershey, PA: Idea Group Publishing.
Hohmann, L. (2003). Beyond software architec- Myers, B. A. & Rosson, M. B. (1992). Survey on
ture: Creating and sustaining winning solutions. user interface programming. In Proceedings of
Boston: Addison-Wesley Professional. the ACM CHI92 Conference (pp 195-202). New
York: ACM Press.
Holter, E. (2006), Client vs developer wars. Chapel
Hill, NC: Newfangled Web Factory. Nam, T. J. & Gill, S. (2000). An effective proto-
typing method for delivering interaction design
Jeenicke, M., Bleek, W.-G., & Klisechewski, R.
in industrial design education. In Proceedings of
(2003). Revealing Web user requirements through
the IDATER Conference, 2000.
e-prototyping. In Proceedings of the 15th Interna-
tional Conference on Software Engineering and Newman, M. W., Lin, J., Hong, J. I., & Landay, J.
Knowledge Engineering (SEKE 03). Skokie, IL: A. (2003). DENIM: An informal Web site design
Knowledge Systems Institute. tool inspired by observations of practice. Human-
Computer Interaction, 18(3), 259-324.
Kappel, G., Prll, B., Reich, S., & Retschitzegger,
W. (2003). An introduction to Web engineering. Nielsen, J. (1990). Paper versus computer imple-
In G. Kappel, B. Prll, S. Reich, & W. Retsch- mentations as mockup scenarios for heuristic
itzegger (Eds), Web engineering: The discipline evaluation. In Proceedings of the IFIP Third
of systematic development of Web applications. International Conference on Human Computer
Hoboken, NJ: John Wiley & Sons. Interaction (pp 315-320). Amsterdam: North-
Holland.
Karat, J., & Dayton, T. (1995). Practical education
for improving software usability. Conference on Nielsen, J. (1993). Usability engineering. San
Human Factors in Computing Systems (pp 162- Francisco: Morgan Kaufmann Publishers.
169). New York: ACM Press.
Norman, D. (2002). The design of everyday things.
Kuniavsky, M. (2003). Observing the user ex- New York: Basic Books.
perience. San Francisco: Morgan Kaufmann
Preece, J., Rogers, Y., & Sharp, H. (2002). Interac-
Publishers.
tion Design: Beyond Human-Computer Interac-
Kussmaul, C., & Jack, R. (2006). User interface tion. Hoboken, NJ: John Wiley & Sons.
prototyping: Tips & techniques. Journal of Com-
Rettig, M. (1994). Prototyping for tiny fingers.
puting Sciences in Colleges, 21(6), 188-190. Con-
Communications of the ACM, 37(4), 21-27.
sortium for Computing Sciences in Colleges.
Royce, W. (1970). Managing the development of
Lederer, A. L. & Prasad, J. (1992). Nine manage-
large software systems. In Proceedings of IEEE
ment guidelines for better estimating. Communi-
WESCON (pp 1-9). New York: The Institute of
cations of the ACM, 35(2), 51-59.
Electrical and Electronics Engineers.
0
Prototyping in Web Development
Rubin, J. (1994). Handbook of usability testing. Verhoeven, J. (2003). Prototyping with Power-
Hoboken, NJ: John Wiley & Sons. Point. Retrieved on January 1, 2007, from http://
www.jansfreeware.com/articles/misc-prototyp-
Rudd, J. and Isensee, S. (1994). Twenty-two tips
ing.html
for a happier, healthier, prototype. Interactions,
1(1), 35-40. Virzi, R. A., Sokolov, J. L., & Karis, D. (1996).
Usability problem identification using both low-
Rudd, J., Stern, K., & Isensee, S. (1996). Low vs.
and high-fidelity prototypes. In Proceedings of
high-fidelity prototyping debate. Interactions,
the SIGCHI Conference on Human Factors in
3(1), 76-85.
Computing Systems (pp 236-243). New York:
Schrage, M. (2000). Serious play: How the worlds ACM Press.
best companies simulate to innovate. Boston:
Walker, M., Takayama, L., & Landay, J. (2002).
Harvard Business School Press.
High-fidelity or low-fidelity, paper or computer
Snyder, C. (2003). Paper prototyping: The fast and medium? Choosing attributes when testing Web
easy way to design and refine user interfaces. San prototypes. In Proceedings of the Human Factors
Francisco: Morgan Kaufmann Publishers. and Ergonomics Society 46th Annual Meeting,
pp. 661-665. Santa Monica, CA: Human Factors
Standish Group (1994). The CHAOS report. Re-
and Ergonomics Society.
trieved January 1, 2007 from http://www.standish-
group.com/sample_research/chaos_1994_1.php Williams, C. (2006). Smart phones, stupid punt-
ers? The Register, July 13, 2006.
0
0
Chapter XII
Testing for Web Applications
David L. Mills
University of Memphis, USA
aBsTracT
This chapter explores the concepts and challenges behind testing Web applications, and explores the
latest testing techniques and best practices. As our reliance on the Internet grows, the quality and reli-
ability of online resources become critical. Unfortunately, significant research shows that the current
approaches to modern Web development are woefully inadequate. It is important that there are processes
in place and best practices established to ensure that the development of Web applications can take
place with an assurance of quality. In addition to offering an initiation to some of the modern testing
methods and tools, the authors hope to motivate readers to consider testing as a multi-purpose tool to
be used throughout all stages of development.
Copyright 2008, IGI Global, distributing in print or electronic forms without written permission of IGI Global is prohibited.
Testing for Web Applications
provide motivation for software developers to Functional testing involves test cases that were
integrate a sound testing solution into their soft- created based on functional specifications, as op-
ware development life cycle model(s). posed to non-functional testing, which is aimed
at features such as speed and ease of use. Some
concepts in conventional Testing common non-functional tests include performance
testing, stress testing, and usability testing. Perfor-
Software testing is a method of quality assurance mance testing is evaluating the system compliance
involving the analysis of software to evaluate with performance specifications. Stress testing
features and ensure that the requirements are evaluates the behavior system when it is pushed
met. The tasks involved in testing are aimed at with a heavy load to the limits of performance.
verification and validation (IEEE, 1990). The Usability testing assesses the ability of users to
goal of verification is to make sure the product learn to operate a system. This type of testing
conforms to specifications. It is the process be- is often performed by specialists that observe
hind the question are we building the product humans interacting with the system.
right? Some sample verification tasks include Acceptance (aka Customer) testing is a form
inspections, reviews, and testing. Alternatively, of black-box testing that defines the criteria that
validation is aimed at making sure that product a system must meet to be acceptable for delivery,
build meets the needs of the user. It is the process that is, a way of validating the requirements. This
behind the question are we building the right is a powerful and beneficial tool. It enables both
product? Evaluations and customer testing are the customer and developer to ascertain what work
typical validation tasks. is complete and what work remains at any point,
Testing techniques can be categorized as and it is way for the developer to validate that the
either black-box or white-box. Black-box testing customer is satisfied (Jeffries, et. al., 2001). Since
takes place from an external view of the system, the acceptance tests serve as a testable version of
meaning that it is carried out without access to the critical requirements, when all the acceptance
the code or knowledge about the internals of tests for a system pass, the system can be con-
the program. The focus of such testing is on the sidered complete. Acceptance tests rarely involve
functionality of the program. White-box testing, code at the specification level, but they should be
which is also called structural or glass-box test- clear and understandable to both the customer and
ing, is performed with an internal view of the the developer. Collaboration is acceptable, even
system. Tests are generated using the code as a encouraged, but it is critical that the customer is
guide (Myers, 2004). always directly involved in writing the test cases.
There are various types of tests, each having To facilitate their communication, acceptance tests
a different focus and taking place at a different are usually provided in the form of spreadsheets,
level. Unit testing targets individual components tables or scripts that can be executed directly or
of a program. This usually refers to individual as automated tests.
methods and/or classes (IEEE, 1990; Myers, Regression testing is the re-execution of
2004). Unit tests evaluate modules independently previous tests created for a system or component.
of one another. Integration testing is performed They are typically run after significant changes
on combined components of the system, and are made, in order to ensure that intended func-
focuses on their interaction. System testing is a tionality was not lost. Many types of tests can be
form of black-box testing in which the system as a included in the regression test suite, including unit,
whole is tested. These tests can target functional integration, system, and acceptance tests; though
or non-functional specifications. only a select set of tests is usually included as it
0
Testing for Web Applications
can be impractical to continually re-run all tests Such failures are typically the result of weak
(IEEE, 1990). development and management processes. This
Testing often requires the development of seems to be confirmed by studies suggesting that
resources that will not be included in the final approaches to Web development applications have
product in order to enable testing to take place. generally been informal at bestlacking any
Such resources are called scaffolding. These well-defined defined process or quality control
simulate the functions of missing components; (Ginige, 2002; Mendes, 2005).
some common examples include stubs and mock
objects. Web Engineering
0
Testing for Web Applications
0
Testing for Web Applications
Testing for Web Applications
Alternatively, dynamic techniques focus on correctness (that the logic is accurate) and compat-
testing the functional and non-functional aspects ibility (that it will run in varied environments).
of the application. These techniques involve the Transaction testing. Actions on the Web take
execution of code and interactivity with the server place in transactions, beginning with a request
(Ricca, 2001; Stout, 2001). The figure below on the side of the client and ultimately coming
shows a simple example of the way a Web server back as a response from the server. The example
transaction occurs; the sample below is a model in Figure 1 demonstrates the transaction(s) for a
of a user login. login. It is important to test the flow of end-to-end
In Figure 1, the flow of execution proceeds transactions to evaluate the transfer of control,
as follows: data consistency, and data formatting.
Non-functional testing. As mentioned at
1. Login page requested the beginning of this section, there are many
2. Login page returned components that contribute to the quality of Web
3. Login form submitted applications. Tests should be written to ensure that
4. JSP (server page) called to handle submis- each of these characteristics meets pre-determined
sion specifications. An additional non-functional
5. Server page queries the database for valida- consideration is configuration/environment. Test
tion plans should include tests for common user envi-
6. Database returns validation results to the ronments, or those that are most important to you.
server page Important characteristics include connection type
7. After processing, the server page generates and speed, platform/operating system, browser
the HTML software/versions, additional applications/plug-
8. Based on the validation, the appropriate ins, and security settings.
page is returned
Best practices
Server-side page tests. Within most technolo-
gies used for modern Web applications such as Process management and planning. It is well-
servlets, JSP (Java server pages), and ASP (active accepted and understood that it is critical to have a
server pages)a great deal of execution occurs at process in place for all but the most trivial projects.
the server. The server-side software can include While there is a great deal of debate over whether
not only traditional elements such as classes/ conventional techniques are appropriate for Web
objects, but Web-specific components such as applications, practices from both traditional
servlets and scripted server-pages. Conventional and agile approaches should be considered. No
practices such as unit testing, integration testing, approach is universally applicable, even across
and regression testing should be performed on Web development projects. Projects benefit most
server-side components. by combining appropriate practices (Boehm &
Client-side/browser-page tests. For many Turner, 2005). Regardless of the process and
applications, some execution will also take place practices used, testing must be an integral part
on the client end. Typical examples of such items at all times, beginning with the requirements.
include applets, scripts (controlling interaction, At each step and decision, testability should be
field validation, presentation, etc.), and visual ef- a stated goal.
fects. These items can be dynamically generated, Automated testing tools. It is important that
which introduces further complexity. However, tests are run early and often, and this is made
it is important to tests such code to ensure both easier and more efficient by the use of automated
Testing for Web Applications
testing tools. Such tools can help with the tasks of This test will of course fail (i.e., return a red bar),
generating, executing, and managing tests (Stout, since the functionality is not yet in place. During
2001). Automated testing is recommended as part the green step, the developer writes just enough
of many agile methodologies and in test-driven code to get the test to pass (i.e., return green).
development. A balance is important however, Finally, during the refactor step, the developer
as writing and executing tests can get costly, es- cleans up the new and existing code to simplify
pecially for large and/or complex systems. and reduce duplication.
Testing environments. To enable effective TDD has been gaining increasing support,
testing, it is critical to have a separate environ- and adopters are reporting numerous benefits
ment available. Furthermore, it is critical that the from its use. Building software using TDD tends
test environment is identical to and independent towards simplicity. More specifically, since only
from the production environment (Stout, 2001). enough code is developed to pass the tests, the
This allows development to proceed without any design is kept inherently simple. There should
potential effects on the availability or stability of never be any unnecessary objects in the design,
the production application. An even better ap- since everything that exists after refactoring
proach, as suggested by Stout (2001) and Myers should be in use (Beck, 2005). By using TDD,
(2004), is to have three identical and independent developers apply the agile concepts Keep It
environmentsone for on-going development, Simple Stupid (KISS) and You Arent Going
another for testing, and finally the production To Need It (YAGNI).
environment. TDD forces developers to write automatically
Test-driven development (TDD). According testable code. Since the tests are written first, the
to Ron Jeffries, the goal of test-driven develop- objects are built with a user in mind. This changes
ment is clean code that works (Beck, 2003). This the focus by shifting attention to the interface and
sounds like a reasonable goal for any project, but not the implementation. Also, code tends to be
what exactly is involved in adopting this tech- more cohesive and less coupled. Since the objects
nique? TDD is more than just vigorously incorpo- serve both the application and the tests, the objects
rating tests in a project; rather it is quite literally will likely be developed with a clean and simple
the practice of putting testing in the drivers seat interface (Beck, 2005). Developing the objects
of development. In fact, the name itself implies with multiple clients in mind also tends to make
that this is a technique for development as a whole, the code more reusable (Hieatt, 2002).
not for testing (Ambler, 2004). In addition to driving design decisions, TDD
Like an agile methodology, TDD is an evolu- simplifies the process of moving forward. Each
tionary approach. The process begins by writing step consists of writing a small test, writing code
a test, which will initially fail, and then writing to pass it, and then refactoring. Developers should
code to support the intended functionality (Am- never be faced with planning and implementing
bler, 2004). TDD is driven by two basic rules: (1) a large chunk of functionality. All aspects of
write code only when a test fails; and, (2) get rid functionality are broken down into small test-
of duplication as you come across it. These rules able pieces, making it much easier to identify
are the foundation for the TDD building cycle what to do next, giving them the confidence to
described by the TDD mantra of red, green, implement another cycle. Of course, sometimes
refactor (Beck, 2003). it may be difficult to identify what to choose as
During the red step, the developer writes a test the next piece; it will take experience to become
to cover a small piece of functionality (for a new efficient. However, it is very important to follow
program or to be added to an existing program). the TDD cycle, and not to code until you have a
Testing for Web Applications
test in place first. There is a rule in TDD If you extremely popular with adopters of test-driven
cant write a test for what you are about to code, development and agile methodologies such as
then you shouldnt even be thinking about cod- eXtreme Programming. This success is due,
ing (Georgy & Williams, 2003, p.1). at least in part, to its simplicity and flexibility.
In each short TDD development cycle, a small Also, a great deal of documentation and online
amount of value/functionality is added and each resources exists for JUnit, making it easy for those
test in a growing suite is passing. Also, the gap just getting involved.
between making a decision and getting valuable Fortunately, using xUnit tools encourages the
feedback is greatly minimized. This process of separation of business logic into its own layer,
consistently adding functionality, coupled with which could be tested outside of a Web applica-
the frequent reinforcement of passing tests fosters tion. Consider the example of a calculator on the
courage, confidence, and trust within developers Web; the functionality (adding, subtracting, etc.)
and teams (Georgy & Williams, 2003). can be separated into a calculator class, enabling
the use of an xUnit tool.
Tools At some point, however, it will be necessary
to get access to Web features that are inaccessible
General Purpose Frameworks by JUnit alone. A number of tools are available to
overcome the special challenges of testing on the
The xUnit family is a collection of testing frame- Web. A few of these tools are described below.
works based on an original design by Kent Beck. Mock objects. Mock objects are a form of
They aid in automated testing by allowing a scaffolding, which simplify testing when the code
developer to easily write tests using assertions under evaluation depends on another module or
to define expected conditions or outcomes. resource that does not exist. Open source pack-
Implementations have been written for many of ages such as EasyMock or DynaMock provide
the most popular languages available today. The such functionality, and easily integrate with other
table below contains a partial listing of popular testing resources.
xUnit implementations. HTTP/servlet testing. When Web-specific
JUnit is a general purpose automated testing elements of a program need to be tested, JUnit
framework for Java. It is also is the most familiar alone cannot provide all the necessary tools.
and widely-used member of the xUnit family of HTTPUnit is an open-source testing framework
testing packages, gaining acceptance and popu- capable of emulating a browser, submitting forms,
larity in industry and academia. It has also been working with JavaScript, using cookies, and ana-
Testing for Web Applications
lyzing Web pages. ServletUnit is an extension that Beck, K. (2003). Test-driven development: By
adds the ability to test applications using servlet example. The Addison-Wesley signature series.
technology. Boston: Addison-Wesley.
In-container testing. For some testing, it will
Beck, K., & Andres, C. (2004). Extreme pro-
be necessary to have access to servlet container
gramming explained: Embrace change. Boston:
resources that are unavailable with mock object
Addison-Wesley.
approaches. Cactus is an extension to JUnit
that enables server-side testing in a real servlet Boehm, B. W., & Turner, R. (2003). Balancing
environment. agility and discipline: A guide for the perplexed.
Acceptance and functional testing. A number Addison-Wesley Professional.
of tools are available to enable functional testing
Deshpande, Y., S. Murugesan, et al. (2002). WEB
of Web applications. Two of the most popular
ENGINEERING. Journal of Web Engineering,
are JWebUnit and Selenium. These tools provide
1(1), 003-017.
capabilities for evaluating Websites, including
support for GUI elements and executable content, Di Lucca, G. A., A. R. Fasolino, et al. (2002).
such as JavaScript. Testing Web applications. Software Maintenance,
2002. In Proceedings. International Conference
on.
coNclusIoN
Ginige, A. (2002). Web engineering: Managing
the complexity of Web systems development. In
The development of Web applications is complex
Proceedings of the 14th international conference
and presents new challenges that are not addressed
on Software engineering and knowledge engineer-
by conventional software development. As they
ing, (pp. 721-729).
continue to gain importance and complexity,
it will become increasingly vital that there are Ginige, A., & Murugesan, S. (2001). Web en-
measures in place to ensure their quality and gineering: An introduction. Multimedia IEEE,
reliability. This chapter presented some of the 8(1), 14-18.
current challenges in Web development, as well as
Hendrickson, E., & Fowler, M. (2002). The soft-
testing considerations, tools, and best practices. A
ware engineering of internet software. Software
successful test strategy takes all aspects of qual-
IEEE, 19(2), 23-24.
ity into consideration. While future technology
will most likely offer solutions for many of the Hieatt, E., & Mee, R. (2002). Going faster: Test-
issues being experienced today, they will almost ing the Web application. Software, IEEE, 19(2),
certainly present new ones as well. 60-65.
IEEE (1990). IEEE Standard 610.12-1990, IEEE
Standard Glossary of Software Engineering
rEfErENcEs
Terminology.
Ambler, S. W. (2004) The Object Primer: Agile Janzen, D., & Saiedian, H. (2005). Test-driven
Model-Driven Development with UML 2.0. Cam- development concepts, taxonomy, and future
bridge University Press. direction. Computer, 38(9), 43-50.
Beck, K. (2001). Aim, fire. IEEE Software, 18(5), Jeffries, R., Anderson, A., & Hendrickson, C.
87-89. (2001). Extreme programming installed. The XP
series. Boston: Addison-Wesley.
Testing for Web Applications
Mendes, E., Mosley, N. (2005). Web Engineering. Sneed, H. M., A. GmbH, et al. (2004). Testing
Berlin, Germany: Springer. a Web application. Web Site Evolution, 2004.
WSE 2004. In Proceedings of the Sixth IEEE
Mills, D., L. Sherrell, et al. (2006). Experiences
International Workshop, (pp. 3-10).
using agile software development for a marketing
simulation. SoutheastCon, 2006. In Proceedings Stout, G. A. (2001). Testing a Website: Best prac-
of the IEEE: 285-290. tices. Retrieved on from whitepaper on www.
reveregroup. com
Myers, G. J., Badgett, T., Thomas, T. M., & Sandler,
C. (2004). The art of software testing. Hoboken, Wu, Y., J. Offutt, et al. (2004). Modeling and
N.J.: John Wiley & Sons. testing of dynamic aspects of Web applications.
Submitted for publication: 04-01.
Ricca, F., & P. Tonella (2001). Analysis and test-
ing of Web applications. In Proceedings of the Xu, L., B. Xu, et al. (2005). Testing Web applica-
International Conference on Software Engineer- tions focusing on their specialties. ACM SIGSOFT
ing, (pp. 25-34). Software Engineering Notes, 30(1).
Chapter XIII
Outsourcing Issues in Web
Development
Clif Kussmaul
Clif Kussmaul, Elegance Technologies, Inc., USA & Muhlenberg College, USA
Roger Jack
Elegance Technologies, Inc., USA
aBsTracT
This chapter addresses issues, alternatives, and best practices that apply when outsourcing Web de-
velopment. The chapters primary objective is to provide a concise overview of key concepts and best
practices for practitioners and students, as well as other audiences. First, we introduce and motivate the
chapter, provide background, and present three key ideas that are expanded and developed in the two
subsequent sections. The first describes four steps to help executives and upper management address
strategic issues and decisions in outsourcing. The second describes four more steps to help managers,
team leaders, and development teams address more tactical issues. We conclude with future trends and
implications, and a summary of the best practices.
Copyright 2008, IGI Global, distributing in print or electronic forms without written permission of IGI Global is prohibited.
Outsourcing Issues in Web Development
States will move offshore by 2010 (Engardio, powerful and flexible software engine to perform
2003). An ACM Task Force (Aspray, Mayadas, data processing operations. SPC planned to use
& Vardi, 2006) estimates that each year 2-3% of the software engine in a series of Web-based ap-
IT jobs in the United States are offshored, but plications, customized to specific domains, so that
that many more IT jobs are lost and created each customers could take advantage of the engines
year. Furthermore, the task force notes that it is capabilities without the expertise and effort needed
very difficult to predict such changes accurately, to configure it. Thus, the Web-based applications
particularly since many of the studies are produced have complex databases and interactions with
or supported by organizations with a vested inter- the software engine. SPC decided to consider
est in the outcomes (e.g., American Electronics outsourcing the development of these Web-based
Association, 2004; Behravesh and Klein, 2004; applications, for reasons discussed below.
Farrell, 2003; Vogel & Connelly, 2005). The following section provides essential
This chapters primary objective is to provide background. We then describe four steps to help
a concise overview of key concepts and best executives and upper management address strate-
practices for practitioners and students, as well as gic issues and decisions in outsourcing. Next, we
other audiences. The chapter emphasizes Web ap- describe four more steps to help managers, team
plications and includes examples from outsourced leaders, and development teams address more
Web development projects the authors have led, tactical issues. We conclude with future trends
overseen, and reviewed. However, many of these and implications, and a summary of the best prac-
approaches and issues apply to many sorts of tices. We provide a multidisciplinary perspective,
outsourced development work. since outsourcing involves a variety of disciplines,
To outsource Web development more effec- including business, software development, psy-
tively, organizations should focus on three key chology, and sociology. Outsourcing, especially
ideas, which we expand and develop below. First, offshore outsourcing, can be controversial; we
structure projects in short iterations, so that present a balanced view of the benefits and risks,
there are multiple opportunities to find and cor- based on experience.
rect problems; in words attributed to Tom Peters,
test fast, fail fast, adjust fast. Second, recognize
that the major problems of our work are not so BacKGrouNd
much technological as sociological (DeMarco
& Lister, 1999, p. 4, original emphasis); in other In this chapter, client is the organization that
words, the major benefits and risks are tied to is deciding if and how to use outsourcing in a
people and relationships rather than to tools. Web development project, provider is the orga-
Third, match the structure of the development nization performing the outsourced work, joint
team to the desired structure of the system. team includes everyone at the client and provider
This relationship, first described by Conway responsible for building the project, and stake-
(1968), is particularly important in outsourcing holder is anyone with a significant interest in
relationships, where it can be more difficult to the project, including upper management, other
restructure the project. business functions such as sales, and, of course,
Throughout the chapter, we use examples target end users.
distilled from a variety of outsourced Web devel- Distributed development is when the team is
opment projects the authors have led, overseen, at multiple locations, and global development is
or reviewed. SPC (Software Product Company) when the team is in multiple countries. Outsourc-
had invested significant resources to develop a ing and offshoring have inspired other related
Outsourcing Issues in Web Development
terms. In sourcing occurs when internal staff development, or system evolution. Chen and
perform previously outsourced services. Near Heath (2005) also identify a challenges, includ-
shoring is the use of developers in nearby coun- ing usability design, content maintenance, scal-
tries, often to reduce travel costs and time zone ability, security, fast deployment, and competing
differences. For example, US companies might architectures, platforms, and tools. Similarly,
use staff in Canada, Mexico, or the Caribbean. Mendes, Mosley, and Counsell (2006) identify
Rural sourcing is the use of staff in lower cost twelve areas of difference, and emphasize the
areas of the same country. wider range of people involved, the wide range and
rapid change of technologies, and the diversity of
Web development potential users, as compared to more traditional
software systems.
Web development differs from other types of soft- Some of these differences have particular
ware development in some important ways. For implications for outsourcing. For example, re-
example, Ginige and Murugesan (2001), Ginige quirement changes must be communicated across
(2002), and Murugesan and Ginige (2006) identify organizational boundaries, and may require
several challenges in Web systems, including the project costs or schedules to be renegotiated.
continual growth of requirements, the continual The range of necessary skills (e.g., analysis, in-
change in information content, a diverse set of formation architecture, graphic design, software
stakeholders, and the need for multidisciplinary design, coding, content development, testing,
development teams. They also describe a hierar- and usability) can be assembled quickly through
chy of Web-based software, ranging from static outsourcing, but using multiple providers can
Web pages through database-driven Web sites to compound communication problems. Outsourc-
complex Web systems, and propose a set of pro- ing can provide just in time access to new tools
cesses to help address these challenges. Kappel, and technologies; however, over a period of years
et al. (2003) describe a similar but larger set of this can result in a diverse set of applications for
challenges, which are categorized by their focus client is unable to maintain.
on product and content, usage context, system
Outsourcing Issues in Web Development
0
Outsourcing Issues in Web Development
Web presence, if they do not have or otherwise clock development can be very effective. In long
need in-house expertise in Web development. projects, it also discourages staff from working
Outsourcing for skills or facilities can result in excessive hours, which can lead to burnout and
higher quality, although outsourcing can also lead other morale problems.
to quality problems, particularly if the provider Clients should consider whether their objec-
misrepresents capabilities or the client does not tives are reasonable, since outsourcing is not a
monitor the project carefully enough. silver bullet. It is easy to assume that paying $15
Third, outsourcing can reduce costs. Lower per hour will dramatically lower total development
cost is the most commonly cited (59.8%) advantage costs, but most organizations realize more modest
of offshoring, although 73.5% of CIOs surveyed savings. Similarly, a larger joint team may be able
feel that outsourcing is overrated as a cost-cutting to deliver a system more quickly, but only within
strategy (CIO Insight, 2003). Although hourly limits; adding manpower to a late software project
rates in countries like India and China can be less makes it later (Brooks, 1995, p. 25).
than 10% of those in US (Dignan, 2003), most Clients should also consider how the objectives
IT organizations save 15%-25% during the first could be assessed; often, planning such assess-
year and up to 40% by the third year (Davison, ment will help determine whether the objectives
2003). are reasonable. For example, to assess the cost
Fourth, outsourcing can speed development savings from an outsourced project, a client will
and reduce time to market, by providing specific need to estimate internal project costs. Develop-
skills just when they are needed. For example, ing such estimates will help to uncover potential
making major changes to an organizational Web risks, and may even provide a model for track-
site might require a long time for a small Web ing the outsourced project. Financial objectives
development team, which might otherwise be are relatively easy to assess, but assessing other
underutilized. A provider could complete such objectives may be more difficult, and depend on
changes more quickly using a larger team, and the specific processes used in the project.
then assign them to work for other clients. Under For SPC, one objective for outsourcing was
the right circumstances, onshore staff can focus on to reduce time to market and respond quickly to
activities such as testing and customer interaction, changes in the market. Furthermore, the number
pass a set of requirements to an offshore team at and intensity of Web application projects was
the end of the day, and have the resulting changes likely to vary over time, and diverting SPCs de-
implemented the next morning. This round-the- velopment team to work on the Web applications
Outsourcing Issues in Web Development
would adversely affect the software engine. Thus, outsourcing work that is only indirectly related to
a second objective was to be able to adjust the size the organizations main business. Thus, technol-
and skill sets of the team during the course of the ogy organizations are less likely to outsource IT
project. In addition, outsourcing would reduce functions than are organizations in other sectors.
direct salary costs, and infrastructure costs, such For example, a company that uses a Web site to
as office space and equipment. Outsourcing had sell physical products is more likely to outsource
few indirect costs, since SPC already had offices Web development than a company whose core
in multiple locations and encouraged telecom- offering is a Web-based service.
muting. SPC considered these objectives to be It is easier to outsource widely available and
reasonable based on experience with previous interchangeable skills and services, and new
software projects; some of the objectives were also providers often start with such offerings. If a
assessed using techniques described below. particular client-provider relationship ends, both
In summary, organizations should deter- parties are more likely to find new partners. For
mine: example, it will be easier to outsource systems
based on the LAMP (Linux, Apache, MySQL,
a. What are our main objectives for outsourc- and PHP) stack (Kunze, 1998) than on less
ing? popular technologies or technologies that are used
b. Are our objectives reasonable and attain- together less frequently. However, clients often
able? select and switch providers for such work based
c. How will we assess our objectives to know on price. Thus, most providers continually work
if they are achieved? to develop more specialized or higher level of-
ferings, which clients will value for factors other
skills and services than price. For example, a provider that provides
testing services may add development services,
After identifying objectives, the second strategic and then add analysis and design services. These
step is to determine the specific skills and services general trends, and some of the associated risks,
that should be outsourced in order to reach those are described by Christensen (1997).
objectives. A wide variety of skills and services It is easier to outsource work that can be
can be outsourced, but clients should consider the clearly defined, easily evaluated, and is unlikely
potential benefits (described above) of each, as well to change. Vague, poorly understood, or rapidly
as the relative drawbacks, which are influenced changing requirements are more difficult, since
by several factors, described below. they generally involve more complex commu-
It is harder to outsource work that involves nication and more flexible agreements between
core competencies or key intellectual property. the client and provider. Similarly, it is easier to
First, the information or skills must be shared or outsource work that can be clearly separated
transferred to the provider, and this process must from work that will remain in-house, and more
be repeated with each new provider. Second, difficult to outsource work that overlaps or must
there is the risk that the provider will share such be integrated with in-house work.
information or skills with competitors, or use it to Many of the efficiencies of outsourcing re-
develop competing products. This is a particular quire a minimum size. Often, it is best to start
concern for smaller clients dealing with offshore by outsourcing a small pilot project, in order to
providers, since legal proceedings can be difficult minimize risk, and then expand the scope of the
and expensive. Conversely, there is less risk in project once the basic approach is validated.
Outsourcing Issues in Web Development
For SPC, the software engine was a core propriate type of provider relationship, which will
competence, and should be developed in-house. likely depend on the objectives, and the services
Furthermore, the engines complexity would make and skills required. For example, if the system
it difficult to outsource work to providers who did has precise and easily defined requirements, it
not understand the overall architecture and its may be relatively simple to transmit them to an
implications. SPC sought to outsource analysis, offshore team for implementation, and wait for a
design, and development of the Web applications, final delivery. On the other hand, a much closer
however, because they used widely available skills relationship may be appropriate for projects that
and tools, addressed rapidly changing market are mission critical, have incomplete or changing
conditions and shifting requirements imposed by requirements, or that have multiple connections
industry leaders, customers, and competitors. to other parts of the organization.
In summary, organizations should deter- Kishore, et al. (2003) describe a framework
mine: that analyzes outsourcing relationships along
two dimensions. Dependence is the degree to
a. What work could we outsource? which ownership and control is transferred to the
b. What are the benefits and risks of outsourc- provider. Strategic impact is the degree to which
ing this work? the outsourcing relationship affects competitive
c. What will we do if problems occur? positioning and long-term strategy. Together, these
d. How will we specify and assess the work dimensions categorize outsourcing relationships
that needs to be done? into four quadrants, illustrated in Figure 4.
Support relationships are used selectively to
relationships simplify internal operations, such as payroll pro-
cessing, basic IT functions, or custodial services.
After determining required skills and services, the They are easily monitored based on outcomes,
third strategic step is to determine the most ap- and typically have low setup and switching costs,
so it is easy to change providers. Alignment
Outsourcing Issues in Web Development
relationships are also used selectively, but usu- may have difficulty estimating or managing the
ally for more strategic purposes, such as expert total cost of the project. An intermediate ap-
consulting, or specific projects. Requirements proach is to develop a joint estimate of the entire
are typically more vague and dynamic, making project, but to structure the project as a series of
it more difficult to measure outcomes. Reliance time-limited iterations, each with an agreed price
relationships are usually used to reduce costs, on range. In each iteration, the provider attempts to
a broader scale and for longer time periods than deliver as much functionality as possible within
support relationships. There are typically well- the range. After each iteration, the client and
defined processes and outcomes, and thus easy provider revise the joint estimate, and agree on
to monitor, though it is more difficult to switch priorities for the next iteration. This example
providers. Alliance relationships are strategic illustrates a more general principle that will be
partnerships that usually develop from other types discussed further belowa client and provider
of relationships. They are the most uncertain and should structure their relationship so that their
dynamic relationships, and require significant incentives are aligned whenever possible. Multiple
trust and communication, and often shared goals negotiations tend to encourage cooperation (e.g.,
or incentives. Axelrod, 1984).
Kishore, et al. conclude that outsourcing Finally, outsourcing relationships should con-
should be considered more as a management of sider the organizational cultures of the client and
relationship with services providers rather than as the provider. Tightly coupled relationships are
a simple subcontract for IS commodities and that more difficult when the cultures are different, or
the most important factor affecting success of when one organization has reasons to distrust the
outsourcing appears to be a mutual understanding other. For example, it is difficult for providers to
between clients and their service providers (p. work closely with client staff who fear that they
92). This is certainly the case with outsourcing will lose their jobs or status to outsourcing.
product development, which can have strategic Such relationships are easier to develop when
consequences. the organizations have similar cultures, locations,
Outsourcing relationships also have financial languages, and time zones, and when there is
characteristics, which can take on a variety of already experience with distributed teams.
forms. At one extreme are projects where the The relationship between SPC and its out-
client and provider agree on a fixed price for the sourcing provider evolved over time. Initially,
entire project. Although fixed price projects may it was a support relationship, where an hourly
appear to limit risk, they actually present several consultant worked with SPC to study and evaluate
challenges. First, the project scope may be unclear specific application domains. It then evolved to
or incomplete. As a result, the provider must build an alignment relationship, where the consultant
in a margin to cover the unexpected. Second, fixed helped define requirements and a high-level ar-
price projects set up a conflict between the client chitecture for a specific Web application. Once a
and provider. Once a fixed price is set, the client proof-of-concept was completed, an onsite liaison
has an incentive to add functionality to the proj- and a small offshore development team began
ect, while the provider has an incentive to reduce to design, implement, and test. The relationship
functionality and minimize the total effort. At the then shifted toward reliance as the offshore team
other extreme are projects where the provider bills expanded, the joint team developed confidence,
the client for time and materials, usually on an the market opportunities became clearer, and the
hourly basis. In such projects, a provider can do scope of the overall project increased. Finally, the
whatever the client requires; however, the client relationship evolved toward an alliance, where
Outsourcing Issues in Web Development
SPC and its provider worked together to identify in pharmaceutical industry). It is usually easier
future directions. As the first Web application to evaluate teams and individuals. Clients should
matured, the offshore team was reduced and SPC insist on talking to references in other organiza-
took over ongoing system maintenance. Thus, tions. Clients should also insist on interviewing
the relationship shifted back toward alignment. their primary contacts with a vendor, to assess
Several factors contributed to this successful both technical ability and how well each contact
evolution. First, SPC and its provider were already will interact with the client organization. Clients
accustomed to distributed teams. Second, SPCs should ask about the providers turnover rate, and
developers were confident that they would not what accommodations will be made when some-
be replaced by the provider, but that the provider one leaves the project. Although people change
was enabling SPC to address new opportunities. jobs for a variety of reasons, such changes can
Finally, the project was divided into time-limited have adverse effects. In a strong job market, it can
iterations, as described above, which encouraged be difficult to keep the best people, and providers
cooperation. also have an incentive to move their best people
In summary, organizations should deter- to newer, larger projects when they can.
mine: Location is also a key factor. Clients should
decide whether all, some, or none of the providers
a. How strategic is the relationship to our core staff should work onsite. It can be easier to inter-
business? act and develop trust with onsite staff, but they
b. How dependent will we be on the pro- also require space and possibly other support. If
vider? the provider has offices in the same geographic
c. How can we make this a win-win relation- area, it is easier to have staff work onsite for
ship? extended periods; otherwise, staff may need to
d. How conducive to outsourcing is our orga- travel frequently or have temporary housing.
nizational culture? Offsite, near shore, or offshore staff often have
lower hourly rates, but are more difficult to interact
providers with, particularly if problems arise. One common
approach is to have a few provider staff onsite,
After determining the appropriate relationship, either initially or throughout the project, to serve
the fourth step is to select a provider. The best as liaisons for staff in other locations.
provider usually depends on the skills, services, Size is another key factor. A small provider
and relationships needed, as well as a variety of may not be able to provide everything a client
other factors. needs while a large provider may have too many
The providers capabilities are clearly im- other priorities. Many clients prefer to deal with
portant. However, it can be difficult to assess a provider that is roughly the same size, as a way
the capabilities of a large group, particularly of balancing these concerns.
at a remote location. General reputation in an Cost is clearly an important factor, but as
industry can be helpful, although there can be noted above outsourcing is often overrated as
great variety within an organization; DeMarco a strategy to reduce costs. Too much emphasis
and Lister (1999) argue that productivity varies on a low hourly rate may result in poor quality
by a factor of ten both between and within orga- and/or support.
nizations. Certifications can demonstrate some It is relatively easy to assess factors such as
capabilities, or satisfy external regulations (e.g., location, size, cost, and some capabilities. Thus,
they can be useful to filter an initial list of potential
Outsourcing Issues in Web Development
Outsourcing Issues in Web Development
may have a better sense of what is needed, but aries or differences between the client and vendor.
the provider may have more experience making It is often beneficial to have one person or a small
such relationships work effectively. Each step is group, act as a liaison (and bottleneck) between
described in more detail below, including relevant the groups, to provide conceptual integrity and
background, application in the case study, and a prevent miscommunication. Strong liaisons are
checklist of best practices. often identified as key success factors for out-
sourced or offshored projects (e.g., Battin, et al.,
responsibilities 2001; Cusick & Prasad, 2006).
For SPC, the providers staff used their experi-
First, determine responsibilities in the project. ence with outsourcing and offshoring development
Just as a development team must clearly define to help SPC define responsibilities and interfaces
the interfaces between system components, to meet key objectives. The project consisted of a
clients and providers should work together to client team and a provider team, each with a team
define responsibilities, interfaces, and supporting leader. In addition, one person was designated as
processes between organizations, key individu- the technical lead for the project, and coordinated
als, and teams. activities between the two teams.
As in any technical design, joint teams should Since the engine was designed to access da-
seek to minimize coupling (relationships between tabases, the joint team decided to use a database
components), which reduces the amount of com- as the primary interface between the engine and
munication between groups. Joint teams should the Web applications, in order to reduce coupling
also seek to maximize cohesion (the degree to and minimize the impact on the application of
which a single component has a single purpose), changes in the software engine. By increasing the
which makes it easier for each group to focus on cohesion of the Web application, the provider team
particular objectives. As noted above, the structure could focus on it without detailed knowledge of
of the joint team should parallel the structure of the software engine. At the same time, the client
the Web system they are developing. team could focus on configuring the engine and
Carmel and Agarwal (2001) describe the developing supporting utilities, without detailed
importance of reducing intensive collaboration knowledge of the Web application.
across organizational boundaries. Battin, et al. In summary, clients and providers should
(2001) emphasize the importance of assigning work together to:
teams to subsystems for the entire lifecycle, so
that each subsystem is supported and enhanced a. Minimize coupling between groups and
by the same people who designed and constructed maximize cohesion within groups;
it. Mockus and Weiss (2001) define an analysis b. Concentrate on interfaces and boundaries,
process to identify appropriate components and not internal operations;
boundaries for distributed development. c. Focus on win-win scenarios with common
Joint teams should focus on the boundaries goals and ongoing negotiations.
between groups, and let each group allocate re-
sponsibilities within that group. These boundaries methodologies & processes
are likely to shift as the outsourcing relationship
evolves. Bhat, Gupta, and Murthy (2006) identify After determining responsibilities, the second step
characteristics of outsourced projects that affect is to determine the methodologies and processes
requirements analysis; all of them involve bound- for the project. This can be challenging, since it
Outsourcing Issues in Web Development
may require coordination between different devel- for highly repeatable projects. CMM is used by
opment cultures. Concentrate on the processes at many offshore development centers, particularly
the interfaces between organizations, rather than in India; offshore companies represent roughly
trying to define all of the processes for everyone 74% of CMM-4 organizations and roughly 84%
involved in the project. It is quite feasible, and at of CMM-5 organizations (Software Engineering
times even preferable, for the in-house developers Institute, 2003). Disciplined approaches have also
to be using one methodology, and the out-sourced been developed for individuals (e.g., Humphrey,
or offshore teams to be using different methodolo- 1994; Humphrey, 1996) and for teams (e.g.,
gies, since they may have different cultures and Humphrey, 1999).
requirements. Agile approaches treat software development
Currently, software development methodolo- as a specialized craft, performed by master craft-
gies can be divided into two broad categories, speople with supporting staff. Agile approaches
referred to as disciplined methods and agile share a particular set of values defined in the
methods (Boehm & Turner, 2003). Note that Agile Manifesto (Beck, Beedle, van Bennekum,
both of these names are misleading; some dis- Cockburn, et al., 2001):
ciplined methods adapt quickly to change, and
some agile methods are formal and prescriptive. Individuals and interactions over processes
Methodologies also address different levels of the and tools;
organization; some focus on day-to-day developer Working software over comprehensive
activities, while others focus on project and team documentation;
management or higher level organizational struc- Customer collaboration over contract nego-
tures, as shown in Figure 6. tiation;
Disciplined approaches treat software de- Responding to change over following a
velopment as a manufacturing process, which plan.
can be defined, measured, and optimized using
well-known techniques. These approaches are Typically, agile methodologies have multiple
often associated with quality initiatives such as iterations, each of a few weeks, which integrate
ISO 9000 (e.g., Patterson, 1994) or the Capabil- analysis, design, implementation, and testing
ity Maturity Model (CMM) (e.g., Paulk, et al., activities (e.g., Cockburn, 2002; Highsmith,
1994). CMM-style disciplined processes can 2002). These and other agile principles help a
be particularly effective for large projects, or project to react to dynamic conditions, such as
Outsourcing Issues in Web Development
poorly understood requirements and aggressive cesses to direct the overall project, but to allow
schedules. Although agile methodologies often or encourage different parts of the joint team to
assume that all team members are in one location, work in different ways.
they have also been adapted to include distributed As noted above, if the provider and client tasks
or outsourcing teams (Fowler, 2006; Jensen & are clearly separated, and the requirements are
Zilmer, 2003; Kussmaul, Jack, & Sponsler, 2004; stable, it may be feasible to develop a detailed
Paasivaara & Lassenius, 2004; Ramesh, Cao, Mo- specification and receive a single delivery at the
han, & Xu, 2006; Simons, 2002). In fact, Forrester end of the project. However, such assumptions
Research concludes that there are unique benefits are often not true in Web development. Instead,
to combining agile methodologies and offshore some of the requirements are vague or likely to
outsourcing (Moore & Barnett, 2004). change, and there is often overlap between client
There is growing recognition that both agile and provider responsibilities. In such projects, it
and disciplined approaches have advantages, and is essential to have multiple iterations with fre-
that carefully designed combinations can be very quent deliveries, so that everyone can see what is
effective (e.g., Anderson, 2004; Boehm & Turner, actually working, find and fix problems, provide
2003; Paulk, 2001). Furthermore, industries, timely feedback, build confidence and trust. This
markets, projects, and development teams can applies throughout the system life cycle, to items
vary dramatically. Thus, organizations should such as requirements, designs, GUI mockups,
understand the benefits and risks of multiple software, tests, and documentation. Within each
methodologies, and identify and adapt them to iteration changes should be kept to a minimum,
suit the situation, instead of trying to make the since there is more risk of miscommunication
situation fit a methodology. with outsourced or distributed teams. However,
Methodologies have been developed specifi- the project direction can change dramatically
cally for Web development, and for global Web between iterations. This is particularly useful in
development (e.g., Cusick & Prasad, 2006). Un- Web development projects, for several reasons.
fortunately, Web systems are often developed First, after each iteration, the updated system can
with informal or completely ad hoc methodolo- be deployed relatively easily, since users access
gies. For example, Taylor, McWilliam, Forsyth, it via a browser rather than installing software.
and Wade (2002) surveyed 25 organizations, and Second, Web applications are more likely to
found relatively little use of design techniques, change in response to evolving user expectations,
layout standards, documentation, or testing pro- competitors, and changing technology; thus it is
cedures. very valuable to be able to periodically redirect
Informal or ad hoc processes may be sufficient the project.
for small, collocated teams, although they would SPCs development group was relatively small,
likely benefit from articulating and reflecting on co-located, and used relatively informal processes.
their processes. Processes are more important for In contrast, the providers offshore team was in a
larger teams, especially distributed or joint teams much larger development center and had years of
that include client and provider staff. However, experience with disciplined CMMI-5 processes.
as the teams size and diversity increase, it be- The providers onsite staff had experience with
comes more difficult to define processes for the both agile and disciplined development processes.
entire team, since different parts of the team will The Web applications involved an evolving soft-
have different objectives, training, and cultures ware engine, an unfamiliar application domain,
(organizational, disciplinary, or regional). Thus, shifting external requirements, and a rapidly
it may be more effective to have high-level pro- changing market environment; an agile approach
Outsourcing Issues in Web Development
seemed most appropriate in such circumstances, Most importantly, client and provider man-
although a certain amount of discipline and agers should focus on creating and maintaining
formality was needed to coordinate the multiple win-win relationships in the joint team. If
locations and organizations. The high-level de- everyone in the joint team feels that they are
velopment process was inspired by SCRUM and working together toward a common goal, there
feature driven development (Highsmith, 2002; will be fewer problems, and those problems will
Palmer & Felsing, 2002; Schwaber & Beedle, be easier to resolve. Conversely, if the client and
2001). For each iteration, provider staff in the US provider teams feel that they are competing or in
worked with SPC product management to identify conflict, it will be nearly impossible to keep the
a list of high-level requirements. The provider staff project on track.
then worked with the offshore team to develop Defining requirements requires particular
more detailed requirements, which were then attention for several reasons. Requirements
reviewed with the SPC product manager. The definition is often one of the first joint activities
providers offshore team used CMMI processes, in an outsourcing project, before both parties
while the in-house processes gradually became have developed effective communications and
more formal as the team grew and the system a comfortable working relationship. Outsourc-
matured. The groups tended to work separately ing projects generally require more detailed and
early in each iteration, and interact more frequently precise requirements than do in-house projects.
later in the iteration as they integrated and tested Finally, incorrect or incomplete requirements can
individual components. lead to significant problems later in the project.
In summary, clients and providers should Roughly 20% of project defects originate in re-
work together to: quirements (Jones, 2000, p. 104), and the cost of
fixing an error increases exponentially with the
a. Identify and adapt processes to fit the project, time between when it was introduced and when
not the reverse; it was detected and corrected (Boehm, 1981, p.
b. Encourage diversity; different parts of the 40). Organizations with considerable in-house
project can be done in different ways; experience developing detailed requirements may
c. Manage the project pace, especially the rate have no difficulty delivering them to a provider.
of change; In many cases, however, it is much more effective
d. Schedule frequent deliveries throughout the to use the providers staff onsite to help develop a
project. set of requirements for the outsourcing develop-
ment team, particularly if the team is offshore.
project management Defining requirements more carefully, and having
both in-house and outsourcing team review them,
Regardless of the methodology and processes can help both organizations identify and resolve
used, organizations need continual visibility into problems sooner and more efficiently. Grnbacher
the status and progress of any outsourced activi- (2003) describes some of the challenges in adapt-
ties. Project management and monitoring can be ing traditional requirements engineering for Web
more challenging with outsourcing, since man- applications, including the multidisciplinary
aging by walking around is more difficult when teams, lack of developer experience, unavail-
people are at multiple locations and in different ability of stakeholders, fixed schedules, volatility
organizations. Conversely, extra effort to plan and of requirements, unpredictable operating condi-
coordinate with an experienced provider can lead tions, the impact of legacy systems, and several
to better visibility for everyone concerned. aspects of quality. Grnbacher recommends that
Web developers work to understand the system
0
Outsourcing Issues in Web Development
context, involve stakeholders, use iterative re- to avoid disruption. Three categories of tools
quirements definition, and focus on architecture. are particularly valuable for outsourced Web
Escalona and Koch (2004) review the roles and development. First, tools designed to help archive
uses of requirements analysis in ten Web applica- project information, including source code control
tion development methodologies, focusing on the systems, and ticket tracking systems for tasks,
types of requirements addressed, the techniques defects, and requested enhancements. Second,
utilized, and the degree of detail. They note that automation tools to assist in developing, building,
most of the methodologies focus more on elicit- testing, or deploying the system. Third, tools to
ing and specifying requirements, and less on facilitate communication (described in more detail
validating them. They also note that most of the below). In each category, there are a variety of
methodologies focus more on the steps in of a commercial and open source options.
process, and less on the set of techniques or the The Web application project also contributed to
results of the process. the quality of SPCs software engine. The in-house
Written documentation can be a particular QA team focused primarily on the GUI used to
challenge; teams or their managers must decide configure the engine. Developing the Web applica-
which documents to create, and for how long to tions enabled in-house and outsourced developers
maintain them. Brooks defines the documen- to identify defects and potential enhancements.
tary hypothesis: a small number of documents Because the offshore team was less familiar with
become the critical pivots around which every the software engine, they identified additional
projects management revolves (Brooks, 1995, issues. Similarly, the in-house development and
p. 107). However, this set of documents may vary QA groups identified issues and potential enhance-
from project to project, and even during the course ments in the outsourced Web application. Every
of a project. Frequently, some of these documents new product has defects, but the development
are tables or diagrams. For example, it might be teams were able to identify and resolve many of
a list of key use cases, an architecture diagram, a them before they were found by customers.
detailed data model, or a Gantt chart. Often, the In summary, clients and providers should
documents show the current status and expected work together to:
completion date of system components.
Other traditional project management activi- a. Focus on win-win interactions with common
ties are still important in outsourced projects. Too goals, and frequent interactions;
often, clients assume that outsourced activities do b. Define requirements carefully throughout
not require supervision, which leads to problems. the project, since change is inevitable;
It is still important to manage near-term priorities c. Identify and maintain the key project docu-
and stakeholder expectations, to set and maintain ments;
a sustainable pace for the joint team, and to moni- d. Monitor near-term priorities, sustainable
tor costs and other resources. pace, and resources;
Although people and interactions have the e. Use tools to provide leverage.
biggest impact on projects, appropriate tools can
certainly contribute to project success. Focusing Trust and collaboration
on a few key tools enables everyone to become
proficient. Choosing flexible tools allows them to Trust and collaboration are essential to any Web
evolve with the project and its processes, rather engineering effort, since there are typically nu-
than committing the joint team to a particular merous stakeholders: managers and executives,
approach. New tools should be added cautiously, analysts, system architects, developers, graphic
Outsourcing Issues in Web Development
designers, technical writers, and end users, to for several reasons. First, initial expectations
name a few. Too little can lead to misunderstand- and habits are likely to persist, and be difficult
ings, errors and omissions, but too much can to change. Second, the joint team is often smaller
use valuable time and energy. These issues are at the beginning of the project, making it easier
particularly important in outsourcing relation- to work through problems and develop appropri-
ships, where staff can be spread across multiple ate patterns. Third, key initial decisions about
locations, time zones, and cultures (e.g., Lacity & priorities, system architecture, responsibilities,
Willcocks, 2000). There is an extensive literature and processes may be difficult or impossible to
on virtual teams (e.g., Duarte & Snyder, 2006; change later in the project. Thus, it is particularly
Katzenbach & Smith, 1993; Martins, Gilson, important to have frequent deliverables and in-
& Maynard, 2004; Pinsonneault & Caya, 2005; teractions near the start of a project.
Powell, Piccoli, & Ives, 2004; Sundstrom and If the joint team includes members from differ-
Associates, 1998). ent organizations, national cultures, or language
It can be difficult to determine and maintain backgrounds, seemingly minor differences can
the appropriate levels of trust and collaboration. lead to problems. Language is a particular chal-
Alignment and alliance relationships gener- lenge, and a key factor in Indias success as an
ally require more trust than support or reliance outsourcing destination for the US. Thus, com-
relationships. Within a project, alignment of munication can be improved by developing a
stakeholder goals can cause individual relation- common project vocabulary of terms, documents,
ships to shift (Lacity & Willcocks, 2000). Trust diagrams, and metaphors. Carmel and Agarwal
generally increases as joint teams gain experi- (2001) describe the importance of reducing cul-
ence, but some initial trust is necessary for them tural distance by using liaisons and focusing on
to start working effectively. Lander, Purvis, language skills.
McCray, and Leigh (2004) studied trust build- The mechanics of communication are also
ing mechanisms in an outsourced IT project. important; joint teams need to match activities
They surveyed fourteen participants, including to appropriate communication methods, since
management, client team members, provider each has distinct benefits and risks. Synchronous
team members, and users. They found that the communication, such as face-to-face meetings,
most important trust building mechanisms were online chats, and teleconferences, is ideal for
communication, followed by identification with quick status meetings, brainstorming sessions, and
the joint team and predictability. However, several reviews. Instant messaging can be more effective
mechanisms were perceived quite differently by than phone conversations, particularly if people
different stakeholders. For example, client team have trouble understanding accents. Face to face
members ranked communication lower than the meetings or video conferences are most valuable
other groups, while users ranked predictability near the beginning of the project; as the joint team
lower than the other groups. Herbsleb and Mockus gains experience and trust, they become less
(2003) found that distributed teams had very little necessary. Asynchronous communication, such
informal, unstructured communication, and as a as email, mailing lists, and shared documents,
result the developers knew much less about the can provide a persistent record of discussions and
state of the project, what other developers were decisions, and doesnt require participants to be
doing, and who had expertise in particular areas. available at the same time.
They also suggest strategies to encourage such Finally, joint teams need to be sensitive to
communication and knowledge. cultural differences between small groups,
Developing trust and effective communica- larger organizations, and geographic regions.
tion practices early in the project is a priority, Some cultures respect seniority and expect top-
Outsourcing Issues in Web Development
down direction, while others value initiative and This is particularly true of Web development,
entrepreneurship, even if it challenges existing since for many organizations Web presence is an
structures. Asking questions is seen as a sign of important asset but not a core competence. Thus,
interest in some cultures but as a challenge to it makes sense to outsource Web development to
authority in other cultures. specialist organizations.
Since key SPC staff were in multiple locations The increased use of outsourcing has impli-
across the US, email, instant messaging, telecon- cations for students and teachers. Students are
ferences, and Web conferences were already part likely to need more than technical knowledge
of the SPC culture, which helped ease the transition and abilities to function effectively. They need
into an outsourcing relationship. Every 1-2 months to be able to form effective relationships with a
there was a high-level status meeting with the variety of other people, and apply their combined
leadership of SPC. During the project, there was expertise and abilities to understand incompletely
continual email and instant messaging between defined problems and develop solutions. Levy and
SPC and the providers US staff, and face-to-face Murnane (2005) refer to these skills as complex
meetings, teleconferences, or Web conferences communication and problem-solving. In particu-
several times a week. The providers onsite staff lar, students need experience working in virtual
were trained and experienced with using offshore teams and other structures typical of outsourced
resources and at working with customers. The relationships. Thus, educators should find ways to
providers development teams usually had short help students obtain such experiences. Klappholz
online chats once or twice a day (when both US and Bernstein (2001) describe Live-Through Case
and offshore staff were awake) to discuss current Histories, which force students to live through
status and problems. specific situations to learn specific lessons about
In summary, clients and providers should software engineering. Student experiences might
work together to: involve interactions with other departments on
campus as well as with other institutions. There
a. Ease into relationshipsstart small, and are multiple studies of projects involving student
develop useful bottlenecks; teams spanning diverse institutions (e.g., Jarv-
b. Develop a common vocabulary of terms, enpaa, Knoll, & Leidner, 1998; Kaiser, Tuller, &
and diagrams, and metaphors; McKowen, 2000).
c. Use appropriate communication channels, Researchers should continue to identify and
both synchronous and asynchronous; document best practices for outsourcing and other
d. Be sensitive to cultural differences. distributed teams, particularly in situations where
relationships are likely to evolve. As best prac-
tices are understood, they can be organized into
fuTurE TrENds methodologies and tools, which can be adapted
to different situations.
In the future, globalization and other competitive
factors will continue to push organizations to
operate more effectively and efficiently. For many coNclusIoN
organizations, this will include appropriate use
of outsourcing and offshoring. As organizations This chapter has reviewed the state of Web ap-
and individuals continue to gain experience with plication outsourcing, and provided a concise
distributed development models, they will find overview of important concepts, key questions,
ways to maximize benefits and minimize risks. and best practices, which are summarized in
Outsourcing Issues in Web Development
Outsourcing Issues in Web Development
Figure 7. However, many of these issues and ap- Battin, R. D., Crocker, R., Kreidler, J., & Sub-
proaches also apply to other sorts of outsourced ramanian, K. (2001). Leveraging resources in
development work. global software development. IEEE Computer,
When outsourcing Web development, orga- 18(2), 70-77.
nizations should focus on three key ideas. First,
Beck, K., Beedle, M, van Bennekum, A, Cock-
structure projects in short iterations, so that there
burn, A. et al. (2001). Manifesto for agile software
are multiple opportunities to find and correct prob-
development. Retrieved on January 1, 2007, from
lems. This is particularly true early in outsourcing
http://www.agilemanifesto.org
relationships, when stakeholders are less sure of
their roles and relationships. Second, recognize Behravesh, N. & Klein, L. (2004). The com-
that the major benefits and risks are tied to people prehensive impact of offshore IT software and
and relationships rather than to tools. If individuals services outsourcing on the US economy and the
are committed to the project and team, they will IT industry. Report prepared by Global Insight
find ways to utilize available tools to solve their for the Information Technology Association of
problems. Outsourcing projects often depend on America, Arlington, VA.
a few key liaisons to facilitate communication
Bhat, J., Gupta, M., & Murthy, S. (2006). Over-
and prevent misunderstandings. Third, match the
coming requirements engineering challenges:
structure of the development team to the desired
Lessons from offshore outsourcing. IEEE Soft-
structure of the system.
ware, 23(5), 38-44.
Boehm, B. (1981). Software engineering eco-
rEfErENcEs nomics. Upper Saddle River, NJ: Prentice Hall
PTR.
American Electronics Association. (2004). Off-
Boehm, B., & Turner, R. (2003). Balancing agility
shore outsourcing in an increasingly competitive
and discipline: A guide for the perplexed. Boston:
and rapidly changing world: A high-tech perspec-
Addison Wesley Professional.
tive. Retrieved on January 1, 2007, from http://
www.aeanet.org/publications/IDMK_AeA_Off- Brooks, F. (1995). The mythical man-month.
shore_Outsourcing.asp Boston: Addison Wesley Professional.
Anderson, D. (2004). Agile management for Carmel, E., & Agarwal, R. (2001). Tactical ap-
software engineering: Applying the theory of proaches for alleviating distance in global software
constraints for business results. Upper Saddle development. IEEE Software, 18(2), 22-29.
River, NJ: Prentice Hall PTR.
Chen, J. Q., & Heath, R. D. (2005). Web application
Aspray, W., Mayadas, F., & Vardi, M. Y. (Eds.) development methodologies. In W. Suh (Ed.), Web
(2006). Globalization and offshoring of software: engineering: Principles and techniques. Hershey,
A report of the ACM Job Migration Task Force. PA: Idea Group Publishing.
New York: Association for Computing Machinery.
Christensen, C. M. (1997). The innovators di-
Retrieved on January 1, 2007, from http://www.
lemma: When new technologies cause great firms
acm.org/globalizationreport
to fail. Boston: Harvard Business School Press.
Axelrod, R. (1984). The evolution of cooperation.
CIO Insight (2003). Outsourcing: How well are
New York: Basic Books.
you managing your partners?. CIO Insight, 1(33),
75-85.
Outsourcing Issues in Web Development
Cockburn, A. (2003). Agile software development. neering, (pp 721-729). New York: ACM Press.
Boston: Addison Wesley Professional.
Grnbacher, P. (2003). Requirements engineering
Conway, M. E. (1968). How do committees invent? for Web applications. In G. Kappel, B. Prll, S.
Datamation, 14(4), 28-31. Reich, & W. Retschitzegger (Eds.), Web engineer-
ing: The discipline of systematic development
Cusick, J., & Prasad, A. (2006). A practical man-
of Web applications. Hoboken, NJ: John Wiley
agement and engineering approach to offshore
& Sons.
collaboration. IEEE Software, 23(5), 20-29.
Herbsleb, J.D., & Mockus, A. (2003). An empiri-
Davison, D. (2003). Top 10 risks of offshore out-
cal study of speed and communication in globally
sourcing. META Group Research.
distributed software development. IEEE Transac-
DeMarco, T., & Lister, T. (1999). Peopleware: tions on Software Engineering, 29(6), 1-14.
Productive projects and teams. New York: Dorset
Highsmith, J. (2002). Agile software development
House.
ecosystems. Boston: Addison Wesley Profes-
Dignan, L. (2003). Leaping, then looking. Base- sional.
line, 1(22), 17-29.
Humphrey, W. S. (1994). A discipline for software
Duarte, D. L., & Snyder, N. T. (2006). Mastering engineering. Boston: Addison Wesley Profes-
virtual teams. Hoboken, NJ: Jossey-Bass. sional.
Engardio, P., Bernstein, A., Kripalani, M., Humphrey, W. S. (1996). Introduction to the per-
Balfour, F., Grow, B., & Greene, J. (2003). The sonal software process. Boston: Addison Wesley
new global job shift. Business Week, February, Professional.
36-42,44,46.
Humphrey, W. S. (1999). Introduction to the
Escalona, M. J., & Koch, N. Requirements team software process. Boston: Addison Wesley
engineering for Web applicationsA compara- Professional.
tive study. Journal of Web Engineering, 2(3),
Jarvenpaa, S. L., Knoll, K., & Leidner, D. E.
193-212.
(1998). Is anybody out there? Antecedents of trust
Farrell, D. (2003). Offshoring: Is it a win-win in global virtual teams. Journal of Management
game? McKinsey Global Institute, Aug 2003. Information Systems, 14(4), 29-48.
Fowler, M. (2006). Using an agile software de- Jensen, B., & Zilmer, A. (2003). Cross-continent
velopment process with offshore development. development using Scrum and XP. Extreme pro-
Retrieved on January 1, 2007, from http://www. gramming and agile processes in software engi-
martinfowler.com/articles/agileOffshore.html neering. Paper presented at the 4th International
Conference. Berlin: Springer.
Ginige, A., & Murugesan, S. (2001). Web en-
gineering: An introduction. IEEE Multimedia, Johnson, J., Boucher, K. D., Conners, K., & Ro-
8(1), 14-18. binson, J. (2001). Collaborating on project success.
Software Magazine, February/March.
Ginige, A. (2002). Web engineering: Managing
the complexity of Web systems development. In Jones, T. C. (2000). Software assessments,
Proceedings of the 14th International Conference benchmarks, and best practices. Boston: Addison
on Software Engineering and Knowledge Engi- Wesley Professional.
Outsourcing Issues in Web Development
Kaiser, P. R., Tuller, W. L., & McKowen, D. (2000). A case study. Information and Management,
Student team projects by internet. Business Com- 41(4), 509-528.
munication Quarterly, 63(4), 75-82.
Levy, F., & Murnane, R. J. (2005). The new
Kappel, G., Prll, B., Reich, S., & Retschitzegger, division of labor: How computers are creating
W. (2003). An introduction to Web engineering. the next job market. Princeton, NJ: Princeton
In G. Kappel, B. Prll, S. Reich, & W. Retsch- University Press.
itzegger (Eds.), Web engineering: The discipline
Martins, L. L., Gilson, L. L., & Maynard, M. T.
of systematic development of Web applications.
(2004). Virtual teams: What do we know and
Hoboken, NJ: John Wiley & Sons.
where do we go from here? Journal of Manage-
Katzenbach, J. R., & Smith, D. K. (1993). The ment, 30(6), 805-835.
wisdom of teams: Creating the high performance
Mendes, E., Mosley, N., & Counsell, S. (2006).
organization. Boston: Harvard Business School
The need for Web engineering: An introduction.
Press.
In E. Mendes & N. Mosley (Eds.), Web engineer-
Kishore, R., Rao, H. R., Nam, K., Rajagopalan, ing. Berlin: Springer Verlag.
S., & Chaudhury, A. (2003). A relationship per-
Mockus, A., & Weiss, D.M. (2001). Globaliza-
spective on IT outsourcing. Communications of
tion by chunking: A quantitative approach. IEEE
the ACM, 46(12), 87-92.
Software, 18(2), 30-37.
Klappholz, D. & Bernstein, L. (2001) Getting
Moore, S., & Barnett, L. (2004). Offshore
software engineering into our guts. Crosstalk: The
outsourcing and agile development. Forrester
Journal of Defense Software Engineering, 14(7).
Research, Inc.
Retrieved on January 1, 2007, from http://www.
stsc.hill.af.mil/crosstalk/2001/07/bernstein.html Murugesan, S., & Ginige, A. (2005). Web engi-
neering: Introduction and perspectives. In W. Suh
Kunze, M. (1998) Let there be light: LAMP :
(Ed.), Web engineering: Principles and techniques
Freeware Web publishing system with database
(pp. 1-30). Hershey, PA: Idea Group Publishing.
support. ct, Dec 1998, 230.
Paasivaara, M., & Lassenius, C. (2004). Using
Kussmaul, C., Jack, R., & Sponsler, B. (2004).
interactive and incremental processes in global
Outsourcing and offshoring with agility: A case
software development. In Proceedings of the In-
study. Extreme programming and agile meth-
ternational Conference on Software Engineering
odsXP / Agile Universe, (pp 147-154). Berlin:
(ICSE) Third International Workshop on Global
Springer.
Software Development, (pp. 24-28).
Lacity, M.C., & Willcocks, L.P. (2000). Relation-
Palmer, S. R., Felsing, J. M. (2002). A practical
ships in IT outsourcing: A stakeholder perspective.
guide to feature-driven development. Upper
In R. W. Zmud (Ed.), Framing the domains of
Saddle River, NJ: Prentice Hall PTR.
IT management: Projecting the future through
the past. Cincinnati, OH: Pinnaflex Educational Patterson, J. (1994). ISO 9000: Worldwide quality
Resources, Inc. standard. Stamford, CT: Crisp Learning.
Lander, M. C., Purvis, R. L., McCray, G. E., & Paulk, M. C., Weber, C. V., Curtis, B., Chrissis, M.
Leigh, W. (2004). Trust-building mechanisms B., et al. (1994). The capability maturity model:
utilized in outsourced IS development projects: Guidelines for improving the doftware process.
Boston: Addison Wesley Professional.
Outsourcing Issues in Web Development
Chapter XIV
Engineering Wireless Mobile
Applications
Qusay H. Mahmoud
University of Guelph, Canada
Zakaria Maamar
Zayed University, UAE
aBsTracT
Conventional desktop software applications are usually designed, built, and tested on a platform similar
to the one on which they will be deployed and run. Wireless mobile application development, on the other
hand, is more challenging because applications are developed on one platform (like UNIX or Windows)
and deployed on a totally different platform like a cellular phone. While wireless applications can be
much smaller than conventional desktop applications, developers should think in small terms of the
devices on which the applications will run and the environment in which they will operate instead of
the amount of code to be written. This chapter presents a systematic approach to engineering wireless
applications and offers practical guidelines for testing them. What is unique about this approach is that
it takes into account the special features of the new medium (mobile devices and wireless networks), the
operational environment, and the multiplicity of user backgrounds; all of which pose new challenges to
wireless application development.
Copyright 2008, IGI Global, distributing in print or electronic forms without written permission of IGI Global is prohibited.
Engineering Wireless Mobile Applications
IS 1
F ix e d n e tw o rk
IS 2
IS 3
M o b ile
su p p o rt
M o b ile W ireless In fo rm atio n
statio n
c lie n t ce ll
IS serv er
host/server via an MSS over a wireless chan- with twelve buttons: the ten numerals, an
nel. The wireless channel is logically separated asterisk (*), and a pound sign (#).
into two sub-channels: an uplink channel and a Screen: The display might be as small as 96
downlink channel. The uplink channel is used pixels wide by 54 pixels high and 1 bit deep
by MCs to submit queries to the server via an (black and white). The amount of informa-
MSS, whereas the downlink channel is used by tion that can be squeezed into such a tight
MSSs to disseminate information or to forward screen is severely limited.
the responses from the server to a target client.
Each cell has an identifier (CID) for identification In addition, the wireless environment imposes
purposes. A CID is periodically broadcasted to all further constraints: (1) wireless networks are
the MCs residing in a corresponding cell. unreliable and expensive, and bandwidth is low;
A wireless mobile application is defined as a (2) they tend to experience more network errors
software application, a wireless service or a mobile than wired networks; and (3) the very mobility of
service that can be either pushed to users handheld wireless devices increases the risk that a connec-
wireless devices or downloaded and installed, tion will be lost or degraded. In order to design
over the air, on these devices.1 Such applications and build reliable wireless applications, designers
must work within the daunting constraints of the need to keep these constraints in mind and ask
devices themselves: themselves, what impact do wireless devices with
limited resources have on application design?
Memory: Wireless devices such as cellular The motivation for this chapter is provided
phones and two-way pagers have limited in part by the above characteristics that form
amounts of memory, obliging developers to some of the foundations for pervasive comput-
consider memory management most care- ing environments. Such characteristics pose
fully when designing application objects. several challenges in designing wireless mobile
Processing power: Wireless devices also applications for mobile computing. This chapter
have limited processing power (16-bit pro- provides a detailed treatment of the impact of these
cessors are typical). characteristics on engineering wireless mobile
Input: Input capabilities are limited. Most applications and presents a systematic approach
cell phones provide only a one-hand keypad for designing them. In addition, it offers practical
0
Engineering Wireless Mobile Applications
design techniques for wireless application design in WAP but not in MIDP and vice versa. These
and development. features are summarized as follows:
Engineering Wireless Mobile Applications
example. This environment could very well be a on the other hand, consist of some components
WAP browser as shown in Figure 2. running on a wireless device and others running
Similar to Java Applets that are integrated into on a network, and thus depend on access to ex-
HTML, MIDlets can be integrated into a WML or ternal resources. An example would be an e-mail
an XHTML page. Such a page can then be called application with a client residing on a wireless
from a WAP browser, and the embedded MIDlet phone interacting with a simple mail transfer
gets downloaded and installed on the device. In protocol (SMTP) server to send/receive e-mail
order to enable this, a WAP browser is needed messages. A major difference between local and
on the device. Another alternative approach for networked applications is in the way they are
over-the-air provisioning is the use of a short tested. Local applications are easier to test than
message service (SMS) which has been done network applications. For example, a calculator
by Siemens where the installation of MIDlets is application can run on a wireless device even
accomplished by sending a corresponding SMS. when it is not connected to any network, but an
If the SMS contains a URL to a Java application e-mail client will not work without a connection
descriptor (JAD) file specifying a MIDlet Suite, to e-mail servers.
then the recipient can install the application simply
by confirming the SMS. challenges
Engineering Wireless Mobile Applications
Engineering Wireless Mobile Applications
if the information is likely to go stale it Also, testing an application without knowing its
is important to keep the user informed of requirements is not an easy task. In addition, is-
progress. Design the user interface of your sues related to the operating environment such as
applications to handle message latency ap- network bandwidth should be considered during
propriately. the design so that the performance of the applica-
Simplify the interface. Keep the applica- tion will be satisfactory.
tions interface simple enough that the user
seldom needs to refer to a user manual to
perform a task. To do so: reduce the amount WIrElEss sofTWarE
of information displayed on the device; make ENGINEErING
input sequences concise so the user can ac-
complish tasks with the minimum number While wireless application development might
of button clicks; and offer the user selection appear to have less need for the coordination that
lists. a process provides, aspects of development, test-
ing, evaluation, deployment, and maintenance of
a wireless application have to be integrated in the
ad-Hoc dEvElopmENT procEss design process throughout the full development
life cycle. We have put forward a systematic ap-
An ad-hoc development process for wireless ap- proach to developing wireless applications, which
plications comprises three steps: is compatible with the rational unified process
or RUP (Jacobsen, Booch, & Rumbaugh, 2000)
1. Write the application. Several integrated in the sense that it is iterative and responsibil-
development environments (IDEs) are avail- ity-driven. We have developed this systematic
able for developing Java-based wireless ap- approach based on our experience designing and
plications, for example, Suns J2ME Wireless building wireless applications. We recognized that
Toolkit, and Metrowerks CodeWarrior. the development of a wireless application is not a
2. Test the application in an emulation environ- one-shot task, and testing wireless applications
ment. Once the application compiles nicely, is more challenging than testing conventional
it can be tested in an emulator. desktop software applications; therefore, an ad-
3. Download the application to a physical hoc development process cannot be used.
device and test it. Once the applications
performance is satisfactory on one or more development activities
emulators, it can be downloaded to a real
device and tested there. If it is a network Our software engineering approach to wireless
application, it is tested on a live wireless application development consists of a set of
network to ensure that its performance is manageable activities that, if followed properly,
acceptable. leads to reliable and maintainable wireless ap-
plications. The activities of our approach are
It is clear that many important software engi- shown in Figure 3.
neering activities are missing from this ad-hoc de- Planning. This iterative process begins with
velopment process. For example, there is no formal a planning phase, which is an activity that iden-
requirements analysis phase, and so following an tifies the objectives of the wireless application
ad-hoc development process may lead to building and specifies the scope of the first increment.
a product different from the one customers want. In addition, the costs of the overall project are
Engineering Wireless Mobile Applications
estimated, the risks are evaluated, and a tentative to be displayed on the screen is identified.
schedule is set. Content may include text fields, menus, lists,
Mobile user analysis. First, we must under- and graphics. Interaction analysis specifies
stand the audience of the application and the envi- how the user interacts with the application.
ronment in which it will operate. As an example, In order to find out how the user will interact
if the application is a wireless network-aware with the application, UML (Booch et al.,
application such as a multi-player game, the study 2000) use cases are developed.
will include the users of the application and how Usage analysis: The use case model devel-
they plan to use it. The output at the end of this oped during screen and interaction analysis
phase is a wireless application plan document that is mainly related to how users interact with
serves as the mobile end-user requirement. the application through the screen. The
Scenario analysis. This phase is similar to whole functionality of the application should
conventional software requirements analysis, and be described with use cases.
therefore concepts and principles of requirements Environment analysis: The environment
analysis can be applied here (Pressman, 2005). in which the application will operate should
In this phase, the mobile end user, an interaction be described in detail. This includes the
designer, and a developer sit together to come different wireless networks and back-end
up with a complete scenario analysis model that systems used. In addition, target mobile
takes into account the following types of scenario devices such as cellular phones and PDAs
analysis: on which the application will run should be
described in detail.
Screen and interaction analysis: The basic
unit of interaction between the user and The output of this phase is an information
the mobile device is the screen, which is analysis model document produced by the inter-
an object that encapsulates device-specific action designer and developer that outlines the
graphic user input. Therefore, the content functional requirements of the application and the
Engineering Wireless Mobile Applications
Engineering Wireless Mobile Applications
Offer the user selection lists. Wireless applications, like all other types of
Do not depend on any specific screen size. software, must be tested to ensure functionality
and usability under all working conditions. Test-
The output of this phase is a user manual that ing is even more important in the wireless world
describes the screen mockups and the navigational because working conditions vary a lot more than
paths. they do for most software. For example, wireless
Implementation. In this phase development applications are developed on high-end desktop
tools are used to implement the wireless applica- machines but deployed on handheld wireless
tion. There are several tools available for building devices with very different characteristics.
wireless applications such as Suns J2ME Wireless One way to make testing simple is to design
Toolkit. We would recommend using a tool that applications with testing in mind. Organizing the
allows installing the application in various emula- system in a certain way can make it much easier to
tion environments. Conventional implementation test. Another implication is that the system must
strategies and techniques such as coding standards have enough functionality and enough output
and code reviews can be used in this phase. information to distinguish among the systems
Testing. Software testing is a systemic process different functional features. In our approach, and
to find differences between the expected behavior similar to many others, the systems functional
of the system specified in the software require- requirements (features that the system must pro-
ments document and its observed behavior. In vide) are described using the Unified Modeling
other words, it is an activity for finding errors in Language (Booch et al., 2000) to create a use-case
the software system and fixing them so users can model, then detailing the use cases in a consistent
be confident that they can depend on the software. written form. Documenting the various uses of
Errors in software are generally introduced by the system in this way simplifies the task of test-
people involved in software development (includ- ing the system by allowing the tester to generate
ing analysts, architects, designers, programmers, test scenarios from the use cases. The scenarios
and the testers themselves). Examples of errors represent all expected paths users will traverse
include mismatch between requirements and when they use the features that the system must
implementation. provide.
Many developers view the subject of software Deployment. Deploying and running applica-
testing as not fashionable, and, as a result, too tions in an emulation environment is a very good
few of them really understand the job software way to test the logic and flow of your applica-
testers do. Testing is an iterative process and tion generally, but you will not be certain it will
should start from the beginning of the project. satisfy users until you test it on a real physical
Software developers need to get used to the idea device connected to a wireless network. Your
of designing software with testing in mind. Some applications performance may be stunning in
of the new software development methodologies the emulator, which has all the processing power
such as eXtreme Programming (XP) (Beck, 1999) and memory of your desktop machine at its com-
stress incremental development and testing. XP mand, but will it perform well on the handheld
is ideally suited for some types of applications, device, with its limited memory and processing
depending on their size, scope, and nature. User power, low bandwidth, and other constraints? In
interface design, for example, benefits highly this phase, the application is deployed on a live
from rapid prototyping and testing usability with network and evaluated.
actual users. Customer evaluation. Once the application
has been deployed, it is ready to be downloaded
Engineering Wireless Mobile Applications
by users for evaluation and usage. In this phase, to the next step and test it on a real device, and
users start using the deployed application and in a live network.
report any problems they may experience to the Usability testing. In usability testing, the
service provider. focus is on the external interface and the relation-
Maintenance. Software maintenance encom- ships among the screens of the application. As
passes four activities: error correction, adaptation, an example, consider an e-mail application that
enhancement, and reengineering (Pressman, supports entry and validation of a user name and
2005). The application will evolve over time as er- password, enables the user to read, compose, and
rors are fixed and customers request new features. send messages, and allows maintenance of related
In this phase, users report errors to and request new settings, using the screens shown in Figure 3,
features from the service provider, and developers among others.
fix errors and enhance the application. In this example, start the test at the Login
window. Enter a user name and a password and
press the soft button labeled Login. Enter a valid
TEsTING IssuEs aNd TEsTING user name and password. The application should
acTIvITIEs display the main menu. Does it? The main menu
should display a SignOut button. Does it? Press
The wide variety of mobile devices such as the SignOut button. Does the application return
wireless phones and PDAs results in each device to the Login screen? Write yourself a note to raise
running a different implementation of the J2ME the question, Why does the user log in but
environment. Varying display sizes add to the sign out? Now enter an invalid user name or
complexity of the testing process. In addition, password. The program should display a mean-
some vendors provide proprietary API extensions. ingful message box with an OK button. Does it?
As an example, some J2ME vendors may support Press the OK button. Does the application return
only the HTTP protocol, which the MIDP 1.0 to the Login screen?
specification requires, while others support TCP You need to test the GUI navigation of the entire
sockets and UDP datagrams, which are optional. system, making notes about usability along the
Here are some guidelines for testing wireless way. If, for example, the user must traverse several
applications. screens to perform a function thats likely to be
Implementation validation. Ensuring that very popular, you may wish to consider moving
the application does what it is supposed to be that particular function up the screen layers. Some
is an iterative process that you must go through of the questions you should ask during usability
during the implementation phase of the project. testing include: is the navigation depth (the number
Part of the validation process can be done in an of screens the user must go through) appropriate
emulation environment such as the J2ME Wire- for each particular function, does the application
less Toolkit (Sun Microsystems, 2005), which minimize text entry (painful on a wireless phone)
provides several phone skills and standard input or should it provide more selection menus, can
mechanisms. The toolkits emulation environ- screens of all supported devices display the content
ment does not support all devices and platform without truncating it, and if you expect to deploy
extensions, but it allows for the application to look the application on foreign devices, does it support
appealing and to offer a user-friendly interface international character sets?
on a wide range of devices. Once the application Network performance testing. The goal of
has been tested on an emulator, you can move on this type of testing is to verify that the application
performs well in the hardest of conditions (for
Engineering Wireless Mobile Applications
example, when the battery is low or the phone is Keep the user informed: If your application
passing through a tunnel). Testing performance does not start up within a few seconds, it
in an emulated wireless network is very impor- should alert the user. For large applications,
tant. The drawback with testing in a live wireless it is a good idea to have a progress bar.
network is that so many factors affect the perfor- Readable text: Ensure that all kinds of
mance of the network itself that you cannot repeat content are readable on both grayscale and
the exact test scenarios. In an emulated network color devices. Also make sure the text does
environment, it is easy to record the result of a not contain any misspelled words.
test and repeat it later, after you have modified Repainting screens: Verify that screens are
the application, to verify that the performance of properly painted and that the application does
the application has improved. not cause unnecessary screen repaints.
Server-Side Testing. It is very likely that wire- Soft buttons: Verify that the functionality
less applications communicate with server-side of soft buttons is consistent throughout the
applications. If your application communicates application. Verify that the whole layout of
with servers you control, you have a free hand to screens and buttons is consistent.
test both ends of the application. If it communicates Screen navigation: Verify that the most
with servers beyond your control (such as quotes. commonly used screens are easily acces-
yahoo.com), you just need to find the prerequisites sible.
of use and make the best of them. You can test Portability: Verify that the application will
server-side applications that communicate over have the same friendly user interface on all
HTTP connections using testing frameworks such devices it is likely to be deployed on.
as HttpUnit (http://httpunit.sourceforge.net), and
measure a Web sites performance using httperf Network checklist. Some of the items that
(http://citeseer.nj.nec.com/mosberger98httperf. should be inspected when testing wireless ap-
html), a tool designed for measuring the perfor- plications are:
mance of Web servers.
Sending/Receiving data: For network-
Testing checklists aware applications, verify that the applica-
tion sends and receives data properly.
Here we provide checklists that are useful when Name resolution: Ensure that the applica-
testing your application, in both emulation and tion resolves IP addresses correctly, and
live environments. These checklists include tests sends and receives data properly.
that are usually performed by certification pro- Sensitive data: When transmitting sensitive
grams offered by Nokia and Motorola (Motorola data over the network, verify that the data
Application Certification Program). is being masked or encrypted.
Navigation checklist. Here are some items Error handling: Make sure that error mes-
to check for when testing the navigational paths sages concerning network error conditions
of wireless applications: (such as no network coverage) are displayed
properly, and that when an error message
Successful startup and exit: Verify that box is dismissed, the application regains
your application starts up properly and its control.
entry point is consistent. Also make sure Interruptions: Verify that, when the device
that the application exits properly. receives system alerts, SMS messages, and
Application name: Make sure your applica- so on while the application is running, mes-
tion displays a name in the title bar. sages are properly displayed. Also make sure
Engineering Wireless Mobile Applications
that when the message box is dismissed the Network applications consist of some
application continues to function properly. components running on a wireless device
and others running on a network, and thus
depend on access to external resources. An
provIsIoNING WIrElEss example would be an e-mail application,
applIcaTIoNs with a client residing on a wireless phone
that interacts with an SMTP server to send
Developers usually build, test, and evaluate an messages.
application on a platform similar to the one on
which it will be deployed and ran. Development of Although these two types of applications are
wireless applications is more challenging because different, they are deployed in the same way. The
they typically are developed on one platform big difference shows up later: Local applications
(such as Solaris or MS Windows) but deployed are easier to test than network applications. For
on a totally different one (such as a cell phone or example, a calculator application can run on a
PDA). One consequence is that, while emulators wireless phone even when it is not connected
enable developers to do some of their testing on the to any network, but an e-mail client wont work
development platform, ultimately they must test without a connection to the SMTP server that
and evaluate the application in the very different actually transmits the messages.
environment of a live wireless network.
Wireless applications fall into two broad over the air provisioning
categories:
For some time, wireless portals in Europe such
Local applications perform all their opera- as Midletcentral have allowed customers to
tions on a handheld wireless device and need download applications directly to their phones,
no access to external data sources through a over the air. Over-the-air provisioning of wire-
wireless network. Examples include calcula- less applications (OTA) is finally available in
tors and single-player games.
0
Engineering Wireless Mobile Applications
North America. Nextel customers, for example, The framework is aimed to emulate the physical
can download network-aware wireless applica- mobility of portable computing devices through
tions without an update data cable. OTA is the the logical mobility of applications designed to
deployment of wireless Java applications (MIDlet run on them; an agent-based emulator is used to
suites) from the Internet to wireless devices over perform application-level emulation of its target
a wireless network. Users need not connect their device.
devices to the desktop with a data cable or visit More recently, Chen (2004) proposed a meth-
a service center to install or upgrade software. odology to help enterprises develop business
To take advantage of OTA, you must equip your strategies and architectures for mobile applica-
handheld device with a mechanism to discover tions. It is an attempt to formulate a life cycle
MIDlet suites available for download, using the approach to assisting enterprises in planning and
devices browser (such as a WAP browser) or a developing enterprise-wide mobile strategies and
resident application written specifically to iden- applications. This methodology is more concerned
tify downloadable MIDlet suites. The process of with business strategies rather than technical
downloading MIDlets over the air is illustrated details, and thus it is targeted at managers rather
in Figure 5. than developers. And finally, Nikkanen (2004)
presented the development work of a browser-
agnostic mobile e-mail application. It reports
rElaTEd WorK on experiences porting a legacy WAP product
to a new XHTML-based browser application
The explosive growth of the wireless mobile appli- and offers guidelines for developing mobile ap-
cation market raises new engineering challenges plications.
(Morisio & Oivo, 2003); what is the impact of the Our work is different in the sense that we
wireless Internet on engineering wireless mobile provide a detailed treatment of the impact of
applications for the new wireless infrastructure the characteristics of mobile devices and the
and wireless handheld devices? Due to the lim- wireless environment on engineering wireless
ited experience with wireless technologies and mobile applications; we discuss the challenges
developing wireless applications, little work has and offer practical solutions for developing mobile
been in the area of wireless software engineering. applications. We present a systematic approach
We found a special issue in the IEEE Transac- for designing wireless mobile application. Our
tions on Software Engineering on Software approach is iterative just like in Ocampo et al.
Engineering for the Wireless Internet (Morisio (2003), but differs in the sense that our process
& Oivo, 2003). However, out of the six papers has more focus on requirements elicitation and
accepted in the special issue only two papers more importantly scenario analysis. We do not
deal with the development process. Ocampo, provide a testing framework, but our testing
Boggio, Munch, and Palladino (2003) provided strategy and checklist is more practical than using
an initial reference process for developing wire- just an emulated environment. Finally, unlike the
less Internet applications, which does not differ work reported in Chen (2004), our methodology
significantly from traditional iterative process is targeted at developers and researchers rather
models but includes domain-specific guidance on than managers. And, unlike the work in Nikkanen
the level of engineering processes. Satoh (2003) (2004), our guidelines and systematic approach is
developed a framework for building and testing not limited to WAP-based applications, but can be
networked applications for mobile computing. applied to engineering any wireless application.
Engineering Wireless Mobile Applications
As the wireless Internet becomes a reality and The authors would like to thank the anonymous
software developers become comfortable with reviewers for the many helpful suggestions for
the methods and processes required to build improving this chapter. The first author was sup-
software, we recognize that the methods devel- ported in part by the Natural Sciences and Engi-
oped for conventional systems are not optimal neering Research Council of Canada (NSERC)
for wireless applications. In particular, wireless Discovery Grant No. 045635.
application development doesnt always fit into
the development model originated to cope with
conventional large software systems. Most wire- rEfErENcEs
less application systems will be smaller than
any medium-size project; however, a software Beaulieu, M. (2002). Wireless Internet applica-
development method can be just as critical to a tions and architecture. Boston: Addison-Wes-
small software project success as it is to that of ley.
a large one. In this chapter, we have presented
Beck, K. (1999). Extreme programming explained:
and discussed a systematic approach to wireless
Embrace change. Addison-Wesley.
application development, and presented practi-
cal guidelines for testing wireless applications. Booch, G., Rumbaugh, J., & Jacobsen, I. (2000).
The proposed approach takes into account the The Unified Modeling Language user guide.
special features of the wireless environment. We Boston: Addison-Wesley.
have successfully used the approach presented
to develop various wireless applications ranging Burkhardt, J, Henn, H., Hepper, S., Rintdorff,
from a stock portfolio management application to K., & Schack, T. (2002). Pervasive computing
a mobile agent platform for mobile devices (Mah- technology and architecture of mobile Internet
moud, 2002). Our future work includes evaluating applications. London: Addison-Wesley.
the effectiveness of the proposed methodology, Chen, M. (2004). A methodology for building
documenting wireless software design patterns, mobile computing applications. International
and building tools to automate the task of testing Journal of Electronic Business, 2(3), 229-243.
wireless applications.
There are several interesting research prob- Jacobsen, I., Booch, G., & Rumbaugh, J. (2000).
lems in the emerging area of wireless mobile The unified software development process. Bos-
applications and services. Some of these research ton: Addison-Wesley.
issues include: novel mobile services in the area Httperf. Retrieved January 13, 2005, from http://
of m-commerce and health care; security and www.hpl.hp.com/research/linux/httperf
privacy issues; mobile agents for mobile services;
discovery and interaction of mobile services; HttpUnit. Retrieved January 13, 2005, from
enabling roaming of applications and profiles http://httpunit.sourceforge.net
between different wireless standards; and loca- Mahmoud, Q. (2002). MobiAgent: An agent-
tion-aware and context-aware mobile services. We based approach to the wireless Internet. Journal
are currently addressing some of these research of Internet Computing, special issue on Wireless
problems, and research results will be presented Internet, 3(2), 157-162.
in future articles.
Engineering Wireless Mobile Applications
Morisio, M., & Oivo, M. (2003). Software engi- Pressman, R. S. (2005). Software engineering:
neering for the wireless Internet [Guest Editors A practitioners approach (6th ed.). New York:
Introduction]. IEEE Transactions on Software McGraw Hill.
Engineering, 29(12), 1057-1058.
Satoh, I. (2003). A testing framework for mobile
Motorola Application Certification Program. computing software. IEEE Transactions on Soft-
(n.d.). Retrieved February 10, 2005, from http:// ware Engineering, 29(12), 1112-1121.
qpqa.com/motorola/iden
Sun Microsystems J2ME. (2005). Retrieved from
Nikkanen, M. (2004). User-centered development http://java.sun.com/j2me
of a browser-agnostic mobile e-mail application.
Sun Microsystems J2ME Wireless Toolkit. (2005).
In Proceedings of the Third Nordic Conference on
Retrieved from http://java.sun.com/products/
Human-Computer Interaction, Tampere, Finland
j2mewtoolkit
(pp. 53-56). New York: ACM Press.
Ocampo, A., Boggio, D., Munch, J., & Palladino,
G. (2003). Towards a reference process for develop-
ENdNoTE
ing wireless Internet services. IEEE Transactions
on Software Engineering, 29(12), 1122-1134. 1
We use the terms wireless application and
Open Mobile Alliance. (2005). Retrieved from mobile application interchangeably through-
March 15, 2005, http://www.openmobilealliance. out this article.
org
This work was previously published in International Journal of Information Technology and Web Engineering, Vol. 1, Issue
1, edited by G. Alkhatib and D. Rine, pp. 59-75, copyright 2006 by IGI Publishing, formerly known as Idea Group Publishing
(an imprint of IGI Global).
Chapter XV
Project Management and Web
Software Engineering
Daniel M. Brandon
Christian Brothers University, USA
aBsTracT
The process involved with the development of Web applications is significantly different from the process
of developing applications on older traditional platforms. This is a difference not only in technologies
but in the overall business process and associated methodology, in other words the project management.
Web applications generally manage content and not just data, and many Web applications are document
centric versus data centric. In addition, there are many more people involved in the definition, design,
development, testing, usage, and approval for Web applications. The pace of business life is much
quicker today than in the past, thus Web applications need to be deployed much quicker than earlier IT
applications and they need to be engineered for more flexibility and adaptability in terms of changing
requirements, changing content, changing presentation, and perhaps mass user customization. In addi-
tion, security concerns are more prevalent in Web applications since the end users are outside as well as
inside the corporate virtual perimeter. Web applications can serve a global audience and thus there are
more diverse stakeholders for these applications. Issues such as language, culture, time zones, weights
and measures, currency, and international standards need to be considered. This chapter examines the
project management issues involved with Web applications.
Copyright 2008, IGI Global, distributing in print or electronic forms without written permission of IGI Global is prohibited.
Project Management and Web Software Engineering
consider how both of these disciplines combined Project management: Covering the key
can successfully address the opportunities, is- elements that differentiate projects from
sues, and problems of modern Web application general management;
development including the internationalization Organizations and people: Detailing the
and security aspects. main qualitative skills of a Project Man-
ager;
Techniques and procedures: Details the
THE proJEcT maNaGEmENT quantitative methods;
dIscIplINE General management: Covers industry
specific concepts.
A number of professional organizations have
developed around the world to foster the project The APM Body of Knowledge also provides
management discipline (Morris, 2001). These a focal point for many of the programs run by the
organizations have recognized that there is a APM including their Certification Program which
distinct skill set necessary for successful project assesses a persons competence in managing a
managers, and the organizations are devoted to as- project; the Course Accreditation Program which
sisting their members develop, improve, and keep reviews training courses run by both commercial
current with these skills [Boyatzis, 1982; Caupin, private training companies and higher education
1998]. The Project Management Institute (PMI) institutes, and the Project Management Capability
is the largest of these organizations in the world, Test which assesses a persons knowledge in the
but other major international organizations are APM Body of Knowledge. The British Standards
the Association for Project Management (APM), Institute publishes the Guide to Project Manage-
British Standard Institute (BSI), Engineering ment (BS6079). This Standard has been adopted
Advancement Association (ENAA) of Japan, by both the British government and industry and
Australian Institute of Project Management, and establishes commonly accepted terminology.
the International Project Management Associa- The stated objectives of BS 6079 are to provide
tion (IPMA). guidance to:
Each of these organizations has developed a
set of project management standards as has the General managers: To enable them to
ISO (International Organization for Standards) provide proper support for project managers
with its ISO 10006 Guide to Quality in Project and their teams;
Management. For comparative purposes the size Project managers: To improve their ability
in words of these various project management to manage their projects;
standards are (Crawford, 2004): Project support staff: To help them un-
derstand project management issues and
PMBOK 56,000 solutions thereto;
APM BoK 13,000 Educators and trainers: To help them
IPMA ICB 10,000 understand the project management envi-
ENAA P2M 36,000 ronment and the context in which project
management methods are deployed.
The APM has developed a Body of Knowledge
(BoK) of Project Management Competencies. The International Project Management Asso-
The APM Body of Knowledge identifies 40 key ciation is a federation of national project manage-
competencies grouped as: ment associations of several European countries
Project Management and Web Software Engineering
and it publishes the IPMA competency baseline approach which is dedicated to the management
(ICB) in English, French, and German; the first of a single project. The four areas of certification
publication being in 1998. While the content is in the Japanese program are Objectives, Strategy,
similar to the APM BoK, the organization is dif- Value Management, and Finance.
ferent and is termed the Sunflower. The IPMA The largest project management organiza-
encourages each national organization to form tion is the Project Management Institute (PMI)
its own competency baselines called National with over 250,000 members in over 125 coun-
Competency Baselines (NCB). There are now tries. The PMI Web site (www.pmi.org) records
about 30 countries with such NCBs throughout over 10 million visitors per year. Founded in
Europe and also Egypt, India, and China. 1969, PMI establishes project management
The Engineering Advancement Associa- standards, provides seminars and other vehicles
tion (ENAA) of Japan has also issued a project for professional growth, promotes educational
management body of knowledge called P2M (A programs, funds and encourages research, and
Guidebook of Project and Program Management provides professional certification that many of
for Enterprise Innovation). Their PM standard is the worlds organizations desire for their project
different from that of the PMI or APM, and is personnel. PMI produces a number of publica-
based on how project management can be used tions including the Project Management Journal,
to increase business value for an organization and Project Management Quarterly, PM Network, and
promote innovation. This P2M was a multi-year PMI Today. In this chapter we will closely follow
joint effort between the Japanese Project Manage- the PMI standards, however other and broader
ment Forum (JPMF) and the Japanese Ministry standards and concepts found in the other major
of Economy, Trade and Industry (METI); it was project management organizations will also be
supported by both Japanese industry and govern- included.
ment with a very significant contribution from PMI established its first body of knowledge in
academic research. The Japanese P2M is based 1976 which finally became A Guide to the Project
on a tower structure which according to the Management Body of Knowledge (PMBOK)
Japanese Standard Committee is focused on the around 1987. It was revised several times with
alignment of project management to the business major releases in 1996, 2000, and 2005; there are
units instead of the European and North American about 1.5 million copies of all PMBOK versions
pmBoK
General application
management specific
Project Management and Web Software Engineering
Tools methods
Initiation planning
in circulation. The PMBOK embodies generally managed, what to do when; PMIs 5 Process
accepted best of practice procedures, methods, Groups are:
and general tools which are derived by a structured
consensus of its vast membership. The PMBOK Initiation
is approved as an American National Standard Planning
(ANS) by the American National Standards In- Execution
stitute (ANSI). There is some overlap of project Control
management best practices with practices of Closing
general management and also practices specific
to various fields as illustrated in Figure 1. They are further sub-divided into 9 Knowl-
The content of the PMBOK is organized into edge Areas. The Knowledge Areas are:
processes, and 37 Key Processes are defined.
Each process is defined as procedures which Integration management [3 processes]
receive various inputs and produce various out- Scope management [5 processes]
puts using various methods and perhaps with the Time management [5 processes]
assistance of some general tools. Methods may Cost management [4 processes]
be management techniques, mathematical tech- Quality management [3 processes]
niques, statistical techniques, etc. The tools are Human resource management [3 process-
typically some type of software. This is shown es]
pictorially in Figure 2. Communication management [4 process-
These processes are grouped into 5 Process es]
Groups which relate to how project work is Risk management [4 processes]
Procurement management [6 processes]
Project Management and Web Software Engineering
Figure 3 shows the general sequencing of groups, and knowledge areas is shown in Figure
the process groups in the timeline for a project. 4.
However, in practice there may be considerable In practice, large projects are typically broken
overlap; that is all initiation processes will not down into phases, and the organization of a project
complete before all the planning processes begin. into phases is discipline specific and typically
The output from one process in a process group follows some type of development methodology.
is typically the input to another process either in Each project phase has a beginning and an end,
the same process group or the next one in this and the five process groups are a part of each.
sequence. Deliverables from one phase are typically inputs
The overall organization of the PMBOK and to the next phase; and there may be phase overlap
the relationship between the processes, process
Project Management and Web Software Engineering
Intermediate
Initial phases final
phase phase
Time -->
phase N + 1
Initiation planning
phase
N+2
Project Management and Web Software Engineering
0
Project Management and Web Software Engineering
4500 Hours of documented project manage- The PMP certification (or equivalent certifica-
ment experience over 3- 6 years; tion from another international organization)
BS/BA Degree and at least 35 contact hours is now being required (or highly recommended)
in PM training; by many large corporations for one to become a
Passing a very comprehensive 4 hour exam project manager in their organization. Addition-
on the PMBOK; ally many companies expect vendors to provide
Adherence to the PMI professional code of certified project managers for contracted work
ethics. (Brandon, 2006).
software
Engineering
requirements
methodology
architecture
deployment
reuse
scope
change management
quality
risk
schedule
cost
procurement
communications & Hr
project
management
Project Management and Web Software Engineering
Software engineering is the computer sci- so in IT; there are a number of standards, frame-
ence discipline concerned with developing large works, architectures, tools, and methodologies
computer applications. Software engineering to choose from and they all are rapidly changing
covers not only the technical aspects of building and evolving.
software systems, but also management issues,
such as directing programming teams, schedul-
ing, and budgeting. TradITIoNal sofTWarE
dEvElopmENT mETHodoloGy
The disciplines of project management and
software engineering overlap considerably as According to Websters dictionary, methodology
illustrated in Figure 7. The Institute of Electri- is a system of methods. This authors definition
cal and Electronics Engineers (IEEE) software for methodology is organized know how. The
standard 1490-2003 provides for the adoption of most common and established methodology used
PMI Standard (PMBOK). in building and/or integrating IT systems has
In the IT industry there is no one methodol- been casually called the waterfall method and
ogy, architecture, or set of standards. In other formally referred to as the software develop-
industries, there are typically established codes, ment lifecycle methodology (SDLC). This no-
frameworks, patterns, methods, and tools that are tion and term was first applied to IT systems by
almost always used when one builds something in Royce (Royce, 1970). The steps in this classical
one of those industries. In home building there are methodology are:
county building codes, frameworks for house pat-
terns (ranch, colonial, Tudor, contemporary, etc.), Definition
subdivision guidelines and limitations, standard Specification (Requirements)
methods, and tools of the trades involved. Not Design
definition
specification
design
construction
Testing
Installation
maintenance
Project Management and Web Software Engineering
Construction (Programming and unit test- nation of arbitrary constraints, negotiation and
ing) compromise on scope (features) versus time and
Testing (system and integration) cost, statement of assumptions, rough time and
Installation cost estimates, a rough project plan, and a signed
Operation and Maintenance go-ahead (i.e., the project charter).
The specification step involves a complete
This is illustrated in Figure 8. In theory these statement of scope (requirements), use case
steps are not supposed to overlap or to iterate. scenarios, preparation of preliminary user
Today there are many software development manual (external design specifications), detailed
methodologies, and some of these newer meth- project plan (including work breakdown structure
odologies are variations of or alternatives to the [WBS]), specification of needed resources, refined
basic waterfall approach. estimate of time and cost, refined cost-benefit
For IT projects there is a correlation between analysis, and signed approval of requirements
the PMI process groups (and their outputs) and and user manual by stakeholders. However, in
the chosen software engineering methodology practice the users manual is rarely written at this
(and its outputs); Figure 9 is an example of a stage. The reason the users manual (or at least a
correlation between PMI process groups and the draft) should be done at this step is so that some
classical software development life cycle (SDLC) other dependent activities can began such as: test
of a single phase project. planning and test scripts, making training plans
One hears many comments about the classical and materials, and other dependent tasks like
waterfall software development lifecycle: internal or external marketing.
The design step involves resolution of critical
The software development lifecycle is the cor- technical issues, selection of architecture and
nerstone of development! platform(s), adoption of standards, assignment
The lifecycle is out of date! of staff, completion of external design (user in-
Get good people and the lifecycle will manage terface design), design of critical data structures
itself! & database, internal design of algorithms and
There must be better and faster ways to build processes, Requirements Traceability Matrix,
IT systems! preliminary test scripts, final time and cost esti-
mates, and a final cost-benefit analysis. Often this
The SDLC goals are to: step is divided into two steps; analysis (or overall
design) and design (or detailed design).
Do it right the first time! The construction step involves the implemen-
Meet customers stated requirements! tation of the design (i.e., via coding), unit testing,
Have a timely completion! systems integration, draft internal documentation,
Complete within cost constraints! and the completion of test scripts.
Build system with the necessary quality! The testing step involves full scale integration
and system testing, completion of user documenta-
The definition step involves making a clear tion, completion of training material, adoption of
statement of goals, identifying why and how the formal change control procedures, completion of
proposed system will be better/cheaper/faster the internal documentation, completion of instal-
than the system it is replacing, and usually an lation manual and roll-out or phase-in plan.
overall/rough cost-benefit analysis. This phase is The installation step involves product roll-out,
typified by frequent customer interaction, elimi- end user training, producing lessons learned
Project Management and Web Software Engineering
PMBOK SDLC
Process Group Outputs Stage Outputs
Project Management and Web Software Engineering
Project Management and Web Software Engineering
start of End of
project project
solution domain
Implementation
design Testing
analysis
Time -->
completed. Here the basic waterfall steps may have Evolutionary development begins with
considerable overlap. This is illustrated in Figure only the user requirements that are very well
11. For example, even though the design of the understood and builds a first version. Often that
total system is not completed (nor documented and first version is just a prototype. Analysis, design,
approved), the implementation of those compo- implementation, and testing are done in a free flow
nents whose design is completed may begin. This overlapping manner without any formal review of
overlap is built into the dependency relationships documents. This first version is then taken back to
in the project work breakdown structure (WBS). the customer for review and definition of further
One is betting that the total design (such as may requirements. Next the second version is built,
be manifested in UML design drawings) will be and then taken back to the customer. This process
approved. The concept is similar to optimistic continues until the customer is satisfied with a
record-locking in an interactive database applica- version and no further extensions are required.
tion. This is also a good technique on contracts This is illustrated in Figure 12. Documentation,
where incentives are available for early comple- training, acceptance testing and other project
tion. Obviously risks are greater with larger completion activities are done at that point at
projects and for projects where requirements can which all (or most) of the customers requirements
change significantly. have finally been included. This methodology is
much faster than a waterfall approach and also
Project Management and Web Software Engineering
design
req's
s ubset code & version 2
Test
design
req's
s ubset code & version N
Test
...
design
req's
s ubset code &
Test
somewhat quicker than the free-flow method. the methodology of constructing it), not bolted
However management visibility may be limited on afterwards.
since there is little intermediate documentation After the initial requirements phase, develop-
produced. Also in a contracted environment ment proceeds as in the evolutionary method. This
(external or internal), a fixed price contract is illustrated in Figure 13. Each increment typically
could not be used since the overall scope is not represents a product portion that can be placed
initially determined and priced. For a contracting into service. Incremental development is not as
environment, either a cost plus or time and quick as evolutionary development, but attempts to
material contract would have to be used. Also, avoid the design problems caused by not knowing
internal design is often poor for evolutionary all the major requirements initially. However it
development since the entire scope is not visible suffers from the same contract type issues as the
from the beginning, and continually changing a evolutionary method. Another potential problem
system leads to a design which is less adaptable is that the increments are based on the priorities
and harder to maintain. If the system is designed of the requirements, and sometimes priorities may
and built in a fully Object Oriented manner this significantly change during the time of developing
problem can be minimized. the increments. Both the rational unified process
Incremental development begins with a de- and extreme programming as well as several other
termination of all the requirements but only in a new methodologies use this technique and these
rough outline form. Next those requirements are are discussed later.
prioritized normally based upon those features Bounding box development is similar to in-
that are most important from a business perspec- cremental development except that each increment
tive. Since time is spent up front looking at all is not based on a certain scope (requirements sub-
requirements a more appropriate overall platform, set) but instead it is based on a measure of effort.
architecture, and design can be selected. This is If the effort put into an increment is constrained
particularly important for security requirements, by calendar time then the term timebox is com-
since security cannot be an afterthought. Good monly used. This is illustrated in Figure 14. For
security has to be built into the total product (and contracted development (external or internal), the
Project Management and Web Software Engineering
req's subset
req's subset
...
req's subset
Effort contraint
Effort contraint
...
Effort constraint
increments are usually based on a dollar (budget) tracting environment, and the resources involved
amount. Thus this method does not have the con- both human and financial (Brandon, 2006).
tracting disadvantage that evolutionary or iterative
methods have, but customers must be willing to Combinations of these methodologies can also
contract for portions of the total system. However, be used such as in the rational unified process
since the amount of scope that will actually be which combines incremental and free-flow tech-
completed in each increment is not known, each niques. Figure 15 shows the primary advantage
increment may not represent a product portion and disadvantage of each of the methodologies.
that can be placed into service. The rational unified process (RUP) is based
upon both the incremental methodology and the
There is no one best methodology. An organization free-flow methodology discussed earlier. Instead
must select the methodology that is most appropri- of attempting to address all of a projects require-
ate for the type and size of IT project at hand, the ments, RUP produces software iteratively that
nature of the customer and stakeholders, the con- addresses a compromised but known feature
Project Management and Web Software Engineering
set and evolves the project over time (Jacobson, Inception: Understanding the need, under-
1999; Kruchten, 1998). The difference between standing the proposed system to address
evolutionary methods and RUP, though, is that one the need, making the business case for the
identifies the requirements for the entire system, proposed solution;
but only details the top 20% or so of architectur- Elaboration: Selecting the architecture and
ally significant cases during a single increment. developing the project plan;
This enables the determination of an appropriate Construction: Design, coding, integrating,
architecture and design which will accommodate and testing;
the remaining 80% of the requirements without Transition: Iinstalling the product on the
compromising the integrity and quality of the total target platform(s) and getting the user take
system. This is particularly important for security ownership of the system?
requirements, and a plug-in to the standard
RUP is available called CLASP (Comprehensive The key to RUP is iteration, both within each
Lightweight Application Security Process) which of the above phases and also with the incremental
provides a structured way to address security is- production of version. Each iteration within a
sues in the software development process. phase ends in a deliverable, and each increment
RUP specifies different roles for project results in a working product version. RUP de-
participants. Before an architect ever gets in- fines static workflows, core workflows (business
volved, an analyst is building use cases and models, requirements, analysis/design, testing,
evaluating and prioritizing them with the and deployment) and support workflows (change
customer. Before the coders begin implementa- management, project management, environment,
tion, architects work with analysts to identify the and tools). However each of these static workflows
architecture which best satisfies requirements is not associated with any one phase, and some
and constraints. UML tools are used to build degree of each type of workflow goes on within
a consistent model from requirements to detail each phase.
design. RUP uses the free-flow methodology also The transition from phase to phase is not
in that there is considerable overlap in activities separated by a stage gate and management
of different roles. control is not done by placing dates upon the
RUP is a phased approach that defines four phase boundaries. Management control is only
distinct phases: done upon iterations. The project plan contains
a list of proposed iterations (which is likely to
Project Management and Web Software Engineering
change), and each iteration has an estimate (which bad as programmers assuming that all mangers
is also likely to change). The proposed iterations know what they are doing.
are not assigned due dates, but decision points Although the various agile methods differ,
are set up in time (usually based upon weeks). At they have some things in common. Most use an
each decision point, a decision is made in regard incremental free-flow approach as does RUP. The
to adding/removing resources, adding/removing common intent is to be agile, so one should
iterations form the next release (version) of the embrace change and produce software that is
product, or killing/holding the project. These adaptable; thus most of these methods call for the
decisions are based upon progress, cost, and/or use of object oriented languages. Another common
earned value metrics. Thus a key part of the feature is a lot of contact time with users. Still
project plan is how risks will be managed; it is a another key focus is a focus on people not process
plan of contingencies, as opposed to just a plan thus emphasizing team morale building. Most AP
of activities. methods have some core principles including:
RUP is not suitable for all IT projects. It is
complex and difficult to quantify in a contracting Use a simple design (the old military KISS
arrangement. However for internal projects that principle);
are large and risky, and where quick deployment Design as you go, and keep refactoring
of partial products is necessary, it may be an the code;
appropriate choice. Take small incremental steps (when chang-
Agile programming (AP) is a name given ing or adding code, take the smallest step
to a growing number of lightweight methodolo- you can, then test again; one or two weeks
gies with names like Crystal (Cockburn, 2001), is typical);
Scrum (Schwaber, 2001), Adaptive (Highsmith, Stick to one task at a time (do not add code to
2000), Feature-Driven Development (Palmer, accomplish two things at the same time);
2002), Dynamic Systems Development Method Heavy use of IDE and RAD tools;
[DSDM] (Stapleton, 1997), and Extreme Program- Use only the techniques that really work for
ming (Beck, 1999). During the 1990s there was you.
such a need to quickly build new IT systems to
take advantage of new technologies like Web ap- Now, to many developers these may seem basic
plications and e-commerce as well as the need to and obvious, but we know many programmers
address the Y2K problem, that IT organizations who never follow any of these principles. Some
began exploring these lightweight techniques. programmers, instead of modifying a module or
Lightweight methodologies do away with much class for a small change or addition, will spend a
of the SDLC process overhead that slows down great deal of time writing the entire module from
developers, such as detailed formal requirements scratch. The advantages of these AP principles
definitions and extensive documentation. Some include:
feel that these new development approaches are
based on the premise that if you hire competent Faster reaction to changes in requirements
programmers who always know what they are The overall design remains simple
doing, then any problems they encounter are or- Coding can begin earlier
ganizational and communications ones; and those By refactoring the code, the most important
are what the agile approach focuses on. However parts get the most attention (one doesnt
for managers to make this assumption may be as invest time into changing what doesnt need
to be changed)
0
Project Management and Web Software Engineering
Code in progress is always stable Designers write automated unit test scripts
Refactoring is one of the core concepts and before coding
this is a new word for cleaning up the code. Refactoring is used extensively
More formally, refactoring is improving the Programmers work in pairs
design and maintainability of code in small Programmers have collective ownership of
incremental steps confined to areas of cur- all code
rent interest. One problem with refactoring Teams integrate and check code back into
is that when a programmer comes under repositories frequently (no longer than one
pressure to finish faster, the refactoring work day)
may not be done. Developers work only 40 hour weeks
User representative(s) remain on-site
AP is relatively new, so the jury is still out on the Programmers follow strict coding stan-
success and applicability of these methods. It dards
is felt that AP is suitable for small projects and
small teams; whether it has practical applica- Although XP in different forms has been used
tion for larger environments is still in question for a few years, many IT organizations have been
(Brandon, 2006). reluctant to try it. A major issue is that some XP
principles contradict long standing IT policies.
Extreme programming (XP) is a software For example, XP specifies pair programming, in
development approach initially for small teams which two programmers sit side by side working
on risk-prone projects with unstable require- at a single workstation. Pair programming seems
ments (Beck, 1999). Kent Beck, a programmer inefficient, but studies have shown that it is no
and project leader, developed XP while work- less efficient that traditional programming and
ing on a long-term project to rewrite Chryslers usually results in fewer code defects (Williams,
payroll application. XP is a form of AP based on 2000). Fewer defects eventually mean quicker
a lightweight methodology. XP however, differs delivery. However, not all programmers want or
from most other agile approaches by being much are suited for pair programming. Very good pro-
more prescriptive. Like AP, XP is an incremental grammers should not always be encumbered with
method with free-flow. XP advocates say the meth- a sidekick. Many programmers like the solace and
odology (creating user scenarios and performing that is one of the reasons they stay programmers.
upfront feature testing) allows them to develop Often programmers consider themselves masters
and deliver code more quickly with fewer bugs. of the trade, and if you have two master chefs in
XP is built around rapid iterations, an emphasis the kitchen there is going to be conflicts. Another
on code writing, and working closely with end problem with XP (like all AP) is its application in
users. The 12 basic practices of XP are: contract environments. Still another problematic
issue for XP is that all code is generally open for
Customers define requirements via use case programming pairs to check out and alter. This can
scenarios (stories) open up the team to integrity and security issues.
Teams release small increments into produc- As discussed earlier in this book, internal security
tion early is becoming a prime concern for IT organizations
Teams use standard names and descrip- for both internally developed code and particularly
tions outsourced programming. Further XP does not
Simple object oriented coding is used address downstream SDLC issues such as train-
ing, user documentation, and training.
Project Management and Web Software Engineering
Project Management and Web Software Engineering
in Java, PHP, or Visual Basic-Net. Some think that Traditionally the key stakeholders have been
the serviceoriented architecture may become individuals or other groups closely associated
the core paradigm for software applications and with either the benefiting or performing organiza-
integration in the future (Eisenberg, 2004). tions. However, long-run changes in the social,
political, and economic environment of projects
The advantages of the CBSE approach are speed of have meant that this is no longer necessarily the
assembly and possibly short term cost. The disad- case for a number of reasons. (Winch, 2004) So,
vantages are that no strategic advantage is derived today there may also be a number of key external
from the resulting product (nothing is proprietary, stakeholders in terms of various social, political,
anyone can do it), compromise of requirements to or economic interests.
meet capabilities of available components, vendor Internal stakeholders related to the benefiting
dependencies, possible performance issues, and organization might include:
security problems (Brandon, 2006).
Project sponsor(s)
Business Owners or stockholders
WEB applIcaTIoN Customer line management
sTaKEHoldErs Customers users of the IT system
Customers IT group
The identification and management of a projects Customers accounting group
stakeholders is vital to the complete success of a Customers business units affected
project. Often well planned and properly executed Customers other employees
still fail due to a lack of or inappropriate relation- Customers customers
ships between the project manager and various Customers contractors and vendors
stakeholders. The first step in good stakeholder Customers financiers
management is the complete identification of all
of the stakeholders. Cleland defines stakeholders Internal stakeholders related to the performing
as (Cleland, 1998): organization might include:
Project Management and Web Software Engineering
Figure 16.
IT line
managers
software development lifecycle
document
project Web
management
manager application
system
Business
line
managers content approval & control
language
product market communication Graphic
& culture Trainers Webmaster
managers analysts specialists designers
specialists
ment bodies and these can be termed public will have to be managed differently than those
(Winch, 2004). that are less powerful. Each stakeholder or group
External private stakeholders might include of stakeholders may have a different type of stake
concerned individuals, trade associations, en- in the project including: monetary, job security,
vironmental and conservationists associations, position, influence, reputation, or convenience
neighborhood association, and the like. External (time). The interests of all stakeholders in one
public stakeholders might include local govern- group may not be the same, if the result of the
ments, state governments, federal regulatory successful completion of the project may alter
agencies, federal governments, or international the balance of power in that organization. For
agencies. example, within the benefiting organization dif-
Since Web applications generally manage ferent stakeholders may be for, against, or neu-
content and not just data, and many of them are tral about the project and this may depend upon
document centric versus data centric. In addition, the way the final project manifests itself or the
there are many more stakeholders involved in the way it is implement in the benefiting organiza-
definition, design, development, testing, approval, tion. In Web projects, which involve a number
and usage for Web applications as opposed to of corporate business units, there is very much
traditional applications. This is illustrated in corporate change including work flow, policies
Figure 16. and procedures, management structure, and so
Once the stakeholders have been identified, forth; for this reason, different stakeholders within
then each must be analyzed carefully in order to the same group (i.e., the benefiting organization)
determine the manner in which that stakeholder may have varying interest in the success of such
should be managed. Stakeholders that are more a large project.
concerned about a project will have to be managed Figure 17 shows a power versus concern
differently than those that are less concerned; graph which can be used to visually assign
similarly stakeholders that are more powerful stakeholders into one of these four categories.
Project Management and Web Software Engineering
compliance Individual
Hand Holding
^
power
concern ->
Powerful and highly concerned stakeholders will aligned with the project initially; they do not need
have to have to be actively managed throughout constant attention as does the powerful and very
the project; these are the people who will need concerned group. Stakeholders that are not power-
their hands held. For each of these individuals ful and not too concerned simply need to be kept
or groups the project manager must ascertain: informed on a regular basis as a group.
In terms of power and influence over project
What is the biggest thing this stakeholder affairs, there are four types of power in most or-
has to gain if the project succeeds (fails)? ganizations and communities of stakeholders:
What is the biggest thing this stakeholder
has to lose if the project fails (succeeds)? 1. Power due to position (or rank)
2. Power due to control over resources (like
Next the project manager (or line manage- budget)
ment) must try to best align this person with the 3. Power due to unique expertise
project and get early buy-in; and then check 4. Power due to politics and/or charisma
on this alignment during all phases of the proj-
ect. Stakeholders that are powerful but not too Some authors define other types of power like
concerned usually have some standards or other physical power, which may have relevance on a
manifestation of principle that they wish to be sport team, but typically not in a project manage-
followed. An example here is regulatory agen- ment environment. Other types of power defined
cies. This group of stakeholders is best managed by some are position sub-types of power as:
by becoming very knowledgeable and clear on
the principles and standards involved and then Reward: Power based on being able to
complying with same. Stakeholders that are not give an employee something he/she wants;
powerful but quite concerned need to be aligned does not necessarily mean money, may be
with the project; this is the so-called buy-off a position/role on the team, or may be a
group. This done first by finding out why they positive evaluation supplied by the PM
are so concerned, and then seeing if they can be to a functional line manager
Project Management and Web Software Engineering
Referent: Power bestowed from a higher also map to the project quality plan. Finally,
point in the organization access to the stakeholder plan must be properly
Penalty: Power based on being able to controlled, in regard to which stakeholders can
penalize someone (may be more than mon- view such a plan.
etary)
A stakeholder may fall into more than one of GloBal dEploymENT for WEB
these categories. Figure 18 shows one method applIcaTIoNs
to perform this stakeholder analysis including
an analysis of power versus concern and type According to Computerworld: Globalization is
of power. In this spreadsheet each stakeholder the marketing and selling of a product outside a
is listed and characterized by checking off col- companys home country. To successfully do
umns. that on the Internet, a company needs to local-
izemake its Web site linguistically, culturally,
After all the stakeholders have been identified and in all other ways accessible to customers
and analyzed, a stakeholder action plan should outside its home territory (Brandon, 2002). Ever
be developed. This plan will explain how each since the end of the Cold War, the world has been
stakeholder is to be managed and who (within rushing toward ever-higher levels of national con-
the project team, line management, or project vergence, with capital markets, business regula-
management office, is responsible for carrying out tion, trade policies, and the like becoming similar
each item in the action plan for that stakeholder (Moschella, 1999). The value of cross-border
(Brandon, 2006). mergers grew sixfold from 1991 to 1998 from
U.S. $85 billion to $558 billion. The world has
This stakeholder management plan can be a not witnessed such a dramatic change in business
separate plan or be part of the project commu- since the Industrial Revolution. (Korper, 2000)
nications plan. As part of the stakeholder man- More than 95% of world population lives outside
agement plan, potential claims by a stakeholder of the U.S., and for most countries the majority
or other potential unfavorable actions should of their potential market for goods and services
also be identified and included in the project risk is outside of their borders. Currently about eight
management plan. As well as correlating with percent of the worlds online population resides
the communications plan and risk management outside of North America:
plan, the stakeholder management plan should
Project Management and Web Software Engineering
Project Management and Web Software Engineering
Bucharest: The lift is being fixed for the Creating an effective foreign Website involves
next day. During that time we regret that much more than just a good language translation.
you will be unbearable. Not only do languages differ in other countries
Leipzig: Do not enter the lift backwards, but semantics (the meaning of words and phrases)
and only when lit up. and cultural persuasions in a number of key areas
Paris: Please leave your values at the front are different. Sensitivity to culture and national
desk. distinction will separate success from failure
(Sawhney, 2000). To be effective, a Website has
There are several Web sites which provide not only to be understandable and efficient, but
free translation services such as http://babelfish. has to be culturally pleasing and inoffensive. To
altavista.com, http://translator.go.com, and www. accomplish that, it may be necessary that not only
freetranslation.com. language be localized, but that content, layout,
Another alternative, although certainly not navigation, color, graphics, text/symbol size, and
optimal, is to provide a link on your English Web style may be different. Many companies have
page to these free services so that visitors can put forth global Web sites simply by translation
translate your content themselves. the English into the targeted language, but then
Shown in Figure 19 is the home page for Fe- had to pull back and re-plan and redesign the
dEx (www.fedex.com). One can select from over localized site due to cultural offenses. The Nike
200 countries for specific language and content. site shown in Figure 23 for example has some of
Figure 20 shows the U.S. FedEx page, and Figure these issues which are common to the localized
21 shows the FedEx site for Mexico. version of Web sites for many companies; in that
Another example is Nikes home page shown figure one can see that:
in Figure 22, and their Japan version shown in
Figure 23. Not all the English has been translated into
Japanese (text inside figures for example);
Figure 19.
Project Management and Web Software Engineering
Figure 20.
Figure 21.
The actors are not Japanese; other parts of the world (www.gwjapan.com); for
The clothes worn by the actors have Ameri- example, avoid groups of four on Japanese sites.
can team names. Sometimes even product names may be offensive
or inappropriate. General Motors tried to market
A countrys humor, symbols, idioms, and mar- the Chevy Nova in Mexico (in Spanish No Va
keting concepts may not send the same messages means does not go) ! Some areas of global
to other countries in the world. Oriental manners disagreement to avoid are equality of the sexes
can be much different and more subtle than in or races, body parts and sexuality, abortion, child
Project Management and Web Software Engineering
Figure 22.
Figure 23.
labor and majority age, animal rights, nudity, guns, by foreign material. A European branch of a ma-
work hours and ethic, capital punishment, scien- jor U.S. software company ran an advertisement
tific theories, and religious particulars (Brandon, with a woman straddling a chair with her legs
2002). Cultural persuasions work both ways. For which said Sometimes size is not important if
example, many American Web sites offend other you have the right tool. The advertisement did
countries, but Americans are sometimes offended well in Europe but offended Americans.
0
Project Management and Web Software Engineering
Colors have symbolic and special meaning even been several lawsuits in the U.S. concerning
in most locals. In the U.S., the colors red, white pornographic sites and the like due to different
and blue signify patriotism and red and green interpretations of laws in different states (differ-
signify Christmas. In India, pink is considered ent geographic/political parts of U.S.).Another
too feminine. Purple is a problem in many places; legal issue concerns the privacy of personal data
it symbolizes death in catholic Europe and pros- collected online. Many parts of the world have
titution in the Middle East. Euro Disney had to stricter laws than does the U.S., and U.S. compa-
rework its European sites after the first version nies have had judgments rendered against them in
used too much purple. Overall blue is the most foreign courts. Recently an agreement has been
culturally accepted color (Brandon, 2002). Much reached between the U.S. and the European Union
of the world is still using eight colors not 256 that would, among other things, mandate that all
colors, thus it is best, for the immediate future, companies doing business in Europe notify us-
to use primary colors. An individuals perception ers when personal data is being collected. Under
of color depends not only on the ability to see it, that agreement, companies have four options in
but also on the ability to interpret it within the compliance to the new policy: register with the
context of our emotional and cultural realities. data-protection authority for the European Union,
Ninety percent of (Web sites are colored poorly, subscribe to a self-regulatory organization like
they are simply overdone, and there is no sense Trust-e, prove they are subject to laws similar to
of harmony Holzschlag, 2000). the European Union, or agree to refer disputes
It is also very important to respect other cul- to European regulators (Whiting, 2000).There
tures symbols (heroes, icons, etc.) both positive are other areas that could cause legal problems,
and negative (swastika). One guide site is Merriam too. One is foreign advertising restrictions; for
Websters Guide to International business (www. example, in Germany, one cannot directly com-
bspage.com/address.html). The classic books on pare your product with that of a competitor. In
these cultural subjects are excellent guides for some other countries this comparison may not
Web pages also: Kiss, Bow, or Shake Hands: How be illegal but may be in bad taste. Other areas
to do Business in 60 Countries (Morrison, 1995), consider safety, consumer protection laws, health,
Dos and Taboos Around the World (Axtell, 1993), and other standards For example in the U.K.,
and Dun & Bradstreets Guide to Doing Business currently one cannot sell the drug Viagra, even
Around the World (Morrison, 1997). This year a though its sale is legal in the rest of the world; in
French courts ruling that Yahoo must make auc- Germany companies are not allowed to provide
tions of Nazi memorabilia unavailable in France an unlimited return guarantee.
indicates how uncertain and risky international e- Nearly half of the U.S. Web sites refuse inter-
business can be. The troubling aspect of this case national orders because they are unable to process
is that different countries can say that content not them (Grossman, 2000). One could always ask
even targeted at their population breaks the law for advance payment in native currency (cash,
(Perrotta, 2000). With the Internet it is not possible cashiers check, International Money Order), but
to know for sure where a user is logged in from you had better have a very unique product for
due to IP tunneling possibilities. Freedom that approach to be successful. Foreign exchange
laws (such as the U.S. First Amendment) are not rates vary daily so indicating that your prices
universal, and saying/printing some things can be are in your countrys funds (exclusive of local
illegal in some parts of the world. In the U.S. you taxes and custom duties) and using credit cards
can say what you like about public figures, but (so the credit card company does the conversion)
not so in most of the rest of the world. There have is one way to deal with that issue. One can also
Project Management and Web Software Engineering
link to a converter site (www.xe.net/ucc, www. switch date formats per session or connection so
oanda.com) or place a calculator on your page the way a date is input (insert into table) or output
(www.xe.net/currency or www.bloomberg.com/ (select from table) is automatically converted
markets/currency/currcalc.cgi). Also in many to the internal table representation of the date.
countries traditional pricing may be much lower Some popular Web databases (i.e., MySQL) do
or higher, so product pricing is important. For not provide this capability, so you will have to do
example, computer products are typically 50% the conversion in your own code (via client side
more expensive in Europe than in the U.S. JavaScript or Java Applets, or server side CGI
However, credit cards are rare in Japan as is programs or Java Servlets). Some popular Web
the use of checks. There postal workers collect programming languages have features to facilitate
cods, and some companies send goods to brick these conversions (i.e., Javas GregorianCalendar
and mortar places for consumers to pick up. In class or Perls Date::Manip). Related to dates but
Germany only 5% of Web users (second to U.S. not to the display problem, is the fact that each
in overall net usage) use credit cards. Eighty-eight local has its own set of holidays; this will affect
percent of European merchants use invoice billing daily volumes and delivery schedules. Some lo-
(with a long net payment due time). So while credit cales may use a special calendar: Arabic Lunar
cards are a convenient and popular mechanism Calendar, Jewish calendar, Iranian calendar, or
in the U.S., it is not so in the rest of the world. To the Japanese Imperial Calendar. In the U.S. a
complicate matters even further, there are many 12-hour clock is common, except in U.S. military
(and always changing) international sales taxes, establishments. The rest of the world uses mostly
VAT (Value Added Taxes) in Europe, with dif- a 24-hour clock, so it is best to display time in
ferent exempt items in each country. Selling in the 24 hour format. Of course time zones will be
Europe may involve VAT registration in countries; different, so include your time zone along with
one needs to get rulings and advise in writing the phone numbers for personal customer support.
from each country. Typically a company pays It is best to spell out the time zone in the native
VAT based on the country its based in, but that language. You could instead give your support
can depend on the country and item being sold. time in GMT (Greenwich 2000 Standard) and use
One approach to avoid all these problems is to or link to www.timeanddate.com for a customiz-
use an escrow service such as Paymentech (www. able world clock and calendar.
paymentech.com) which now handles about 3 bil- In addition to dates and times, other units of
lion transactions/year; others are: www.tradesafe. measure will be different also. Only the U.S. and
com, www.internetclearing.com, www.iescrow. Canada (partially) still use the English System,
com, www.worldpay.com. the rest of the world is on the metric system now,
Dates are very important in e-commerce be- even Britain. This may or may not affect the goods
ing used for events such as delivery dates, credit you are selling, but overall the lack of adoption of
card expiration dates, product expire dates, and the metric system will now begin to put the U.S.
so forth. There is an international standard on and Canada at a disadvantage in world e-com-
dates (ISO 8601 Date Format), and even though merce. Even for an English only Web site, to do
you may not use it internally in your programs business internationally it will prove advantageous
(for database operations and calculations), your displaying product information in both English
Web display should be in the localized format. For and metric measurements, or allow the user to
example, the common U.S. format of 10/6/2000 dynamically change units (Hickman, 1998).
is not uniformly understood; instead use Oct-6- Addressing a customer may be more in-
2000. Major databases (i.e., Oracle) allow you to volved; some foreign addresses may have longer
Project Management and Web Software Engineering
and more address fields. For Europeans, trying formats, bandwidth capabilities, tagging HTML
to buy from American e-commerce companies properly, correct character sets to use, managing
is a lot like shopping in the Third World. While multilingual pages on the server, directing users
delivery address forms let you specify any country, to the language specific content, and so forth.
the forms demand an American state, a five-digit (Yunker, 2000). Bandwidth and response time
zip code, a 3-3-4 formatted phone number, and are vastly different around the world. In China,
they assume your street address only takes up one the 28.8 Kbp is standard, so one must minimize
line(Grossman, 2000). There is a universal stan- graphics and/or have a text only version for China
dard, of sorts, here called the UPU (Universal and similar bandwidth limited areas. In Europe
Address Formats). Generally, it is of good advice and Japan wireless or Mobile-commerce is more
including a country code (and base validation of popular than in the U.S. currently, and this effects
remaining fields upon this country code), at least bandwidth and display sizing (Brandon, 2002).
three address lines (40 characters each), city field Whether your HTML pages are manually cre-
(30 characters), a state/province/region field (20 ated, statically created by an HTML editor (i.e.,
characters), a postal code/zip field (10 characters), FrontPage, DreamWeaver, etc.) or dynamically
and a contact phone number (20 characters). Figure created on the server, the HTML code will have
24 shows an example global order form. to identify both the character set and encoding.
Language is often the least challenging Character sets are the common ASCII, an ISO
aspect of customizing, or localizing, a Web site standard [i.e., ISO 2022-JP for Japanese], or a
for a foreign audience. The hard part is all the special set. The encoding to use is identified
technical challenges; including date/currency via the HTML META tag, such as: <META
Figure 24.
Project Management and Web Software Engineering
Project Management and Web Software Engineering
choice so that when they return to the main URL In the subclasses, only the properties that were
they are switched to the locale specific version different in the dialect from the language would
automatically (assuming most users of a specific have to be maintained. There are products that
PC will not be switching languages.) The FedEx facilitate this task of producing resource bundles
site (Figure 6) works in this manner. or the like. Products such as Suns Internationaliza-
With the capabilities of modern operating tion and Localization Toolkit (JILT), Multilizer
systems and using the Java language, there is an Java Edition, or Catalyst Enterprise (Apicella,
automatic way of placing a user on the correct 2000) will capture all the textual references in a
native page (Davis, 1999). When users install computer program (such as Java, C++, or PHP)
an operation system on their computer (such as and let you build a dictionary of translations in
Microsoft Windows 95/98/2000), they will specify different languages. JILT uses resource bundles,
a locale [via Control Panel/Regional Settings]); and the other products take different approaches.
for most computers, the manufacturer sets this This is a great aid in modern dynamic HTML,
up upon assembly based upon the ship to ad- Java Applet, or Java Servlet based Web sites.
dress. Then there is the enormous problem of version
Your home page can simply be a container for and configuration control with Web pages, just as
a Java Applet which interrogates the operating there is in any software based system. Maintaining
system to find the regional setting. Then the Ap- many language and or country/locale versions of
plet can load the correct locale/language version. a companys Web site will be a major task in the
The capability within the Java language for this is future. Over time, the English text changes as
called Resource Bundles (Patten, 1999). products, their features, and policies are changed.
Instead of maintaining the URLs in the bun- There must be a method to keep everything in
dles, the actual phrases, codes, image filenames, synchronization. There are some content man-
video file names, and so forth, can be stored in the agement products such as Idioms WorldServer or
bundles. Then using Java server programming, BroadVisions Web-Publishing System that have
dynamic HTML can be produced (under program some of those needed localization capabilities.
control) on the fly to generate the native pages. For example, each text item, logo, graphic, and
The biggest and most costly problem is hav- other items are tagged with a rule to indicate how
ing to re-create Websites from scratch because it is to be handled in different languages and/or
the original was programmed with English text regions (Robb, 2000).
embedded in the code (Disabatino, 2000). For Some Web sites to aid in all these techni-
dynamic HTML, this is typically done with a Java cal areas include Unicode (www.unicode.org),
Servlet running on the server. Although techni- International Technical Issues (www.w3.org/In-
cally more challenging, there are several advan- ternational), Basis Technology (www.basistech.
tages. First the HTML is generated dynamically com), and the Microsoft Internationalization
and can be a function of time, date, or anything else Whitepaper (http://msdn.microsoft.com/work-
as well as locale. Second when some information shop/management/intl/locprocess.asp).
has to be changed, you do not have to open up and It can be very costly to build and maintain a
modify every language page; only the object that foreign presence. A full business plan must be
is being changed (phrase, image, etc.). Another set up market analysis (product demand, pricing,
key advantage is that the bundles can be classes, and competition), total entry costs, then ROI must
and as such an inheritance hierarchy can be set be considered (Tapper, 2000). Without doubt it
up. Dialects would be subclasses of the language is more expensive and time consuming to design
and would inherit the properties of the language. and build an effective global Web presence than
Project Management and Web Software Engineering
just a domestic site. Forbes has a list of 10 key use other international services: www.worldbusi-
general questions for companies considering go- ness.net/marketplace, www.digilead.com, ciber.
ing global (Klee, 2001): bus.msu.edu/busres/tradlead.ht, Global Informa-
tion Network (www.ginfo.net), Global Business
Do you have a good reason? Is exporting Centre (www.glreach.com/gbc), GoingGlobal
central to your companys strategy ? (www.going-global.com), WorldPoint (www.
Do you have the right stuff to pull it off worldpoint.com), Internationalization of the
(talent, technology, leadership, ) ? Internet: (www.isoc.org:8080), InvestinEurope
Can you identify a market(s) ? (www.investineurope.com).
Are you flexible ? As statistically shown earlier, U.S. Web users
Can you find a good distributor (partner) will play a smaller role each year in the World
? Wide Web, China & Asian markets will grow
Can you cope with all the complexity ? dramatically. The Euro will become standard,
Can you brave the non-legal barriers (ways and Europe may require U.S. based companies
of doing business) ? to charge VAT.
Are you willing to extend credit and deal Communication infrastructures are building
with currency turmoil ? up in second and even third world countries (both
Are you ready to run a much different kind government and private). Major communication
of company ? build ups are currently occurring in the Pacific
Do the rewards outweigh the costs ? rim, Latin America, and South America (Ferranti,
1999). Companies such as FedEx will offer more
A company must have commitment from the sophisticated international shipping and logistic
top to make the endeavor of designing for inter- services to more parts of the world. More sophis-
national markets a success (Fernandes, 1995). ticated software for translation, localization, and
Know your audience and see who your visitors version control is being developed each month.
are. Many companies are surprised when they In addition more companies will discover how
analyze their log files and see who visits their to use the technology available within Java (JSP,
site. There is software to facilitate this type of Servlets, Applets, Beans). The Internet will be-
analysis and there is a new breed of application come pervasive and become an integral part of
servers such as HitBox Enterprise from Web- our everyday lives via WevTV, Net Applicances,
SideStory (www.websidestory.com) addressing Wireless devices, handheld devices, smart cards,
visitor analysis. These application servers do not and so forth.
use log files (since they gather the information In the not too distant future, the Web will be
on-line from your static or dynamic Web pages) everywhere; and by everywhere we mean not
and thus do not require programming resources only in all our electronic devices, but everywhere
on your side. in the world. It has been said that the Net brutally
Finally, to be most effective in the long run, punishes latecomers. [Sawhney, 2000], so it is
an organization must get totally immersed in essential to start planning the internationaliza-
foreign and Web related matters. One can join tion and localization of e-commerce now. Also
global organizations like The Global Trading remember the Web is a two way street; foreign
Web Organization (www.commerceone,com), corporations will be coming after your custom-
subscribe to international trade newsletters (www. ers soon!
newsletteraccess.com/subject/intetrade.htm), and
Project Management and Web Software Engineering
140000 137529
120000
reported Incidents
100000
80000
60000
40000
21756
20000
2340 3734
6 406
0
1988 1991 1994 1998 2000 2003
Project Management and Web Software Engineering
Being able to shield the project work, project There is both an opportunity and a need for more
team, and other resources from security detailed and diverse research into many of these
threats; Web application project management issues, es-
Being able to build adequate security pro- pecially those involving security. Being able to
tection into the product that is the subject run projects and build Web-based systems that
of the project. are impervious to both internal and external
security threats will become vital to the suc-
Security aspects should not be ignored in HR cess of organizations and survival of free world
planning, and procedures such as background governments.
checks for all personnel (employees, contractors,
consultants, etc.) involved with a project are be-
coming more appropriate. It is no longer sufficient rEfErENcEs
simply to secure the perimeter physically and
logically, but active security procedures need to Apicello, Mario (2000). Multilizer for Java pow-
be implemented for those objects already inside ers your apps to travel the Globe. Infoworld,
of the perimeter. Figure 26 shows the types of January.
issues that should be addressed in a simple project
security plan. Axtell, Rodger (1993). Dos and Taboos Around
the World, John Wiley & Sons.
Bauer, F. (1972). Software Engineering. Informa-
tion Processing , 71.
Project Management and Web Software Engineering
Beck, K. (1999). Extreme programming explained: Boyatzis, R. (1982). The competent manager: A
Embrace change. Harlow: Addison-Wesley. model for effective performance. Wiley.
Bowen, B. (1997). Software Reuse with Java Brandon, Daniel (2002). Issues in the globaliza-
Technology: Finding the Holy Grail. Retrieved tion of electronic commerce. In V. K. Murthy
on from www.javasoft.com/features/1997/may/ and N. Shi (Eds.) Architectural issues of Web-
reuse.html enabled electronic business. Hershey, PA: Idea
Group Publishing.
Project Management and Web Software Engineering
Brandon, Daniel (2006). Project management Highsmith, J. (2000). Adaptive software develop-
for modern information systems. Hershey PA: ment. Dorset House.
Idea Group Publishing .
Holzschlag, M. (2000). Color my world. WebT-
Cleland, D. (1998). Stakeholder management. In echniques, September.
J. Pinto. (Ed.) Project management handbook.
Jacobson, I. et al. (1999). The unified software
Wiley.
development process. Addison-Wesley Profes-
Cockburn, A. (2001). Agile software development. sional.
Addison-Wesley.
Klee, K. (2001). Going global: Out ten tests can
Crawford, L. (2004). Global body of project help You Get Started. Forbes Small Business,
management knowledge and standards. In Morris March.
and Pinto (Eds.) The Wiley guide to managing
Korper, Steffano, & Ellis (2000). The E-commerce
projects. John Wiley & Sons.
book: Building the E-empire. Academic Press.
Davis, M., & Smith , H., (1999). The Java In-
Kruchten, P. (1998). The rational unified process.
ternational API: Beyond JDK 1.1. Java Report,
Addison-Wesley.
February.
Morris, P. (2001). Updating the project manage-
Disabatino, J. (2000). Web site globalization.
ment bodies of knowledge. Project Management
ComputerWorld, July.
Journal, September.
Eisenberg, R. (2004). Service-oriented architec-
Morrison, T. (1997). Dun & Bradstreets Guide to
ture: The future is now. Intelligent Enterprise,
doing business around the world. Prentice Hall.
April 17.
Morrison, T. (2000). Kiss, bow, or shake hands:
Fernandes, T. (1995). Global interface design.
How to do business in 60 countries. Adams
Academic Press.
Media.
Ferranti, M. (1999). From global to local. Info-
Moschella, D. (2000). Ten key IT challenges for
world, October.
the next 20 years. Computerworld, December.
Ferranti, M. (2000). Globalization tidal wave.
Neuman, C. (2000). Considering the color-blind.
Infoworld, November.
Webtechniques, August.
Giebel, T. (1999). Globalize your Web site. PC
Palmer, S., &Felsing, J. (2002). A practical guide
Magazine, November.
to feature-driven development. Prentice Hall.
Grossman, W. (2000). Go Global. Smart Busi-
Patten, B. & Grandlienard, G. (1999). Using re-
ness, October
source bundles to international text. Java Report,
Grossman, W. (2000). The outsiders. Smart Busi- February.
ness, July.
Perrotta, T/ (2000). Yahoo ruling exposes risks
Hall, M. (2003). The Web services tsunami. of being global. InternetWorld, July.
Computerworld, May 19.
Peterson, C. (2000). Accessible Web sites matter.
Hickman, N. (1998). Internationalizing your Web Enterprise Development, June.
site. WebTechniques, March.
0
Project Management and Web Software Engineering
PMI (2000), The project management body of Standish Group (2004). Chaos chronicles. Re-
knowledge (PMBOK), Project Management trieved on www.standisgroup.com
Institute.
Stapleton, J. (1997). DSDM dynamic systems
Reed, S. (2000). Want to limit the audience for development method. Addison-Wesley.
you Web site? Keep it English only. Infoworld,
Tapper, S. (2000). Is globalization right for you.
August.
WebTechniques, September
Robb, D. (2000). Act globally, serve locally. In-
Uniscape Corporation (2000). Global content
formation Week, July.
manager.
Royce, W. (1970). Managing the development
Whiting, R. (2000). U.S. companies to comply
of large software systems. In Proceedings of
with European privacy rules. Information Week,
the IEEE WESTCON, Los Angeles CA, IEEE
February.
Computer Society.
Williams, L., & Kessler, R. (2000). Strengthening
Sawhney, Mohanbir, & Sumant Mandai (2000).
the case for pair programming. IEEE Software,
Go global. Business, May.
17(4), 19-25
Schwaber, K., & Beedle, M. (2001), Agile software
Winch, G. (2004). Managing project stakeholders.
development with schrum. Prentice Hall.
In Morris and Pinto (Eds.). The Wiley guide to
Schwartz, H. (2000). Going global. WebTech- managing projects. John Wiley & Sons.
niques, September.
Yunker, J. (2000). Speaking in charsets. WebT-
Squier, J., & Nielsen, J. (2000). Deconstruct- echniques, September.
ingHojo.com. Internet World, June.
Chapter XVI
Resources on Web-Centric
Computing
Margaret Menzin
Simmons College, USA
aBsTracT
This chapter consists of a comprehensive bibliography of web engineering resources. Since this list will
constantly be changing, the author provides a web site for a current and more comprehensive listing:
(URL=http://web.simmons.edu/~menzin/WebCentricResources.html) This print version of this resource
shows the URLs in printed form, generally in the format as (URL=). Be sure to check the General
Tools section, in addition to the sections for specific topics.
Copyright 2008, IGI Global, distributing in print or electronic forms without written permission of IGI Global is prohibited.
Resources on Web-Centric Computing
Certain sites recur frequently: they provide information on multiple topics, and often at multiple levels.
This table summarizes those sites and is always a good place to start.. Please note that there are also
many sites which are useful for only one or two categories (e.g. CSS or Web Services) and which are
listed under those topics. Further, even for the general sites, the topical sections often have links to
more specific useful resources.
Site Comments XHTML CSS Java- CGI Perl PHP XML Web Web2.0
Script Services
w3c Documentation Doc N-I Doc Doc Doc Doc
for most technolo- Doc
gies; hard to use
unless you know
something
About Hard to find with N N N N
search
w3schools Superb tutorials; N-I N-I N-I N-I N-I Ajax
handy references Ref Ref Ref
well organized
Tizag Similar to above N N N-I N-I N-I N
tho often less Ref Ref
detailed; SQL tuto- Scr
rial too
U Minn. Duluth Superbly organized Link by Link Link Link Link
links;Accessibility search
info too.
Earthweb Family of sites
*HTMLGoodies N; Ref N N N N
*JavaScripts Scr
*Developer I-A; I-A; I-A; I-A; I-A I-A I-A; Scr
Scr Scr Scr Scr
*Gamelan I-A I-A
*WebReference Java A: I-A; I-A; I-A; I-A;
interfaces Link Link Link Link Link
Advanced articles
WebDeveloper Links to N-I-E Link Link Link Link Link Link
articles
HotScripts Many advanced Scr Scr Scr Scr Scr
- topics too
Web Developers Clear, but some N-I N-I N-I N N; N; N-I-E;
Virtual Library older Link Link Link
DevShed I-E; Scr A; Scr A;Scr A A A
IBM Wonderful articles I-A I-A I-A I-A I-A I-A I-A I-A I-A
developerWorks if you have a spe-
cific topic
Menzin Links at Longer web page Link Link Link Link Link Link Link Link Link
Simmons College version of these
references
Legend:
N, I and A: has Novice, Intermediate and Advanced articles and tutorials
Doc: has documentation on topic
Ref: has reference charts on syntax
Link: links to other articles and tutorials and books
Scr: has sample scripts and downloadable code
Resources on Web-Centric Computing
Resources on Web-Centric Computing
Resources on Web-Centric Computing
Resources on Web-Centric Computing
from and as a reference; includes CSS1 and You can also find the (URL='http://www.
CSS2 and how to link with Java applets. w3.org/TR/html4/interact/forms.html')
HTML, XHTML, and CSS Bible (Bible) forms specifications here (URL="http://
3rd Edition by Bryan Pfaffenberger, Bill www.w3.org/TR /1999/R EC-html401-
Karow, Chuck White, and Steven M. Schafer 19991224/index/elements.html") elements
published by Wiley, 2004. The 'Bible' refer- from w3c.org
ence books are usually the most complete (URL="http://www.w3.org/TR/1999/REC-
and usually invaluable tables of special html401-19991224/index/attributes.html")
characters (accented letters, apostrophes, attributes from w3c.org Includes information
etc.) on what is deprecated.
About.com (URL="http://webdesign.about. IDocs References on HTML (URL='http://
com/library/bl_htmlcodes.htm") helpguide.inmotionhosting.com/html_
w3schools (URL='http://www.w3schools. faq/')
com/tags/ref_entities.asp') Modularization of XHTML; further articles
w3c.org (UR L="ht t p://w w w.w3.org / are in the More Advanced Articles section.
TR/1999/REC-html401-19991224/sgml/en- (URL=http://www.w3.org/TR/xhtml11/)
tities.html") which includes mathematical includes information on changes from
characters, tables of XHTML (and HTML4) XHTML1.0
tags, elements and attributes. (URL="http://www.w3.org/TR/xhtml-ba-
Complete documentation on X HT- sic/") documentation from w3c; XHTML
ML (URL='http://www.w3.org/MarkUp/ Basic is a minimal subset for 'small user
#recommendations') agents' (cell phones, smart watches, TV's).
w3schools table of all XHTML and HTML H T M L Work i ng G roup Roa d m ap
tags, attributes, colors, etc.; (URL='http:// (URL="http://www.w3.org/MarkUp/xhtml-
www.w3schools.com/xhtml/default.asp') roadmap/"), what modules and versions will
(URL='http://www.devguru.com/Technolo- be coming your way and when
gies/xhtml/quickref/xhtml_index.html') ref-
erence on all XHTML tags from DevGuru. Other XHTML Documentation
com. Very easy to use and helpful, but doesn't
warn you about usage dropped in going from (URL="http://www.w3.org/TR/xhtml1/
transitional to strict Doctype. #guidelines") HyperText Markup Language
(URL="http://webdesign.about.com/cs/ht- (Second Edition).
mltags/a/bl_index.htm") Library - HTML Making sure your XHTML is displayed
Tag Library from About.com. Links to properly in (old) HTML browsers; from
summary of tags for HTML/XHTML by w3.org. This article also includes informa-
function (at bottom) and alphabetically (to tion about various DOCTYPEs. Setting the
right of sponsored links box) and links to character set encoding (URL='http://www.
summary of modules (major chunks by w3.org/International/O-charset.html') More
function) for XHTML information on character set encodings is in
The following articles refer to (the older) the Tutorials section.
HTML, but still have some useful informa- The DOM model (URL="http://www.wsab-
tion: HTML 4.01 Specification (URL='http:// stract.com/domref/index.shtml"). The DOM
www.w3.org/TR/html4/') has become very important (e.g. for CSS and
Resources on Web-Centric Computing
AJAX). Tutorials and Articles on the DOM default.asp'). The w3schools tutorials are
are listed separately in the JavaScript section. always a good place to begin.
This reference is from the JavaScript Kit. (URL="http://webdesign.about.com/li-
brary/nosearch/bl_xclass1-1.htm") tutorials
Tutorials and articles for HTml and from About .com. You can also change the
xHTml 1-1 in the URL to 2-1, 3-1, etc. to step thru
the tutorials You can also have it emailed to
The links below are tutorials on HTML and you as a course: (URL="http://webdesign.
articles on why you should move to XHTML. about.com/c/ec/9.htm").
Although you should be writing XHTML, rather XHTML 101 - Free XHTML Course These
than HTML, a complete novice might find it are a good but basic introduction to XHTML
easier to start with HTML. These tutorials are (URL="http://www.wdvl.com/Authoring/
particularly clear. Languages/XML/XHTML/") XHTML,
with eXamples.
Introduction to HTML (URL="http://www. Tutorials from w3c.org. (URL='http://www.
w3.org/TR/html401/intro/intro.html") w3.org/MarkUp/#tutorials') includes links
Dave Ragett's Tutorials on HTML to some advanced tutorials. Articles on
( U R L='ht t p://w w w.w3.org / Ma rkUp/ Fontsplease also refer to the sections on
Guide/'). Even though you should start Site Design and Browsers
with XHTML, this is such a clear, concise (URL="http://builder.com.com/5100-6371_
tutorial it's a classic. There are also links 14-5210803.html?tag=sc") using ems and
to his (URL='http://www.w3.org/MarkUp/ percents for font sizing, pitfalls of relative
Guide/Advanced.html') advanced tutorial, sizing for fonts
his tutorial on CSS,and his style guide (URL="http://builder.com.com/5100-6371_
(URL='http://www.w3.org/MarkUp/Guide/ 14-5215705.html?tag=sc") answer for font
Style.html'). sizing? Keywords work better than absolute
HTMLTidy (URL='http://www.w3.org/ or relative sizes for fonts
People/Raggett/tidy/') (URL="http://webdesign.about.com/od/
HTML Tutorial from EchoEcho.com fonts/a/aa080204.htm") Decide Which Font
(URL='http://www.echoecho.com/html. Family to Use Serif, Sans-Serif, Mono-
htm'). Another clear HTML tutorial; has space, Script, Fantasy Fonts (URL="http://
some more advanced features - e.g. meta www.w3.org/TR/REC-CSS2/fonts.html").
tags refresh, etc. The navigation is so clear w3c's definitions of the font characteristics
that you can quickly zoom to any details you may specify, and how to do it.
you need. Unordered lists (URL=http://www.de-
Why switch to XHTML? (URL='http://www. velopershome.com/wap/wcss/wcss_tuto-
webreference.com/authoring/xhtml/') rial.asp?page=listProperties). Beginning
Transition from HTML to XHTML with XHTML1.0 strict this must be done
From About.com, (URL="http://build- through styling. This also works on mobile
er.com.com /510 0 - 6371_14 -5237333. devices.
html?tag=e606") switch to XHTML from Ordered lists (URL='http://www.devel-
Builder.com. opershome.com/wap/wcss/wcss_tutorial.
XHTML Tutorial from w3schools.com asp?page=listProperties2'). Beginning with
(URL='http://www.w3schools.com/xhtml/ XHTML1.0 strict this must be done through
Resources on Web-Centric Computing
styling. This also works on mobile devices. forms, post and Getsee also
The starting point of the numbering/lettering section on cGI
may also be specified (URL='http://www.
w3schools.com/tags/tag_ol.asp') A usability checklist for forms (URL='http://
Guidelines for formatting lists (URL='http:// www.alistapart.com/articles/sensible-
webdesig n.about.com /od /w r iting /ss/ forms'), eExcellent article
aa110705.htm') (URL="http://www.wdvl.com/Authoring/
(URL="http://webdesign.about.com/li- Scripting/WebWare/Server/") Server-side
brary/weekly/aa061801a.htm") Attributes Scripting, an excellent introduction to what
and XML Introduction. CGI is and why it's needed.WDVL: Web
The span and div Tags (URL='http://web- Programming: GET, POST, etc.
design.about.com/od/htmltags/a/aa011000a. (URL='http://www.wdvl.com/Author-
htm'), Clear summary of the similarities ing/Scripting/Tutorial/toc.html'), The 'Day
and differences and how to use div appro- One'pages provide a particularly clear
priately. description of GET, POST, (when to use
What's in a Title (URL="http://webdesign. which), HTTP headers and forms.
about.com/library/weekly/aa060801a.htm"), (URL="http://www.wdvl.com/Authoring/
what the title tag does for you and how to JavaScript/Begin/begin1-4.html") on forms.
find it. The focus() and blur() methods
(URL="http://developer.mozilla.org/en/ Checkboxes vs. Radio Buttons (URL='http://
docs/Properly_Using_CSS_and_JavaS- www.useit.com/alertbox/20040927.html')
cript_in_XHTML_Documents#Using_ From Jakob Nielsen, the great guru on
CSS_rules_in_external_file") using CSS usability, the Disabled attribute in forms
and Scripts with XHTML - please also see (URL='http://webdesign.about.com/od/
section below on CSS. forms/a/aa071805.htm?nl=1'). This allows
From Mozilla; with examples (URL="http:// you to fill in a field and prevent the user
developer.mozilla.org/en/docs/Properly_ from changing it
Using_CSS_and_JavaScript_in_XHTML_ HTML Forms from w3c.org (URL='http://
Documents:Examples") www.w3.org/TR/html4/interact/forms.
(URL="http://webdesign.about.com/li- html'). Includes some advanced methods -
brary/weekly/aa041000a.htm") For valuator, e.g. fieldset for grouping related elements and
please also see section below on HTMLTi- control elements; additions to (URL='http://
dy www.w3.org/TR/xhtml-modularization/
(URL="http://webdesign.about.com/cs/ abstract_modules.html#s_forms') forms
doctype/a/aaquirksmode.htm?nl=1"), Us- in XHTML are also available in the forms
ing the DOCTYPE Tag and why you need module.
the DOCTYPE. Information on DOM and ( U R L='ht t p://w w w.w3.org / Ma rkUp/
DHTML is at DOM - advanced articles on Forms/2003/xforms-for-html-authors.
JavaScript. Attributes for the Image tag and html'), the w3c.org explains how to convert
checklist for your web page Forms to Xforms
(URL='http://webdesign.about.com/od/au- (URL='http://www.htmlgoodies.com/in-
thoring/a/aa111698.htm') Good checklist on troduction/newsletter_archive/goodiestogo/
everything from correct spelling to making article.php/3573771'). Scripts to send form
sure your image files are small enough to data by email, if you don't want to use the
download rapidly (12Kb) preferred CGI script.
Resources on Web-Centric Computing
more advanced articles under the aegis of Source Forge, the huge open
source organization. It will also turn HTML into
(URL="http://webdesign.about.com/li- XHTML, but it is obviously better to start with
brary/weekly/aa071502a.htm") with Excel XHTML.
How to set up your web page so that it
may be downloaded into Excel HTML tidy service (URL="http://cgi.
(UR L="http://www-128.ibm.com /de- w3.org/cgi-bin/tidy"). HTML Tidy on-line
veloperworks/xml/library/x-futhtml2. (interactive). Fast and easy to use. You don't
html?ca=dgr-lnxw03XHTML2") eventu- need to learn all the details of HTML Tidy to
ally: XHTML2.0, what to expect use this page. Also both file upload or URL
(URL="http://webdesign.about.com/li- versions (URL='http://validator.w3.org/').
brary/weekly/aa041601a.htm") of XHTML. General information about HTMLTidy and
Good introduction to modularization of its capabilities (URL='http://www.w3.org/
XHTML for XHTML, Also discusses the People/Raggett/tidy/'). Although this page
Transitional, Strict, and Frameset subsets describes itself as 'somewhat dated', it has
of XHTML a lot of excellent information as well as a
(URL='http://www.w3.org/TR/xhtml- Link to Source Forge and current versions
modularization/Overview.html#toc') of all of HTML Tidy.
the modules in XHTML 1.1. HTML Tidy Project Page (URL="http://tidy.
Should you abandon table-based layouts sourceforge.net/"). The actual HTML Tidy
in favor of CSS? (URL='http://www. programs, which you may download if you
elijournals.com/premier/showArticle. wish to 'Tidy' your pages off-line. Also
asp?aid=21661&utm_source=etip&utm_ (URL="http://tidy.sourceforge.net/docs/faq.
medium=email&utm_content=Should'). html"), questions and answers
Yes- almost always! And this articles ex- (URL="http://tidy.sourceforge.net/docs/
plains why. quickref.html") Options Quick Reference.
The document character set (Unicode) Options you may set for HTML Tidy at
(URL='http://www.w3.org/International/O- SourceForge. This is a huge site, with a
charset.en.php'). library of Tidy that you can call in various
What are charsets all about? (URL='http:// languages, and tools for version manage-
www.w3.org/International/questions/qa- ment. Explains how to download your own
doc-charset') copy of HTML Tidy and set the options
(URL='http://www.w3.org/International/ (URL="http://www.w3.org/TR/xhtml1/
tutorials/tutorial-char-enc/') How do I use #guidelines") HyperText Markup Language
them - a tutorial. (Second Edition) How to write HTML
which is XHTML compatible so there is
links and resources for HTml and less to 'Tidy' up. There are other valuators
xHTml(validators, HTml Tidy, and (URL="http://www.htmlvalidator.com/php/
the connections between HTml and onlinecheck.php?google=online+html+che
xHTml) cker") HTML Validator Online Check
On-line HTML Validator, here is a free
HTML Tidy is the standard for XHTML valida- simple validator (URL='http://www.html-
tion. Originally developed at the w3c, it is now validator.com/lite/')
00
Resources on Web-Centric Computing
0
Resources on Web-Centric Computing
0
Resources on Web-Centric Computing
experts/") links, including Dmitry's labs are browser safe, or non-dithering, colors
(URL="http://www.webreference.com/ (URL='http://www.lynda.com/hex! .asp').
dlab/") with great design advice. This is the most famous site for browser
The Mozilla Development Center has a safe colors, which you should always use
variety of HTML tools at http://developer. browser safe colors to avoid dithering. You
mozilla.org/en/docs/Category:HTML:Tools may view the colors arranged by hue or by
(URL="http://developer.mozilla.org/en/ value (similar intensity/impact.)
docs/Category:HTML:Tools") Other pages with browser-safe colors may
Sidebars for developing in Firefox. Web be found at Primeline (URL='http://www.
Developer Extension (URL=http://chris- primeshop.com/html/216colrs.htm') and
pederick.com/work/webdeveloper/) has (URL='http://www.cookwood.com/html4_
a toolbar for Firefox, Flock, etc. Zvon 4e/examples/appendices/colorcharthex.
(URL=http://zvon.org/Output/bar_list. html')
html) Guide on XHTML and CSS. WDVL has a
Also tutorials, including on XML and CSS site on graphics (URL='http://www.wdvl.
(URL="http://www.w3.org/MarkUp/2004/ com/Authoring/Graphics/').Links to free
xhtml-faq") Questions graphics, tools, resources etc. near the bot-
Open Source Web Development - DevShed tom of the page. Also some more advanced
(URL="http://www.devshed.com/"), ar- (URL='http://www.wdvl.com/Graphics/')
ticles on XHTML,CSS, XML, Perl, etc. Tend graphics
to be more advanced and often looking for About.com (URL='http://webdesign.about.
less main-stream effects. com/od/colorcharts/l/bl_colors.htm')
DHTML Scripts and DHTML Tutori Cloford.com (URL='http://cloford.com/re-
als (URL="http://devedge-temp.mozilla. sources/index.htm') country codes.
org/toolbox/tools/2001/tune-up/") Tune- Dmitry's Color Lab (URL='http://www.
Up Wizard, tests pages in Netscape and webreference.com/dlab/9704/index.html'),
Firefox. excellent advice and information about color
and design; several pages
Issues in site and page design Optimizing Web Graphics (URL='http://
color and Graphics www.webreference.com/dev/graphics/in-
dex.html'). A bit dated, but many wonderful
Information on Color and Graphics tools and links, and no one minds a fast
(URL='http://www.bergen.org/AAST/Com- download.
puterAnimation/CompAn_Graphix.html'). Understanding Color and Accessibility
Good explanation of everything you might (URL='http://evolt.org/node/60472') from
want to know about graphics - including bit evolt.org .
depth, dithering, anti-aliasing etc. Color Wheel and color theory (URL='http://
The RGB Monitors (URL='http://www.wdvl. webdesign.about.com/cs/color/a/aacolorthe-
com/Authoring/Graphics/Colour/'), WDVL ory.htm'). Many useful links to tools and
explains how colors are specified in XHTML other resources.
and why. Tools for re-sizing images (URL='http://
The 6x6x6 Color Cube (URL='http://www. dow n loa d s.zd net.com /sea rch.
wdvl.com/Graphics/Colour/666.html'). aspx?kw=image+resizer')
What colors you can specify using that cube Sources of free images and icons
0
Resources on Web-Centric Computing
0
Resources on Web-Centric Computing
0
Resources on Web-Centric Computing
0
Resources on Web-Centric Computing
0
Resources on Web-Centric Computing
0
Resources on Web-Centric Computing
0
Resources on Web-Centric Computing
0
Resources on Web-Centric Computing
Resources on Web-Centric Computing
Resources on Web-Centric Computing
(URL="http://devedge-temp.mozilla.org/ (URL="http://www.webdevelopersjournal.
central/javascript/index_en.html") (Guides com/JavaScriptWeenie.html") scripts from
and References for 1.3, 1.4 and 1.5). Docu- JavaScript Weenie; Intermediate level and
mentation for JavaScript 1.3 - 1.5 with in- useful.
formation on changes from earlier versions, Tutorials and references from U. Minn- Du-
links to both the Guide and the Reference luth (URL='http://www.d.umn.edu/itss/sup-
Manual, dDate object, documentation on port/Training/Online/webdesign/javascript.
the date object, including constructors and html'). Enormous list of tutorials and articles
methods. from the general to the specific; includes
some links to book excerpts; regrettably,
Tutorials and articles for Javascript no description of the links.
Tutorials from WebMonkey (URL='http://
(URL="http://www.htmlgoodies.com/prim- www.webmonkey.com/webmonkey/pro-
ers/jsp/") tutorials on JavaScript. First the gramming/javascript/tutorials/tutorial2.
'Primers' and then the 'Basics' (which go html'). Clear but somewhat dated (Browser
thru AJAX) detection is now usually not needed.).
(URL="http://developer.mozilla.org/en/ JavaScript Primers (URL='http://www.
docs/A_re-introduction_to_JavaScript") htmlgoodies.com/primers/jsp/') 30 steps
"Reintroduction to JavaScript", friendlier to go from complete tyro to intermediate
than Mozilla's documentation level.
(URL="http://developer.mozilla.org/en/ Tutorials from WebKnowHow (URL='http://
docs/Category:JavaScript") JavaScript, from www.webknowhow.net/dir/JavaScript/Tuto-
Mozilla's forums. rials/index.html'). About 20 tutorials, mostly
Javascript tutorial from w3schools.com for the beginner.
(URL='http://www.w3schools.com/js/de- Programmer How-To's (URL="http://html.
fault.asp'), always a good place to start tucows.com/programmer/programmertu-
(URL="http://www.webreference.com/pro- tmain.html"). Short introductory tutorials
gramming/javascript/index.html") Articles from TUCOWs. Good for those who can
from WebReference. Many tutorials from 'Ja- program in another language and need to
vaScript for non-programmers' to AJAX. switch to JavaScript.
(URL="http://www.webreference.com/pro-
gramming/javascript/jf/column12/") 12-15 Articles on Specific Topics
inclusive). Excellent resource; includes links (Not advanced)
to Mozilla pages just above and other col-
lections. Be sure to check out the collections Focus on forms (URL="http://www.html-
and the archives. Some tutorials are older. goodies.com/letters/287.html"), the focus()
(URL="http://www.wdvl.com/Author- and blur() methods.
ing/JavaScript/Tutorial/") JavaScript for (URL="http://www.mredkj.com/tutori-
Programmers from WDVL als/reference_ js_intro.html") Variables,
(URL="http://www.ems.psu.edu/~young/ clearly described from mredkj.com, other
meteo473/lecture_javascript.htm") Descrip- interesting examples (URL="http://www.
tion of JavaScript for students who have mredkj.com/tutorials/htmljs.html") - e.g.
programmed in C++ or Java. Older, but very to change tables, validate forms, etc.
useful and to the point. (URL="http://devedge-temp.mozilla.org/
Resources on Web-Centric Computing
Resources on Web-Centric Computing
The easiest debugger to use is the JavaScript Frameworks are in the Ajax section of the Web
Console (available in Firefox, Netscape Naviga- 2.0 resources
tor and Opera). Most of these references concern
more advanced tools. (URL="http://www.siteexperts.com/") Site
Experts. Another community of web devel-
(URL="http://dojo.jot.com/DebuggingJa- opers
vascript") debugging tools for all browsers, (URL="http://www.experts-exchange.
using the JavaScript Console. com/Web/Web_Languages/JavaScript/")
Exchange - another community
Resources on Web-Centric Computing
Resources on Web-Centric Computing
Resources on Web-Centric Computing
intermediate level articles, but you need davaram 2nd edition publishd by O'Reilly
to search. Better yet, subscribe to some of 2000. Very useful book.
their free newsletters and be notified of new Learning Perl 3rd edition by Randal L.
articles. Schwartz and Tom Phoenix, published by
ASPN (URL="http://aspn.activestate.com/ O'Reilly 2007. Excellent way to learn enough
ASPN/"). Resource for programmers in Perl, Perl to write CGI scripts easily.
PHP, Python, etc. Major site. The Web Wizard's Guide to Perl and CGI,
HotScripts (URL="http://www.hotscripts. The Web Wizard's Guide to PHP, both by
com/"). Articles and scripts for many lan- David A. Lash, 2002. These books won't
guages - Perl, PHP, Python, JavaScript, make you a great guru, but they will get
XML you going very quickly; well-written.
OnLamp.com (URL='http://www.onlamp. Client and server (URL="http://www.html-
com/'). O'Reilly maintained site with articles goodies.com/letters/288.html"). Introduc-
and book excerpts on all the open source tion to terms.
technologies - Linux Apache, Perl/PHP/Py- (URL="http://www.wdvl.com/Authoring/
thon, MySQL. Links to Safari books (also Scripting/Tutorial/toc.html") Contents on
available free through the ACM is you are Web Programming. Tutorial on server-side
a member). programming and sending info from HTML
CGI Resources (URL="http://www.cgi- forms. Excellent introduction . Definitely
resources.com"). Links to very many CGI the place to start if you don't know the dif-
scripts, mostly in Perl, and tutorials (rated ference between GET and POST or need a
by users). short introduction to Perl.
DevShed Perl Tutorials, Scripts, etc. These tutorials, from Selena Sol, are also
(UR L='http://www.devshed.com /c/ b/ available at Extropia (URL='http://www.
Perl/'). Links to user submitted and rated extropia.com/tutorials/perl_cgi/pre_requi-
scripts and articles in many languages; most site_intro.html') which also has links to Perl
free. tutorials for web developers.
WebReference (URL='http://www.webref- (URL="http://www.wdvl.com/Author-
erence.com/programming/php/'). Inter- ing/Scripting/Tutorial/request_headers.
mediate to advanced articles. Includes the html") Request Headers. What's in an http
Mother of Perl site. Also PHP (with links header.
at the bottom) and now starting on python What is CGI? (URL="http://www.devpa-
(URL='http://www.webreference.com/pro- pers.com/article/137"). Very elementary
gramming/python/') introduction.
Matt's HTTP Cookie Library (URL='http:// CGI Scripts - Writing and Using CGI
www.scriptarchive.com/cookielib.html') (URL="http://webdesign.about.com/od/
and his CGI resource (URL='http://cgi. cgi/"). Another very elementary introduction
resourceindex.com/') to CGI; several short articles to read.
Web Development Primer (URL="http://
cGI (Including regular Expressions www.devpapers.com/article/47/"). Elemen-
- see also perl section) tary introduction to the technologies you
find server-side (ASP, Perl, PHP etc.).
CGI Programming with Perl by Gunther Gentle Introduction to CGI (URL='http://
Birznieks, Scott Guelich, and Shishir Gun- infomotions.com/musings/waves/gentlein-
Resources on Web-Centric Computing
troductiontocgi.html'). Also has many links There are many articles in the Perl and Web
to books and on-line resources. Updated in Design section, but you need to know what
2004 you want - e.g. guestbook - so you can search
The Web Development Environment for it here.
(URL='http://www.extropia.com/tutorials/ CGI Tutorials (URL="http://www.html-
devenv/toc.html'). An excellent introduc- goodies.com/beyond/cgi.html"). Very well
tion; less cursory than the earlier ones; written tutorials, but maybe dated (1/2005).
you will enjoy it more if you have already For example, you are more likely to FTP
heard of some of the technologies men- your server scripts to the server than to use
tioned (Java, HTTP, etc.) A shorter version telnet.
(URL='http://www.extropia.com/develop- (URL="http://www.acmqueue.com/mod-
ment/web_ware_white_ paper.html') is ules.php?name=News&file=print&sid=36
available for newbies. w3c.org 1") Problem of Statelessness.
Introduction to CGI (URL='http://www. Validating user sessions in PHP (URL='http://
w3.org/CGI/Overview.html') www.phpbuilder.com/columns/validating_
Other information from w3c about standards php_user_sessions.php3?page=1'). Good
(URL='http://www.w3.org/CGI/') introduction to the problem of statelessness;
Why learn CGI? (URL="http://web.oreilly. php implementation of solutions.
com/news/cgi_0700.html"). From the people Form validation (URL="http://www.html-
(O'Reilly) who publish a book on the sub- goodies.com/letters/290.html"). Validating
ject - includes kind words about their own a form before sending it to a CGI script
(excellent) book; this article is mainly mo- - mainly to be sure all fields are filled in.
tivational.
The following links are to collections of
The next few articles will actually show you some- articles
thing you can modify and use; for more detailed
information you need to go to the section on your WebKnowHow's Tutorials, articles, scripts
language of choice (Perl, PHP or Python) and books on CGI (URL='http://www.
webknowhow.net/dir/Other_Topics/HTTP/
CGI Developer's Guide (URL='http://www. index.html'). Many (unsorted) links, many
webbasedprogramming.com/CGI-Develop- to old sites.
ers-Guide/'). Older, but will get you going. Webliography on CGI, Perl, etc. (URL='http://
CGI Tutorial (URL='http://www.comp. infomotions.com/musings/waves/webliog-
leeds.ac.uk/Perl/Cgi/start.html'). Good in- raphy.html'). Great list of links, even though
troduction to CGI, environment variables, many are to older articles. CGI articles from
etc. HTML Goodies. Includes codes for a guest
Easy introduction to CGI (URL='http://perl. book and for counters. Tutorials on regular
about.com/gi/dynamic/offsite.htm?zi=1/ expressions. Although some lean towards
XJ&sdn=perl&zu=http://www.jmarshall. one language or another, regular expression
com/easy/cgi/'). Another good short intro- syntax is pretty much the same in all the
duction scripting languages.
CGI articles (URL='http://perl.about.com/ (URL="http://www.capescience.com/edu-
od/cgiweb/') and more general CGI articles cation/tutorials/cc5/cc5_regex_intro.pdf")
(URL='http://perl.about.com/od/cgiweb/'). on regular expressions
Resources on Web-Centric Computing
0
Resources on Web-Centric Computing
Resources on Web-Centric Computing
Resources on Web-Centric Computing
Resources on Web-Centric Computing
Resources on Web-Centric Computing
Resources on Web-Centric Computing
Resources on Web-Centric Computing
Resources on Web-Centric Computing
Resources on Web-Centric Computing
Resources on Web-Centric Computing
0
Resources on Web-Centric Computing
Resources on Web-Centric Computing
+Windows/XML+-+Tools+-+Windows/') (URL='http://buyersguide.eweek.com/
ZDNet has a listing of many XML tools for bguide/whitepaper/WpDetails.asp?wpId=M
Windows, often with free trials. XMLSpy Tk0NQ&category=&fromlogin=yes&EWS
includes an XSLT engine. =NO') Security issues and XML. Requires
Microsoft tool to create XSLTs (URL='http:// free login at ZDNet
doc.advisor.com/Articles.nsf/nl/15021')
rdf (resource description
Specific extended MLsMathML etc. frameworkis a resource for
and also rdf and rss describing catalogs)
Note: This section contains XML and security RDF Primer (URL="http://www.w3.org/
first, then RDF and RSS, XML and Databases, TR/rdf-primer/")
then MathML and Amaya, XML in the financial RDF Spec (URL="http://www.w3.org/
services industry and then miscellaneous. The RDF/")
Semantic Web, Web 2.0, AJAX, mashups etc. RDF is of interest (URL="http://search.
are in their own section. dmoz.org/cgi-bin/search?search=RDF") to
librarians, etc.
(URL="http://www.looselycoupled.com/ RDF Validator (URL='http://www.w3.org/
opinion/2004/oneill-trust-infr1213.html") RDF/Validator/')
XML and security, which comes first. Mozilla site on RDF (URL='http://developer.
(URL="http://fonpc18.hum.uva.nl/Taal- mozilla.org/en/docs/RDF')
Generatie/WWW/xml.coverpages.org/ws- And some examples (URL='http://www.
security.html") is the specification for web mozilla.org/rdf/doc/examples.html')
services security. This is from OASIS. What is RDF? (URL='http://www.xml.
(URL="http://sunxacml.sourceforge.net/ com/pub/a/2001/01/24/rdf.html/')
guide.html") eXtensible Access Mark-up From O'Reilly site XML.com. Zvon tutorials
Control Language. This is Sun's implemen- (URL='http://nwalsh.com/docs/tutorials/')
tation and programmer's guide. Tutorials on XML, Schemas, Namespaces,
On-going news (URL='http://sunxacml. XPath and XSLT, RDF, XInclude, XUL
sourceforge.net/') etc. Relational databases on the semantic
( U R L="ht t p://w w w.w3.org /2001/03/ web and RDF (URL='http://dig.csail.mit.
WSWS-popa/paper23/") secure web ser- edu/2006/dbview/dbview.py')
vices. From w3.org, of course. SAML stands See also Tim Berners-Lee paper which
for Security Assertion Mark-up Language. started this subject (URL='http://www.
(URL="http://www.w3.org/2004/08/ws-cc/ w3.org/DesignIssues/RDB-RDF.html')
aaccws-20040827") XACML . This area is
still changing ? Suggest you search the w3.org rss ( really simple syndicationis
site for these two extensions: URL="http:// how an xml feed is used to update
www.w3.org/Encryption/2001/") and work- News and Blogs continuously)
ing group at w3.org
(URL="http://www.internetnews.com/ What is RSS? (URL="http://www.xml.com/
dev-news/article.php/3344041"), added to pub/a/2002/12/18/dive-into-xml.html").
Apache Project From O'Reilly - good casual introduction;
includes a sample to get you started.
Resources on Web-Centric Computing
Resources on Web-Centric Computing
Resources on Web-Centric Computing
Resources on Web-Centric Computing
Resources on Web-Centric Computing
WEB sErvIcEs (plEasE NoTE ented Architecture (SOA)? What are Web
THaT maNy lINKs rElaTEd To Services? Very good introduction to SOA,
WEB sErvIcEs - E.G. sEcurITy, for those who already know the lingo. 8
moBIlE WEB, ETc. arE IN pages!
sEcTIoN dIrEcTly aBovE, SOA (without web services) in plain lan-
cHorEoGrapHy aNd BpEl arE guage (URL='http://itmanagement.earth-
IN THIs sEcTIoN) web.com/article.php/3629561')
The difference between SOA and Web Ser-
vices' (URL='http://ct.enews.baselinemag.
Web services - General information com/rd/cts?d=189-336-2-16-170148-36925-
0-0-0-1')
Overview of Web Services (URL='http:// (URL="http://www.infoworld.com/article/
www.webservicescenter.com/frame_Over- 04/02/20/08OPstrategic_1.html") Web
view_WS.htm'). A brief overview; not much services alphabet soup: Application Devel-
detail; links to implementing web services opment. Web services alphabet soup - and
with Java on Linux. modularity.
What are web services? (URL="http://loose- The Web Services Family Tree (URL='http://
lycoupled.com/glossary/web%20services"). www.modernlifeisrubbish.co.uk/article/
The 'home' links to many articles about web web-tech-family-tree').
services. From XHTML to AJAX, Understanding Ser-
Client and server (URL="http://www.html- vice-Oriented Architecture (URL='http://
goodies.com/letters/288.html") www.developer.com/java/web/article.
Web Service Demos (URL='http://www. php/2207371'). Great introduction (actually
mindreef.net/tide/scopeit/start.do') a book chapter). 'Composition' has the same
Fun to try. w3c.org definition of a web meaning as composition of functions in math
service (URL='http://www.w3.org/TR/ws- - i.e. one followed by another
arch/#whatis'). This is in their document on ( U R L=' ht t p://w w w.comput e r world .
web service architecture. c o m / n e w s l e t t e r / 0 , 4 9 0 2 , 9 47 2 0 , 0 0 .
(URL="http://mapageweb.umontreal.ca/ html?nlid=AM'). Another book excerpt,
turner/meta/english/index.html") How the slightly less detailed than the previous
different technologies are related. May be one.
more useful after you know a little about the Web Services Architecture (URL='http://
area, and then invaluable. There is also an w w w-128.i b m .c o m /d e velo p e r-
information link (URL='http://mapageweb. wo r k s / we b s e r v i c e s / l i b r a r y/ w- ov r /
umontreal.ca/turner/meta/english/index. ?dwzone=webservices'). Although this
html') claims to describe only IBM's architecture,
Relationship of Web Service's Major Com- it is a good description of all the web service
ponents (URL='http://www.ws-standards. architectures.
com/'). Simpler than the MetaMap; good Web Services Architecture (URL='http://
place to start, then go to MetaMap. This site www.webservicesarchitect.com/content/
also has an excellent glossary (URL='http:// articles/webservicesarchitectures.pdf ').
www.ws-standards.com/glossary.asp') Description of basic and more complex
(URL="http://www.developer.com/java/ web services stacks; covers major vendors:
web/article.php/2207371") Service Ori- Sun, IBM, Microsoft, Oracle, HP, BEA and
Borland.
Resources on Web-Centric Computing
Resources on Web-Centric Computing
Resources on Web-Centric Computing
0
Resources on Web-Centric Computing
Resources on Web-Centric Computing
Resources on Web-Centric Computing
Resources on Web-Centric Computing
the most detailed of the 3 basic introductions default.aspx'). Article is from 12/02, but
listed here. many of these (e.g. XMLSpy from Altova
Writing WSDL (URL='http://www.webref- and the one from Cape Clear (URL=http://
erence.com/js/column96/10.html') www.capescience.com/soa/)
Understanding WSDL (URL='http://msdn.
microsoft.com/webservices/webservices/ uddI
understanding/webservicebasics/default.
aspx?pull=/library/en-us/dnwebsrv/html/ UDDI4J (URL='http://www-128.ibm.
understandwsdl.asp'). Excellent detailed com/developerworks/library/ws-uddi4j.
explanation from MSDN. Easier if you read html?dwzone=xml').
one of the previous entries first. From Aaron IBM, Microfot SAP had problems imple-
Skonnard, one of the authors of the book menting UDDI (URL='http://weblog.
Essential XML. (URL='http://www. infoworld.com/article/05/12/16/HNuddi-
x met hod s.com /ve2/ ViewList i ng. shut_1.html')
po;jsessionid=S2WT_OQ7zQgg3lZrKES UDDI-based models of eCommerce
AR15w(QHyMHiRM)?key=uuid:7EAC2 (URL='http://www.webservicesarchitect.
99F-4D1C-D852-9A9B-B98F25F26092') com/content/articles/siddiqui02.asp')
XMethods lists many web services available (URL='http://www.webservicesarchitect.
publicly for demos and examination. It is com/content/articles/irani02.asp') An In-
helpful to work through several. Highlighted troduction to eBusiness
links allow you to examine the WSDL entry (URL='http://www.webservicesarchitect.
and try it.(See also the full list (URL='http:// com/content/articles/irani03.asp') eBXML
www.xmethods.net/ve2/Directory.po') and web services
(URL='http://www.xmethods.net/ve2/in- eBXML:the vision (URL='http://www.devel-
dex.po;jsessionid=XgTwyl97YJjmSCRuG oper.com/java/other/article.php/2204681')
hxH0rSW(QHyMHiRM)') Weather - Tem-
perature is an easy place to start. .(Cape choreography, BpEl and rEsT
Clear offers a more complex global version
of this.) w3c Group on Choreography (URL='http://
(URL='http://www.xmethods.com/ve2/ www.w3.org/2002/ws/chor/'). Choreogra-
ViewListing.po;jsessionid=S2WT_OQ7 phy refers to sequences of web services
zQgg3lZrKESAR15w(QHyMHiRM)?k interactions.
ey=uuid:7EAC299F-4D1C-D852-9A9B- There is a Overview of the Choreography
B98F25F26092') US Yellow Pages, with its Model (URL='http://www.w3.org/TR/ws-
WSDL entry, (URL='http://ws.strikeiron. chor-model/')
com/ypcom/yp1?WSDL') is more compli- Requirements (URL='http://www.w3.org/
cated as it provides several web services in TR/ws-chor-reqs/')
one WSDL. Choreography Description Language
Web Service Demos (URL='http://www. (URL='http://www.w3.org/TR/2005/CR-
mindreef.net/tide/scopeit/start.do'). You can ws-cdl-10-20051109/')
see the WSDL by clicking on the Analyze Primer (URL='http://www.w3.org/TR/2006/
tab. WD-ws-cdl-10-primer-20060619/')
WSDL Editors (URL='http://msdn.micro- Understanding ebXML, UDDI, XML/
soft.com/msdnmag/issues/02/12/xmlfiles/ EDI (URL='http://www.xml.org/xml/fea-
Resources on Web-Centric Computing
Resources on Web-Centric Computing
Resources on Web-Centric Computing
Resources on Web-Centric Computing
Resources on Web-Centric Computing
Resources on Web-Centric Computing
Symfony is a PHP toolkit (URL='http:// Mastering Ajax - 8 part series. This excel-
www.symfony-project.com/') lent series starts at (URL = http://www-128.
AHAH is a subset of Ajax (URL='http://mi- ibm.com/developerworks/web/library/wa-
croformats.org/wiki/rest/ahah') ajaxintro1.html). Part 2 is at (URL=http://
HowtoUseAjax(URL='http://www.informit. www-128.ibm.com/developerworks/web/li-
com/articles/article.asp?p=425820&rl=1'). It brary/wa-ajaxintro2/) and changing the 2
leads to Creating Smart Forms with Ajax at the end of the URL will get you to the
which includes form validation and down- other articles, except for Parts 7 and 8 start
loadable code. at (URL=http://www-128.ibm.com/devel-
Nitty Gritty Ajax (URL='http://www.web- operworks/web/library/wa-ajaxintro7.html).
monkey.com/06/15/index3a.html'). Shows (Parts 4-6 also explain how to manipulate
how one drop-down menu can control the the DOM).
choices in the next drop-down menu. Ajax Transport (URL='http://www-128.
U. Minnesota Duluth References on JavaS- ibm.com/developerworks/edu/x-dw-x-aja-
cript (URL='http://www.d.umn.edu/itss/ xtrans-i.html?S_TACT=105AGX59&S_
support/Training/Online/webdesign/javas- CMP=GR&ca=dgr-lnxw03AjaxTransport')
cript.html#top'). This site is a great reference. may be done by methods other than XML-
For example, there are links to a number of Http, as explained in this tutorial.
articles here about making Ajax accessible Mozilla's Ajax Center (URL='http://devel-
as well as to tutorials. oper.mozilla.org/en/docs/AJAX').
Tutorials from Ajax Matters (URL='http:// AjaxInfo.com (URL='http://www.ajaxinfo.
www.ajaxmatters.com/blog/ajax-tutori- com/'). Ajaxian is one of the oldest and larg-
als/').Many tutorials, with descriptions, from est Ajax resources. Forums on many topics,
the basic to advanced. Ajax Links found use- book lists and reviews, articles, reviews of
ful by developer/blogger John Wiseman frameworks for PHP, Perl, etc. Not to be
missed
more advanced articles and other Ajax Patterns (URL='http://ajaxpatterns.
resources, Including Examples and org/'). Wiki on all things related to Ajax -
frameworks patterns, frameworks, libraries, books etc.
Rich resource for programmers. Check out
IBM Resource Center on Ajax (URL='http:// the popular pages. (URL=http://ajaxpat-
www-128.ibm.com/developerworks/ajax'). terns.org/Special:Popularpages)
Many articles and more advanced tutorials. Open Ajax (UR L='http://www.info-
A very rich site, worth checking regularly. world.com/article/06/02/01/74989_HN-
For example, see Part 1 (URL='http://www- vendorspromoteajax_1.html?source=NLC-
128.ibm.com/developer works/web/li- AD2006-02-02').
brary/wa-ajaxarch/index.html') and Part Ajax Matters (URL='http://www.ajaxmat-
2 (URL='http://www-128.ibm.com/de- ters.com').
veloperworks/java/library/wa-ajaxarch2. AjaxDNA (URL='http://www.ajaxdna.
html'). See also (URL='http://www-128.ibm. com/').
com/developerworks/search/searchResults. Ajax World Magazine (URL='http://ajax.
jsp?searchType=1&searchSite=dW&searc sys-con.com/')
hScope=dW&query=Mastering+Ajax&S (URL='http://www.developerzone.biz/in-
earch.x=0&Search.y=0&Search=Search') dex.php?option=com_content&task=view
0
Resources on Web-Centric Computing
Resources on Web-Centric Computing
Resources on Web-Centric Computing
informationweek.com/news/showArticle. (URL="http://moofx.mad4milk.net/#intro")
jhtml?articleID=189400799'). Special effects in JavaScript, integrates with
JackBe (URL='http://www.jackbe.com/ prototype and mootools frameworks
Company/about.php') Tibco (URL='http://www.computerworld.
MochiKit (URL='http://mochikit.com/') com/action/article.do?command=viewArti
with the DOM and AJAX. There is a Google cleBasic&articleId=9003795')
Group on Mochikit (URL='http://groups.
google.com/groups/search?hl=en&q=Moc
hikit&qt_s=Search')
Compilation of References
Abiteboul, S., Buneman, P., & Suciu, D. (2000). Data American Electronics Association. (2004). Offshore
on the Web - From relations to semistructured data and outsourcing in an increasingly competitive and rapidly
XML. San Francisco: Morgan Kaufmann. changing world: A high-tech perspective. Retrieved on
January 1, 2007, from http://www.aeanet.org/publica-
Ahlgren, R., & Markkula, J. (2005, June 13-15). Design
tions/IDMK_AeA_Offshore_Outsourcing.asp
patterns and organisational memory in mobile applica-
tion development. Paper presented at the Sixth Interna- Anderson, D. (2004). Agile management for software en-
tional Conference on Product Focused Software Process gineering: Applying the theory of constraints for business
Improvement (PROFES 05), Oulu, Finland. results. Upper Saddle River, NJ: Prentice Hall PTR.
Ahluwalia, K. S., & Jain, A. (2006, October 21-23). High Andrews, T., F. Curbera, et al. (2003). Business process
availability design patterns. Paper presented at the 13th execution language for Web services Version 1.1.
Conference on Pattern Languages of Programs (PLoP
Aoyama, M. (1998).Web-based agile software develop-
06), Portland, USA.
ment, IEEE Software, 57-65.
Almeida, V.A.F., & Menasce, D.A. (2002). Capacity plan-
Apache Software Foundation. (2006). Apache XML-
ning for Web services: An essential tool for managing
Beans. Retrieved on July, 2007, from http://xmlbeans.
Web services. IT Professional, (July-August), 33-38.
apache.org/index.html
Alonso, G., Casati, F., Kuno, H. & Machiraju, V. (2004).
Apicello, Mario (2000). Multilizer for Java powers your
Web servicesConcepts, architectures and applications.
apps to travel the Globe. Infoworld, January.
Springer Verlag.
Arnowitz, J., Arent, M., & Berger, N. (2007). Effective
Alur, D. Crupi, J., & Malks, D. (2003). Core J2EE pat-
Prototyping for Software Makers. San Francisco: Morgan
terns: Best practices and design strategies, 2nd Edi-
Kaufmann Publishers.
tion. Upper Saddle River, NJ: Sun Microsystems Press
/ Prentice Hall. Aspray, W., Mayadas, F., & Vardi, M. Y. (Eds.) (2006).
Globalization and offshoring of software: A report of the
Ambler, S. W. (2003). Agile database techniques. Indi-
ACM Job Migration Task Force. New York: Association
anopolis, IN: Wiley.
for Computing Machinery. Retrieved on January 1, 2007,
Ambler, S. W. (2004) The Object primer: Agile model- from http://www.acm.org/globalizationreport
driven development with UML 2.0. Cambridge Uni-
Axelrod, R. (1984). The Evolution of cooperation. New
versity Press.
York: Basic Books.
Ambler, S.W. (2007). Test-driven development of rela-
Axtell, Rodger (1993). Dos and Taboos Around the
tional database. IEEE Software, 24(3), 37-43.
World, John Wiley & Sons.
Copyright 2008, IGI Global, distributing in print or electronic forms without written permission of IGI Global is prohibited.
Compilation of References
Bailey, B. P., & Konstan, J. A. (2003). Are informal tools Beck, K., Beedle, M, van Bennekum, A, Cockburn,
better? Comparing DEMAIS, pencil and paper, and Au- A. et al. (2001). Manifesto for agile software develop-
thorware for early multimedia design. In Proceedings of ment. Retrieved on January 1, 2007, from http://www.
the SIGCHI Conference on Human Factors in Computing agilemanifesto.org
Systems (pp 313-320). New York: ACM Press.
Beck, K., Crocker, R., Meszaros, G., Vlissides, J., Coplien,
Ballard, B. (2007). Designing the mobile user experience. J. O., Dominick, L., & Paulisch, F. (1996, March 25-29)).
John Wiley and Sons. Industrial experience with design patterns. Paper pre-
sented at the 18th International Conference on Software
Barry, D., & Stanienda, T. (1998). Solving the Java object
Engineering (ICSE 1996), Berlin, Germany.
storage problem. IEEE Computer, 31(11), 22-40.
Becker S., & Berkemeyer, A. (2002). Rapid application
Battin, R. D., Crocker, R., Kreidler, J., & Subramanian,
design and testing for usability. IEEE Multimedia, (Oct-
K. (2001). Leveraging resources in global software de-
Dec), 38-46.
velopment. IEEE Computer, 18(2), 70-77.
Becker, S. A., & Bostelman, M. L. (1999). Aligning
Bauer, F. (1972). Software Engineering. Information
strategic and project measurement systems. IEEE Soft-
Processing , 71.
ware, 16(3), 46-51.
Baumer, D., Bischofberger, W., Lichter, H., & Zulligho-
Becker, S., & Mottay, F. (2001). A global perspective
ven, H. (1996). User interface prototyping-concepts, tools,
of Web usability for online business applications. IEEE
and experience. In Proceedings of the 18th International
Software, 18(1), 54-61.
Conference on Software Engineering (ICSE96) (pp
532-541). IEEE Computer Society. Behravesh, N. & Klein, L. (2004). The comprehensive
impact of offshore IT software and services outsourcing
Baure, C., and King, G. (2004). Hibernate in Action.
on the US economy and the IT industry. Report prepared
Greenwich, CT: Manning Publications.
by Global Insight for the Information Technology As-
Beaulieu, M. (2002). Wireless Internet applications and sociation of America, Arlington, VA.
architecture. Boston: Addison-Wesley.
Berners Lee, T. (2004). New top level domains .mobi and
Beck, K. (1999). Extreme programming explained: .xxx considered harmful. Retrieved on January, 2007,
Embrace change. Harlow: Addison-Wesley. from http://www.w3.org/DesignIssues/TLD
Beck, K. (2001). Aim, fire. IEEE Software, 18(5), 87- Bhat, J., Gupta, M., & Murthy, S. (2006). Overcoming
89. requirements engineering challenges: Lessons from
offshore outsourcing. IEEE Software, 23(5), 38-44.
Beck, K. (2003). Test-driven development: By example.
The Addison-Wesley signature series. Boston: Addison- Boehm, A., & Lowe, D. (2006). Murachs ASP.NET 2.0
Wesley. Web programming with VB 2005. Fresno, CA: Mike
Murach & Associates.
Beck, K. (2005). Extreme programming explained. Upper
Saddle River, NJ: Pearson Education. Boehm, B. (1976). Software engineering. IEEE Transac-
tions on Computers, 25, 1226-1241.
Beck, K., & Andres, C. (2004). Extreme programming
explained: Embrace change. Boston: Addison-Wesley. Boehm, B. (1981). Software engineering economics.
Upper Saddle River, NJ: Prentice Hall PTR.
Beck, K., & Fowler, M. (2001). Planning Extreme Pro-
gramming, Addison-Wesley..
Compilation of References
Boehm, B. W., & Turner, R. (2003). Balancing agility and Architectural issues of Web-enabled electronic business.
discipline: A guide for the perplexed. Addison-Wesley Hershey, PA: Idea Group Publishing.
Professional.
Brandon, Daniel (2006). Project management for
Boehm, B. W., Abts, C., Brown, A. W., Chulani, S., Clark, modern information systems. Hershey PA: Idea Group
B. K., Horowitz, E., Madachy, R., Reifer, D., & Steece, Publishing .
B. (2001). Software cost estimation with COCOMO II.
Brehm, N., & J. M. Gmez (2006). Distribution of ERP
Prentice Hall.
system components and security considerations. Paper
Boehm, B., & Hansen, W. J. (2001). The spiral model presented in the 17th IRMA International Conference
as a tool for evolutionary acquisition. Retrieved on - Managing Modern Organizations with Information
September 27, 2007, http://www.stsc.hill.af.mil/cross- Technology, Washington, USA.
talk/2001/05/boehm.html
Britton, C., & Bye, P. (2004).IT architecture and middle-
Boehm, B., & Turner, R. (2003). Balancing agility and ware. Addison-Wesley.
discipline: A guide for the perplexed. Boston: Addison
Brooks, F. P. (1995). The mythical man-month: Essays
Wesley Professional.
on software engineering. Boston: Addison Wesley
Boehm, B., & Turner, R. (2004). Balancing agility and Professional.
discipline. Boston: Pearson Education.
Brown, W. J., Malveau, R. C., McCormick, H. W., &
Booch, G., Rumbaugh, J., & Jacobsen, I. (2000). The Mowbray, T. J. (1998). AntiPatterns: Refactoring soft-
Unified Modeling Language user guide. Boston: Ad- ware, architectures, and projects in crisis. John Wiley
dison-Wesley. and Sons.
Bosak, J. (1997). XML, Java, and the future of the Web. Bry, F. & Schaffert, S. (2002). Towards a declarative
Retrieved on July, 2007, from http://www.ibiblio.org/ query and transformation language for XML and semi-
pub/sun-info/standards/xml/why/xmlapps.htm structured data: Simulation unification. In Proceedings
Intl. Conference on Logic Programming. LNCS 2401,
Bowen, B. (1997). Software Reuse with Java Technology:
Springer-Verlag.
Finding the Holy Grail. Retrieved on from
www.javasoft.com/features/1997/may/reuse.html Burkhardt, J, Henn, H., Hepper, S., Rintdorff, K., &
Schack, T. (2002). Pervasive computing technology and
Boyatzis, R. (1982). The competent manager: A model
architecture of mobile Internet applications. London:
for effective performance. Wiley.
Addison-Wesley.
BPEL Coalition (2006). Business process execution
Burton-Jones, A., Storey, V. C., Sugumaran, V., &
language for Web services version 1.1. Retrieved on
Ahluwalia, P. (2005). A semiotic metrics suite for as-
April 14, 2008 from http://www.ibm.com/developer-
sessing the quality of ontologies. Data and Knowledge
works/library/ws-bpel/
Engineering, 55(1), 84-102.
Brajnik, G. (2001, June 4-6). Towards valid quality
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P.,
models for Web sites. Paper presented at the Seventh
& Stal, M. (1996). Pattern-oriented software architec-
Conference on Human Factors and the Web (HFWeb
ture: A system of patterns. Chichester: Wiley.
01), Madison, USA.
Cagen, J. & Vogel, C. M. (2002). Creating breakthrough
Brandon, Daniel (2002). Issues in the globalization of
products: Innovation from product planning to program
electronic commerce. In V. K. Murthy and N. Shi (Eds.)
approval. Upper Saddle River, NJ: Prentice Hall.
Compilation of References
Carmel, E., & Agarwal, R. (2001). Tactical approaches Cockburn, A. (2003). Agile Software Development.
for alleviating distance in global software development. Boston, MA: Addison Wesley Professional.
IEEE Software, 18(2), 22-29.
Cockburn, A. (2005). Crystal clear, A human-powered
Carzaniga, A., Fuggetta, A., Hall, R., Heimbigner, D., methodology for small teams. Boston: Addison-Wes-
van der Hoek, A., & Wolf, A. (1998). A characteriza- ley.
tion framework for software deployment technologies
Coda, F., Ghezzi, C., Vigna, G., & Garzotto, F. (1998,
(Tech. Rep. CU-CS-857-98).Boulder, CO: University of
April 16-18). Towards a software engineering approach
Colorado, Department of Computer Science.
to Web site development. Paper presented at the Ninth
Cavangess, C. (2004). Programming Jakarta struts. International Workshop on Software Specification and
Sebastopol, CA: OReilly. Design (IWSSD-9), Ise-shima, Japan.
Cheesman, J. & Daniels, J. (2002). UML components: A Collins, R.W. (2002). Software localization for Internet
simple process for specifying component-based software. software: Issues and methods. IEEE Software, (March/
Reading, MA: Addison-Wesley. April), 74-80.
Chen, J. Q., & Heath, R. D. (2005). Web application Conallen, J. (2003). Building Web applications with
development methodologies. in W. Suh (Ed), Web engi- UML, 2/E. Addison-Wesley.
neering: Principles and techniques. Hershey, PA: Idea
Conway, M. E. (1968). How do committees invent?
Group Publishing.
Datamation, 14(4), 28-31.
Chen, J. Q., & Heath, R. D. (2005). Web application
Cooper, A. (1994). The perils of prototyping. Visual Basic
development methodologies. In W. Suh (Ed.), Web
Programmers Journal, August September 1994, 1.
engineering: Principles and techniques. Hershey, PA:
Idea Group Publishing. Crawford, L. (2004). Global body of project manage-
ment knowledge and standards. In Morris and Pinto
Chen, M. (2004). A methodology for building mobile
(Eds.) The Wiley guide to managing projects. John
computing applications. International Journal of Elec-
Wiley & Sons.
tronic Business, 2(3), 229-243.
Crnkovic, I. & Larsson, M. (2000). A case study: Demands
Christensen, C. M. (1997). The innovators dilemma:
on component-based development. In Proceedings of the
When new technologies cause great firms to fail. Boston:
2nd International Conference on Software Engineering,
Harvard Business School Press.
(pp. 23-31). ACM Press.
Chung, L., Nixon, B. A., Yu, E., & Mylopoulos, J. (2000)
Crnkovic, I. (2003). Component-based software engi-
Non-functional requirements in software engineering.
neering New challenges in software development.
Boston:.Kluwer Academic Publishers.
Paper presented at the 25th International Conference on
CIO Insight (2003). Outsourcing: How well are you Information Technology Interfaces. Cavtat, Croatia.
managing your partners?. CIO Insight, 1(33), 75-85.
Cusick, J., & Prasad, A. (2006). A practical management
Clark, B. (2004). Enterprise application integration and engineering approach to offshore collaboration. IEEE
using .NET. Addison-Wesley. Software, 23(5), 20-29.
Cleland, D. (1998). Stakeholder management. In J. Pinto. da Silva, P. P. (2001). User interface declarative models
(Ed.) Project management handbook. Wiley. and development environments: A survey. (LNCS 1946,
207-226).
Cloyd, M.H. (2001). Designing user-centered Web ap-
plications in Web time. IEEE Software, 18(1), 62-69.
Compilation of References
Dart, S. (2001). Configuration management: A miss- Duarte, D. L., & Snyder, N. T. (2006). Mastering virtual
ing link in Web engineering. Norwood, MA: Arttech teams. Hoboken, NJ: Jossey-Bass.
House.
Dustin, E., Rashka, J., & McDiarmid, D. (2001). Qual-
Davis, M. (2001, February) Struts, an open-source MVC ity Web systems: Performance, security, and usability.
implementation. Retrieved on January 3, 2007, from Addison-Wesley.
http://www-128.ibm.com/developerworks/java/library/j-
Eclipse (2007). Eclipse process framework. Retrieved
struts/
May 18, 2007, from http://www.eclipse.org/epf
Davis, M., & Smith , H., (1999). The Java International
Eisenberg, R. (2004). Service-oriented architecture: The
API: Beyond JDK 1.1. Java Report, February.
future is now. Intelligent Enterprise, April 17.
Davison, D. (2003). Top 10 Risks of offshore outsourcing.
Engardio, P., Bernstein, A., Kripalani, M., Balfour, F.,
META Group Research.
Grow, B., & Greene, J. (2003). The new global job shift.
DeMarco, T., & Lister, T. (1999). Peopleware: Productive Business Week, February, 36-42,44,46.
projects and teams. New York: Dorset House.
Escalona, M. J., & Koch, N. Requirements engineering
Deshpande Y., Olsina, L., & Murugesan, S. (2002). Web for Web applicationsA comparative study. Journal of
engineering. Report on the Third ICSE Workshop on Web Web Engineering, 2(3), 193-212.
Engineering, ICSE2002, Orlando, FL, USA.
Evans, E. (2003). Domain-driven design: Tackling com-
Deshpande, Y., & Hansen, S. (2001) Web engineering: plexity in the heart of software. Addison-Wesley.
Creating a discipline among disciplines. IEEE Multime-
Farrell, D. (2003). Offshoring: Is it a win-win game?
dia, April-June, 82-87.
McKinsey Global Institute, Aug 2003.
Deshpande, Y., Ginige, A., Murugesan, S., & Hansen, S.,
Federal Office of Management and Budget (2007). Fed-
(2002). Consolidating Web engineering as a discipline.
eral enterprise architecture framework. Retrieved May
SEA Software, (April), 32-34.
18, 2007, from http://www.whitehouse.gov/omb/egov/a-
Deshpande, Y., Murugesan, S., et al. (2002). WEB 2-EAModelsNEW2.html
ENGINEERING. Journal of Web Engineering, 1(1),
Fenton, N. E., & Pfleeger, S. L. (1997). Software metrics:
003-017.
A rigorous & practical approach. International Thomson
Di Lucca, G. A., A. R. Fasolino, et al. (2002). Testing Computer Press.
Web applications. Software Maintenance, 2002. In
Fernandes, T. (1995). Global interface design.Academic
Proceedings. International Conference on.
Press.
Dignan, L. (2003). Leaping, then looking. Baseline,
Ferranti, M. (1999). From global to local. Infoworld,
1(22), 17-29.
October.
Disabatino, J. (2000). Web site globalization. Comput-
Ferranti, M. (2000). Globalization tidal wave. Infoworld,
erWorld, July.
November.
DoD C4ISR Architecture Working Group (1997).
Firesmith, D., & Henderson-Sellers, B. (2002). The OPEN
C4ISR architecture framework. Version 2. Retrieved
process framework: An Introduction. Addison-Wesley.
May 18, 2007, from http://www.fas.org/irp/program/
core/fw.pdf Floyd, C. (1984). A systematic look at prototyping. In
Budde, R., Kuhlenkamp, K., Mathiassen, L. & Zullig-
Compilation of References
hoven, H., Approaches to prototyping, (pp 1-18). Berlin: Giebel, T. (1999). Globalize your Web site. PC Magazine,
Springer Verlag. November.
Fowler, M. (2001). Separating user interface code, IEEE Gilb, T. (1988). Principles of software engineering
Software, 18(2), 96-97. management. Addison-Wesley.
Fowler, M. (2003). Patterns of enterprise application Gillenson, M., Sherrell, D. L., & Chen, L. (2000). A
architecture. Boston: Addison-Wesley. Taxonomy of Web site traversal patterns and structures.
Communications of the AIS, 3(4), 2000.
Fowler, M. (2006). Using an agile software development
process with offshore development. Retrieved on January Ginige, A. & Murugesan, S. (2001). Web engineering:
1, 2007, from http://www.martinfowler.com/articles/ag- An introduction. IEEE Multimedia, 8(1), 14-18.
ileOffshore.html
Ginige, A. & Murugesan, S. (2001). The essence of Web
Frank, C. E., Naugler, D., & Traina, M. (2005). Teach- engineering: Managing the diversity and complexity of
ing user interface prototyping. Journal of Computing Web application development. IEEE Multimedia, 8(2),
Sciences in Colleges, 20(6), 66-73. Consortium for 22-25.
Computing Sciences in Colleges.
Ginige, A. (2002). Web engineering: Managing the
Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1995). complexity of Web systems development. In Proceed-
Design patterns: Elements of reusable object-oriented ings of the 14th International Conference on Software
software. Addison-Wesley. Engineering and Knowledge Engineering, (pp 721-729).
New York: ACM Press.
Garcia-Molina, H., Papakonstantinou, Y., Quass, D.,
Rajaraman, A., Sagiv, Y., Ullman, Y. D., Vassalos, V. Ginige, A., & Murugesan, S. (2001). Web engineering: A
& Widom, J. (1997). The TSIMMIS approach to media- methodology for developing scalable, maintainable Web
tion: Data models and languages. Journal of Intelligent applications. Cutter IT Journal, 14(7), 24-35.
Information Systems, 8(2), 117-132.
Glass, R. (2001). Whos right in the Web development
Garrett, J. (2005). Ajax: A new approach to Web ap- debate? Cutter IT Journal, 14(7), 6-10.
plications. Retrieved on July, 2007, from http://www.
Grady, R. & Caswell, D.L. (1987). Software metrics:
adaptivepath.com/publications/essays/archives/000385.
Establishing a company-wide program. Upper Saddle
php
River, NJ: Prentice-Hall.
Garzotto, F., Paolini, P., Bolchini, D., & Valenti, S. (1999,
Graham, I. (2003). A pattern language for Web usability.
November 15-18). Modeling-by-patterns of Web applica-
Addison-Wesley.
tions. Paper presented at the International Workshop on
the World Wide Web and Conceptual Modeling (WW- Grossman, W. (2000). Go Global. Smart Business,
WCM 99), Paris, France. October
Geary, D. (2001). Advanced JavaServer pages. Upper Grossman, W. (2000). The outsiders. Smart Business,
Saddle River, NJ: Sun Microsystems Press / Prentice July.
Hall.
Gruber, T. R. (1993). Toward principles for the design of
German, D. M., & Cowan, D. D. (2000, January 4-7). ontologies used for knowledge sharing. In N. Guarino
Towards a unified catalog of hypermedia design patterns. & R. Poli (Eds.) Formal ontology in conceptual analy-
Paper presented at the 33rd Hawaii International Confer- sis and knowledge representation. Kluwer Academic
ence on System Sciences (HICSS 00), Maui, USA. Publishers.
Compilation of References
Grnbacher, P. (2003). Requirements engineering for Henderson-Sellers, B., Lowe, D., & Haire, B. (2002).
Web applications. In G. Kappel, B. Prll, S. Reich, & W. OPEN process support for Web development. Annals of
Retschitzegger (Eds.), Web engineering: The discipline of Software Engineering, 13(1-4), 163-201.
systematic development of Web applications. Hoboken,
Hendler, J. (2001). Agents and the Semantic Web. IEEE
NJ: John Wiley & Sons.
Intelligent Systems, 16(2), 30-37.
Gudgin, M., M. Hadley, et al., (2003). SOAP version
Hendler, J., Lassila, O., & Berners-Lee, T. (2001). The
1.2 part 1: Messaging framework. World Wide Web
Semantic Web. Scientific American, 284(5), 34-43.
Consortium.
Hendrickson, E., & Fowler, M. (2002). The software
Hafiz, M. (2006, October 21-23). A Collection of privacy
engineering of internet software. Software IEEE, 19(2),
design patterns. Paper presented at the 13th Confer-
23-24.
ence on Pattern Languages of Programs (PLoP 06),
Portland, USA. Henkel, M., J. Zdravkovic, et al. (2004). Service-based
processes: Design for business and technology. ICSOC
Hall, M. (2003). The Web services tsunami. Comput-
04: Proceedings of the 2nd international conference on
erworld, May 19.
Service oriented computing.
Haller, A., Cimpian, E., Mocan, A., Oren, E. & Bussler,
Herbsleb, J.D., & Mockus, A. (2003). An empirical study
C. (2005). WSMX - A semantic service-oriented archi-
of speed and communication in globally distributed
tecture. In Proceedings of the Inernational Conference
software development. IEEE Transactions on Software
on Web Services ICWS05.
Engineering, 29(6), 1-14.
Hansen, S. (2002). Web information systems: The chang-
Hibernate (2006). Hibernate reference documentation
ing landscape of management models and Web applica-
version 3.1.1. Retrieved on January 2, 2007, from http://
tions. Proceedings of the 14th international conference
www.hibernate.org/5.html
on software engineering and knowledge engineering
(pp. 747-753). ACM. Hickman, N. (1998). Internationalizing your Web site.
WebTechniques, March.
Hansen, S., Deshpande, Y. & Murugesan S. (2001). A
skills hierarchy for Web-based systems development. Hieatt, E., & Mee, R. (2002). Going faster: Testing the
In S. Murugesan & Y. Deshpande (Eds.), Web Engineer- Web application. Software, IEEE, 19(2), 60-65.
ing Managing Diversity and Complexity of Web Ap-
Highsmith, J. (2000). Adaptive software development.
plication Development (LNCS Vol 2016, pp. 223-235).
Dorset House.
Berlin: Springer.
Highsmith, J. (2002). Agile software development eco-
Harriman, A., Leo, M., & Hodegetts, P. (2004) Emergent
systems. Addison-Wesley.
database design: Liberating database development with
agile practices. In Proceedings of the Agile Development Highsmith, J. (2002). Agile software development eco-
Conference, (pp. 100-105). systems. Boston: Addison Wesley Professional.
Hasan, L. R., & Abuelrub, E. (2006, June 19-21). Criteria Hoffman, A., & Neubauer, B. (2004). Deployment and
for evaluating quality of Websites. Paper presented at the configuration of distributed systems. Paper presented
Sixth IBIMA Conference on Managing Information in at the 4th International SDL and MSCWorkshop. Ot-
Digital Economy, Bonn, Germany. tawa, Canada.
Hawthorne Software Engineering Company, Software Hohmann, L. (2003). Beyond software architecture:
Development. Retrieved on September 27, 2007, http:// Creating and sustaining winning solutions. Boston,:
www.hawthornesoftware.com/Software.htm Addison-Wesley Professional.
0
Compilation of References
Holter, E. (2006), Client vs developer wars. Chapel Hill, Jarvenpaa, S. L., Knoll, K., & Leidner, D. E. (1998). Is
NC: Newfangled Web Factory. anybody out there? Antecedents of trust in global virtual
teams. Journal of Management Information Systems,
Holzschlag, M. (2000). Color my world. WebTechniques,
14(4), 29-48.
September.
Java Community Process (2002). JSR 88: Java EETM
http://www.ambysoft.com/unifiedprocess/agileUP.
application deployment. Retrieved on January 21, 2007,
html
from http://jcp.org/en/jsr/detail?id=88
Httperf. Retrieved January 13, 2005, from http://www.
Java Community Process (2003). JSR 175: A meta-
hpl.hp.com/research/linux/httperf
data facility for the JavaTM programming language.
HttpUnit. Retrieved January 13, 2005, from http://htt- Retrieved on January 21, 2007, from http://jcp.org/en/
punit.sourceforge.net jsr/detail?id=175
Humphrey, W. S. (1994). A discipline for software engi- Jeenicke, M., Bleek, W.-G., & Klisechewski, R. (2003).
neering. Boston: Addison Wesley Professional. Revealing Web user requirements through e-prototyp-
ing. In Proceedings of the 15th International Conference
Humphrey, W. S. (1996). Introduction to the personal soft-
on Software Engineering and Knowledge Engineering
ware process. Boston: Addison Wesley Professional.
(SEKE 03). Skokie, IL: Knowledge Systems Institute.
Humphrey, W. S. (1999). Introduction to the team software
Jeffries, R. (2001, November). What is eXtreme program-
process. Boston: Addison Wesley Professional.
ming? XP Magazine. [Electronic version] Retrieved
IEAD (Institute for Enterprise Architecture Devel- on January, 2006, from http://www.xprogramming.
opments) (2004). Extended enterprise architecture com/xpmag/whatisxp.htm
framework. Retrieved May 18, 2007, from http://www.
Jeffries, R., Anderson, A., & Hendrickson, C. (2001).
enterprise-architecture.info
Extreme programming installed. The XP series. Boston:
IEEE (1990). IEEE Standard 610.12-1990, IEEE Standard Addison-Wesley.
Glossary of Software Engineering Terminology.
Jensen, B., & Zilmer, A. (2003). Cross-continent devel-
Ivory, M.Y, & Hearst, M.A. (2002). Improving Web opment using Scrum and XP. Extreme programming
site design. IEEE Internet Computing, (March - April), and agile processes in software engineering. Paper
56-63. presented at the 4th International Conference. Berlin,
Germany: Springer.
Jacobs, I., & Walsh, N. (2004). Architecture of the World
Wide Web, volume one. W3C Recommendation. World Jhingran, A.D., Mattos, D. & Pirahesh, N.H. (2002).
Wide Web Consortium (W3C). Information integration: A research agenda. IBM System
Journal 41(4), special issue on information integration.
Jacobsen, I., Booch, G., & Rumbaugh, J. (2000). The
[Electronic version] Retrieved on April 14, 2008 from
unified software development process. Boston: Ad-
www.research.ibm.com/journal/sj/414/jhingran.pdf
dison-Wesley.
Johnson, J., Boucher, K. D., Conners, K., & Robinson,
Jacobson, I., Booch, G. & Rumbaugh, J. (1999). The
J. (2001). Collaborating on project success. Software
unified software development process. Reading MA:
Magazine, February/March 2001.
Addison-Wesley.
Jones, T. C. (2000). Software assessments, benchmarks,
Janzen, D., & Saiedian, H. (2005). Test-driven develop-
and best practices. Boston: Addison Wesley Profes-
ment concepts, taxonomy, and future direction. Com-
sional.
puter, 38(9), 43-50.
Compilation of References
Kaiser, P. R., Tuller, W. L., & McKowen, D. (2000). Stu- Kishore, R., Rao, H. R., Nam, K., Rajagopalan, S., &
dent team projects by internet. Business Communication Chaudhury, A. (2003). A relationship perspective on
Quarterly, 63(4), 75-82. IT outsourcing. Communications of the ACM, 46(12),
87-92.
Kaminski, H., & Perry, M. (2007, May 27-30). Open
source software licensing patterns. Paper presented at Klappholz, D. & Bernstein, L. (2001) Getting software
the Sixth Latin American Conference on Pattern Lan- engineering into our guts. Crosstalk: The Journal of
guages of Programming (SugarLoafPLoP 07), Porto Defense Software Engineering, 14(7). Retrieved on
de Galinhas, Brazil. January 1, 2007, from http://www.stsc.hill.af.mil/cross-
talk/2001/07/bernstein.html
Kamthan, P. (2007). Towards a systematic approach
for the credibility of human-centric Web applications. Klee, K. (2001). Going global: Out ten tests can help You
Journal of Web Engineering, 6(2), 99-120. Get Started. Forbes Small Business, March.
Kamthan, P. (2008). Patterns for improving the pragmatic Kloppmann, M., D. Koenig, et al., (2005). WS-BPEL
quality of Web information systems. In C. Calero, M. extension for peopleBPEL4People (A Joint White
. Moraga, & M. Piattini (Eds.), Handbook of research Paper by IBM and SAP), IBM/SAP.
on Web information systems quality. Hershey, PA: Idea
Knight, A., & Dai, N (2002). Objects and the Web. IEEE
Group Publishing.
Software, 19(2), 51-59.
Kamthan, P., & Pai, H.-I. (2006, May 21-24). Semantic
Koch, N., & Kraus, A. (2002). The expressive power of
Web-enabled Web engineering: The case of patterns.
UML-based Web engineering. Paper presented at the Sec-
Paper presented at the Seventeenth Annual Informa-
ond International Workshop on Web-Oriented Software
tion Resources Management Association International
Technology (IWWOST2), Malaga, Spain.
Conference (IRMA ;06), Washington, D.C.
Koch, P. (2006). ppk on JavaScript. Berkeley, CA: New
Kappel, G., Prll, B., Reich, S., & Retschitzegger, W.
Riders.
(2003). An introduction to Web engineering. In G. Kap-
pel, B. Prll, S. Reich, & W. Retschitzegger (Eds), Web Korper, Steffano, & Ellis (2000). The E-commerce book:
engineering: The discipline of systematic development of Building the E-empire. Academic Press.
Web applications. Hoboken, NJ: John Wiley & Sons.
Kruchten, P. (1998). The rational unified process. Ad-
Kappel, G., Prll, B., Reich, S., & Retschitzegger, W. dison-Wesley.
(2006). Web engineering. John Wiley and Sons.
Kruchten, P. (2003). The rational unified process: An
Karat, J., & Dayton, T. (1995). Practical education for introduction. 3rd Edition. Massachusetts: Addison
improving software usability. Conference on Human Wesley.
Factors in Computing Systems (pp 162-169). New York:
Krutchen, P. (1995). The 4+1 View Model of software
ACM Press.
architecture. IEEE Computer, 12(6), 42-50.
Katzenbach, J. R., & Smith, D. K. (1993). The wisdom
Kumar, K., & Welke, R. J. (1992). Methodology engi-
of teams: Creating the high performance organization.
neering: A proposal for situation-specific methodology
Boston: Harvard Business School Press.
construction. In W. W. Cotterman & J. A. Senn (Eds.),
Kendall, E. A. (1998). Utilizing patterns and pattern Challenges and strategies for research in systems devel-
languages in education. Annals of Software Engineer- opment, (pp, 257-269). John Wiley and Sons.
ing, 6(1-4), 281-294.
Kuniavsky, M. (2003). Observing the user experience.
San Francisco: Morgan Kaufmann Publishers.
Compilation of References
Kunze, M. (1998) Let there be light: LAMP : Freeware Lenzerini, M. (2002). Data integration: A theoretical
Web publishing system with database support. ct, Dec perspective. In Proceedings of the Principles of Database
1998, 230. Systems Conference PODS02, (pp. 233-246). ACM.
Kussmaul, C., & Jack, R. (2006). User interface prototyp- Levy, F., & Murnane, R. J. (2005). The new division of
ing: Tips & techniques. Journal of Computing Sciences labor: How computers are creating the next job market.
in Colleges, 21(6), 188-190. Consortium for Computing Princeton, NJ: Princeton University Press.
Sciences in Colleges.
Lie, H. W., & Bos, B. (1999). Cascading style sheets:
Kussmaul, C., Jack, R., & Sponsler, B. (2004). Outsourc- Designing for the Web, 2nd edition. Harlow, England:
ing and offshoring with agility: A case study. Extreme Addison Wesley Longman.
programming and agile methodsXP / agile universe,
Lindland, O. I., Sindre, G., & Slvberg, A. (1994).
(pp 147-154). Berlin: Springer.
Understanding quality in conceptual modeling. IEEE
Lacity, M.C., & Willcocks, L.P. (2000). Relationships Software, 11(2), 42-49.
in IT outsourcing: A stakeholder perspective. In R. W.
Lindvall, M., Basili, V., Boehm, B., Costa, P., Dangle, K.,
Zmud (Ed.), Framing the domains of IT management:
Shull, F., Tesoriero, R., Williams, L., & Zelkowitz, M.
projecting the future through the past. Cincinnati, OH:
(2002). Empirical findings in agile methods. In Proceed-
Pinnaflex Educational Resources, Inc.
ings of XP/Agile Universe 2002, (pp. 197-207).
Lam, W. (2001). Testing e-commerce systems: A practical
Liu, Y. & Smith, S. (2006). A formal framework for
guide. IT Professional, 3(2), 19-27.
component deployment. Paper presented at the 21st
Lander, M. C., Purvis, R. L., McCray, G. E., & Leigh, W. ACM Conference on Object-Oriented Programming,
(2004). Trust-building mechanisms utilized in outsourced Systems, Languages, and Applications (OOPSLA06).
IS development projects: A case study. Information and Portland, OR.
Management, 41(4), 509-528.
Lowe, D. (2003). Web system requirements: An overview.
Lassila, O., & Hendler, J. (2007). Embracing Web 3.0. Requirements Engineering, 8, 102-113.
IEEE Internet Computing, 11(3), 90-93.
Lbke, D. (2007). User interface design styles in SOA
Lau, K. & Ukis, V. (2006). Defining and checking applications. Paper presented at the 8th Annual Global
deployment contract for software components. Paper Information Technology Management Associaton World
presented at the 9th International SIGSOFT Symposium Conference, Napoli, Italy.
on Component-based Software Engineering (CBSE06).
Lbke, D., T. Lecke, et al., (2006). Model-driven de-
Stockholm, Sweden.
velopment of business applications using event-driven
Layman, L., Williams, L., & Cunningham, L. (2004). process chains. GITMA 2006, Orlando Florida.
Exploring eXtreme programming in context: An indus-
Lyardet, F., & Rossi, G. (1998, August 11-14). Patterns
trial case study. In Proceedings of the Agile Development
for designing navigable information spaces. Paper pre-
Conference (pp. 32-41).
sented at the Fifth Conference on Pattern Languages of
Le Hgaret, P., Whitmer, R., & Wood, L. (2006). Do- Programs (PLoP 98), Monticello, USA.
cument object model (DOM). Retrieved on July, 2007,
Lyardet, F., Rossi, G., & Schwabe, D. (1999, July 8-10)).
from http://www.w3.org/DOM/Overview
Patterns for adding search capabilities to Web informa-
Lederer, A. L. & Prasad, J. (1992). Nine management tion systems. Paper presented in the Fourth European
guidelines for better estimating. Communications of the Conference on Pattern Languages of Programming and
ACM, 35(2), 51-59. Computing (EuroPLoP 1999), Irsee, Germany.
Compilation of References
Mahemoff, M. (2006). Ajax design patterns. OReilly Merialdo, P. et al. (2003). Design and development of
Media. data-intensive Web sites: The Araneus Atzeni. ACM
Transactions on Internet Technology, 3(1), 49-92.
Mahmoud, Q. (2002). MobiAgent: An agent-based
approach to the wireless Internet. Journal of Internet Meszaros, G., & Doble, J. (1998). A pattern language
Computing, special issue on Wireless Internet, 3(2), for pattern writing. In R. C. Martin, D. Riehle, & F.
157-162. Buschmann (Eds.). Pattern languages of program design
3. Addison-Wesley, (pp 529-574).
Manolescu, D., & Kunzle, A. (2001, September 11-15).
Several patterns for eBusiness applications. Paper pre- Mich, L., Franch, M., & Gaio, L. (2003). Evaluating and
sented at the Eighth Conference on Pattern Languages designing Web Site quality. IEEE Multimedia. 10(1),
of Programs (PLoP 01), Monticello, USA. 34-43.
Martins, L. L., Gilson, L. L., & Maynard, M. T. (2004). Mills, D. L., Sherrell, L. B., Boydstun, J., & Wei, G.
Virtual teams: What do we know and where do we go (2006). Experiences using agile software development
from here? Journal of Management, 30(6), 805-835. for a shopping simulation. In Proccedings of IEEE
Southeast Con 2006 (pp. 285-290).
May, D., & Taylor, P. (2003). Knowledge Management
with Patterns. Communications of the ACM, 46(7), Mockus, A., & Weiss, D.M. (2001). Globalization by
94-99. chunking: A quantitative approach. IEEE Software,
18(2), 30-37.
McPhail, J. C., & Deugo, D. (2001, June 4-7). Deciding
on a pattern. Paper presented at the 14th International Montero, F., Lpez-Jaquero, V., & Molina, J. P. (2003,
Conference on Industrial and Engineering Applications September 1-2). Improving e-Shops environments by
of Artificial Intelligence and Expert Systems (IEA/AIE using usability patterns. Paper presented at the Second
2001). Budapest, Hungary. Workshop on Software and Usability Cross-Pollination,
Zrich, Switzerland.
Mellor, S., & Balcer, M. (2002). Executable UML: A foun-
dation for model driven architecture. Addison-Wesley. Montero, F., Lozano, M., & Gonzlez, P. (2002, August
5-7). Designing Web sites by using design patterns. Paper
Menasce, D.A, & Almeida, V.A.F. (2002). Capacity plan-
presented at the Second Latin American Conference on
ning for Web services: Metrics, models, and methods.
Pattern Languages of Programming (SugarLoafPLoP
Upper Saddle River, NJ: Prentice Hall.
02), Rio de Janeiro, Brazil.
Mendes, E., & Mosley, N. (2006). Web engineering.
Moore, S., & Barnett, L. (2004). Offshore outsourcing
Springer-Verlag.
and agile development. Forrester Research, Inc.
Mendes, E., Mosley, N. (2005). Web Engineering. Berlin,
Morein, R. (2005). Agile development of the databasea
Germany: Springer.
focal entity prototyping approach. In Proceedings of the
Mendes, E., Mosley, N., & Counsell, S. (2006). The need Agile Development Conference, (pp. 103-110).
for Web engineering: An introduction. In E. Mendes
Mori, G., F. Patern, et al., (2004). Design and develop-
& N. Mosley (Eds), Web engineering. Berlin: Springer
ment of multidevice user interfaces through multiple
Verlag.
logical descriptions. IEEE Trans. Software Eng, 30(8),
Mendling, J., & Nttgens, M. (2005). EPC markup lan- 507-520.
guage (EPML) - An XML-based interchange format for
Morisio, M., & Oivo, M. (2003). Software engineering
event-driven process chains (EPC).Information Systems
for the wireless Internet [Guest Editors Introduction].
and e-Business Management (ISeB) 4(3), 245-263.
IEEE Transactions on Software Engineering, 29(12),
1057-1058.
Compilation of References
Morris, P. (2001). Updating the project management Neill, C., & Laplane, P. (2003). Requirements engineer-
bodies of knowledge. Project Management Journal, ing: The state of the practice, IEEE Software, 20(6),
September. 40-45.
Morrison, T. (1997). Dun & Bradstreets Guide to doing Nelson, T. H. (1984). Literary machines. Mindful
business around the world. Prentice Hall. Press.
Morrison, T. (2000). Kiss, bow, or shake hands: How to Neuman, C. (2000). Considering the color-blind. Webt-
do business in 60 countries. Adams Media. echniques, August.
Moschella, D. (2000). Ten key IT challenges for the next Newman, M. W., Lin, J., Hong, J. I., & Landay, J. A.
20 years. Computerworld, December. (2003). DENIM: An informal Web site design tool in-
spired by observations of practice. Human-Computer
Motorola Application Certification Program. (n.d.).
Interaction, 18(3), 259-324.
Retrieved February 10, 2005, from http://qpqa.com/
motorola/iden Newward, T. (2006). The Vietnam of computer science.
Retrieved on May 28, 2007, from http://blogs.tedneward.
Murugesan, S. & Ginige, A. (2005). Web engineering:
com/2006/06/26/The+Vietnam+Of+Computer+Science.
Introduction and perspectives. In Suh, W. (Ed.), Web
aspx
engineering: Principles and techniques (pp 1-30). Her-
shey, PA: Idea Group Publishing. Nguyen, H. Q., Johnson, R., & Hackett, M. (2003). Test-
ing applications on the Web: Test planning for mobile
Murugesan, S. (1998). Web engineering. Presentation at
and Internet-based systems (2nd Edition). John Wiley
the First Workshop on Web Engineering, World Wide
and Sons.
Web Conference (WWW7), Brisbane, Australia.
Nielsen, J. (1990). Paper versus computer implementa-
Murugesan, S. et al. (1999). Web engineering: A New
tions as mockup scenarios for heuristic evaluation. In
Discipline for Development of Web-based systems. In
Proceedings of the IFIP Third International Conference
Proceedings of the First ICSE Workshop on Web Engi-
on Human Computer Interaction (pp 315-320). Amster-
neering, Los Angeles (pp. 1-9).
dam: North-Holland.
Murugesan, S., & Deshpande, Y. (Eds) (2001). Web en-
Nielsen, J. (1993). Usability engineering. San Francisco:
gineering: Managing diversity and complexity of Web
Morgan Kaufmann Publishers.
application development. Lecture Notes in Computer
Science Hot Topics, 2016. Berlin: Springer Verlag. Nikkanen, M. (2004). User-centered development of a
browser-agnostic mobile e-mail application. In Proceed-
Myers, B. A. & Rosson, M. B. (1992). Survey on user in-
ings of the Third Nordic Conference on Human-Computer
terface programming. In Proceedings of the ACM CHI92
Interaction, Tampere, Finland (pp. 53-56). New York:
Conference (pp 195-202). New York: ACM Press.
ACM Press.
Myers, G. J., Badgett, T., Thomas, T. M., & Sandler, C.
Norman, D. (2002). The design of everyday things. New
(2004). The art of software testing. Hoboken, N.J.: John
York: Basic Books.
Wiley & Sons.
OReilly, T. (2005). What is Web 2.0: Design patterns
Nam, T. J. & Gill, S. (2000). An effective prototyping
and business models for the next generation of software.
method for delivering interaction design in industrial
Retrieved on July, 2007, from http://www.oreillynet.
design education. In Proceedings of the IDATER Con-
com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-
ference, 2000.
20.html
Compilation of References
Oberle, D., Eberhart, A., Staab, S., & Volz, R. (2004). Palmer, S. R., & Felsing, J. M. (2002). A practical guide
Developing and managing software components in an to feature-driven development. Upper Saddle River, NJ:
ontology-based application server. In Proceedings of Prentice-Hall.
the 5th International Middleware Conference, Toronto,
Passani, L., & Trasatti, A. (2002). WURFL. Retrieved on
Canada: Springer-Verlag.
July, 2007, from http://wurfl.sourceforge.net/
Object Management Group (2002). CORBA component
Patten, B. & Grandlienard, G. (1999). Using resource
model, version 3.0.
bundles to international text. Java Report, February.
Object Management Group (2006). Deployment and
Patterson, J. (1994). ISO 9000: Worldwide quality stan-
configuration of component-based distributed applica-
dard. Stamford, CT: Crisp Learning.
tions specification, version 4.0.
Patton, S. (2002). Web metrics that matter. Computer
Ocampo, A., Boggio, D., Munch, J., & Palladino, G.
World. [Electronic version]. Retrieved on September 27,
(2003). Towards a reference process for developing wire-
2007, from http://www.computerworld.com/databasetop-
less Internet services. IEEE Transactions on Software
ics/data/story/0,10801,76002,00.html
Engineering, 29(12), 1122-1134.
Paulk, M. C. (2001). Extreme programming from a CMM
Offutt, J. (2002). Quality attributes of Web software
Perspective. IEEE Software, 18(6), 19-26.
applications. IEEE Software, 19(2), 25-32.
Paulk, M. C., Weber, C. V., Curtis, B., Chrissis, M. B.,
Olsina, L., & Rossi, G. (2002) Measuring Web application
et al. (1994). The capability maturity model: Guidelines
quality with WebQEM. IEEE Multimedia, 9(4), 20-29.
for improving the doftware process. Boston: Addison
OMG (Object Management Group) (2007). Model driven Wesley Professional.
architecture. Retrieved May 18, 2007, from http://www.
Peak, P., & Heudecker, N. (2005). Hibernate quickly.
omg.org/mda
Greenwich, CT: Manning Publications.
Open Mobile Alliance. (2005). Retrieved from March
Peltier, M., Bezivin, J & Guillaume, G. (2001). MTRANS:
15, 2005, http://www.openmobilealliance.org
A general framework, based on XSLT, for model trans-
Oppenheimer, D., & Patterson, D.A. (2002). Architecture formations. In Proceedings of the Workshop on Trans-
and dependability of large-scale Internet services. IEEE formations in UML WTUML01.
Internet Computing, September-October, 41-49.
Peltier, M., Ziserman, F. & Bezivin. (2002). On levels
Orriens, B., Yang, J. & Papazoglou, M. (2003). A frame- of model transformation. In Proceedings of the XML
work for business rule driven Web service composition. Europe Conference (pp. 1-17). Paris, France: Graphic
In M. A. Jeusfeld & O. Pastor, (Eds). Proceedings Communications Association.
of the ER2003 Workshops, LNCS 2814, (pp. 52-64).
Perrotta, T/ (2000). Yahoo ruling exposes risks of being
Springer-Verlag.
global. InternetWorld, July.
Paasivaara, M., & Lassenius, C. (2004). Using interactive
Perry, M., & Kaminski, H. (2005, July 6-19). A pattern
and incremental processes in global software develop-
language of software licensing. Paper presented at the
ment. In Proceedings of the International Conference on
Tenth European Conference on Pattern Languages of
Software Engineering (ICSE) Third International Work-
Programs (EuroPloP 05), Irsee, Germany.
shop on Global Software Development, (pp. 24-28).
Pertet, S. M., & Narasimhan, P. (2005). Causes of failure
in Web applications. PDL Technical Report PDL-CMU-
05-109. Carnegie Mellon University, Pittsburgh, USA.
Compilation of References
Perzel, K., & Kane, D. (1999, August 15-18). Usability Reifer, D.J. (2000). Web development: Estimating quick-
patterns for applications on the World Wide Web. Paper to-market software. IEEE Software, 17(6), 57-64.
presented at the Sixth Conference on Pattern Languages
Rettig, M. (1994). Prototyping for tiny fingers. Com-
of Programs (PLoP 99), Monticello, USA.
munications of the ACM, 37(4), 21-27.
Peterson, C. (2000). Accessible Web sites matter. En-
Reynaud, C., Sirot, J. P. & Vodislav, D. (2001). Semantic
terprise Development, June.
integration of XML heterogeneous data sources. In Pro-
Pinsonneault, A., & Caya, O. (2005). Virtual teams: What ceedings of the IDEAS Conference (pp. 199-208).
we know, what we dont know. International Journal of
Ricca, F., & P. Tonella (2001). Analysis and testing of
e-Collaboration, 1(3), 1-16.
Web applications. In Proceedings of the International
PMI (2000), The project management body of knowledge Conference on Software Engineering, (pp. 25-34).
(PMBOK), Project Management Institute.
Riggins, F. J., & Mitra, S. (2003). A framework for devel-
Powell, A., Piccoli, G., & Ives, B. (2004). Virtual teams: oping net-enabled business metrics through functional-
A review of current literature and directions for future ity interaction. Retrieved on September 27, 2007, from
research. ACM SIGMIS Database, 35(1), 6-36. http://ids.csom.umn.edu/faculty/friggins/e-metrics.pdf
Powell, T. A., Jones, D. L., & Cutts, D. C. (1998). Web Rising, L & Janoff, N. S. (2000). The scrum software
site engineering. Prentice-Hall. development process for small teams. IEEE Software,
July/August, 2-8.
Preece, J., Rogers, Y., & Sharp, H. (2002). Interaction
Design: Beyond Human-Computer Interaction. Hoboken, Robb, D. (2000). Act globally, serve locally. Information
NJ: John Wiley & Sons. Week, July.
Pressman, R. S. (2005). Software engineering: A practi- Romanosky, S., Acquisti, A., Hong, J., Cranor, L. F., &
tioners approach (6th ed.). New York: McGraw Hill. Friedman, B. (2006, October 21-23). Privacy patterns
for online interactions. Paper presented at the 13th
Pressman, R.S. (2001). What a tangled Web we weave.
Conference on Pattern Languages of Programs (PLoP
IEEE Software, 18(1), 18-21.
06), Portland, USA.
Pressman, R.S. (2004). Applying Web engineering, Part
Rosenberg, F. & Dustdar, S. (2005). Business rules
3. software engineering: A practitioners perspective
integration in BPEL - A service-oriented approach. In
(6th ed.). New York: McGraw-Hill.
Proceedings of the 7th International IEEE Conference
Purdue University (1989). The Purdue enterprise on E-Commerce Technology.
reference architecture. Retrieved May 18, 2007, from
Ross, M. (2002). Quality in Web design for visually
http://pera.net
impaired users. Software Quality Journal, 10(4), 285-
Putman, J.R. (2001). Architecting with RM-ODP. New 298.
Jersey: Prentice Hall PTR.
Rossi, G., & Koch, N. (2002, July 3-7). Patterns for adap-
Ramesh, B., Cao, L., Mohan, K., & Xu, P. (2006). Can tive Web applications. Paper presented at the Seventh
distributed software development be agile? Communica- European Conference on Pattern Languages of Programs
tions of the ACM, 49 (10), 41-46. (EuroPLoP 02). Irsee, Germany.
Reed, S. (2000). Want to limit the audience for you Web Rossi, G., Lyardet, F. D., & Schwabe, D. (1999). Develop-
site? Keep it English only. Infoworld, August. ing hypermedia applications with methods and patterns.
ACM Computing Surveys. 31(4es).
Compilation of References
Rossi, G., Lyardet, F., & Schwabe, D. (2000, July 5-9). Sawhney, Mohanbir, & Sumant Mandai (2000). Go
Patterns for E-commerce applications. Paper presented global. Business, May.
at the Fifth European Conference on Pattern Languages
Schach, S. R. (2003). Object-oriented & classical software
of Programs (EuroPLoP 2000), Irsee, Germany.
engineering. New York: McGraw-Hill.
Rossi, G., Pastor, O., Schwabe, D., & Olsina, L. (2008).
Schmidt, D. C., Stal, M., Rohnert, H., & Buschmann, F.
Web engineering: Modelling and implementing Web
(2000). Pattern-oriented software architecture, Volume
applications. Springer-Verlag.
2: Patterns for concurrent and networked objects. John
Rossi, G., Schwabe, D., & Lyardet, F. (1999, May 11-14). Wiley and Sons.
Improving Web information systems with navigational
Schrage, M. (2000). Serious play: How the worlds best
patterns. Paper presented at the Eighth International
companies simulate to innovate. Boston: Harvard Busi-
World Wide Web Conference (WWW8), Toronto,
ness School Press.
Canada.
Schumacher, M., Fernandez-Buglioni, E., Hybertson,
Roth, J. (2002). Patterns of mobile interaction. Personal
D., Buschmann, F., & Sommerlad, P. (2006). Security
and Ubiquitous Computing. 6(4), 282-289.
patterns: Integrating security and systems engineering.
Royce, W. (1970). Managing the development of large John Wiley and Sons.
software systems. In Proceedings of IEEE WESCON
Schwaber, K. (2003). Agile project management with
(pp 1-9). New York: The Institute of Electrical and
scrum. Microsoft Press.
Electronics Engineers.
Schwaber, K., & Beedle, M. (2001). Agile software
Royce, W. (1970). Managing the development of large
development with SCRUM. Upper Saddle River, NJ:
software systems. In Proceedings of the IEEE WEST-
Prentice Hall PTR.
CON, Los Angeles CA, IEEE Computer Society.
Schwartz, H. (2000). Going global. WebTechniques,
Rubin, J. (1994). Handbook of usability testing. Hoboken,
September.
NJ: John Wiley & Sons.
Segersthl, K., & Jokela, T. (2006, April 22-27). Usability
Rudd, J. and Isensee, S. (1994). Twenty-two tips for a
of interaction patterns. Paper presented at the CHI 2006
happier, healthier, prototype. interactions, 1(1), 35-40.
Conference on Human Factors in Computing Systems,
Rudd, J., Stern, K., & Isensee, S. (1996). Low vs. high- Montral, Canada.
fidelity prototyping debate. interactions, 3(1), 76-85.
Selmi, S. S., Kraem, N., & Ghzala, H. H. B. (2005, July
Ruhe, M., Jeffrey, R., & Wieczorek, I. (2003, May). Cost 27-29). Toward a comprehension view of Web engineering.
Estimation for Web Applications. In Proceedings of the Paper presented at the Fifth International Conference on
25th International Conference on Software Engineering, Web Engineering (ICWE 05), Sydney, Australia.
IEEE Computer Society, (pp. 285-294).
Seltsikas, P. & Currie, W.L. (2002). Evaluating the appli-
Sanja, A. (2005). Overview of agile management project cation service provider (ASP) business model: The chal-
perfect. White Paper. Retrieved on January 2, 2007 from lenge of integration. In Proceedings of the 35th Annual
http://www.projectperfect.com.au/info_agile_program- Hawaii International Conference, (pp. 2801-2809).
ming.php
Seshadri, G. (1999). Understanding JavaServer pages
Satoh, I. (2003). A testing framework for mobile comput- model 2 architecture: Exploring the MVC design pattern.
ing software. IEEE Transactions on Software Engineer- JavaWorld, December.
ing, 29(12), 1112-1121.
Compilation of References
Shadbolt, N., Hall, W., & Berners-Lee, T. (2006). The Software Engineering Institute (2003). Process maturity
Semantic Web revisited. IEEE Intelligent Systems, 21(3), profile: Software CMM -CBA IPI and SPA Appraisal
96-101. Results.
Shan, T.C., & Hua, W.W. (2006). Solution architecture Software Engineering Institute (SEI) at CMU (2007).
of N-Tier applications. In Proceedings of 3rd IEEE Scenario-based architecture analysis method. Retrieved
International Conference on Services Computing (pp. on May 18, 2007, from http://www.sei.cmu.edu/architec-
349-356). California: IEEE Computer Society. ture/scenario_paper
Sheth A. P. & Larson J. A. (1990). Federated database Spriestersbach, A., & Springer, T. (2004). Quality at-
systems for managing distributed, heterogeneous, and tributes in Mobile Web Application Development. In F.
autonomous databases. ACM Computing Surveys, 22(3), Bomarius & H. Iida (Eds.). Product Focused Software
183. Process Improvement. (pp. 120-130).Springer-Verlag.
Siegel, D.A. (2003). The business case for user-centered Squier, J., & Nielsen, J. (2000). DeconstructingHojo.
design: Increasing your power of persuasion. Interac- com. Internet World, June.
tions, 10(3).
Stamper, R. (1992, October 5-8). Signs, Organizations,
Siggelkow, B. (2005). Jakarta struts cookbook. Sebas- Norms and Information Systems. Paper presented at the
topol, CA: OReilly. Third Australian Conference on Information Systems,
Wollongong, Australia.
Sillence, E., Briggs, P., Harris, P, & Fishwick, L. (2006). A
framework for understanding trust factors in Web-based Standing, C. (2002). Methodologies for developing Web
health advice. International Journal of Human-Computer applications. Information and Software Technology,
Studies, 64, 697-713. 44(3), 151-159.
Simon, H. (1996). The Sciences of the Artificial (3rd Edi- Standish Group (1994). The CHAOS report. Retrieved
tion). The MIT Press. January 1, 2007 from http://www.standishgroup.com/
sample_research/chaos_1994_1.php
Simons, M. (2002). Internationally agile. InformIT,
March 15, 2002. Standish Group (2004). Chaos chronicles. Retrieved on
www.standisgroup.com
Sliski, T. J., M. P. Billmers, et al., (2001). An architecture
for flexible, evolvable process-driven user-guidance Standish Group (2007). The Standish Group Chaos
environments. Paper presented at the8th European soft- Report 2006. Retrieved May 18, 2007, from http://www.
ware engineering conference held jointly with 9th ACM standishgroup.com
SIGSOFT international symposium on Foundations of
Stapleton, J. (1997). DSDM dynamic systems develop-
software engineering, Vienna, Austria.
ment method. Addison-Wesley.
Sneed, H. M., A. GmbH, et al. (2004). Testing a Web
Steiner, D. H., & Palmer, D. W. (2004). Extreme soft-
application. Web Site Evolution, 2004. WSE 2004. In
ware engineering. Upper Saddle River, NJ: Pearson
Proceedings of the Sixth IEEE International Workshop,
Education.
(pp. 3-10).
Stern, A & Davis, J. (2003). A taxonomy of information
Snyder, C. (2003). Paper prototyping: The fast and easy
technology services: Web services as IT services. In
way to design and refine user interfaces. San Francisco:
Proceedings of the First International Conference on
Morgan Kaufmann Publishers.
Service Oriented Computing.
Compilation of References
Stern, A. & Davis, J. (2004). Extending the Web services Retrieved on January 3, 2007, from http://www.eweek.
model to IT services. In Proceedings of the IEEE Inter- com/article2/0,1895,1885883,00.asp
national Conference on Web Services, (pp. 824-825).
Tapper, S. (2000). Is globalization right for you. WebT-
Stout, G. A. (2001). Testing a Website: Best practices. echniques, September
Retrieved from whitepaper on www. reveregroup. com
Tate, B. A., & Hibbs, C. (2006). Ruby on Rails: Up and
Struts (2005). The Struts user guide. Retrieved on January Running. OReilly Media.
2, 2007, from http://struts.apache.org/struts-doc-1.2.9/
Taylor, M. J., McWilliam, J., Forsyth, H., & Wade, S.
userGuide/index.html
(2002). Methodologies and Website development: A
Subramanian, N., & Chung, L. (2003, September). Pro- survey of practice. Information and Software Technol-
cess-oriented metrics for software architecture evolv- ogy, 44, 381-391.
ability. In Proceedings of the International Workshop
The Open Group (2007). The Open Group architecture
on Principles of Software Evolution, IEEE Computer
framework. Retrieved May 18, 2007, from http://www.
Society, (pp. 65-70). Helsinki, Finland.
opengroup.org/togaf
Subramanian, N., Chung, L., & Song, Y-t. (2006, June). An
Tidwell, J. (2005). Designing interfaces: Patterns for
NFR-Based framework to establish traceability between
effective interaction design. OReilly Media.
application architectures and system architectures. In
Proceedings of the 7th ACIS International Conference on Trtteberg, H. (1999). Modelling work: Workflow and
Software Engineering, Artificial Intelligence, Network- task modelling. CADUI.
ing, and Parallel/Distributed Computing (SNPD 2006),
Treasury Department CIO Council (2000). Treasury
IEEE Computer Society, Las Vegas.
enterprise architecture framework. Version 1. Re-
Subramanian, N., Puerzer, R., & Chung, L. (2005, Sep- trieved May 18, 2007, from http://www.eaframeworks.
tember). A comparative evaluation of maintainability: com/TEAF/teaf.doc
A study of engineering departments Website maintain-
Uden, L. (2002). Design process for Web applications.
ability. In Proceedings of the International Conference
IEEE Multimedia, (Oct-Dec), 47-55.
on Software Maintenance, (pp. 669-672). IEEE Computer
Society. Budapest, Hungary. Uniscape Corporation (2000). Global content manager.
Sun Microsystems J2ME Wireless Toolkit. (2005). Van Duyne, D. K., Landay, J., & Hong, J. I. (2003). The
Retrieved from http://java.sun.com/products/j2mew- design of sites: Patterns, principles, and processes for
toolkit crafting a customer-centered Web experience. Addison-
Wesley.
Sun Microsystems J2ME. (2005). Retrieved from http://
java.sun.com/j2me Van Eaton, J. (2005). Outlook Web access - A catalyst for
Web evolution. Retrieved on July, 2007, from http://ms-
Sundstrom, E. & Associates (1998). Supporting work
exchangeteam.com/archive/2005/06/21/406646.aspx
team effectiveness: Best management practices for
fostering high performance. San Francisco, CA: Jossey- Van Ommering, R. (2001). Techniques for independent
Bass. deployment to build product populations. Paper presented
at the 2001 Working IEEE / IFIP Conference on Software
Szyperski, C. (2002). Component software: Beyond ob-
Architecture. Amsterdam, The Netherlands.
ject-oriented programming, 2nd Ed. Addison-Wesley.
0
Compilation of References
Verhoeven, J. (2003). Prototyping with PowerPoint. Re- Weyuker, E. (1998). Testing component-based software:
trieved on January 1, 2007, from http://www.jansfreeware. A cautionary tale. IEEE Software. September/October
com/articles/misc-prototyping.html 1998.
Vijayaraghavan, G. V. (2003). A taxonomy of E-commerce White, B. (1996, May 6-11). Web document engineering.
risks and failures. Masters Thesis. Florida Institute of Talk given at 5th International World Wide Web Confer-
Technology. Melbourne, USA. ence, Paris, France. [Electronic version]. Retrieved on
September 27, 2007, http://www.slac.stanford.edu/pubs/
Virzi, R. A., Sokolov, J. L., & Karis, D. (1996). Usability
slacpubs/7000/slac-pub-7150.html
problem identification using both low- and high-fidelity
prototypes. In Proceedings of the SIGCHI Conference White, S. A. (2006). Business process modeling notation
on Human Factors in Computing Systems (pp 236-243). specification, object management group standard.
New York: ACM Press.
Whiting, R. (2000). U.S. companies to comply with Eu-
Vogel, D. A., & Connelly, J. E. (2005). Best practices for ropean privacy rules. Information Week, February.
dealing with offshore software development. Handbook
Whitson, G. (2006) WebHelix: Another Web engineering
of Business Strategy. Bradford, UK: Emerald Group
process. The Journal of Computing Sciences in Colleges,
Publishing Limited.
21(5), 21-27.
Walker, M., Takayama, L., & Landay, J. (2002). High-
Whitten, J. L., & Bentley, L. D. (2006). Systems analysis
fidelity or low-fidelity, paper or computer medium?
and design methods. McGraw Hill..
Choosing attributes when testing Web prototypes. In
Proceedings of the Human Factors and Ergonomics Widom, J. (1995). Research problems in data warehous-
Society 46th Annual Meeting, pp. 661-665. Santa Monica, ing. In Proceedings of the 4th International Conference
CA: Human Factors and Ergonomics Society. on Information and Knowledge Management.
Wallace, D., Raggett, I., & Aufgang, J. (2002). Extreme Wiederhold, G. (1992). Mediators in the architecture
programming for Web projects. Addison-Wesley. of future information systems. IEEE Computer, 25.
March, 38-49.
Walsh, K. R. (2003). Analyzing the application ASP
concept: Technologies, economies, and strategies. Com- Willcocks, L. P. & Lacity, M. C. (1998). The sourcing and
munications of the ACM, 46(8), 103-107. outsourcing of IS: Shock of the new? In L. P. Willcocks
& M. C. Lacity (Eds.) Strategic sourcing of information
Weiss, M. (2003, September 8-12). Patterns for Web
technology: Perspectives and practices. Wiley.
applications. Paper presented at the Tenth Conference
on Pattern Languages of Programs (PLoP 03), Urbana, Williams, C. (2006). Smart phones, stupid punters? The
USA. Register, July 13, 2006.
Wentzlaff, I., & Specker, M. (2006, July 10). Pattern Williams, J. (2000). Correctly assessing the ilities
based development of user friendly Web applications. requires more than marketing hype. IT Professional,
Paper presented at workshop on Model-Driven Web 2(6), 65-67.
Engineering (MDWE 06), Palo Alto, CA, USA..
Williams, J. (2001). Avoiding CNN moment. IT Profes-
Wesson, J., & Cowley, L. (2003, September 1-2). De- sional, 3(2), 68-70.
signing with patterns: Possibilities and pitfalls. Paper
Williams, L., & Kessler, R. (2000). Strengthening the case
presented at the Second Workshop on Software and
for pair programming. IEEE Software, 17(4), 19-25
Usability Cross-Pollination, Zrich, Switzerland.
Compilation of References
Winch, G. (2004). Managing project stakeholders. In Zachman, J.A. (1987). A framework for information
Morris and Pinto (Eds.). The Wiley guide to managing systems architecture. IBM Systems Journal, 26(3),
projects. John Wiley & Sons. 276-295.
Wu, Y., J. Offutt, et al. (2004). Modeling and testing Zhang, Z. & Yang, H. (2004). Incubating services in
of dynamic aspects of Web applications. Submitted for legacy systems for architectural migration. In Pro-
publication: 04-01. ceedings of the 11th Asia-Pacific Software Engineering
Conference (APSEC04) (pp. 196-203).
Xu, L., B. Xu, et al. (2005). Testing Web applications
focusing on their specialties. ACM SIGSOFT Software Zhu, F., Turner, M., Kotsiopoulos, I., Bennett, K., Rus-
Engineering Notes, 30(1). sell, M., Budgen, D., Brereton, P., Keane, J., Layzell, P.,
Rigby, M. & Xu, J. (2004). Dynamic Data Integration
Yoder, J., & Barcalow, J. (1997, September 3-5). Archi-
Using Web Services. In Proceedings 2nd International
tectural patterns for enabling application security. Paper
Conference on Web Services (ICWS04).
presented at the Fourth Conference on Pattern Languages
of Programs (PLoP 1997), Monticello, USA. Ziemer, S., & Stlhane, T. (2004, July 27). The use of
trade-offs in the development of Web applications. Paper
Yunker, J. (2000). Speaking in charsets. WebTechniques,
presented at the International Workshop on Web Quality
September.
(WQ 2004). Munich, Germany.
Daniel M. Brandon. In a speech in Cape Town, South Africa in June of 1966 Robert F. Kennedy said
May you live in interesting times. He said the phrase was of Chinese origin, although even Chinese
are not sure of this, but it certainly applies to us who have become deeply involved with information
technology (IT). Dan Brandon took his first computer course in college in 1966 and has been fascinated
by IT ever since.
As he started his career, IT was also really just starting. The disciplines of Computer Science,
Software Engineering, and IT Project Management all were formulated and solidified during his
working years. He has designed and developed software for every generation of software (assembly
thru object oriented), and almost every generation of IT architecture and hardware (mainframe, mini,
PC, client-server, web). He has also programmed in most major computer languages including ALGOL,
FORTRAN, Pascal, Ada, COBOL, Basic, C, C++, Java, and modern web-based languages as PHP to
develop applications in a wide variety of areas encompassing the business, engineering, and scientific
fields.
As his career moved him from programmer to designer to manager, he was always involved with
the application of new computer technology and concepts to the solution of application problems. The
effective management of all the resources and stakeholders involved with building, integrating, and
deploying IT applications has always represented a major interest and challenge to him. Along the way
he managed to fit in some schooling, obtaining a BS (Case Western Reserve University), MS, and PhD
in Engineering (University of Connecticut); his PhD specialization was in computer methods.
Before returning to the university environment, Dr. Brandon accumulated over thirty years of com-
mercial experience in both the IT technical and management arenas. He was a Senior Engineer at Mobil
Research, Manager of Application Development for Control Data Corporation, MIS Manager for several
companies, and Director of Information Services at the NASA Stennis Space Center.
He is currently a professor of Information Technology Management (ITM) at Christian Brothers Uni-
versity (CBU) in Memphis, TN. CBU is a part of the De La Salle Christian Brothers global educational
organization with 1000 plus schools in over 80 countries. Dr. Brandons research interests include both
the management and technical side of IT. At CBU he teaches undergraduate and graduate courses in IT,
including: Information Systems Management, Project Management, Software Engineering, Database
Design, Decision Support Systems, Internet Systems, and Programming.
Prior to this book, his most recent book (2006) is Project Management for Modern Information
Systems by IRM Press (978-1591406945). He has been published in a number of other books, journals,
and conference proceedings including The Project Management Journal, The Wiley Guide to Managing
Projects, Essentials of Project Control, Encyclopedia of Information Technology, Journal of Computing
Copyright 2008, IGI Global, distributing in print or electronic forms without written permission of IGI Global is prohibited.
About the Contributors
Sciences in Colleges, Successful Software Reengineering, Technologies & Methodologies for Evaluat-
ing Information Technology in Business, Issues and Trends of Information Technology Management
in Contemporary Organizations, Architectural Issues of Web-Enabled Electronic Business, Managing
Information Technology Resources in Organizations in the Next Millennium, and Managing Informa-
tion Technology in a Global Economy.
He is a member of the Society of Information Management (SIM), the Information Resource Manage-
ment Association (IRMA), the IEEE Computer Society, and the Project Management Institute (PMI).
He also holds the PMP (Project Management Professional) Certification which is the highest certifica-
tion granted from PMI. He continues to do consulting with a number of companies both locally and
internationally. Currently he is involved in the design and development of comprehensive open source
software systems for business applications.
***
Kevin A. Gary is an assistant professor in the Division of Computing Studies at Arizona State
Universitys Polytechnic Campus. His research interests include automated workflow, software process,
distributed software systems, and technology-supported learning. Dr. Gary joined ASU after spending
four years in industry developing enterprise software solutions for e-learning. His observations mentor-
ing junior software engineers led him to implement the Software Enterprise at ASU. He is a participant
in the open source Image-guided Surgery Toolkit (IGSTK) and an industry consultant specializing in
enterprise software systems. Dr. Gary earned his PhD from ASU in 1999.
Jorge Marx Gmez studied computer engineering and industrial engineering at the University of
Applied Science of Berlin (Technische Fachhochschule). He was a lecturer and researcher at the Otto-
von-Guericke-Universitt Magdeburg where he also obtained a PhD degree in business information
systems with the work Computer-based Approaches to Forecast Returns of Scrapped Products to Re-
cycling. In 2004 he received his habilitation for the work Automated Environmental Reporting through
Material Flow Networks at the Otto-von-Guericke-Universitt Magdeburg. From 2002 till 2003 he was
a visiting professor for business informatics at the Technical University of Clausthal. In 2005 he became
a full professor of business information systems at the Carl von Ossietzky University Oldenburg. His
research interests include business information systems, e-Commerce, material flow management sys-
tems, Federated ERP-Systems, Data Warehousing, recycling program planning, disassembly planning
and control, simulation and neuro-fuzzy-systems.
Winnie Hua is a principal consultant in CTS Inc. She has more than 15-year project and consulting
experience in a broad range of leading-edge technologies. She holds a graduate degree in Computer Sci-
ence. As a solution architect/lead, she has led lifecycle design and development of large-scale eCommerce
systems on diverse platforms using a variety of cutting-edge technologies and unified/agile methodolo-
gies. She has initiated/participated in advanced research on various emerging web technologies. She is
a member of numerous professional associations, a frequent speaker in conferences/seminars, and also
a co-founder of Charlotte Architecture and Technology Symposium (CATS).
Roger Jack is president of Elegance Technologies, Inc. Jack has experience in project management,
About the Contributors
and creating reliable and robust interfaces and architectures. He was vice president of U.S. software op-
erations for NeST Technologies, where he managed many offshore projects. He has an MBA from Duke
Universitys Fuqua School of Business, and an MS in computer science from Villanova University.
Pankaj Kamthan has been teaching in academia and industry for several years. He has also been a
technical editor, participated in standards development, served on program committees of international
conferences, and is on the editorial board of the International Journal of Technology Enhanced Learning
and the International Journal of Teaching and Case Studies. His professional interests and experience
include knowledge representation, requirements engineering, and software quality.
Harry Koehnemann is an professor of practice for the Division of Computing Studies at Arizona
State University Polytechnic campus and a senior technical consultant for Rocket Gang. His interests
include distributed software systems, software process, and modeling software-intensive systems. Harry
has worked several years as a software architect and senior software developer on software systems
ranging from large enterprise applications to embedded control systems. Harry is also a trainer and
consultant in software tools and technologies, software modeling, and process. Harry received his PhD
in computer science from Arizona State University in 1994.
Clif Kussmaul is chief technology officer for Elegance Technologies, which develops software products
and provides product development services, and assistant professor of computer science at Muhlenberg
College. Formerly, he was senior member of technical staff at NeST Technologies. He has a PhD from
the University of California, Davis, an MS and MA from Dartmouth College, and a BS and BA from
Swarthmore College. His interests include agile development, virtual teams, and entrepreneurship.
Daniel Lbke earned his diploma degree in business informatics at the TU Clausthal in 2004. He
worked in software development and coaching. Currently, he is research assistant at the Software En-
gineering group at the Leibniz University Hannover. Areas of interests include modern approaches for
distributed applications like Mobile Agents and Web service technologies and the software engineering
paradigms behind them.
David Mills is an application developer and lecturer in mathematics and computer science at Stetson
University. He is pursuing the MS degree in computer science at the University of Memphis, where he
served for two years as an NSF Fellow on the Tri-P-LETS project. He holds both a BS degree in com-
puter science and a BA in digital arts from Stetson University. His research interests are in software
engineering, data mining, biotechnology, and computer science education.
Claus Pahl is a senior lecturer at Dublin City Universitys School of Computing, where he is the
leader of the Web and Software Engineering group. Claus has graduated from the Technical University
of Braunschweig and has obtained a PhD from the University of Dortmund. He has published more than
140 papers in various journals, books, conference, and workshop proceedings. He is on the editorial
board of the International Journal on E-Learning and is a regular reviewer for journals and conferences
in the area of Web and Software technologies and their applications. He is the principal investigator of
several basic and applied research projects in Web software engineering. Claus research interests cover
a broad spectrum from service- and component technologies in software engineering to infrastructure
About the Contributors
David Parsons is a senior lecturer and coordinator for the information technology major within the
Institute of Information and Mathematical Sciences at Massey University, Auckland, New Zealand.
He also acts as a knowledge engineer for Software Education Associates, providing Java training and
consultancy in New Zealand and Australia. His current research interests are in Web-based software
architectures, mobile learning and agile software development. Beginning his academic career in the
UK, he has worked as an educator/trainer, researcher and practitioner across Europe, North America
and Australasia. Prior to his arrival in New Zealand in 2003, he was director of emerging technologies
for international consultancy Valtech, based in the city of London, and before that that he was a prin-
cipal technologist for BEA Systems internal education. He has published widely on various aspects
of software design and development and is the author of successful text books on C++, Java and Web
application development.
Tony Shan is a renowned expert working in the computing field for 20+ years with extensive experi-
ence on architecture engineering, technology strategies, portfolio rationalization, and system designs in
a number of multi-million-dollar IT projects in a broad range of industries. He has initiated advanced
research on emerging computing technologies, resulting in an invention patent and several patent-pending
initiatives as well as many unified methodologies and platform models for adaptive enterprise system
development. He has played a principal strategist role in leading establishing IT strategies and architecture
blueprints, coupled with pragmatic technology roadmaps and enterprise architecture standards/policies,
for IT governance and portfolio/asset management in Fortune 100 international organizations. He serves
as a mentor/advisor on leading-edge technologies, architecture, and engineering in various technical
committees, and teaches a wide variety of courses as an adjunct professor and professional trainer. In
addition to dozens of top-notch technical publications, he has authored several books on asynchronous
Web services and heterogeneous business integration, and is working on multiple books on Internet
technologies. He is a member of numerous professional associations and honorary society, a frequent
speaker and chair/program committee member in key conferences/workshops, an editor/editorial advi-
sory board member of IT research journals & books, as well as a founder of Greater Charlotte Rational
User Group and Charlotte Architecture & Technology Symposium.
Nary Subramanian is currently an assistant professor of computer science in the computer science
department at the University of Texas at Tyler, Tyler, Texas. Earlier he served as the assistant professor
of computer engineering in the department of engineering at Hofstra University, New York. Dr. Subra-
manian received his PhD in computer science from the University of Texas at Dallas, an MSEE from
Louisiana State University, Baton Rouge, and another MSEE from Delhi University, Delhi, India. Dr.
Subramanian has about 15 years of experience in the industry in engineering, sales, and management.
He has been a co-chair of the International Workshop on System/Software Architectures for 5 years,
serves on the editorial board of the International Journal of Software Architectures, has been a guest-
editor for conference proceedings and special journal issues, and has served on the Program Committees
of several international conferences and workshops. His research interests include Web engineering,
software architecture, software engineering, software metrics, software security, non-functional require-
ments, expert systems, computational biology, home appliance control systems, information systems,
and legal systems. He has published more than 30 papers in journals, conferences, and workshops. Dr.
About the Contributors
Subramanian has also served as the judge for several high-school science fairs. He has received awards
from both the industry and the academia.
George M. Whitson III is currently a professor of computer science in the computer science depart-
ment of The University of Texas at Tyler, Tyler, Texas. Whitson has been teaching mathematics and
computer science for over 45 years at a wide variety of colleges and universities. Dr. Whitson received
his bachelors degree in applied mathematics at the University of Mississippi in 1961, his masters
degree in mathematics from the University of Massachusetts in 1963 and his PhD in mathematics,
with an emphasis in Group Theory, at the University of Illinois in 1974. Initially doing research group
theory Dr. Whitson migrated to computer science during the 70s working in numerical analysis, ap-
plications of the computer to abstract algebra, cryptography and denotational semantics. He has taught
most undergraduate and masters level courses in the Computer and Information Sciences. Dr. Whitson
has been at the University of Texas at Tyler for the past 24 years serving in a number of roles including
Coordinator of Computer Science, Lab Manager and professor. Dr. Whitsons current interests include
Web applications program development, the history of computing and computer security.
Yaoling Zhu is a postgraduate research student at the School of Computing at Dublin City University.
Yaoling is a graduate in Computer Science from the Zhengzhou Institute of Engineering, China. Yaoling
has extensive experience in the software sector, working for several years as a senior software engineer
for multinational companies such as Oracle, where he has been working on e-business outsourcing and
Web service technologies in Oracles European Development and Technology Centre. Yaolings research
focuses on data integration problems in Web-based software systems.
Index
Symbols C
-tier architecture patterns 123 cascading style sheets (CSS) 140, 150, 157, 189
cell identifier (CID) 240
A code prototyping 199
commercial off-the-shelf (COTS) 64
active server pages (ASP) 138, 212
common gateway interface (CGI) 138
agile software development 210
component-based software engineering 123
agile UP (AUP) 28
component-based software engineering (CBSE) 124
Alliance 71
component architecture 64
application service providers (ASP) 85, 186
component dependencies issues 126
architecture description languages (ADLs) 134
component quality of service 131
architecture development method (ADM) 55
computer information systems (CIS) 26
aspect architecture 64
computer science (CS) 26
Association for Project Management (APM) 255
conceptual architecture 60
asynchronous JavaScript and XML (Ajax) 141
confederation 72
augmented WebHelix process (AWH) 25, 27
configuration management (CM) 124
augmented WebHelix process (AWP) 31
connector construction, implementation of 92
augmented WebHelix process, application of 39
cost estimation, bBenchmarking, and risk assessment
automated teller machines (ATMs) 54
(COBRA) 30
B create, read, update, and delete (CRUD) 171
Copyright 2008, IGI Global, distributing in print or electronic forms without written permission of IGI Global is prohibited.
Index
I N
Index
O software confederations 72
software development life cycle (SDLC) 262, 263
object-relational impedance mismatch 170 software requirements specification (SRS) 161
object-relational mapping (ORM) 176 Static techniques 211
object relational (O/R) 147
offshoring 217 T
online inventory system (OIS) 166
OpenUP in Eclipse Process Framework (EPF) project test-driven development (TDD) 176, 213
54 The Open Group Architectural Framework (TOGAF)
outsourcing 217 54
ownership 73 traditional software life cycle models 160
P U
paper prototyping 197 unified modeling language (UML) 54
peer-to-peer philosophy 68 unit testing 208
Petri Nets 78 usability testing 208
physical architecture 61 user interface (UI) 191, 192
platform-specific model (PSM) 55 user performable 74
platform independent model (PIM) 55, 135
project evaluation framework (PEF)
W
25, 27, 30, 31, 35 waterfall model 160
project management 254 waterfall model, two major limitations 162
project management, and Web applications 254 Web-based applications 123
Project Management Institute (PMI) 255, 256 Web-enabled information systems 84
prototyping, importance of 193 Web-enabled software 84
prototyping, three broad classes of 194 Web application extensions (WAE) 28
Purdue Enterprise Reference Architecture (PERA) Web applications, testing 207, 211
55 Web development 219
Web development, prototyping in 191
R WebHelix 25
rational unified process (RUP) 28, 54, 132 WebHelix process (WH) 27, 29, 31
regression testing 208 Web services 69
release management (RM) 124 Web services description language (WSDL) 154
requirement analysis, specification, validation, and wireless abstraction library (WALL) 151, 157
planning (RSVP) 53, 58 wireless access protocol (WAP) 139
return-on-investment (ROI) 27, 28 wireless application protocol (WAP) 241
run-time generation 185 wireless applications, two streams of 241
wireless markup language (WML) 139
S Wireless mobile application development 239
wireless universal resource file (WURFL) 157
scenario-based architecture analysis method (SAAM) work breakdown structure (WBS) 263, 266
55 World Wide Web (WWW), development of 209
server page template model 145 World Wide Web Consortium (W3C) 145
service-oriented architecture (SOA) 68, 85, 123,
179 X
Service-oriented software systems (SOSS) 68
service orientation 68 xUnit family 214
short message service (SMS) 242
simple mail transfer protocol (SMTP) 242
Y
simple object access protocol (SOAP) 154 yet another workflow language (YAWL) 179
small and medium enterprises (SME) 186
0