Ethiopian Design

Ethiopian Design header image 2

Mapping Control and Data Flow

No Comments · Ethiopian Design

Once the necessary pages and the system functions that will support them are specified (but not necessarily built), data and control flow can also be designed and specified.

There are several visual representations, which build on the 3-tiered architecture approach, that can assist developers in ensuring complete functional coverage and facilitate communications among the design team and in communicating designs to customers.

The visual aids that will be discussed here are the static design, the dynamic trace, and system latency diagrams (See White et al, 1998 for other system design techniques.)
Static design diagrams illustrate the logical organization of web applications.

They are meant to convey an overview of the system that is especially useful for client communications. Shows a simplified static view for a business-to-business e-commerce site. In the Presentation tier, the high-level user tasks are represented by thumbnail screens consisting of “login,” “get account information,” and “purchase products.”

The web server is represented in the middle tier, and database and transaction services are shown in the Services tier. Firewalls separate the tiers. This logical view may or may not represent the actual number of machines needed.

For example, database and transaction serves could coexist on the same machine (although not recommended), and the web server could be distributed to multiple machines for better performance. Likewise, more user screens are required than are shown in this type of view.

A dynamic request trace specifies the data flow for accomplishing specific user tasks and the order in which the information exchanges occur. This view goes a layer deeper than static design diagrams, showing the sequence of events that the system will perform as the users perform their tasks.

Shows a simplified dynamic trace for a purchase task. Here, the user presses the Order button after selecting the items for purchase. The request goes from the user to the web server, then to the transaction server for payment processing, then to shipping for order fulfillment, back to the web server with confirmation data, which formats the confirmation into HTML and sends a confirmation page back to the user.

System latency diagrams are useful for showing how much each system function contributes to overall task time. This is especially useful for optimizing system performance and reducing the effects of bottlenecks. Shows a latency diagram for the purchasing task just described.

Here, we see that the major contributors to response time are the transaction and database services. Increasing web server performance at this point would be ineffectual for reducing system response time.

Instead, the focus should be on the subsystems providing the transaction and database services. Software, platform, and network issues are all potential culprits, as are any back-end services that go outside the enterprise, such as bank or credit card transaction.

Version Control
Version control is another technique for making the programmer’s job easier. It provides a means for maintaining stable versions of your web site or system during and after the production process.

Version control provides a layer of abstraction for programmers that allows them to focus on the changes or enhancements to the system without worrying so much about file-level questions like, Is this the current version of the file?

It is also used to ensure that one developer doesn’t overwrite another’s changes and allows programmers to work on one copy of the code while other programmers can still use the previous stable version of the code. Code files are then “checked in” after all necessary changes have been made. Of course, this is especially important when more than one person is coding.

Several commercial and open-source version control systems exist (e.g., CVS and Voodoo), each with its own capabilities. Most version control systems provide a means for tracking changes to documents or files, including who is making the change, what they did, why they did it, and when it was done. Some version control systems lock files so that only one person at a time can make modifications.

For simple projects, version control can be accomplished without support software by maintaining a central repository of code and making clear who works on which files. In such cases, it is especially important to make periodic backups of the code when it reaches a stable, working state.

This allows developers to dial back to a previous working version if something dramatically wrong happens during development.

Asset Management
Asset management is the systematic practice of tracking various system resources, such as images, content files, Java applets, and HTML files. Some form of asset management is necessary for almost any size project. Asset management exists in some integrated development environments, but it can also be done with just a spreadsheet.

A practical technique for tracking production is to create a spreadsheet with one line for each web page and one column for each element that needs to be tracked. For example, columns might exist for HTML, text, graphics, navigation, JavaScript, and so on. The status of each element can be tracked in the individual cells. Creating a database for tracking bugs is also a useful technique both during and after production.

Report This Post

Tags:

No Comments so far ↓

There are no comments yet...Kick things off by filling out the form below.

Leave a Comment