28.06.2013 Views

Papers in PDF format

Papers in PDF format

Papers in PDF format

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

piece, or of the whole piece. A CD may conta<strong>in</strong> one or more record<strong>in</strong>gs.<br />

Fig. 1: The ER-diagramms for the records database (a) and the system catalog (b)<br />

The relevant entities are Composer, Piece, Part, Artist, Role, Record<strong>in</strong>g, CD, and Label; the card<strong>in</strong>ality of relationships<br />

between those entities are one-to-many, except for the many-to-many relationship Performs. The correspond<strong>in</strong>g<br />

ER-diagram is shown <strong>in</strong> [Fig. 1a] (the ER-modell<strong>in</strong>g approach was first <strong>in</strong>troduced by [Chen 1976]).<br />

How can this database be viewed? For a hypertext, we need a start<strong>in</strong>g po<strong>in</strong>t. In the example, a good start<strong>in</strong>g po<strong>in</strong>t would<br />

be a list of composers. Follow<strong>in</strong>g a l<strong>in</strong>k for a specific composer would answer the question `` What are the pieces<br />

written by that composer?''. Follow<strong>in</strong>g the l<strong>in</strong>k for a piece would show a list of recod<strong>in</strong>gs of that piece. The l<strong>in</strong>k of a<br />

record<strong>in</strong>g would lead to the CD that conta<strong>in</strong>s that record<strong>in</strong>g.<br />

Another start<strong>in</strong>g po<strong>in</strong>t would be a list of the artists. Follow<strong>in</strong>g a l<strong>in</strong>k on an entry <strong>in</strong> that list would answer the question ``<br />

What record<strong>in</strong>gs did this artist take part <strong>in</strong>?''.<br />

In the follow<strong>in</strong>g sections we will discuss our approach to the automatic generation of HTML code from a relational<br />

database. We will draw on examples from the music database described <strong>in</strong> this section.<br />

3 Significance of Reverse Eng<strong>in</strong>eer<strong>in</strong>g<br />

When build<strong>in</strong>g applications, we must often start from old system, and we often do not exactly know their structure, as<br />

has been summarized by [Waters & Chikofsky 1994]:<br />

``... while many of us may dream that the central bus<strong>in</strong>ess of software eng<strong>in</strong>eer<strong>in</strong>g is creat<strong>in</strong>g clearly<br />

understood new systems, the central bus<strong>in</strong>es is really upgrad<strong>in</strong>g poorly understood old systems. By<br />

implication, reverse eng<strong>in</strong>eer<strong>in</strong>g is arguably one of the most important parts of software eng<strong>in</strong>eer<strong>in</strong>g,<br />

rather than be<strong>in</strong>g a peripheral concern.''<br />

Relational system are <strong>in</strong> pr<strong>in</strong>ciple very well suited for reverse eng<strong>in</strong>eer<strong>in</strong>g. [Markowitz & Makowsky 1990] show a<br />

theoretically sound approach but assume good design and full normalization which often does not occur <strong>in</strong> real

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!