EDUCE

Essential Domain + Usage Concept Extraction

Nik Boyd


educe, v.t.; to bring or draw out; to elicit; to evolve.

-- Webster's New Twentieth Century Dictionary - Unabridged - 2nd Edition


Motivations


Are Methodologies Part of the Problem?

Software development methodologies

In this regard, OO methods are no better than structured methods.


Development Requires Collaboration

People collaborate to specify and build software systems. See the associated software process model.

Domain analyst extracts and models

  • domain knowledge from domain experts
  • needs and wants from usage stakeholders

Usage stakeholder (customer or surrogate) provides

  • needs and wants - operational characteristics of the system
  • validation and evaluation of the software produced

Domain expert provides

  • knowledge of the problem domain
  • validation and evaluation of the software produced

Designer maps

  • domain models into object models
  • usage models into user interface

Coder builds and tests

  • semantic objects for domain elements
  • presentation objects for user interfaces

All participants need to share a common understanding, conceptual models of both
the problem domain and how software solves the domain problems.


Communication and Commonality are Critical

The importance of effective communication between participants cannot be overstated.
The quality of the communication between people determines their commonality

Commonality ultimately determines the quality of the resulting software solution


EDUCE Process Summary

The table below outlines the process steps and the results they produce. Note that the same process applies to both domain and usage analysis. See the associated analysis process diagrams. Note that some semantic explorations may enable certain kinds of syntactic normalization, and vice-versa. Thus, those two steps in the process may interact to create a useful conceptual model.

Process Step Description Product(s)
Domain Elicitation
Usage Elicitation
Record discussions with domain experts
Record discussions with usage stakeholders
Initial Domain/Usage Narrative
Syntactic Normalization Simplify the syntax of domain/usage statements Normalized Domain/Usage Statements
Semantic Exploration Refine the model through semantic analysis Alternate Domain/Usage Statements
Augmented Domain/Usage Statements
Semantic Organization Find stable domain/usage concepts and predicates Stable Domain/Usage Vocabulary +
Initial Conceptual Models
Model Validation Verify the conceptual models Validated Conceptual Models +
Validated Domain/Usage Vocabulary
Model Integration Develop an integrated overview Integrated Domain/Usage Models +
Regenerated Domain/Usage Narrative

As an extensive example of this process, consider one of the problems used in the HP Fusion course - ECO Storage Depot. Also, you may find some background discussions on models interesting.


Domain/Usage Elicitation - Record discussions with domain experts or usage stakeholders


Syntactic Normalization - Simplify the syntax of domain/usage statements


Semantic Exploration - Refine the model through semantic analysis


Semantic Organization - Find stable domain/usage concepts and predicates


Model Validation - Verify models with feedback from domain experts and usage stakeholders


Model Integration - Develop an integrated overview