~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ F7FB9738D16A36ACA20D33E2CC438C5A__1712961840 ✰
Заголовок документа оригинал.:
✰ Static program analysis - Wikipedia ✰
Заголовок документа перевод.:
✰ Статический анализ программы — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Static_program_analysis ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/f7/5a/f7fb9738d16a36aca20d33e2cc438c5a.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/f7/5a/f7fb9738d16a36aca20d33e2cc438c5a__translat.html ✰
Дата и время сохранения документа:
✰ 16.06.2024 18:53:36 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 13 April 2024, at 01:44 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Статический анализ программы — Википедия Jump to content

Статический анализ программы

Из Википедии, бесплатной энциклопедии

В информатике динамического статический анализ программ (также известный как статический анализ или статическое моделирование ) — это анализ компьютерных программ, выполняемый без их выполнения, в отличие от анализа программ , который выполняется над программами во время их выполнения в интегрированной среде. [1] [2]

Этот термин обычно применяется к анализу, выполняемому автоматизированным инструментом, при этом человеческий анализ обычно называют «пониманием программы», пониманием программы или проверкой кода . В последнем из них проверка программного обеспечения и пошаговые руководства по программному обеспечению также используются программы . В большинстве случаев анализ выполняется на некоторой версии исходного кода , а в других случаях — на некоторой форме ее объектного кода .

Обоснование [ править ]

Сложность анализа, выполняемого инструментами, варьируется от тех, которые рассматривают только поведение отдельных операторов и деклараций; [3] до тех, которые включают в свой анализ полный исходный код программы. Использование информации, полученной в результате анализа, варьируется от выявления возможных ошибок кодирования (например, инструмента lint ) до формальных методов , которые математически доказывают свойства данной программы (например, ее поведение соответствует поведению ее спецификации).

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

Растущее коммерческое использование статического анализа связано с проверкой свойств программного обеспечения, используемого в критически важных для безопасности компьютерных системах, , и обнаружение потенциально уязвимого кода. [5] Например, следующие отрасли определили использование статического анализа кода как средство улучшения качества все более сложного и сложного программного обеспечения:

  1. Медицинское программное обеспечение США . Управление по санитарному надзору за качеством пищевых продуктов и медикаментов (FDA) определило использование статического анализа для медицинских устройств. [6]
  2. Ядерное программное обеспечение: В Великобритании Управление по ядерному регулированию (ONR) рекомендует использовать статический анализ систем защиты реакторов . [7]
  3. Авиационное программное обеспечение (в сочетании с динамическим анализом ). [8]
  4. Автомобили и машины (функциональная безопасность является неотъемлемой частью каждого этапа разработки автомобильной продукции, ISO 26262 , раздел 8).

Исследование, проведенное VDC Research в 2012 году, показало, что 28,7% опрошенных инженеров встраиваемого программного обеспечения используют инструменты статического анализа, а 39,7% планируют использовать их в течение 2 лет. [9] Исследование 2010 года показало, что 60% опрошенных разработчиков европейских исследовательских проектов хотя бы использовали базовые встроенные в IDE статические анализаторы. Однако только около 10% использовали дополнительный (и, возможно, более продвинутый) инструмент анализа. [10]

название « статическое тестирование безопасности приложений» В индустрии безопасности приложений также используется (SAST). SAST является важной частью жизненных циклов разработки безопасности (SDL), таких как SDL, определенный Microsoft. [11] и обычная практика в компаниях-разработчиках программного обеспечения. [12]

Типы инструментов [ править ]

OMG ( Object Management Group ) опубликовала исследование, касающееся типов анализа программного обеспечения, необходимых для качества программного обеспечения измерения и оценки . В этом документе «Как обеспечить отказоустойчивые, безопасные, эффективные и легко изменяемые ИТ-системы в соответствии с рекомендациями CISQ» описаны три уровня анализа программного обеспечения. [13]

Уровень единицы
Анализ, который происходит внутри конкретной программы или подпрограммы, без подключения к контексту этой программы.
Технологический уровень
Анализ, который учитывает взаимодействие между модульными программами, чтобы получить более целостное и семантическое представление об общей программе, чтобы найти проблемы и избежать очевидных ложных срабатываний.
Системный уровень
Анализ, который учитывает взаимодействие между модульными программами, но не ограничиваясь одной конкретной технологией или языком программирования.

Можно определить дальнейший уровень анализа программного обеспечения.

Миссия/Бизнес-уровень
Анализ, который учитывает условия, правила и процессы уровня бизнеса/миссии, которые реализованы в программной системе для ее работы в рамках деятельности уровня предприятия или программы/миссии. Эти элементы реализуются без ограничения одной конкретной технологией или языком программирования и во многих случаях распространяются на несколько языков, но статически извлекаются и анализируются для понимания системы для обеспечения выполнения миссии.

Формальные методы [ править ]

Формальные методы — это термин, применяемый к анализу программного обеспечения компьютерного оборудования ), результаты которого получены исключительно за счет использования строгих математических методов. Используемые математические методы включают денотационную семантику , аксиоматическую семантику , операционную семантику и абстрактную интерпретацию .

Путем прямого сведения к проблеме остановки можно доказать, что (для любого полного по Тьюрингу языка) обнаружение всех возможных ошибок времени выполнения в произвольной программе (или, в более общем плане, любого вида нарушения спецификации конечного результата программа) неразрешима : не существует механического метода, который всегда мог бы правдиво ответить, может ли произвольная программа выявлять или не выявлять ошибки во время выполнения. Этот результат восходит к работам Чёрча , Гёделя и Тьюринга в 1930-х годах (см.: Проблема остановки и теорема Райса ). Как и во многих неразрешимых вопросах, все же можно попытаться дать полезные приблизительные решения.

Некоторые из методов реализации формального статического анализа включают: [14]

Статический анализ на основе данных [ править ]

Статический анализ на основе данных использует большие объемы кода для определения правил кодирования. [16] [ нужен лучший источник ] Например, можно использовать все пакеты Java с открытым исходным кодом на GitHub, чтобы изучить хорошую стратегию анализа. Для вывода правил можно использовать методы машинного обучения. [17] Также можно извлечь уроки из большого количества прошлых исправлений и предупреждений. [16] [ нужен лучший источник ]

Исправление [ править ]

Статические анализаторы выдают предупреждения. Для определенных типов предупреждений можно разработать и внедрить автоматического исправления методы . Например, Логоззо и Болл предложили автоматизированные исправления для C# cccheck . [18]

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

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

  1. ^ Вичманн, бакалавр; Каннинг, А.А.; Клаттербак, ДЛ; Уинсбарроу, Луизиана; Уорд, Нью-Джерси; Марш, DWR (март 1995 г.). «Промышленный взгляд на статический анализ» (PDF) . Журнал программной инженерии . 10 (2): 69–75. дои : 10.1049/sej.1995.0010 . Архивировано из оригинала (PDF) 27 сентября 2011 г.
  2. ^ Эгеле, Мануэль; Шольте, Теодор; Кирда, Энгин; Крюгель, Кристофер (5 марта 2008 г.). «Опрос по методам и инструментам автоматизированного динамического анализа вредоносного ПО» . Обзоры вычислительной техники ACM . 44 (2): 6:1–6:42. дои : 10.1145/2089125.2089126 . ISSN   0360-0300 . S2CID   1863333 .
  3. ^ Хативада, Сакет; Тушев, Мирослав; Махмуд, Анас (01 января 2018 г.). «Ровно достаточно семантики: теоретико-информационный подход для локализации ошибок программного обеспечения на основе ИК» . Информационные и программные технологии . 93 : 45–57. дои : 10.1016/j.infsof.2017.08.012 .
  4. ^ «Цели качества программного обеспечения для исходного кода». Архивировано 4 июня 2015 г. в Wayback Machine (PDF). Материалы: Конференция Embedded Real Time Software and Systems 2010 , ERTS2010.org, Тулуза, Франция: Патрик Бриан, Мартен Броше, Тьерри Камбуа, Эммануэль Кутенсо, Оливье Гетта, Даниэль Менберт, Фредерик Мондо, Патрик Мунье, Лоик Нури, Филипп Спозио, Фредерик Розничная торговля.
  5. ^ Повышение безопасности программного обеспечения с помощью точного статического анализа и анализа времени выполнения. Архивировано 5 июня 2011 г. в Wayback Machine (PDF), Бенджамин Лившиц, раздел 7.3 «Статические методы обеспечения безопасности». Докторская диссертация в Стэнфорде, 2006 г.
  6. ^ FDA (08 сентября 2010 г.). «Исследование безопасности программного обеспечения инфузионных насосов в FDA» . Управление по контролю за продуктами и лекарствами. Архивировано из оригинала 1 сентября 2010 г. Проверено 9 сентября 2010 г.
  7. ^ Компьютерные системы безопасности - техническое руководство по оценке аспектов программного обеспечения цифровых компьютерных систем защиты, «Компьютерные системы безопасности» (PDF) . Архивировано из оригинала (PDF) 4 января 2013 года . Проверено 15 мая 2013 г.
  8. ^ Документ с изложением позиции CAST-9. Соображения по оценке подходов к обеспечению безопасности программного обеспечения. Архивировано 6 октября 2013 г. на Wayback Machine // FAA, Группа программного обеспечения органов сертификации (CAST), январь 2002 г.: «Верификация. Сочетание статического и динамического анализа должно быть указано заявителем/разработчиком и применено к программному обеспечению».
  9. ^ Исследования ВДК (01 февраля 2012 г.). «Автоматическое предотвращение дефектов для обеспечения качества встроенного программного обеспечения» . Исследования ВДЦ. Архивировано из оригинала 11 апреля 2012 г. Проверено 10 апреля 2012 г.
  10. ^ Прауз, Кристиан Р., Рене Райнерс и Сильвия Денчева. «Эмпирическое исследование инструментальной поддержки в сильно распределенных исследовательских проектах». Глобальная разработка программного обеспечения (ICGSE), 2010 г. 5-я Международная конференция IEEE. IEEE, 2010 г. http://ieeexplore.ieee.org/ielx5/5581168/5581493/05581551.pdf
  11. ^ М. Ховард и С. Липнер. Жизненный цикл разработки безопасности: SDL: процесс разработки явно более безопасного программного обеспечения. Майкрософт Пресс, 2006. ISBN   978-0735622142
  12. ^ Ахим Д. Брукер и Уве Содан. Развертывание статического тестирования безопасности приложений в больших масштабах. Архивировано 21 октября 2014 г. на Wayback Machine . В GI Sicherheit 2014. Конспект лекций по информатике, 228, стр. 91-101, GI, 2014.
  13. ^ «Информационный документ OMG | CISQ — Консорциум по качеству информации и программного обеспечения» (PDF) . Архивировано (PDF) из оригинала 28 декабря 2013 г. Проверено 18 октября 2013 г.
  14. ^ Виджай Д'Сильва; и другие. (2008). «Обзор автоматизированных методов формальной проверки программного обеспечения» (PDF) . Транзакции в CAD. Архивировано (PDF) из оригинала 4 марта 2016 г. Проверено 11 мая 2015 г.
  15. ^ Джонс, Пол (9 февраля 2010 г.). «Подход к анализу программного обеспечения медицинского оборудования, основанный на формальных методах» . Проектирование встроенных систем. Архивировано из оригинала 10 июля 2011 года . Проверено 9 сентября 2010 г.
  16. ^ Перейти обратно: а б «Учимся на чужих ошибках: анализ кода на основе данных» . www.slideshare.net . 13 апреля 2015 г.
  17. ^ О, Хакджу; Ян, Хонсок; Йи, Квангын (2015). «Изучение стратегии адаптации программного анализа посредством байесовской оптимизации». Материалы Международной конференции ACM SIGPLAN 2015 по объектно-ориентированному программированию, системам, языкам и приложениям — OOPSLA 2015 . стр. 572–588. дои : 10.1145/2814270.2814309 . ISBN  9781450336895 . S2CID   13940725 .
  18. ^ Логоццо, Франческо; Болл, Томас (15 ноября 2012 г.). «Модульная и проверенная автоматическая программа восстановления» . Уведомления ACM SIGPLAN . 47 (10): 133–146. дои : 10.1145/2398857.2384626 . ISSN   0362-1340 .

Дальнейшее чтение [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: F7FB9738D16A36ACA20D33E2CC438C5A__1712961840
URL1:https://en.wikipedia.org/wiki/Static_program_analysis
Заголовок, (Title) документа по адресу, URL1:
Static program analysis - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)