A device for modeling a software application includes an environmental model that includes a first set of attributes. The first set of attributes includes a value attribute, a declaration, and a set of meta-attributes. A behavioral model includes a second set of attributes, including a portion of the first set of attributes, wherein the environmental and behavioral models share the portion. The second set of attributes includes a value attribute and set of meta-attributes, each having at least one of a declaration and function. Changes to an attribute in the behavioral model reflect in all models that share the attribute. A design model includes a first decomposition of the second set of attributes into a first plurality of groups. A run-time model includes a second decomposition of the second set of attributes into a second plurality of groups, and records the decomposition of the behavioral model into run-time components.