principles

EDUCE is founded on several principles of natural language:

Conceptual Utility

The primary goal of EDUCE is the introduction of commonality into the software development process. Quality software development requires commonality.

Commonality exists when people share similar ideas of a problem and its solution usage. Commonality is achieved if people actually share a common understanding of a problem and the utility of its solution. Commonality provides value by ensuring that the people involved in solving a problem share an understanding of the problem. Without commonality, the likelihood of developing a satisfactory and usable problem solution is drastically reduced.

Conceptual models provide a formal mechanism for sharing and comparing the constructions people make internally - i.e., their mental models. Conceptual models can serve as a foundation for commonality during software development.

Conceptual Relevance

Every word in a statement can contribute value to a conceptual model.

This principle has significance for problem and requirements elicitation and analysis. We need to listen carefully and ask both neutral and leading questions. None of the words in statements made by stakeholders should be eliminated arbitrarily. Statements should be normalized and every word should be considered for its potential contribution to a conceptual model.

Conceptual Equivalence

An essential concept can be expressed as (and in the form of) a noun, a verb or a descriptive adjective. Thus, each noun, verb, and descriptive adjective signifies an essential concept. Each word is a sign. Each essential concept is its significance.

When examined, we find that each essential concept has a root expression as a noun, a verb, or a descriptive adjective. The expression of a concept begins in one of these three word classes. However, by affixing appropriate fragments, each of these three word classes can (usually) be transformed into another. Conversely, by removing these affixes, a root expression can be revealed.

Thus, the underlying essential concept can be said to be independent of any specific word class. Alternatively, we could say that all three word classes (noun, verb, and adjective) taken together provide the fullest expression of an essential concept.

This principle has significance for conceptual modeling and object-oriented software development. We need to find useful (usable) subjects and objects - i.e., domain objects with usable faces. The principle of conceptual equivalence allows us to reshape statements until they are usable for building conceptual models, especially models that focus on objects (nouns) and their associated faces (verbs).

Conceptual Relativity

Concepts only have meaning within the context of other related concepts. Each concept has a web of associations with other related concepts. Significance emerges from this web of cenceptual relationships.

Conceptual models make concepts and their relationships explicit through diagrams and/or structured narratives. Collectively, the subjects identified and discussed in conceptual models provide a domain vocabulary for a problem domain. Conceptual models and domain vocabularies are sharable and comparable, thereby fostering commonality.

Conceptual Limitation

Conceptual models focus on selected relationships between selected concepts. Conceptual models are convenient and valuable within a limited domain and for a limited time - i.e., until more elegant and complete models are developed.

Renovations in conceptual models are normal. Renovations can be expected until our understanding and models of a problem domain mature. Even after our understanding of a domain has stabilized and then matured, occasional revolutions can occur. Such conceptual revolutions are often the result of paradigm shifts or discontinuous innovation.