
 
models the system’s domain classes, its attributes, 
relations and operations, and a functional or use case 
model, which models the user’s intended operations 
to be accomplished on the system through its user 
interface. To test this core system model with the 
users and other stakeholders it is needed a user 
interface. There is some research on deriving user 
interfaces from a model of the system core. In 
(Martinez  et al., 2002), Martínez et al. present a 
methodology for deriving UIs from early 
requirements existing in an organization’s business 
process model. Their approach follows a set of 
heuristics for extracting use cases and actors from 
the business process model. Each use case’s normal 
and exceptional scenarios are then specified using 
message sequence charts enriched with UI related 
information. These UI enriched sequence diagrams 
are then used for automatically generating 
application forms and state transition diagrams for 
the interface objects and control objects present in 
the sequence diagrams. 
Elkoutbi  et al. (Elkoutbi et al., 2006) also 
approach UI generation by identifying usage 
scenarios. Their approach starts from a system 
domain structural model with OCL constraints and a 
use case model, but proceed by formalizing each use 
case through a set of UML collaboration diagrams, 
each corresponding to a use case scenario. Then, 
each collaboration diagram message is manually 
labeled with UI constraints (inputData and 
outputData) that identify the input and output 
message parameters for the UI. From the UI 
constraints it then automatically produces message 
constraints with UI widget information. Statechart 
diagrams are then derived from the UI labeled 
collaboration diagrams on a per use case basis. A 
statechart is created for each distinct class in a 
collaboration diagram. Then, state labeling and 
statechart integration are done incrementally, in 
order to obtain only one statechart per collaboration 
diagram, that is, per usage scenario. Elkoutbi’s 
approach is then able to derive UI prototypes for 
every interface object defined in the class diagram. 
In (Nunes, 2001), Nunes uses activity diagrams 
to represent all scenarios of a given use case in only 
one model. 
Other approaches to rapid prototyping, that allow 
an early validation of the system model, involve the 
construction of executable models using an action 
language that allows to fully define the model’s 
behavior. See, for instance (Luz and Silva, 2004). 
The rapid adaptability of the system to the 
changing requirements is approached, by (Yoder and 
Johnson, 2002), through the separation of the 
domain model, and the business rules and 
constraints from the code, in a metadata layer. This 
way, the system’s behavior changes only by 
changing the object model (the metadata layer), 
which is interpreted in runtime by an appropriate 
running environment. 
6 CONCLUSIONS AND FUTURE 
WORK 
An approach for interactive prototype generation has 
been addressed in the paper, and a tool has been 
developed for automatically applying that approach. 
A software engineer effort, needed for generating an 
interactive prototype, with the presented tool, is the 
same effort that is necessary for producing an early 
system domain model. So, minimal effort is put into 
producing the system domain model and the 
interactive prototype. 
One purpose of the generated prototype may be 
to validate the early system model, by creating and 
maintaining instances of the domain classes. This is 
not new, as the Eclipse Modeling Framework also 
accomplishes this purpose. What is new is the 
possibility of being the final user, or other 
stakeholder, to use the prototype, because it is form-
based and close to what he/she expects to see in the 
final software product. 
The current prototype generator only produces 
CRUD operations for each class, relying on 
primitive object manipulation operations. The next 
step will be to support also user defined methods 
and generate the appropriate mechanisms in the user 
interface to call those methods. In an initial stage of 
domain modeling, these methods typically represent 
important business transactions (or services or use 
cases), such as, lend a book copy and return a book 
copy.  The form generated for a given class will 
have a call button for each method defined. This 
button will give access to a form with the structure 
of the input method parameters (if any exist), and a 
confirmation button that executes the method and 
gives access to a second form with the structure of 
the output method parameters (if any exist). Non 
persistent classes may be added to the domain model 
to define the input and output parameters.  To be 
able to execute a method, its behavior will have to 
be specified in some implicit (through the constraint 
language) or explicit form (through an action 
language).  
Other future developments include handling 
inter-object constraints (multiplicity constraints, 
AUTOMATIC GENERATION OF INTERACTIVE PROTOTYPES FOR DOMAIN MODEL VALIDATION
211