, University of Western Sydney, Australia
, University of Western Sydney, Australia
Pages: pp. 14-18
Within a short period, the Internet and World Wide Web have become ubiquitous, surpassing all other technological developments in our history. They've also grown rapidly in their scope and extent of use, significantly affecting all aspects of our lives. Industries such as manufacturing, travel and hospitality, banking, education, and government are Web-enabled to improve and enhance their operations. E-commerce has expanded quickly, cutting across national boundaries. Even traditional legacy information and database systems have migrated to the Web. Advances in wireless technologies and Web-enabled appliances are triggering a new wave of mobile Web applications. As a result, we increasingly depend on a range of Web applications.
Now that many of us rely on Web-based systems and applications, they need to be reliable and perform well. To build these systems and applications, Web developers need a sound methodology, a disciplined and repeatable process, better development tools, and a set of good guidelines. The emerging field of Web engineering 1-3 fulfills these needs. It uses scientific, engineering, and management principles and systematic approaches to successfully develop, deploy, and maintain high-quality Web systems and applications. It aims to bring the current chaos in Web-based system development under control, minimize risks, and enhance Web site maintainability and quality.
Currently, we use the Web quite differently than the purpose for which it was originally conceived—sharing scientific information among a few scientists. The scope and complexity of current Web applications vary widely: from small-scale, short-lived services to large-scale enterprise applications distributed across the Internet and corporate intranets and extranets. Web-based applications can be grouped into the seven categories in Table 1, although a given application may belong to more than one category.
As Web applications have evolved, the demands placed on Web-based systems and the complexity of designing, developing, maintaining, and managing these systems have also increased significantly. For example, Web sites such as for the 2000 Sydney Olympics, 1998 Nagano Olympics, and Wimbledon received hundreds of thousands of hits per minute. They provided vast, dynamic information in multiple media formats (graphics, images, and video). Web site design for these and many other applications demand balance among information content, aesthetics, and performance. Table 2 highlights the characteristics of early, simple Web-based systems and current, advanced Web-based systems.
Although numerous Web-based systems are in use now, the manner in which they're developed, deployed, and managed raises serious concerns (see the sidebar, " Problems of Web-Based Systems Development: A Diagnosis"). Web developers often use ad hoc, hacker-type approaches, which lack rigor, systematic techniques, sound methodologies, and quality assurance.
The current problems surrounding Web-based system development partially result from the continuing advances in Internet and Web technologies, the increase in commercial Web applications, the frantic rush to be on the Web, and the need to quickly migrate legacy systems to Web environments.
Poorly developed Web-based applications that continue to expand have a high probability of low performance and/or failure. Recently, large Web-based systems have had an increasing number of failures (many of them weren't publicly acknowledged or documented). In certain classes of applications such as supply-chain management, tendering and procurement, financial services, and emerging digital hubs or marketplaces, a system failure can propagate broad-based problems across many functions, causing a major Web disaster. The cost of bad design, shabby development, poor performance, and/or lack of content management for Web-based applications have many serious consequences.
A recent survey on Web-based project development by the Cutter Consortium (reported in its Research Briefs, 7 Nov. 2000) highlighted problems plaguing large Web-based projects:
As a result, developers, users, and other stakeholders have become increasingly concerned about the manner in which complex Web-based systems are created as well as the level of system performance, quality, and integrity.
In 1998, we established Web engineering as a new discipline along with Yogesh Deshpande and Steve Hansen at the University of Western Sydney, Australia. During 1998-2000, we organized a series of five international workshops on Web engineering to address issues and review progress in this area (see http://aeims.uws.edu.au/WebEhome/). The university also offers postgraduate programs in Web engineering and design.
Web developers, clients, government agencies, users, academics, and researchers have increasingly become interested in Web engineering. In addition, this new field has attracted professionals from other related disciplines such as software engineering, 2,4 distributed systems, computer science, and information retrieval.
Web-based systems change and grow rapidly in their requirements, contents, and functionality during their life cycle—much more than what we'd normally encounter in traditional software, information, and engineering systems. Web-based system development is a continuous activity without specific releases as with conventional software. Thus, a Web-based system is like a garden—it continues to evolve and grow.
A sound infrastructure must be in place to support the growth of Web-based systems in a controlled, but flexible and consistent manner. Web engineering provides such an infrastructure and lets creativity and personalization blossom within the given framework.
Contrary to the perception of some software developers and software engineering professionals, Web engineering isn't a clone of software engineering although both involve programming and software development.
While Web engineering adopts and encompasses many software engineering principles, it incorporates many new approaches, methodologies, tools, techniques, and guidelines to meet the unique requirements of Web-based systems. Developing Web-based systems is significantly different from traditional software development and poses many additional challenges. There are subtle differences in the nature and life cycle of Web-based and software systems and the way in which they're developed and maintained. Web development is a mixture between print publishing and software development, between marketing and computing, between internal communications and external relations, and between art and technology. 5
Building a complex Web-based system calls for knowledge and expertise from many different disciplines and requires a team of diverse people with expertise in different areas. As a result, Web engineering is multidisciplinary and encompasses contributions from areas such as systems analysis and design; software engineering; hypermedia and hypertext engineering; requirements engineering; human-computer interaction; user interface development; information engineering; information indexing and retrieval; testing, modeling, and simulation; project management; and graphic design and presentation.
Successful Web-based system development and deployment is a process, not just an event as currently perceived and practiced by many developers and academics.
Web engineering is a holistic approach, and it deals with all aspects of Web-based systems development, starting from conception and development to implementation, performance evaluation, and continual maintenance. Building and deploying a Web-based system involves multiple, iterative steps. Most Web-based systems continuously evolve to keep the information current and to meet user needs.
Web engineering represents a proactive approach to creating Web applications. Web engineering methodologies have been successfully applied in a number of Web applications (for example, the ABC Internet College, 2000 Sydney Olympics, 1998 Nagano Winter Olympics, Vienna International Festival, and many more). These and other success stories are encouraging Web developers to adopt Web engineering principles.
We're pleased to present you with two special issues on Web engineering—part 1 (this issue) and part 2 (which will appear in the April-June 2001 edition of IEEE MultiMedia). These special issues collectively provide a broad overview of the emerging discipline of Web engineering.
Web-based systems are living systems. They rapidly evolve in their functionality, scope, content, and use. Reusing previously developed components is an effective way of dealing with this evolution. Schwabe et al. present frameworks for Web design that enables reuse in Web applications. They focus on design reuse rather than code or component reuse and discuss how to implement these frameworks in different Web platforms.
To derive information on the fly, most Web applications must be integrated with back-end systems such as heterogeneous databases and legacy information systems. Gosechka and Schranz describe object-oriented approaches based on the Unified Modeling Language (UML), common object request broker architecture (Corba), and Extensible Markup Language (XML) for Web application design and content creation. They also present case studies highlighting the successful application of their proposed solutions.
Web-based distance education is becoming increasingly popular. Simulation is a useful tool to strengthen the learning process and to answer what-if questions. Thus, we need tools and procedures to integrate interactive simulations with Web documents. de Lara and Alfonseca present authoring tools and procedures for developing different kinds of Web documents enriched with visual interactive simulation.
One of the major issues facing Web development is the lack of appropriate metrics for estimating the effort and time required for developing and deploying Web sites. The article on Web metrics by Mendes et al. focuses on effort prediction for the design and authoring process, which is an essential component of Web project management.
As many of us are aware, managing and maintaining Web applications and services is challenging. Web engineering offers many approaches to successfully meet these challenges. In the last article, Kirda et al. present a case study that applies the Web engineering tools and approaches they developed. They share their experiences in building and maintaining Web applications for the Vienna International Festival and summarize the lessons learned in managing interactive Web applications.
Part 2 of the Web engineering special issue will further explore Web application development and pick up where part 1 leaves off. It will include valuable findings of a survey on how multimedia and Web-based applications are being developed in practice, the conceptual modeling of Web applications, and perspectives on Web engineering.
We hope you'll enjoy these special issues. We believe the articles in these issues will provide a good overview of various aspects of Web engineering. We also hope they'll motivate you to follow Web engineering principles and practices during the entire life cycle of Web applications and further advance the discipline through research and education.
Most Web developers pay little attention to requirements elicitation and analysis, development methodologies and process, quality, performance evaluation, configuration and project management, and maintainability and scalability. Furthermore, application development heavily relies on the knowledge and experience of individual (or a small group of) developers and their individual development practices rather than standard practices. These systems also lack proper testing and documentation.
The Web's legacy as an information medium rather than an application medium is another problem. Many consider Web development primarily an authoring problem rather than an application development problem. They often get carried away by the myth that "Web development is an art" and it deals with "media manipulation and presentation." Sure, like the process of designing and constructing buildings, Web development has an important artistic side. However, Web developers need to follow some discipline, as in science and engineering.
The complexity of Web-based applications has also grown significantly—from information dissemination (consisting of simple text and images to image maps, forms, Common Gateway Interface, applets, scripts, and style sheets) to online transactions, enterprise-wide planning and scheduling systems, Web-based collaborative work environments, and so on. The complexity of many of these Web-based systems is often deceptive.
Several attributes of quality Web-based systems such as ease of navigation, accessibility, scalability, maintainability, usability, compatibility and interoperability, and security and reliability aren't given the due consideration they deserve during development. Many Web applications also fail to address cultural, privacy, moral, and legal aspects.
Web-based systems development isn't a one-time event, as practiced by many; it's a process with a long life cycle.
We've listed some useful resources on Web engineering such as books, special issues, articles, conference proceedings, and Web sites.