Authors:
David Harel
;
Guy Katz
;
Rami Marelly
and
Assaf Marron
Affiliation:
The Weizmann Institute of Science, Israel
Keyword(s):
Behavioral Models, Interactive Development, Proactive Analysis, Reactive Models, Wise Computing.
Related
Ontology
Subjects/Areas/Topics:
Applications and Software Development
;
Component-Based Software Engineering
;
Frameworks for Model-Driven Development
;
Languages, Tools and Architectures
;
Methodologies, Processes and Platforms
;
Model Execution and Simulation
;
Model-Based Testing and Validation
;
Model-Driven Software Development
;
Models
;
Paradigm Trends
;
Reasoning about Models
;
Software Engineering
Abstract:
We present a development environment that proactively and interactively assists the software engineer in modeling
complex reactive systems. Our framework repeatedly analyzes models of the system under development
at various levels of abstraction, and then reasons about these models in order to detect possible errors and to
derive emergent properties of interest. Upon request, the environment can then augment the system model in
order to repair or avoid detected behavior that is undesired, or instrument it in order to monitor the execution
for certain behaviors. Specialized automated and human-assisted techniques are incorporated to direct and
prioritize the analysis and related tasks, based on the relevance of the observed properties and the expected
impact of actions to be taken. Our development environment is an initial step in the direction of the very recent
Wise Computing vision, which calls for turning the computer (namely, the development environment) into an
equal member of t
he development team: knowledgeable, independent, concerned and proactively involved
in the development process. Our tool is implemented within the context of behavioral programming (BP), a
scenario-based modeling approach, where components are aligned with how humans often describe desired
system behavior. Thus, our work further enhances the naturalness and incrementality of developing in BP.
(More)