Partitioning is a very useful principle when designing a Web site. Web site designers who use forms to collect data may find it more appropriate to divide a Web site into a series of Web pages, which will improve the way humans use the site, the speed of processing, and the ease of maintaining the site. Each time data must be obtained from a data store or an external partner, a Web site designer might consider creating a unique Web form and DFD process to validate and process the data.
The Web developer may also use Ajax, sending a request to the server and obtaining a small amount of data or an XML document returned to the same page. Ajax may be used to avoid creating too many small pages containing only a few extra or changed Web form elements. However, the analyst should create several pages when needed. One consideration is when a large amount of data needs to be obtained from the server, such as a list of all the flights that match starting and destination airports for specific travel days. When accessing different database tables on the same database, the data may be obtained containing fields from different database tables and passed to one process. However, if different databases are involved, the analyst may decide to use separate Web pages. When user input is required, the analyst may either use separate Web pages or use Ajax to facilitate a change in a drop-down list or to change a small amount of data.
A good example of partitioning can be seen in the development of a Web-based travel booking site. To simplify, we will only look at the airline booking portion of the Web site, shown in the data flow diagram in the figure illustrated below. Notice that the Web designer has chosen to create several processes and unique partitions in making a flight reservation. Process 1 receives and validates the dates and airports entered by the customer (or travel agent acting for a customer). The selection data is used to obtain flight details and create a transaction data store of flight details that match the flight request.
It is advisable to partition the process of finding the flight information as a separate process, because a data store must be searched and the flight details are used to display a series of successive Web pages with matching flights. Then, once a customer chooses a flight, the information must be sent to a selected airline. It is important to have the FLIGHT DETAILS transaction file available to display each Web page of new flights, because redoing the search may take a lengthy amount of time that is unacceptable to a human user trying to complete a transaction.
The selection of available flights (process 2) uses an internal database, but this database does not have information about availability of seats, because the airlines are receiving reservations from many travel service organizations. This means that there must be a separate process and small program partitioned for determining if seats are available and for reserving specific seats.
Because there is a lot of user input, forms are designed to handle all the user requests. Having separate forms means that the forms are less complex, and therefore users will find them more attractive and easier to fill out. This design meets both the usability and usefulness criteria important when designing Web sites for human–computer interaction. It also means that processing will take place more quickly, because once the flight is chosen, the next step involving the choice of seats should not require the customer to input or even see the flight details again at this time. Most airline Web sites now use pop-up windows in which customers point to their seat selection.
Another reason for partitioning is to keep the transaction secure. Once the seat has been selected, the customer must confirm the reservation and supply credit card information. This is done using a secure connection, and the credit card company is involved in validating the amount of purchase. The secure connection means a separate process must be used. Once the credit card has been confirmed, two additional processes must be included, one to format and send an email confirmation and an e-ticket to the customer, and another to send notification of the flight purchase to the airline.
The entire procedure must be partitioned into a series of interacting processes, each with a corresponding Web page or interaction with an external system. Each time a new data store is used to obtain additional data, a process must be included to format or obtain the data. Each time an external company or system is involved, a process needs to be partitioned into a separate program. When processes or forms need to be revised, it is not a major task. The small size of the programs makes them easy to change. In this way, theWeb site is secure, efficient, and more easily maintained.
Communicating Using Data Flow Diagrams
Data flow diagrams are useful throughout the analysis and design process. Use original, unexploded data flow diagrams early when ascertaining information requirements. At this stage they can help provide an overview of data movement through the system, lending a visual perspective unavailable in narrative data.
A systems analyst might be quite competent at sketching through the logic of the data stream for data flow diagrams, but to make the diagrams truly communicative to users and other members of the project team, meaningful labels for all data components are also required. Labels should not be generic, because then they do not tell enough about the situation at hand. All general systems models bear the configuration of input, process, and output, so labels for a data flow diagram need to be more specific than that.
Finally, remember that data flow diagrams are used to document the system. Assume that data flow diagrams will be around longer than the people who drew them, which is, of course, always true if an external consultant is drawing them. Data flow diagrams can be used for documenting high or low levels of analysis and helping to substantiate the logic underlying the data flows of the organizations.