Jump to content

Программная археология

Археология программного обеспечения или археология исходного кода — это исследование плохо документированных или недокументированных устаревших реализаций программного обеспечения в рамках обслуживания программного обеспечения . [1] [2] Программная археология, названная по аналогии с археологией , [3] включает обратное проектирование программных модулей и применение различных инструментов и процессов для извлечения и понимания структуры программы и восстановления проектной информации. [1] [4] Археология программного обеспечения может выявить дисфункциональные командные процессы, в результате которых были созданы плохо спроектированные или даже неиспользуемые программные модули, а в некоторых случаях может быть обнаружен намеренно запутанный код. [5] Этот термин используется уже несколько десятилетий. [6]

Археология программного обеспечения продолжает оставаться темой обсуждения на последних конференциях по разработке программного обеспечения. [7]

Техники [ править ]

Семинар по археологии программного обеспечения на конференции OOPSLA (Объектно-ориентированное программирование, системы, языки и приложения) 2001 года выявил следующие методы археологии программного обеспечения, некоторые из которых специфичны для объектно-ориентированного программирования : [8]

  • Языки сценариев для создания статических отчетов и фильтрации результатов диагностики.
  • Текущая документация на HTML-страницах или вики.
  • Синоптический анализ сигнатур, статистический анализ и визуализации программные инструменты
  • Инструменты обратного проектирования
  • Трассировка на уровне операционной системы с помощью truss или strace
  • Поисковые системы и инструменты для поиска ключевых слов в исходных файлах
  • IDE просмотр файлов
  • Платформы модульного тестирования, такие как JUnit и CppUnit.
  • Создание документации API с использованием таких инструментов, как Javadoc и doxygen.
  • Отладчики

В более общем плане Энди Хант и Дэйв Томас отмечают важность контроля версий , управления зависимостями , инструментов индексирования текста, таких как GLIMPSE и SWISH-E , и «[рисования] карты, когда вы начинаете исследовать». [8]

Как и настоящая археология, программная археология включает в себя исследовательскую работу, направленную на понимание мыслительных процессов своих предшественников. [8] На семинаре OOPSLA Уорд Каннингем предложил метод синоптического анализа сигнатур, который давал общее представление о программе, показывая только знаки препинания, такие как точки с запятой и фигурные скобки . [9] В том же духе Каннингем предложил просматривать программы шрифтом в 2 пункта, чтобы понять общую структуру. [10] Еще одним методом, выявленным на семинаре, было использование инструментов аспектно-ориентированного программирования, таких как AspectJ, для систематического внедрения кода трассировки без прямого редактирования устаревшей программы. [8]

Методы сетевого и временного анализа могут выявить закономерности совместной деятельности разработчиков устаревшего программного обеспечения, что, в свою очередь, может пролить свет на сильные и слабые стороны создаваемых программных артефактов. [11]

Майкл Розлог из Embarcadero Technologies описал археологию программного обеспечения как шестиэтапный процесс, который позволяет программистам отвечать на такие вопросы, как «Что я только что унаследовал?» и «Где страшные участки кода?» [12] Эти шаги, аналогичные шагам, определенным на семинаре OOPSLA, включают использование визуализации для получения визуального представления дизайна программы, использование показателей программного обеспечения для поиска нарушений дизайна и стиля, использование модульного тестирования и профилирования для поиска ошибок и узких мест в производительности, а также сбор проектной информации, полученной в процессе. [12] Археология программного обеспечения также может быть услугой, предоставляемой программистам внешними консультантами. [13]

В популярной культуре [ править ]

Профессия « программист-археолог » занимает видное место в научно-фантастическом романе Вернора Винджа 1999 года «Глубина в небе» . [14]

См. также [ править ]

Ссылки [ править ]

  1. ^ Jump up to: а б Роблес, Грегорио; Гонсалес-Бараона, Хесус М.; Херраиз, Израиль (2005). «Эмпирический подход к археологии программного обеспечения» (PDF) . Стендовые материалы Международной конференции по сопровождению программного обеспечения .
  2. ^ Эмблер, Скотт В. «Анализ устаревших гибких систем и интеграционное моделирование» . www.agilemodeling.com . Проверено 20 августа 2010 г. Без точной документации или доступа к знающим людям последним средством может стать анализ исходного кода устаревшей системы... Эту попытку часто называют археологией программного обеспечения.
  3. ^ Мойер, Брайон (4 марта 2009 г.). «Археология программного обеспечения: модернизация старых систем» (PDF) . Журнал встраиваемых технологий .
  4. ^ Хопкинс, Ричард; Дженкинс, Кевин (2008). «5. Мифический Метачеловек» . Поедание ИТ-слона: переход от разработки с нуля к действующей технологии . Аддисон-Уэсли. п. 93. ИСБН  978-0-13-713012-2 .
  5. ^ Спинеллис, Диомидис ; Гусиос, Георгиос (2009). «2. Повесть о двух системах § Отсутствие сплоченности» . Красивая архитектура . О'Рейли. п. 29. ISBN  978-0-596-51798-4 .
  6. ^ Раннее обсуждение Грасс, Джудит Э. (зима 1992 г.). «Археология объектно-ориентированного дизайна с CIA ++» (PDF) . Вычислительные системы . 5 (1).
  7. ^ Например, «32-я Международная конференция ACM/IEEE по программной инженерии» . Май 2010. .
  8. ^ Jump up to: а б с д Хант, Энди ; Томас, Дэйв (март – апрель 2002 г.). «Археология программного обеспечения» (PDF) . Программное обеспечение IEEE . 19 (2): 20–22. дои : 10.1109/52.991327 .
  9. ^ Каннингем, Уорд (2001). «Опрос сигнатур: метод просмотра незнакомого кода» . Заявление о позиции семинара, Археология программного обеспечения: понимание больших систем, OOPSLA 2001 .
  10. ^ Кук, Джон Д. (10 ноября 2009 г.). «Программная археология» . Стремление .
  11. ^ де Соуза, Клейдсон; Фрелих, Джон; Дуриш, Пол (2005). «В поисках источника: исходный код программного обеспечения как социальный и технический артефакт» (PDF) . Материалы Международной конференции ACM SIGGROUP 2005 г. по поддержке групповой работы . стр. 197–206. дои : 10.1145/1099203.1099239 . ISBN  1595932232 .
  12. ^ Jump up to: а б Розлог, Михаил (28 января 2008 г.). «Археология программного обеспечения: что это такое и почему это должно волновать разработчиков Java?» . java.sys-con.com.
  13. ^ Шарвуд, Саймон (3 ноября 2004 г.). «В поисках утраченного кода» . ЗДНет .
  14. ^ Рис, Гарет (12 июня 2013 г.). «Археология программного обеспечения и технический долг» .

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 4de049aeda353961ed516b3d15f7d4bf__1686952920
URL1:https://arc.ask3.ru/arc/aa/4d/bf/4de049aeda353961ed516b3d15f7d4bf.html
Заголовок, (Title) документа по адресу, URL1:
Software archaeology - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)