Executable UML: A Foundation for Model-Driven Architecture
The rules of Executable UML are designed for two purposes. The first is knowledge formalization. The rules require factoring of classes and attributes so that each concept is expressed in an Executable UML model at a single level of granularity. Each class and each attribute can be examined and checked, first conceptually ("Is it true that every Order can be described by a dateSatisfied?"), and later in execution. This ensures that we truly understand and formalize the subject matter under study. The second purpose of these rules is to establish a small set of elements that require compilation into a system. Each new element in Executable UML (multivalued attributes, for example) is a new element to learn, a new element that must be consistent with all other elements, and a new element to implement. This is a "fuzzy line," of course, but it has to be drawn somewhere. The trick is to make Executable UML rich enough to enable efficient modeling, but simple enough that it can be understood and implemented cheaply. |