arXivDaily arXiv每日学术速递 周一至周五更新
arXiv cs/0011017cs.SEcs.PL
收藏

UML设计的自动调试支持

Automatic Debugging Support for UML Designs

Johann Schumann

摘要:

大型软件系统的设计需要严格应用涵盖软件过程所有阶段的软件工程方法。在早期的设计阶段进行调试是非常重要的,因为后期的错误修复是昂贵的。在本文中,我们描述了一种方法,便于调试的UML需求和设计。统一建模语言(UML)是一组用于软件系统的面向对象设计的符号。我们已经开发出一种算法,翻译的形式,注释序列图到结构化的状态图的需求规格。该算法检测序列图之间的冲突和领域知识中的不一致。在从序列图合成状态图之后,这些状态图通常受到手动修改和细化。通过使用我们的合成算法的“向后”方向,我们能够将对状态图的修改映射回需求(序列图),并检查那里的冲突。反馈给用户的冲突检测我们的算法是基于演绎的调试的需求和域理论在非常早期的发展阶段的基础。我们的方法允许生成关于为什么存在冲突以及规范的哪些部分受到影响的解释。

英文摘要:

Design of large software systems requires rigorous application of software engineering methods covering all phases of the software process. Debugging during the early design phases is extremely important, because late bug-fixes are expensive. In this paper, we describe an approach which facilitates debugging of UML requirements and designs. The Unified Modeling Language (UML) is a set of notations for object-orient design of a software system. We have developed an algorithm which translates requirement specifications in the form of annotated sequence diagrams into structured statecharts. This algorithm detects conflicts between sequence diagrams and inconsistencies in the domain knowledge. After synthesizing statecharts from sequence diagrams, these statecharts usually are subject to manual modification and refinement. By using the ``backward'' direction of our synthesis algorithm, we are able to map modifications made to the statechart back into the requirements (sequence diagrams) and check for conflicts there. Fed back to the user conflicts detected by our algorithm are the basis for deductive-based debugging of requirements and domain theory in very early development stages. Our approach allows to generate explanations on why there is a conflict and which parts of the specifications are affected.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑