Web Engineering: Managing the Complexity of Web Systems Development Professor Athula Ginige University of Western Sydney Locked Bag 1797, Penrith South DC 1797 Australia +61 2 9685 9556
[email protected] ABSTRACT In the last few years our knowledge about how to develop large complex web systems have grown rapidly. In this paper we attempt to arrange this knowledge into a schema based on how our knowledge gets matured as we get more experience in developing large complex web systems. Based on this we propose a systematic approach to developing large complex web systems. We call this body of knowledge consisting of technologies, methodologies and standards that enable us to successfully develop large complex web systems Web Engineering. Categories and Subject Descriptors H [Information Systems], H.3.4 [Systems and Software] General Terms Design, Keywords Web Engineering, Process Model, Product Model, Web site Design, Web Site construction, Web page Design, Web Page Construction, Web System Design
1
WHAT IS WEB ENGINEERING?
In the last few years our knowledge about how to develop large complex web systems have grown rapidly. We are now beginning to appreciate the complexities involved in developing large Web Systems. To successfully develop a large Web System we need a team of people with wide ranging knowledge and skills. We need Graphic Designers to develop the look and feel. We need people with library science background to organize the information, and develop navigation and search mechanisms. We need database designers to develop the
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. SEKE '02, July 15-19, 2002, Ischia, Italy. Copyright 2002 ACM 1-58113-556-4/02/0700...$5.00.
optimum way to store the information that is to be accessed through the web system, programmers to develop the code, network security experts to look at required security aspects, computer experts to decide on the appropriate hardware architecture for the Web system based on performance requirements. We also need web architects who can come up with an overall architecture for the Web system that shows how individual parts are put together to create the web system and people who has the knowledge to plan a web development project and manage it. It is useful to organise the knowledge that we have gained in the last few years about how to develop a complex web system in to some schema. This will enable someone who wants to develop a large complex web system to identify the existing knowledge and make optimum use of this in developing the new web system. Being able to use proven approaches the developers will be able to ensure that the end product meets the intended purpose and also it can be developed within an agreed time and budget. Also when we try to organise the current knowledge into some schema it will highlight any gaps in our knowledge. The need to have a well-understood methodology to develop these large complex web systems becomes paramount as more and more organisations are beginning to use the Web as a major business tool. Today the Web is extensively used as a major means of communication with the external world as well as within an organisation and also as a tool to assist in carrying out its business processes in a more effective way. Many organizations and developers have successfully developed large, high-performance Web sites and applications, but others have failed or are facing the possibility of major failures. A recent survey on Web-based application development by the Cutter Consortium [1] highlighted the problems plaguing large Web-based projects: •
84% of the time delivered systems didn’t meet business needs.
•
53% of the time delivered systems didn’t have the required functionality.
•
79% of the time schedule delays plagued the projects.
•
63% of the time projects exceeded the budget.
The primary causes of Web-systems failures are a flawed design and development process, and poor management of development efforts. The way we address these concerns is critical to realizing the Web’s full potential.
- SEKE '02 - 721 -
The knowledge that we gained over many centuries as to how to build bridges, sky-scrapes, roads, irrigation systems, motor cars, aeroplanes, global communication systems and in more recent times large software applications has now been consolidated as Engineering disciplines. Some examples are Civil Engineering, Mechanical Engineering, Telecommunication Engineering and Software Engineering. The American Heritage® Dictionary of the English Language, (Third Edition) defines engineering as: The application of scientific and mathematical principles to practical ends such as the design, manufacture, and operation of efficient and economical structures, machines, processes, and systems. The researchers who first proposed the need for an Engineering approach for developing large complex web systems defined Web Engineering as follows [2]. Web Engineering deals with the establishment and use of sound scientific, engineering and management principles, disciplined and systematic approaches to the successful development, deployment and maintenance of high quality Web-based systems and applications.
2
DO WE NEED AN ENGINEERING APPROACH TO DEVELOPING LARGE COMPLEX WEB SYSTEMS
In a new and emerging discipline such as development of large complex Web systems, it is common to learn through experience. Development of large-scale software also went through a similar phase in the early 70s. Lack of suitable process models and application architectures gave rise to a software crisis [3]. Most large-scale software that was developed either did not meet the specification, did not work properly, was over budget and could not be delivered within the agreed time frame. To manage the complexity of these software systems people developed new process models, application architectures and development methodologies. This was the birth of Software Engineering, Requirements Engineering, Object Oriented development techniques etc. Now that we are in the process of developing a new discipline “Web Engineering” we have a lot to learn from Software Engineering experience. Some time ago an interesting debate “Can Internet-Based applications be Engineered?” took place [4]. Some argued that Web Engineering is very similar to Software Engineering. There are many similarities between Software Engineering and Web Engineering; but we also have to acknowledge the differences. Users are an integral part of a Web system. Thus, when developing any Web system it is essential to have appropriate steps built into the development process that will cater for user related issues. Also the information content and the functions of a Web site tend to evolve while being developed much more than software applications. Often if a web system is developed to address a business problem, the introduction of a web system as a solution changes the original problem. Thus this requires further changes to the web system as users beginning to realise what can be done with a Web system they will ask for new features and functionalities. Further the user interface of a Web site needs to have much stronger aesthetic appeal to the intended user group compared to the traditional form based user interface
that we are accustomed to in many business software applications. The two key attributes of Web systems that distinguish their development from traditional software development are the growth of their requirements and the continual change in their information content. These two attributes mandate that Web systems are easily scalable and maintainable, and thereby they impact the way we build these systems. Web systems need to be designed and built for scalability and maintainability; these features can’t be added later. Successfully building, implementing and maintaining Web systems depend on how well we address the requirements of scalability and maintainability, among other needs. Furthermore, a Web system needs to meet the needs of many types of its stakeholders – diverse range of system’s users, persons who maintain the system, the organisation that need the system, and also those who fund the system development. This makes the design and development of the system further complex and difficult. In addition, development of Web system calls for knowledge and expertise from many different disciplines and requires a team of diverse group of people with expertise in different areas [5]. Thus whatever the development methodology we are going to use, it needs to have specific activities that will take into account the scalability and maintainability requirements, space for creativity that will enhance the aesthetic appeal of the user interface and the ability to respond to continuously changing user requirements. If we can come with an engineering approach that can accommodate all these then we can Engineer Web sites.
3
WHAT KNOWLEDGE CONSTITUTES WEB ENGINEERING?
There are many ways to classify the knowledge that Web Engineering should encompass. One way would be to organise this into Technologies, Methodologies, Standards, Protocols, and Project planning and management techniques. We found looking at how we learn to develop Web systems gives more interesting insights to what knowledge should constitute Web Engineering. When we gain new knowledge we should be able to do something with it. Conversely if we need to do something new we go and find the necessary knowledge for doing it. Thus trying to identify starting from a simple web page to how someone progresses making more complex web systems will provide a good overview of the knowledge that Web Engineering should encompass. After we become familiar with how to use the Web and the concept of a ULR we often start constructing our first web page. For this we need to know about “Web Page Construction”. To construct a Web page we should know about appropriate technologies, HTML and HTTP standards and a tool that can be used to construct the Web pages. A basic tool would be a text editor to write the necessary HTML code. If we have access to a more sophisticated tools such as FrontPage or Dreamweaver then we don’t need to know HTML in depth as this knowledge is now embedded in to the tool.
- SEKE '02 - 722 -
Though we can now construct a web page it will not be aesthetically pleasing, as we have still not learned about how to design a web page. Thus next stage is to learn about “Web page design”. Now we will learn about the colour schemes and fonts, the way eye traverse web pages to guide us how we should lay out the contents on a Web page, the magical number 7±2 principle and the KISS principle etc. Also we might get introduced to some of the legal and ethical issues at this stage. It is very easy to copy other peoples images and animation to include into your web page. We need to know what can be copied and what we should not copy. Once you learn how to design and create web pages the next attempt is to develop a web site. Often the first effort is to design the Web site, then design the individual pages in the web site and construct these pages. For this we need to learn about “Web Site Design”. Now we are beginning to learn about user requirement analysis and specification. We need to know about the stakeholders, what their requirements are, who is going to use this web site and for what purpose. We need to decide what information should be on the Web site, what is the best way to structure this information so as to make it easy for the user to find the information they are looking for, what navigation structure is required etc. Sometimes we use “storyboards” to show the proposed structure. After a while we find, constructing each and every page is a laborious task specially if the application that we are trying to develop has many similar pages such as an electronic parts catalogue. Further even if we succeed in creating all the pages maintaining these became difficult if not impossible. Now we start to learn about “Web Site Construction”. We learn how we can store the catalogue information in a database and dynamically generate many similar looking catalogue pages. We learn that many things that we knew about database design can be used in Web site construction. We will also learn that relational databases are not the only way to store the information but there are other approaches such as XML repositories that we can use. If this is an e commerce type-site we will learn about secure transactions and payment gateways. After we gain the knowledge about web site construction we can develop fairly large and complex web systems. After a while information in these web systems change. If we have not thought about how to mange information and designed the appropriate infrastructure to manage the information, maintaining these web systems becomes a problem. Now we learn design for maintainability and scalability is not some thing that we can add later on but has to be incorporated into the design from the very beginning. We now have to learn about “Web System Design”. This will include development of policies to manage information within the organisation and back-end systems to assist in implementing these information management policies. Also we need to address overall performance issues especially if we are expecting tens of thousands of simultaneous users. If the system down time is going to cost lot of money to the organisation due to the lost business we need to develop web system architectures with build in redundancies.
different way to some one who only knows about web site design or web site construction. Thus the next level of maturity we will reach in terms of complex web systems development is proper “Web Project Planning and Management”. The Figure 1 shows how our knowledge about Web system development evolves with time. RESEARCH WEB PROJECT PLANING & MANAGEMENT WEB SYSTEM DESIGN WEB SITE CONSTRUCTION WEB SITE DESIGN WEB PAGE DESIGN WEB PAGE CONSTRUCTION
Figure 1:Web System Development Maturity Model There is plenty of literature about Web page construction, Web page design, Web Site design and also Web Site construction. But there is very little published information about Web System design, and Web project planning and management as now only people are beginning to appreciate the challenges of developing scalable and maintainable Web systems. Another very important thing to remember when developing a Web system for an organisation is that at the start of the project we cannot get a full set of specifications. As the project progress there will be requests for more and more functionality to be added on to the system or to put more information on the Web.
4
WEB SYSTEM DESIGN
Building and deploying a Web system is a multi-step process, in which many steps influence one another and are iterative. As we discussed in the previous sections, most Web systems are bound to continuously evolve and change, to meet the changing/growing needs of the organisation. Also, development of a large complex Web system requires knowledge and expertise from many different disciplines. Thus we need a team involving a diverse group of people with expertise in different areas. As the system itself is complex, the process of building and deploying a successful large Web system meeting diverse (and possibly conflicting) needs becomes even more complex and challenging. We need a sound process for building Web systems that:
As you can see the way we approach how we develop a web system changes as we get more and more experience in developing and maintaining web systems. A person with experience in developing and maintaining large web system will approach the development of a new web system in a very
- SEKE '02 - 723 -
Assists us in capturing the changing requirements and managing the complexity of the development process, Assists in the integration of the know-how from various disciplines, Facilitates the communication among various members involved in the development process - the development team, stakeholders and end-users -, and Supports the continuous evolution and maintenance and management of the content.
Table 1: Seven Essential Steps for Successful Web System Development 1.
Understanding the overall function and operational environment of the systems including the corporate/business objectives and requirements and clearly identifying the stakeholders. The stakeholders could include people who want the Web site to be developed and deployed, who fund the development and the main users of the Web site. There could be some overlap between these groups.
2.
Identifying and specifying both technical and non-technical requirements of the stakeholders and the overall system.
3.
Developing an appropriate architecture for the Web-based system that meets those requirements.
4.
Satisfactorily addressing the non-technical issues, such as revised/updated business processes, organisational and management policies, human resources development, and legal, cultural and social aspects.
5.
Identifying sub-projects or sub-processes to implement the architecture. If the sub projects are too complex to manage, they can be further divided until we end up with a set of manageable tasks.
6.
Developing and implementing the sub-projects. Incorporating appropriate and effective mechanisms to manage the evolution and change/maintenance. When the Web site is evolving, the overall process or some parts of this process can be repeated as required.
5
WEB PROJECT PLANNING AND MANAGEMENT
Once we understand the various issues that need to be addressed when developing a Web system we can then develop a process that will address all these issues. We have been using a development process for developing Web systems as shown in Figure 2.
Based on the experience we gained from building and deploying many very large Web-based systems [6] and our studies, we strongly recommend to incorporate in the overall development process the seven essential steps (in the order) highlighted in Table 1. Main reason for major failures of most Web-based systems is that some of these essential steps were neglected or only given a cursory treatment. This knowledge related to Web System Development need to be incorporated into web project planning and management.
- SEKE '02 - 724 -
Product Model
Process Model Sub Project Plans
Web Site / Environment Development Web Site / Environment Maintenance
Figure 2:Development Process for Web Systems
Quality Control & Assurance
Based on our experience, we would like to emphasize that introduction of a Web information or electronic-business (ebusiness) system in an organisation causes a paradigm shift and can significantly impact on the work and the way various business processes are carried out. To successfully manage the impact and transition, the ultimate internal users of the system need to be retrained to enhance their understanding and use of Web and web-related technologies and to successfully cope with the transition. Other factors, including reengineering of business processes, organizational policy, changes to recruitment and human resources policies in an organisation also contribute to successful deployment and use of the Web systems.
Context Analysis
Documentation
Another important aspect is the deployment of Web systems in their intended operational environment. One can develop a technically best Web site, but if it is not properly used for various reasons, it is a major failure. Often a Web system deployed in an organisation will have a front end and a back end. Front end is for the public to access information about the organization. We have no control of who will be visiting the front-end web site. The back end is for employees of the organisation to manage and up-date the information in the Web system. Our experience is often the employees need some training and also it is necessary to build the various information management tasks into their job descriptions.
Project Management
7.
5.1
Context Analysis
5.2
The first essential step in developing a Web system is context analysis. In this, we elicit and understand the major objectives and corporate requirements of the system, gather information about the operational/application environment and identify the stakeholders. Then, based on these needs, we decide on both the technical and non-technical requirements, which can be classified into broader requirements (such as what the system should do) and specific requirements (such as security, access control and performance). Within the broader context of how the Web system will be used, the developers have to understand the specific needs associated with scalability, maintainability, availability and performance of the system. For instance, if the information content and the functions offered by the system are going to evolve considerably, we have to design the system in such a way that it is scalable. But, if the information on the Web site changes frequently and if there is a need to keep the information current, then we need to design the system in a manner that facilitate easy maintainability of information. Instead, if it is critical to ensure very high availability and catering for very high peak or uncertain demand, we need to design the Web site to run on multiple servers with load balancing and other performance enhancement mechanisms.
Product Model
Based on the broader requirements and specific requirements, we need to develop a Product Model, which shows how various components are linked together to meet those requirements. The product model should include the overall physical system architecture (the network and the various servers - web servers, application servers, database servers, etc), application architecture (a map of the various information modules and the functions available) and the software architecture (various software and database modules required to implement the application architecture). Appropriate system architecture is very important especially if performance and security of the Web system are critical factors. For example, when developing the web site for 1998 Olympic Winter Games in Nagano, Japan meeting the performance requirement was a critical factor [7]. Hence, a network and server architecture that includes redundant hardware, load balancing, Web server acceleration, and efficient management of dynamic data was designed and implemented. If the performance and security is not a critical issue, one can use a standard server architecture connected to the Internet, without the need for special design effort.
The features such as design for scalability, maintainability and performance need to be built into the initial system architecture, as it is impossible or very hard to add these features if the initial architecture does not support it.
The application architecture, also called as product model, shows a map of various information and functional modules. Information modules can provide the same information to all the users or customised information to each user. Examples of functional modules are a login page, shopping trolley etc that will capture user input and process it.
For example, let us consider an E-business Web site that gives product information. Information about a product (colour, price and availability) may appear on many different pages and this information can change frequently. If this Web site was designed as static HTML (hypertext mark-up language) pages, then every time the product information changes one has to change each and every page that contains this information. But in reality, very often changes are made only in some pages and not in all, and hence the information the system provides on different pages will become inconsistent.
Figure 3 is an example of the application architecture developed for the ABC Internet College (http://www.abccollege.com) which provides students online personalised tutoring. The system dynamically generates learning materials based on student’s past performance. When a student logs in, learning activities appropriate for that day are given on the student’s personalised home page. Based on their past performance, the student is directed to take the next standard test module, a personalised revision paper or some practice questions in an area in which the student did not perform well in the past. The system
Instead, if the information about a product is stored in a central database and the various web pages that contain this information is dynamically created by extracting the relevant information from this database, then we only need to change information in one place to keep the Web site current. Such a Web site will have a completely different architecture to a Web site that consist of only static HTML pages. If a Web site is databasedriven then we also can have a back-end system that will allow an authorised person, who need not be skilled in Web page development, to make changes easily through a form based interface. Thus, context analysis is an important and significant first step in development of a system since we identify in this stage the broader requirements such as purpose of the Web site as well as specific requirements such as maintainability, scalability, performance, quality control mechanism for information that will be placed on the Web site and security. It provides us with sufficient information to decide on the broader architecture or Product Model of the system. More detailed analysis of stakeholder requirements is carried out later during the Web Site development phase.
Login page
Performance Record
Dynamically created student home page based on past performance
Standard Test Modules
Analyse Student performance at a micro level, store this information
Personalised Revision Papers
Practice Papers
Provide immediate feedback on the test and where appropriate the solutions to questions
Figure 3: Application architecture of the ABC Internet College Personalised Tutoring system
- SEKE '02 - 725 -
has been successfully operational for the last four years, easily accommodating upgrades and enhancements. Once the application architecture is designed, it needs to be mapped into a software architecture as shown in figure 4 displaying various software and database modules required to accomplish the required functionality. The specific requirements associated with scalability, maintainability and quality control of information determine the appropriate software architecture. Table 2 highlights the specific requirements and means fulfilling each requirement. The product model will help us in deciding what processes we need to follow in order to develop the Web system and in estimation of development time and cost.
Web site admin and information maintenance staff
forms
5.3
Process Model
The implementation of the system based on the product model, calls for a set of activities, which include a detailed analysis of requirements, design, testing and deployment. We also need to carry out a set of activities to address the non-technical issues identified in context analysis. A process model specifies a set of sub-projects or sub-processes that need to be carried out to develop and implement the overall system. For example the development of the front-end web site and the back-end web site can be considered as two sub projects. This enables parallel development reducing the over all development time.
web pages
Web Server
Users
Cgi or ISAPI
Scripts
ODBC Interface
Web site database and caching database
HTML, or XML files or other file formats
Figure 4: Software architecture
Table 2: Means of Fulfilling the Requirements Requirement
Means of Fulfillment
Corporate look and feel that can be changed
Create pages using templates
Ensure information consistency
Information should be stored in a single place (in a database or an XML file) without duplication of information.
Need for information update and maintenance
Provide a back-end system to edit information in data repository
Ability to easily add new pages
Navigation links need to be dynamically generated
Decentralised administration
Provide a multiuser login system to access back-end. Needs a user management system, and ability to assign specific functions and data sets to content managers
Quality control mechanism for information
Web robot module and metadata standard for Web pages.
- SEKE '02 - 726 -
To carry out some of these sub-projects we can adopt various development models such as the waterfall model, the spiral model or the rapid prototyping model from the Software Engineering discipline [8]. We can design appropriate process models to suit different types of development and development issues, based on the type of application. For example, a model incorporating iterative refinement of an initial prototype may be best suited to small-scale trial applications. A competent Web engineer should be able to use the most appropriate model for the given problem, adapting it in a way that takes into account the application being developed and the limitations and strengths of the model. Large Web systems use server side programming to dynamically create web pages from information stored in databases. Various interactive functions are also implemented in software. Thus we need a process to develop the content structure, contents, the screen layout and the navigation mechanism. Also we need a process to develop software that will be used to deliver the content as well as provide various functions to assist in maintenance and quality assurance of this content. In a large, complex Web application development, the persons who develop the content generally come from journalism, library science, marketing or public relations background. The people who develop the screen layout come from a visual arts and graphic design background. The software developers come from computing, software and IT background. Thus it is important to make sure that the various processes enable these three groups to work and communicate effectively.
5.4
Sub Project Planning
The next phase is to develop a project plan for each of the sub projects identified in the process model. These project plans should list the tasks that need to be done, a timeline and the resource requirements. There are well-developed techniques for project planning in conventional engineering and we can use these to develop these project plans. Based on the project plan, development activities can take place. In order to successfully plan various sub projects one needs to know what tasks are required to carry out, people with what type of skills are required to carry out these tasks, and the time estimates. Often the development of front-end Web site and the back-end web site are done as two sub projects. The coupling of the front-end web site and the back-end web site will be via the data repository as shown in Figure 4. In order to properly plan the development of these Web sites one should know how to develop Web sites.
5.5
Based on our experience, we have developed and refined a twostage approach to web site development; designing the web site and construction of the web site (Figure 5). This approach decouples the creative design phase often done by Graphic designers from construction phase which is often done by software developers. As often, content developers and software developers come from different backgrounds, this de-coupling is very advantageous. Specification Design Prototype
Evaluate Design for Production
Develop the Process
Web Site Construction
Test Process Populate Contents
Figure 5:Two-stage approach to Design and Construction of Web Sites
5.5.1
Web Site Design
The web site design process starts with a detailed analysis of requirements and development of appropriate specification. A prototype is constructed from the design which usually contains a set of sample pages that can be used for evaluating the screen layout and navigation among different pages. Based on the feedback, either the design or the specifications can get changed. One can iterate through this process until stakeholders are happy with the screen layout and the navigation structure. The creative part of this process is the design. Figure 6 shows various inputs to the design process and the typical outcomes from this process. The stakeholder requirements are given as detailed specification that was developed at the start of the development process. Designer should also take into account non-technical aspects such as legal, moral and cultural issues that are relevant to the environment in which this application will be used.
Design Process Stakeholder Experience Requirements
Web Site Development
Most Web site development consists of designing the web site and constructing the web site to deliver the content and the required functionality. Early Web development activities were mainly focused on development of content, its presentation and navigation. The information was stored in a server as a set of static HTML pages and the same information was presented to all the users. Now, with the growing number of Web based business applications, there is a need to provide customised information to users and also to get various information from the users and process them.
Web Site Design
Technology Issues
Design Process
Information Information Structure access methods
- SEKE '02 - 727 -
Non Technical Issues Cognitive Issues
Look and Feel
Guidelines for Content Development
Figure 6: Web Site Design Process
Also knowledge of user’s cognitive issues is important to develop a good design [9]. The designer should know how users would perceive and comprehend information and how the fonts, colour and layout contribute towards enhancing comprehension. Available technology will determine what is feasible. For example, use of very large graphics or including video may not be possible due to limitations of the bandwidth. It is important for the designers to be aware of these technology issues. The outcomes of the design process consist of information structure, information access methods, various screen layouts or look-and-feel and guidelines for new content development or processing legacy material if the content is derived from a legacy database or other systems. Irrespective of how the contents are derived, we need to create a structure to organise this content. The content structure depends on factors such as nature of the application, nature of the information and what technology will be used to store the contents. This will also determine the granularity of information that can be accessed. For instance, we can store the contents as HTML files or as XML files or in a database. If we are going to store the contents using a database or using XML technology, we can sub-divide the contents into small sub sections (such as title, sub-headings, document author, key words etc) and provide access to the contents based on these subsections. If the decision was to store the contents as set of HTML files, we cannot provide this fine granularity in terms of information access, as HTML is not a content markup language, but a presentation markup language. Once we develop a structure for organising the information, we have to decide on navigation mechanisms that need to be provided to access this content. Access to information can be provided by hyperlinks or search facility. Based on the information structure, we need to develop sample Web pages to display each type of information. For example, if the application is a product catalogue, we need to develop the Homepage and a sample page for each product type. These sample pages will act as templates for creating other product pages which will be done by application software in response to a user request when web site is operational. We can use tools such as Frontpage or Dreamwever for developing these sample pages and the prototype Web site. By developing a prototype web site based on sample pages we can test the proposed navigation mechanisms for its ease of use and other features. If new content needs to be developed, it is better to come up with guidelines to assist the content development process as part of the design process. If content is drawn from a legacy system we need to develop a process to convert the legacy information to the required structure and format. The output of the design process and the original specifications that were developed at the start of the Web site development process will form the input to the next stage – the web site construction process.
5.5.2
Web Site Construction
Now, almost every Web server provides a suitable interface to communicate and to make use of external software modules. Common Gateway Interface (CGI) was one of the early
standards that was adopted for communication between the web server and the external software modules. Today, there are various implementations of this concept in the form of Application Program Interfaces (API) such as ISAPI used by the Microsoft IIS Web server. Except for simple systems that are based on HTML pages, every other system makes use of external software modules to provide the interactivity and customisation of information provided to the user. A simple example is processing the information a user submits via a form. These software modules specifically developed for these applications are known as application software. Use of application software enables us to develop maintainable and scalable Web sites, in addition to making the Web site interactive. The basic principle of building a maintainable web site is not to store data that is going to change with time at multiple locations. If a data element needs to appear on different web pages (for example name and telephone number of a Professor that should appear in every subject he/she teaches) this information has to be extracted from a single location where it is stored and then presented to the user. Thus, when the data changes (for example the Professor’s telephone number) it needs to be changed only in one location. We can further enhance the maintainability by developing a back-end Web site that will enable authorised people (based on a user ID and a password) to make these changes through a set of forms. This type of approach will enable us to have a decentralised maintenance approach where different people can have responsibility for maintaining different information on the Web Site. To facilitate scalability, a Web system needs to be built using a component- based architecture and the navigational links and buttons need to be dynamically created. Use of componentbased architecture enables as to easily add new functions or information modules, by simply adding these functions as new components. As we emphasised earlier, it is very important to think about scalability and maintainability issues right up front and the system needs to be designed for scalability and maintainability. These features cannot easily be added later on. That is the reason why we emphasise in our methodology to decide application software architecture as part of the Product Model. This application software architecture is going to impact on the processes that are going to be used for developing the system and this in turn will impact on the development time and cost. The application software architecture shown in Figure 4 is suitable for a scalable and maintainable web site. It can also support a back-end web site if it is necessary to implement a decentralised maintenance scheme. Typical application software architecture will consist of set of routines or scripts that will communicate with the Web server via a Common Gateway Interface or Application Program Interface. This application software can be written using a scripting language such as Perl or ASP. Often these application software programs have to store and extract information from a data repository. This data repository can be a relational or object oriented database or set of files where information is structured using eXtended Markup Language (XML). If the data
- SEKE '02 - 728 -
repository is constructed using a relational database we can use ODBC (open database connectivity) as the interface between the application software and the database.
5.6
Web Site Maintenance
Once the Web site is developed and commissioned, we enter then into the maintenance phase. There are three major types of maintenance: •
Content maintenance
•
Software maintenance, and
•
Hardware and network maintenance.
The decision on how the content will be maintained is taken at the context analysis stage. Thus what is required at the maintenance phase is to implement the appropriate content maintenance procedures. The software maintenance can be sub-divided into four categories: corrective, preventive, perfective and adaptive maintenance. Often, when the system is in operation, various bugs in software can surface. Thus we need to implement a set of procedures to correct these bugs and document the changes that were made. This is known as corrective maintenance. Also, we invariably come across errors or omissions in software, especially in the business logic before a problem occurs. Rectifying these is preventive maintenance. Though the system may be functioning flawlessly, we may come up with a better way to implement a function, and the process of carrying out this modification is known as perfective maintenance. Also, from time to time, the requirements can change marginally such as how the commission or tax is calculated. Thus we need to carry out adaptive maintenance to adapt the system for new business rules. It is useful to break the software maintenance activities into these four categories, as this will enable us to prioritize the activities. For example, we need to immediately carry out any corrective maintenance. Once a problem is discovered preventive maintenance needs to be carried out as soon as possible. The other two we can schedule to carry out at a convenient time. We also need to periodically maintain the hardware and the network, and fix the failures as and when they surface.
5.7
Project Management, Documentation and, Quality Control and Assurance
These functions are spread throughout the lifecycle of the system. There are well-established methodologies and techniques to perform these tasks. Proven techniques used in systems engineering can be used with minor changes for development of large and complex web sites.
6
with more emphasis on performance, correctness and availability of Web systems, as we will increasingly dependent on Web systems in a number of critical applications, where the consequences and impact of errors and failures could be serious. Further, as systems become larger, a large team of people with different types and levels of skills would be required, necessitating distributed collaborative development. As we try to exploit some of the yet unrealised potentials of the Internet and Web, there will be many new challenges and problems, and hopefully new approaches and directions would be developed to meet the challenges and solve the problems we may face on our mission to build a better cyberspace for us. Like the Web, which is dynamic and open, Web engineering needs to evolve rapidly, adapting to the changes and responding to the newer needs. Successfully convincing developers of Web applications about the need for and the benefits of Web engineering approaches, which if implemented thoughtfully, will go a long way to reduce the complexity and lead to successful development.
7
REFERENCES
1
Epner, M., Poor Project Management Number-One Problem of Outsourced E-Projects, Research Briefs, Cutter Consortium, 7 November 2000.
2
WebE (Web Engineering) http://aeims.uws.edu.au/WebEhome/
3
Gibbs, W., Software’s chronic crisis, Scientific American, September 1994.
4
Pressman, R.S., Can Internet-Based Applications be Engineered?, IEEE Software, September/October 1998.
5
Ginige, A., Murugesan S., Web Engineering: A Methodology for Developing Scalable, Maintainable Web Applications, Cutter IT Journal, Vol. 14, No. 7, July 2001.
6
Ginige, A., Web Engineering in Action, Web Engineering, Lecture Notes in Computer Science – Hot Topics, Springer Verlag, Nov 2000.
7
Iyengar, A., Challenger, J., Dias, D. and Dantzig, P., High-Performance Web Site Design Techniques, IEEE Internet Computing, Vol. 4, No. 2, March/April 2000.
8
Pressman, R. S., Software Engineering: A Practitioner’s Perspective, 5th Edition, McGraw-Hill, 2000.
9
Shneiderman, B., Universal Usability, Communications of the ACM, May 2000, Vol. 43, No. 5, pp 85-91.
PROSPECTS OF WEB ENGINEERING
As we improve our ability to build Web systems, the systems we need to build are likely to get more complex. The quality requirements and features of these systems may also change,
- SEKE '02 - 729 -
Home: