Designing an Application

bridging the gap

The Problem

A web application involves a complex system of information flow. A web browser uses (1) a TV, computer monitor, dumb terminal or speech synthesizer to convey information to a user, who also supplies information via a keyboard, mouse, and/or other input device. The web browser exchanges information with a web server via (2) HTTP or HTTPS, depending on the level of security required. If the application involves storing information, it's advantageous to use a database. The web server might use (3) ODBC, JDBC or a database-specific system like OCI to communicate with the database.

User <-1-> Web Browser <-2-> Web Server <-3-> Database
HTML (user interface) SQL (data)
BRL (logic)

Attacking such a problem can seem like a daunting task. Fortunately, there are standard languages for dealing with different parts of the system. HTML, when used properly, can describe a user interface in such a way as to work for a wide variety of web browsers. At the other end of the system, SQL is useful for describing data in a very complete fashion, including constraints, indexes and much more. A well-staffed project will include some people versed in HTML and user interface, and others versed in SQL and data modeling. The problem is bridging the gap between these two very different worlds.

The BRL Approach

  1. Rough mockup: The first step in designing a web application is to quickly put together a set of regular web pages that resemble the finished application. This step should be done quickly; its purpose is to communicate the concept, not finalize the design.
  2. Data model: The next step is to flesh out a complete description of the data that need to be stored. This is the longest step in the development process because it requires the most thought. At the end of this step, a database has been created with tables that correspond to the application's data, and there is some idea of the SQL queries that will supply information to the web pages.
  3. Complete mockup: Take what you learned in the previous step and use it to expand the rough mockup into a set of web pages that covers all the pages a user might see while using the application.
  4. BRL implementation: Take the complete mockup and convert each page into a BRL template. This takes very little time, as all the thinking work has been done in the previous two steps. With BRL, you avoid the lengthy tedium required by other systems.