УДК 007:681.512.2

МЕТОД ПОИСКА ПОВТОРЯЮЩИХСЯ ФРАГМЕНТОВ ТЕКСТА В ТЕХНИЧЕСКОЙ ДОКУМЕНТАЦИИ

Луцив Д.В., Кознов Д.В., Басит Х.А., Ли О.Е., Смирнов М.Н., Романовский К.Ю.


Читать статью полностью 

Аннотация

Предложен метод, позволяющий искать повторы в технической документации, выполненной в формате
DocBook/DRL или в виде «плоского» текста. Разработан алгоритм, основанный на технике поиска клонов в программном обеспечении (software clone detection). Алгоритм реализует фильтрацию стандартного поиска клонов: отбрасываются клоны, чья длина меньше 5 символов; выполняется устранение пересечения клонов, а также удаление несущественных клонов и клонов, состоящих только из XML-конструкций. Поддерживается поиск по остаткам. После нахождения клонов они устраняются из документации, и поиск повторяется. Доказывается достаточность одного шага. Реализована техника адаптированного повторного использования Бассета–Ерзабека. На основе предложенного алгоритма разработан программный инструмент, поддерживающий параметризацию поиска повторов, а также визуализацию полученных результатов. Инструмент интегрирован со средой разработки повторно используемой документации DocLine и реализует рефакторинг документов на основе найденных клонов. Инструмент использует утилиту Clone Miner для поиска клонов. Представлена апробация метода для документации к ядру операционной системы Linux (29 документов, 25 000 строк). Выделено 5 видов клонов: термины, гиперссылки, лицензии, описание функциональности, примеры кода. Всего найдено 451 содержательных групп клонов. Средняя длина клона – 4,43 токена. Среднее количество клонов в группе – 3,56. Предложенный подход может оказаться полезным в средах работы с документацией семейств программных продуктов.


Ключевые слова: документация программного обеспечения, переиспользование документации, поиск клонов в программном обеспечении, вариативное переиспользование, рефакторинг, DocBook, DocLine, DRL

Список литературы
1.     Holmes R., Walker R.J. Systematizing pragmatic software reuse // ACM Transactions on Software Engineering and Methodology. 2013. V. 21. N 4. Art. N 20.
2.     Czarnecki K. Software reuse and evolution with generative techniques // Proc. of 22nd IEEE/ACM International Conference on Automated Software Engineering. Atlanta, USA, 2007. P. 575.
3.     Jarzabek S., Bassett P., Zhang H., Zhang W. XVCL: XML-based variant configuration language // Proc. of International Conference on Software Engineering.Portland, USA, 2003. P. 810−811.
4.     Bassett P. The theory and practice of adaptive reuse // Sigsoft Software Engineering Notes. 1997. V. 22. N 3. P. 2−9.
5.     Кознов Д.В., Романовский К.Ю. DocLine: метод разработки документации семейств программных продуктов // Программирование. 2008. Т 34. № 4. С. 41−53.
6.     Romanovsky K., Koznov D., Minchin L. Refactoring the documentation of software product lines // Lecture Notes in Computer Science.2011. V. 4980 LNCS. P. 158−170.
7.     Кознов Д.В., Романовский К.Ю. Автоматизированный рефакторинг документации семейств программных продуктов // Системное программирование. 2009. Т. 4. С.128–150.
8.     Шутак А.В., Смирнов М.Н., Смажевский М.А.,Кознов Д.В.Поиск клонов при рефакторинге технической документации // Компьютерные инструменты в образовании. 2012. № 4. С. 30–40.
9.     Rattan D., Bhatia R.K., Singh M. Software clone detection: asystematic review // Information and Software Technology. 2013. V. 55. N 7. P. 1165−1199.
10.  Basit H.A., Smyth W.F., Puglisi S.J., Turpin A., Jarzabek S. Efficient token based clone detection with flexible tokenization // Proc. 6th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering, ESEC/FSE2007. Dubrovnik, Croatia, 2007. P. 513−516.
11.  Walsh N., Muellner L. DocBook: The Definitive Guide. O’ReillyMedia, 1999. 644 p.
12.  Linux Kernel Documentation [Электронныйресурс]. Режимдоступа:
github.com/torvalds/linux/tree/master/Documentation/DocBook, свободный. Яз. англ. (датаобращения01.06.2014).
13.  Wright C.H.G.Technical writing tools for engineers and scientist // Computing in Science and Engineering.2010. V. 12. N 5. P. 98–103.
14.  Фаулер М., Бек К., Брант Д., Апдайк У., Робертс Д. Рефакторинг: улучшение существующего кода : Пер. с англ. СПб: Символ-Плюс, 2013.432 c.
15.  Луговской Н.Л. Подход для проведения рефакторинга «Выделение функции» в инструменте KlocworkInsight // Труды Института системного программирования РАН. 2012. Т. 23. С. 107–132.
16.  Ицыксон В.М., Моисеев М.Ю., Ахин М.Х., Захаров А.В., Цесько В.А. Алгоритмы анализа указателей для обнаружения дефектов в исходном коде программ // Системное программирование. 2009. Т. 4. С. 5–30.
17.  Ахин М.Х., Ицыксон В.М. Обнаружение клонов исходного кода: теория и практика // Системное программирование. 2010. Т. 5. № 1. С. 145–163.
18.  Зельцер Н.Г. Поиск повторяющихся фрагментов исходного кода при автоматическом рефакторинге // Труды Института системного программирования РАН. 2013. Т. 25. С. 39–50.
19.  GNU General Public License v2.0 [Электронныйресурс]. Режим доступа: www.gnu.org/licenses/gpl-2.0.html, свободный. Яз. англ. (дата обращения 01.06.2014).
20.  Abadi A., Nisenson M., Simionovici Y. A traceability technique for specifications // Proc. 16th IEEE International Conference on Program Comprehension. 2008. P. 103−112.
21.  Krueger C.W. Variation management for software productionlines // Proc. 2nd Software Product Line Conference. San Diego, USA, 2002. P. 37−48.
22.  Trung H.D., Jarzabek S. DME: Documentation Management Environment for Software Product Lines – Tool Demo Proposal [Электронныйресурс]. Режим доступа: www.comp.nus.edu.sg/~stan/DME.pdf, свободный. Яз. англ. (дата обращения 01.06.2014).
23.  Lee J., Muthig D. Feature-oriented variability management in product line engineering // Communications of the ACM. 2006. V. 49. N 12. P. 55−59.
24.  Mei H., Zhang W., Gu F. A feature oriented approach to modeling and reusing requirements of software product lines // Proc. 27th Annual International Conference on Computer Software and Applications, COMPSAC'03. IEEE Computer Society, Washington, USA, 2003. P. 250–256.
25.  Grigoriev L., Kudryavtsev D. ORG-master: combining classifications, matrices and diagrams in the enterprise architecture modeling tool // Proc. 4th Conference on Knowledge Engineering and Semantic Web, Communications in Computer and Information Science, CCIS. St.Petersburg, 2013. P. 250−258.
26.  Гаврилова Т.А., Кудрявцев Д.В., Горовой В.А. Модели и методы формирования онтологий // Научно-технические ведомости СПбГПУ. 2006. № 46. С. 21–28.
27.  Гаврилова Т.А. Об одном подходе к онтологическому инжинирингу // Новости искусственного интеллекта. 2005. № 3. С. 25–31.


Creative Commons License

This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License
Информация 2001-2024 ©
Научно-технический вестник информационных технологий, механики и оптики.
Все права защищены.

Яндекс.Метрика