The iterative and incremental nature of software development using models typically makes a model of a system incomplete (i.e., partial) until a more advanced and complete stage of development is reached. Existing model execution approaches (interpretation of models or code generation) do not support the execution of partial models. Supporting the execution of partial models at the early stages of software development allows early detection of defects, which can be fixed more easily and at a lower cost. This paper proposes a conceptual framework for the execution of partial models, which consists of three steps: static analysis, automatic refinement, and input-driven execution. First, a static analysis that respects the execution semantics of models is applied to detect problematic elements of models that cause problems for the execution. Second, using model transformation techniques, the models are refined automatically, mainly by adding decision points where missing information can be supplied. Third, refined models are executed, and when the execution reaches the decision points, it uses inputs obtained either interactively or by a script that captures how to deal with partial elements. We created an execution engine called PMExec for the execution of partial models of UML-RT (i.e., a modeling language for the development of soft real-time systems) that embodies our proposed framework. We evaluated PMExec based on several use-cases that show that the static analysis, refinement, and application of user input can be carried out with reasonable performance and that the overhead of approach, which is mostly due to the refinement and the increase in model complexity it causes, is manageable. We also discuss the properties of the refinement formally and show how the refinement preserves the original behaviors of the model.
翻译:使用模型进行软件开发的迭代性和递增性通常使系统模型的模型不完全(即部分),直到达到更先进和完整的开发阶段。现有的模型执行方法(对模型的解释或代码生成)不支持执行部分模型。支持在软件开发的早期阶段执行部分模型可以早期发现缺陷,这种缺陷可以更容易地固定,成本较低。本文件提出了执行部分模型的概念框架,其中包括三个步骤:静态分析、自动改进和投入驱动执行。首先,对模型执行的语义进行静态分析,以发现给执行造成问题的模型的有问题的性质要素。第二,使用模型转换技术或代码生成模型,主要通过添加缺少信息的决定点来自动完善模型。第三,实施完善模型,以及当执行达到决定点时,它使用互动或脚本,用以捕捉处理部分要素的模式。我们创建了一个执行引擎,称为PMEXec,用于执行UML-RT部分的精细化模型(i.e.),主要用于检测给执行造成执行困难的模型的有问题的性质要素。第二,使用模型自动改进模型,主要是通过添加模型,主要用于展示软的用户的精确分析。