IDI Course SA-02
Defining Data Items and Maintaining a Data Dictionary

Length:

3 half-day sessions

Prerequisites:

PR-02 -- Data Representation
(or broad experience in designing large application systems)

Designed for:

  1. Systems analysts developing requirements and functional specifications for new applications.
  2. Recently appointed data administrators.

Description:

This course is about the concepts of rigorous data definition, and is independent of any computerized data-dictionary system or adminstrative approach. If a conceptually sound data dictionary system is available to the participants, we can tailor the examples and exercises to it, but the basic course content can be supported manually.

In the first session we review data types and classes (for elementary data items) and static data structures (for composite data items), and choose a notation (DeMarco, Warnier, or UML) for describing composite items that have conditional or repeated groups. We then discuss data naming criteria, examining critically conditions under which a name can be considered self defining.

From this we derive criteria for describing the real-world meaning of a data item, and introduce a standard form (manual or computerized) for documenting such data definitions.

The second session focuses on cases and examples, pointing out common pitfalls that follow from imprecise data definitions. We conclude by looking at how data definitions relate to other systems analysis activities and to other components of a complete structured system specification.

In the final session we show how object-oriented concepts of encapsulation and inheritance can both simplify the creation and maintenance of data definitions and facilitate later software development.

If time permits, we conclude by examining the role of a data administrator and discuss how a D.A. and one or more systems analysts can effectively work together on a project team.

Objectives:

Upon completing SA-02 the participant will be able:

  1. to classify data items according to their type or class.
  2. to derive new data classes from existing ones.
  3. to specify precisely a data structure containing conditional or repeated groups (unnormalized).
  4. to choose data names, where possible, that are self defining.
  5. to recognize data items for which the name is not unambiguously self-defining, and prepare precise definitions of the real-world meaning of such items.
  6. to document all data definitions in a standard way, either manually or through a computerized data dictionary system.
  7. to organize, maintain, and integrate such data definitions into a complete structured specification for a proposed new application system.