ORM

From Pearl Language
Revision as of 15:10, 18 April 2012 by Martien (talk | contribs) (→‎Conceptual schema design: added notes from draft message)
Jump to navigation Jump to search

Sources

Terry Halpin is very active on the topic of ORM and NIAM.

Conceptual schema design

The information systems life cycle typically involves several stages: feasibility study; requirements analysis; conceptual design of data and operations; logical design; external design; prototyping; internal design and implementation; testing and validation; and maintenance. ORM's conceptual schema design procedure focuses on the analysis and design of data.

The conceptual schema specifies the information structure of the application:

  • types of fact that are of interest;
  • constraints on these; and perhaps
  • derivation rules for deriving some facts from others.
  1. Transform familiar information examples into elementary facts, and apply quality checks.
  2. Draw the fact types, and apply a population check.
  3. Check for entity types that should be combined, and note any arithmetic derivations.
  4. Add uniqueness constraints, and check arity of fact types.
  5. Add mandatory role constraints, and check for logical derivations.
  6. Add value, set comparison and subtyping constraints.
  7. Add other constraints and perform final checks.

For existing application:

  • reverse engineer the existing models into a conceptual model; and
  • refine the model to fit business needs.

To create a domain model:

  1. Collect samples of:
    • use case processes;
    • reports;
    • input forms; and
    • queries
  2. To create the domain model from the data use case
    1. Verbalize the data in natural language.
    2. Populate the model with positive and negative examples.
    3. Rephrase this as unambiguous, elementary facts.
    4. Add and validate the business rules constraining the data.

Agile Modelling

User Stories

User Story

  • must comply with zero or more business rules
  • list business rule
  • ask business rules to show synopsis in US (a bit like in Logo?)

Business Rule or Policy

  • is implemented by one or more User Stories
  • ask compliant user stories to list their title

Writing User Stories

  1. Define Product Vision
  2. Define and describe Roles
  3. Write scenarios for roles (a day in the life of, kruip in de huid van)
  4. Highlight all nouns (== entities or objects in ORM) and verbs (actions users perform on objects).
  5. Distill user stories, each user story has one or more objects and at least one verb. Stories with two objects denote relationships.