Chasm is a hierarchical state machine, of only one hierarchy, designed for concurrency and interdependence. It has the structures of a state machine and then some.
A state is a position in the flow of execution in the state machine.
A symbol is an atomic message, local to a state machine, which advances the state machine along a transition from its current state.
A transition is a valid path from one state to another with a given symbol. If a symbol arrives in a state machine in a state with no transition out of it for that symbol, that is an error.
The Envisioned Behavior of a system is the grand idea of the functioning of the system. It is for any large system ill-understood. Through describing by implementing it, we start to more fully realize the envisioned behavior. During this implementation process however, the envisioned behavior grows because more of its behavior is thought about by the developer. This is the iteration and learning process.
There is a very large cliff currently in going from Envisioned Behavior to implementation. Chasm is about creating simpler steps by decomposing the problem and increasing the detail of the implementation. This is done by splitting the Envisioned Behavior into smaller Envisioned Behaviors which are responsible for a complete subset of the behavior and using more abstract implementations.
As the system progresses to implementation, the correctness decreases.
A Concept is a single envisioned behavior which makes use of other component concepts and is described by increasingly detailed levels of implementations.
Components are other Concepts which a given Concept uses, thus they are sometimes referred to as Component Concepts. So, as an example, the Concept of AnimatedTransition holds a Component of Location which it uses to store the current transition while it is animating. These Components are whole unto themselves and, in addition to storing data and methods as all Objects can, they can also have their states registered with symbols of the observing Concept. These are the response relationships in Chasm.
A Component is a Concept in an observing Concept. The observing Concept registers Response? relationships with states in the Component using the Component's symbol and the Component notifies the observer when it enters those state with the symbol.
A Component has a name, which is used to refer to it in the observing Concept. In ChasmCodeGeneration, this is the variable name.
A Component has an access.
A Component has a Component Initialization Form (CIF).
A response occurs when a concept enters a state which another concept is observing. The observing concept has previously registered a symbol with that state so return a symbol to that concept. This is the response.