Abstract

Identification of similar fragments of software systems, or clones, has many applications in software engineering and maintenance, including quality control and improvement, standards compliance, test management and failure analysis and prevention. Code similarity analysis systems, or clone detectors, are a mature and widely used technology in traditional software code maintenance. As model driven engineering continues to advance, technologies such as Simulink are increasingly widely used to design and implement automotive software systems. Automotive Simulink models are particularly prone to cloning due to the copy-paste authoring paradigm of the Simulink IDE, and the inherent similarity of elements and tasks in automotive applications. Thus the ability to find Simulink model clones is equally important, but is much less thoroughly studied and used. Simulink models can be viewed as graphs, and subgraph isomorphism is the most obvious technique to implement model similarity analysis. While graph-based model clone detection techniques show good results in finding exactly similar subgraphs in graphical models, they have difficulty in finding near-miss matches, which may vary by incidentally added or removed blocks, lines, inputs or outputs, and largely ignore the architectural structure of the model, making analysis results difficult to communicate to practitioners. In this talk I will introduce SIMONE, a Simulink model clone detector designed to address these issues. SIMONE is a hybrid architecture text-based clone detector that yields actionable results that can be adopted directly into the modelling engineer's workflow as part of their everyday Simulink IDE interactions. SIMONE uses a two-stage analysis, beginning with the extraction and normalization of the architectural elements (subsystems) to be analyzed, and then uses the mature text-based near-miss code clone detector NICAD to efficiently identify structurally meaningful near-miss subsystem clones. By transforming the graph-based models to normalized text form for comparison, SIMONE is able to uncover important model similarities that are difficult to find in any other way. SIMONE is domain-specific to Simulink / Stateflow models, and directly integrates its results into the modelling engineer's own working environment in the Simulink IDE. I will begin by outlining the problem of Simulink model clone detection, and walk through the challenges we faced in designing and implementing SIMONE. Following a quick comparison with other model clone detectors, I will demonstrate the application of SIMONE to both the high level and low level analysis of industrial automotive models.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call