Preview

Моделирование и анализ информационных систем

Расширенный поиск

Слайсинг над деревьями: метод обнаружения разорванных и переплетенных клонов в исходном коде программного обеспечения

https://doi.org/10.18255/1818-1015-2012-6-69-78

Полный текст:

Аннотация

В настоящее время практически любое программное обеспечение (ПО) содержит избыточный дублированный код (клоны), что приводит ко множественным проблемам на этапе поддержки такого ПО. За последние годы для решения проблемы дублирования было предложено множество различных подходов к обнаружению клонов, но большинство из них не рассматривают семантические свойства исходного кода ПО.

В данной работе предлагается усилить классический подход к обнаружению клонов на основе анализа абстрактных синтаксических деревьев (АСД) за счет использования дополнительной информации о слайсах АСД по переменным программы. Это позволяет эффективно обнаруживать разорванные (gapped) и переплетенные (intertwined) клоны – результаты предварительных экспериментов подтверждают применимость предложенного подхода на практике.

Об авторах

Марат Халимович Ахин
Санкт-Петербургский государственный политехнический университет
Россия
аспирант


Владимир Михайлович Ицыксон
Санкт-Петербургский государственный политехнический университет
Россия
доцент


Список литературы

1. Deshpande A., Riehle D. The Total Growth of Open Source // Conference on Open Source Systems. Springer Verlag, 2008.

2. Roy C. K., Cordy J. R. A Survey on Software Clone Detection Research. TR 2007-541, School of Computing, Queen’s University, 2007.

3. Ахин М.Х., Ицыксон В.М. Обнаружение клонов исходного кода: теория и практика // Системное программирование. 2010. 5. С. 145–163.

4. Li Z., Lu S., Myagmar S., Zhou Y. CP-Miner: a Tool for Finding Copy-Paste and Related Bugs in Operating System Code // Conference on Symposium on Opearting Systems Design & Implementation, USENIX Association, Berkeley, 2004. P. 20–20.

5. Kontogiannis K. Evaluation Experiments on the Detection of Programming Patterns Using Software Metrics // Working Conference on Reverse Engineering. IEEE Computer Society. Washington, DC, 1997. P. 44–44.

6. Koschke R., Falke R., Frenzel P. Clone Detection Using Abstract Syntax Suffix Trees // Working Conference on Reverse Engineering. IEEE Computer Society. Washington, DC, 2006. P. 253–262.

7. Hummel B., Juergens E., Heinemann L., Conradt M. Index-based Code Clone Detection: Incremental, Distributed, Scalable // International Conference on Software Maintenance. IEEE Computer Society. Washington, DC, 2010. P. 1–9.

8. Gabel M., Jiang L., Su S. Scalable Detection of Semantic Clones // International Conference on Software Engineering. IEEE Computer Society, Washington, DC, 2008. P. 321–330.

9. Krinke J. Identifying Similar Code with Program Dependence Graphs // Working Conference on Reverse Engineering. IEEE Computer Society. Washington, DC, 2001.

10. Jiang L., Misherghi G., Su S., Glondu S. DECKARD: Scalable and Accurate Treebased Detection of Code Clones // International Conference on Software Engineering. IEEE Computer Society. Washington, DC, 2007. P. 96–105.

11. Andoni A., Indyk P. Near-optimal Hashing Algorithms for Approximate Nearest Neighbour in High Dimensions. Commun. // ACM. 2008. 51, 1. P. 117–122.

12. Evans W., Fraser C., Ma F. Clone Detection via Structural Abstraction // Software Quality Journal. 2009. 17, 4. P. 309–330.

13. Bulychev P., Minea M. Duplicate Code Detection Using Anti-unification // Spring Young Researchers Colloquium on Software Engineering, 2008. P. 51–54.

14. Kamiya T., Kusumoto S., Inoue K. CCFinder: Multilinguistic Token-based Code Clone Detection System for Large Scale Source Code // IEEE Trans. Softw. Eng. 2002. 28, 7. P. 654–670.


Для цитирования:


Ахин М.Х., Ицыксон В.М. Слайсинг над деревьями: метод обнаружения разорванных и переплетенных клонов в исходном коде программного обеспечения. Моделирование и анализ информационных систем. 2012;19(6):69-78. https://doi.org/10.18255/1818-1015-2012-6-69-78

For citation:


Akhin M., Itsykson V. Tree Slicing in Clone Detection: Syntactic Analysis Made (Semi)-Semantic. Modeling and Analysis of Information Systems. 2012;19(6):69-78. (In Russ.) https://doi.org/10.18255/1818-1015-2012-6-69-78

Просмотров: 1143


Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


ISSN 1818-1015 (Print)
ISSN 2313-5417 (Online)