КодСцена
Разработчик(и) | КодСцена AB |
---|---|
Первоначальный выпуск | 2016 |
Стабильная версия | 6.5
/ 2024 |
Операционная система | Любой, который может запускать современную JVM |
Доступно в | Английский |
Тип | Поведенческий программный анализ |
Лицензия | Собственный |
Веб-сайт | КодСцена |
CodeScene — это интеллектуальная платформа для разработки программного обеспечения, которая сочетает показатели качества кода с поведенческим анализом кода. Он обеспечивает визуализацию на основе данных контроля версий и алгоритмов машинного обучения , которые выявляют социальные закономерности и скрытые риски в исходном коде. [1]
CodeScene предлагает несколько функций, которые поддерживают удобство сопровождения и развитие программного обеспечения в крупномасштабных средах разработки программного обеспечения. Платформа предоставляет несколько действенных показателей производительности , которые помогают организациям-разработчикам программного обеспечения выявлять риски и узкие места. Исследовательская группа CodeScene использует научно обоснованный подход для проверки того, как эти показатели связаны с критически важными для бизнеса переменными, такими как скорость разработки и плотность дефектов .
Платформа использует Code Health метрику для оценки удобства сопровождения исходного кода. Еще одной важной особенностью является концепция «горячих точек» — областей кода, которые часто изменяются. Эта концепция основана на методе географического профилирования , используемом в уголовных расследованиях, что отражено в названии CodeScene.
Сосредоточив внимание на улучшении состояния кода в «горячих точках», CodeScene стремится помочь организациям, занимающимся разработкой программного обеспечения, расставить приоритеты в снижении технического долга . Этот подход предназначен для повышения удобства сопровождения и качества программных проектов.
История
[ редактировать ]CodeScene основан на идеях из книги «Ваш код как место преступления: используйте методы криминалистики для выявления дефектов, узких мест и плохого дизайна в ваших программах». [2] by CodeScene's founder Adam Tornhill.
Первая версия CodeScene вышла в 2016 году. [3] Текущая версия — 6.5, которая включает в себя автоматически генерируемые отчеты в формате PDF, метрики работоспособности архитектурного кода, контрольные параметры качества для конвейеров сборки и позволяет снизить затраты на «горячие точки». [4]
В январе 2021 года CodeScene привлекла 30 000 000 крон от Inventure и Luminar для расширения своего бизнеса. [5] В августе 2023 года CodeScene также привлекла 7,5 миллионов евро в рамках раунда финансирования под руководством Neqst. [6] [7]
Обзор
[ редактировать ]CodeScene измеряет качество кода с помощью метрики Code Health. Code Health фокусируется на том, насколько сложно разработчикам с когнитивной точки зрения понять фрагмент исходного кода. Эта метрика соответствует мышлению, согласно которому лучшая стратегия оценки качества кода — это агрегирование набора конкретных атрибутов сложности. [8] CodeScene анализирует исходный код, чтобы определить наличие установленных запахов кода, например, «Класс Бога», «Методы Бога» и «Дублированный код». Наличие запаха кода объединяется в числовое значение от 1 до 10. Нижний предел означает крайне плохую ремонтопригодность, а верхний предел указывает на первоклассный код, который легко поддерживать. CodeScene классифицирует файлы по одному из трех подинтервалов: исправный (9 или выше), предупреждение (между 4 и 9) и предупреждение (ниже 4).
CodeScene включает поддержку следующих языков программирования: C , C++ , C# , Java , Groovy , JavaScript , TypeScript , Objective-C , Scala , Python , Swift , Go , Kotlin , Visual Basic .Net , PHP , Perl 5 , Dart , Erlang , Ruby , React , ECMAScript , Vue. js , модели Rational Software Architect , Clojure , PowerShell , TCL , Apex , Elixir , Rust и BrightScript . [9]
Программное обеспечение как сервисная версия CodeScene доступна бесплатно для проектов с открытым исходным кодом. [10] CodeScene также доступен в локальной версии, которая включает в себя более продвинутые функции, такие как непрерывной интеграции поддержка , интеграция Jira для расчета затрат, а также встроенное и внешнее моделирование.
Научные исследования и влияние
[ редактировать ]CodeScene основан на эмпирических исследованиях в области разработки программного обеспечения. Компания вносит активный вклад в академическое сообщество посредством публикации исследовательских статей, организации научных мероприятий и участия в рецензировании. Примеры крупного исследовательского сотрудничества, поддерживаемого проектами, финансируемыми государством, включают европейский проект Eureka ITEA3 ESTOMAT, центр компетенций NextG2Com, поддерживаемый Vinnova , и проект SESAM, финансируемый Шведским фондом знаний.
Большинство академических исследований, касающихся CodeScene, были сосредоточены на проверке метрики Code Health. Этот показатель был тщательно изучен с целью оценки его эффективности при выявлении проблем с ремонтопригодностью программного обеспечения. Исследовательская миссия CodeScene направлена на то, чтобы представить качество исходного кода как бизнес-задачу, а не только как технический аспект. Основной метод исследования, используемый CodeScene, — это анализ репозиториев программного обеспечения с использованием анонимных файлов журналов статического программного анализа собственных проектов. Этот подход контрастирует с большинством исследований в области разработки программного обеспечения, которые обычно полагаются на репозитории программного обеспечения с открытым исходным кодом .
Примеры результатов эмпирических исследований CodeScene включают:
- Существуют значительные различия между файлами с низким и высоким уровнем работоспособности кода. Файлы с состоянием кода уровня предупреждения содержат в 15 раз больше дефектов, чем исправные файлы. Более того, решение проблем в коде уровня оповещения требует в среднем на 124% больше времени разработки, а решение проблем в таком коде страдает от неопределенности, поскольку максимальное время цикла увеличивается в девять раз. [11]
- Создание ценности организацией, занимающейся разработкой программного обеспечения, варьируется в зависимости от спектра работоспособности кода, причем на крайних значениях спектра наблюдаются сильные нелинейности. Это исследование, получившее награду за лучшую статью на Международной конференции по техническому долгу в 2024 году, показывает, что отдача от инвестиций в рефакторинг кода увеличивается в верхней части показателя Code Health. [12]
- Новички в проекте сталкиваются с особыми трудностями при работе с исходным кодом уровня оповещений: им требуется на 45 % больше времени для небольших изменений и на 93 % больше времени для крупных изменений в исходном коде низкого качества. Этот вывод подчеркивает дополнительные проблемы, с которыми сталкиваются новые разработчики в средах, обремененных техническим долгом. [13]
- Существует сильная корреляция между состоянием кода и общим количеством уязвимостей безопасности. Это исследование было проведено независимыми исследователями из Египта. [14]
Прием
[ редактировать ]CodeScene был представлен на технологическом радаре ThoughtWorks. [15] как инструмент анализа социального кода.
Пользователи CodeScene сообщают, что CodeScene — это «правильный способ управления техническим долгом», «новый стандарт обеспечения качества» и предоставляет «невиданную ранее информацию». [16]
Бесплатная версия CodeScene используется для визуализации тематических исследований из книги Адама Торнхилла «Рентген проектирования программного обеспечения: устранение технического долга с помощью поведенческого анализа кода» . [17]
Ссылки
[ редактировать ]- ^ Торнхилл, Адам (2018). «Оценка технического долга в автоматизированных тестах с помощью CodeScene». Международная конференция IEEE по тестированию, верификации и валидации программного обеспечения (ICSTW) 2018 г. стр. 122–125. дои : 10.1109/ICSTW.2018.00039 . ISBN 978-1-5386-6352-3 .
- ^ Торнхилл, Адам (2015). Ваш код как место преступления. Используйте методы криминалистики для выявления дефектов, узких мест и плохого дизайна в ваших программах . Роли, Северная Каролина: Прагматичная книжная полка. ISBN 978-1680500387 .
- ^ Торнхилл, Адам. «CodeScene: Первые три года» . КодСцена AB . Проверено 23 октября 2018 г.
- ^ «CodeScene 4.0: рассвет нового пользовательского интерфейса» . КодСцена AB .
- ^ «Они предсказывают неверный код с помощью искусственного интеллекта — это занимает 30 миллионов» . ЦИФРОВОЙ . 17 января 2021 г.
- ^ «Некст Инвестментс» . Следующий .
- ^ «CodeScene привлекла 7,5 миллионов евро в ходе раунда финансирования» . КодСцена AB .
- ^ Фентон, Н. (1994). «Измерение программного обеспечения: необходимая научная основа». Транзакции IEEE по разработке программного обеспечения . 20 (3): 199–206. дои : 10.1109/32.268921 .
- ^ «Поддерживаемые языки программирования» . КодСцена . КодСцена AB . Проверено 24 октября 2019 г.
- ^ «Планы CodeScene Cloud» . Проверено 23 октября 2018 г.
- ^ Торнхилл, Адам; Борг, Маркус (2022). «Красный код: влияние качества кода на бизнес - количественное исследование 39 проприетарных баз кода». Материалы Международной конференции по техническому долгу . стр. 11–20. дои : 10.1145/3524843.3528091 . ISBN 978-1-4503-9304-1 .
- ^ Борг, Маркус; Прувост, Ильяна; Монес, Энис; Торнхилл, Адам (2024). «Увеличение, а не уменьшение: исследование результатов легко поддерживаемого кода». Материалы 7-й Международной конференции ACM/IEEE по техническому долгу . стр. 21–30. дои : 10.1145/3644384.3644471 . ISBN 979-8-4007-0590-8 .
- ^ Борг, Маркус; Торнхилл, Адам; Монес, Энис (2023). «Вы владеете кодом, который меняется, и как маргинальные владельцы медленнее решают проблемы с исходным кодом низкого качества». Материалы 27-й Международной конференции по оценке и оцениванию в программной инженерии . стр. 368–377. дои : 10.1145/3593434.3593480 . ISBN 979-8-4007-0044-6 .
- ^ Аль-Богдади, Абдулла; Вассиф, Халед; Эль-Рамли, Мохаммед (2021). «Наличие, тенденции и причины уязвимостей безопасности в операционных системах устройств Интернета вещей начального уровня» . Датчики . 21 (7): 2329. Бибкод : 2021Senso..21.2329A . дои : 10.3390/s21072329 . ПМК 8037610 . ПМИД 33810605 .
- ^ «Анализ социального кода» . Технический радар Thoughtworks . Мысльтворкс, Инк . Проверено 23 октября 2018 г.
- ^ «Обзоры и цены CodeScene» . Каптерра . Проверено 24 октября 2019 г.
- ^ Торнхилл, Адам (2018). Рентгеновский анализ проектирования программного обеспечения: устранение технического долга с помощью анализа поведенческого кода . Роли, Северная Каролина: Прагматичная книжная полка. ISBN 978-1680502725 .