Learn about an adaptable approach which separates programming tasks from Web page design tasks. This strong conceptual model encourages good design, enables re-use of data definitions, and is well-suited to the construction of dynamic user interfaces. The authors also illustrate the particular challenges you might encounter when you dynamically change the analysis performed by Web pages. (This intermediate-level article was first published by IBM developerWorks, August 5, 2004, at http://www.ibm.com/developerWorks).
Understanding data and being able to express it in an appropriate form is a key task. Many often overlook this task in the rush to get information to the user. By providing a means to focus on the important concepts and a tool set to exploit them, our design approach encourages an up-front analysis of data that pays dividends in the development cycle.
Early in the development cycle, and typically during the requirements gathering phase, you develop an understanding of the required data. The questions that need to be answered during this phase include:
What are the user tasks to be supported, and what data is needed to perform those tasks?
Where is the source data, and how closely does it match the required data?
If there is a mismatch between the required data and the source data, how can the mismatch be remedied?
If the source data is distributed over more than one location, how can it be joined?
In what ways will the user need to aggregate, filter, and sequence the data?
What metrics does the user need to view and manipulate?
Arriving at the correct answers to these questions requires user consultation, as well as the services of an expert in the data domain. The use of low-fidelity prototyping helps to clarify user thinking and hone in on the true requirements. This iterative phase will identify the shape and characteristics of the required data, and from this, the programmer will be able to define one or more data sources which will be made available to the page author. The lessons learned about the user tasks will be important to the page author, who can now focus on the user interface (UI) details secure in the knowledge that the building blocks necessary for accessing and presenting the data will be there.