Войти в мой кабинет
Регистрация
ГОТОВЫЕ РАБОТЫ / ДИССЕРТАЦИЯ, ИНФОРМАТИКА

Исследование методов верификации и тестирования многопоточных приложений.

happy_woman 2490 руб. КУПИТЬ ЭТУ РАБОТУ
Страниц: 83 Заказ написания работы может стоить дешевле
Оригинальность: неизвестно После покупки вы можете повысить уникальность этой работы до 80-100% с помощью сервиса
Размещено: 20.10.2020
Целью данной работы является изучение методов верификации и тестирования многопоточных приложений. Объектом изучения является процесс изучения методов верификации, предметом работы является тестирования многопоточных приложений. Исходя из цели работы, установлены соответствующие задачи: - изучить единую информацию о процессе верификации и аттестации программного обеспечения; - рассмотреть особенности верификации и аттестации программного обеспечения; - раскрыть сущность планирования, верификации и аттестации; - определить технологию инспектирования программных систем; - исследовать особенности инспектирования программ; - рассмотреть особенности планирования тестирования дефектов и сборки. В данном исследовании применялся метод анализа специальной научной литературы, периодических изданий по теме исследования, а также анализ и обобщение опыты работы исследователей по данной теме. В этой исследовании предоставляющие программный интерфейс программный продукт будет составлен из отдельных процедур, составленных на языке программирования, которые можно использовать с различными значениями параметров. Отдельные программы интерфейса могут быть созданы из разнотипных потоков программы одновременно. Процесс выполнения любого приложения может разбиваться на несколько отдельных потоков, которые выполняются в общем адресном пространстве своего процесса. При этом каждый поток (thread, тред, облегчённый процесс) использует свой собственный стек и при необходимости может работать со своей собственной очередью событий. На однопроцессорных системах потоки выполняются по очереди, последова-тельно, но малыми квантами времени, что создаёт иллюзию их параллельного выполнения. На многопроцессорных системах потоки могут работать по-настоящему параллельно, одновременно друг с другом. Обычно приходится прибегать к многопоточному программированию в тех случаях, когда требу-ется, чтобы длительные операции по обработке данных (или ожидание при-хода этих данных от сервера) не блокировали работу пользовательского ин-терфейса. Применяя многопоточных приложении достигается экономия памяти и времени, так как переключение контекста переходит на облегченный процесс, которого требуется только сменить стек и восстановить значения регистров, значительно быстрее, чем на обычный процесс. В период широкого использования многоядерных гибридных и многопроцессорных системах использована мультипроцессорные архитектура. Именно многопоточность основана на многоядерной процессор, дает возможность, наконец, почувствовать реальные преимущества параллельного выполнения. Модели многопоточности в операционных системах, как и многих других возможностей, имеет несколько уровней абстракции. Самый высокий из них – пользовательский уровень. С точки зрения пользователя и его программ, управление потоками реализовано через библиотеку потоков пользовательского уровня (user threads). Практическая значимость исследования работы состоит в возможности использования материала в работе программистов, студентов направления «Информационные технологии». Методологическая основа дипломной работы представлена таким труда-ми учёных-исследователей, как: Каримова А.А., Митюрина Н.Ю., Бобкова Н.В., Тихонович М.И., Веселина К.Ю., Гусева Ю.М., Воронина Е.В., Си-вакова Н.Н. и др. Информационную базу исследования представляют материалы и пособия, по проблематике исследования, а также специальная методическая литература по теме работы. Исследования состоит из введения, трёх основных глав, заключения и списка литературы.
Введение

В ходе проведения процесса верификации и аттестации в программном обеспечении, чаще всего, возникает ошибка, а нередко и не одна, которую непременно необходимо исправлять. После корректировки и исправлени следует заново произвести проверку программы. Поэтому необходимо опять осуществить инспектировку программного обеспечения или произвести повтор процесса проверки. Разработчики обязаны учитывать, что не существует простого метода при корректировке погрешностей в программах. Вторичная проверка осуществляется для надёжности, чтобы удостовериться, что привнесённые корректировки не принесут нового сбоя, т.к. при работе высокий риск «корректировки ошибок» не заканчивается целиком, или же привносит другие погрешности в системе. В ходе разработки более масштабных систем последующая вторичная проверка системы обходится весьма недёшево; в этом случае для экономии устанавливают взаимосвязи и зависимости среди элементов системы и производят испытание непосредственно этих представленных элементов. Проблема исследования заключается в вопросе: какие существуют методы верификации и тестирования многопоточных приложений.
Содержание

ВВЕДЕНИЕ 5 РАЗДЕЛ 1 ТЕОРЕТИЧЕСКИЕ АСПЕКТЫ ВЕРИФИКАЦИИ МНОГОПОТОЧНЫХ ПРИЛОЖЕНИЙ 7 1.1 Общие сведения о верификации и аттестации программного обеспечения 7 1.2 Верификация и аттестация программного обеспечения 12 1.3 Тестирование программного обеспечения 17 Выводы по первой главе 21 РАЗДЕЛ 2 МЕТОДИЧЕСКИЕ АСПЕКТЫ ВЕРИФИКАЦИИ И ТЕСТИРОВАНИЯ МНОГОПОТОЧНЫХ ПРИЛОЖЕНИЙ 24 2.1 Планирование верификации и аттестации 24 2.2 Инспектирование программных систем 28 2.3 Инспектирование программ 33 Выводы по второй главе 37 РАЗДЕЛ 3 ПРОЦЕСС ТЕСТИРОВАНИЯ МНОГОПОТОЧНЫХ ПРИЛОЖЕНИЙ 39 3.1 Планирование тестирования 39 3.2 Тестирование дефектов многопоточных приложений 46 3.3 Формальные методы верификации многопоточных приложений 51 Выводы по третьей главе 54 ЗАКЛЮЧЕНИЕ 56 СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 57 ПРИЛОЖЕНИЕ А 61 ПРИЛОЖЕНИЕ Б 62 ПРИЛОЖЕНИЕ В 63 ПРИЛОЖЕНИЕ Г 64 ПРИЛОЖЕНИЕ Д 65 ПРИЛОЖЕНИЕ Е 69
Список литературы

1. Амонашвили Ш.А. Управление ПО // Приложение к журналу «Программное обеспечение». – М., 2012. – 145 с. 2. Арсентьева А.П. Учебно-методический образовательный процесс. М., 2014.- 234 с. 3. Бирков П.О. Методика оценки ПО. - Минск, 2014. – 123 с. 4. Бобкова Н.В. Верификация и аттестация в системе.- М.,2013. – 178 с. 5. Бурякова Н.А., Чернов А.В. Классификация частично формализованных и формальных моделей и методов верификации программного обеспечения // Инженерный Вестник Дона. 2012. № 4. C. 129-134. 6. Веселина К.Ю., Шалыто А.А. Верификация простых автоматных программ на основе метода Model Checking // XV Международная научно-методическая конференция «Высокие интеллектуальные технологии и инновации в образовании и науке»: матер. СПб.: СПбГПУ, 2012. С. 285-288. 7. Визель Д.Г. Повторное тестирование ПО. - М.,2014.- 453 с. 8. Вишнякова Н.О. Методы, принципы и функции верификации ПО / Н.О. Вишнякова // Теория и практика исследований ПО. – 2013. – № 12. – С. 54-58. 9. Воронина Е.В. Проектирование форм, методов и средств контроля результатов процесса верификации ПО. – М.: Просвещение, 2012. – 158 с. 10. Гетманова А.Д. Методы верификации и тестирования многопоточных приложений. - М.,2015. – 258 с. 11. Гетманова А.Д. Методики верификации ПО. - М., 2015. – 245 с. 12. Гладышев К.Е. Сведения о верификации и аттестации ПО. – М:. Просвещение, 2014. – 203 с. 13. Глухих М.И., Ицыксон В.М., Цесько В.А. Использование зависимостей для повышения точности статического анализа программ // Моделирование и анализ информационных систем. 2013. № 4. C. 68-79. 14. Городенко Н.Ш. Особенности верификации и аттестации ПО. М., 2014. – 456 с. 15. Гузеева Е.Н. Технология инспектирования программных систем. // ПО сегодня М.: 2013, №3. – С. 12-15. 16. Гусева Ю.М. Обзор и анализ инструментов, который осуществляют верификацию бинарного кода программы // Новые информационные технологии в автоматизированных системах: материалы 17-го научно-практического семинара. Вып. 17. М.: ИПМ им. М.В. Келдыша, 2014. C. 514-518. 17. Деммени Е. Проектирование форм, методов и средств контроля ПО. – Л.: Детгиз, 2014. – 456 с. 18. Иваненко К.А. Особенности планирование тестирования дефек-тов и сборки. - М.,2014. – 256 с. 19. Иваненко К.А. Проектирование и разработка программного обеспечения. М.,2014. – 453 с. 20. Иванин У.Г. Новая классификация методов верификации ПО. - М.: Просвещение, 2012.- 234 с. 21. Каримова А.А. Верификация параллельных и распределённых программных систем. СПб.: БХВ-Петербург, 2012. 560 с. 22. Кириенко В.Б. Повторное тестирование. - М.: Просвещение, 2012. – 231 с. 23. Клаус Г. Верификация и аттестация в системе. М., 2015. С. 92. Казаренков В.И.: Дис. Д-ра пед. наук: М., 2014. – 254 с. 24. Курбанова К.М. Тестирование многопоточных приложений. Ростов-на-Дону, 2012. 145 с. 25. Лаврищева Е.М., Петрухин В.А. Методы и средства инженерии программного обеспечения: учебник. М.: МФТИ, 2016. 304 с. 26. Ланда Б.X. Методы верификации и тестирования многопоточных приложений. // Программное обеспечение. М.: Просвещение, 2014. – № 1. – С. 57-60. 27. Митюрина Н.Ю., Мутилин В.С., Новиков Е.М., Хорошилов А.В. Обзор инструментов статической верификации Си программ в применении к драйверам устройств операционной системы Linux // Сборник трудов Института системного программирования РАН. Т. 22. М.: ИСП РАН, 2012. C. 293-294. DOI: 10.15514/ISPRAS-2012-22-17. 28. Мендельсон Э.К. Сведения о верификации и аттестации ПО. М.: Наука, 2014.- 423 с. 29. Немченко А.С. Методики диагностики ПО: Учебное пособие для студентов высших педагогических учебных заведений: В 2 кн. – 1-е изд. М., 2014. – 458 с. 30. Перевалов К.Г. Проектирование форм, методов и средств контроля результатов процесса подготовки ПО. – М: Наука, 2016.- 234 с. 31. Попова В.М. Методики диагностики ПО //СПО, 2012, №4. – С. 34 - 39. 32. Радоуцкий В.Ю. Проектирование форм, методов и средств контроля результатов процесса верификации программного обеспечения. - М., 2012 – 231 с. 33. Рудаков И.В., Гурин Р.Е., Ребриков А.В. Верификация программного обеспечения: обзор методов и характеристик // Национальная ассоциация учёных (НАУ). Ежемесячный журнал. 2014. № 3, ч. 2. C. 22-26. 34. Садовский О.Л. Методы верификации // Программное обеспечение, 2013, №11. – С 3-12. 35. Светлаков О.Д. Методика оценки ПО. - СПб.,2012. 456 с. 36. Селевко Г.К. Технология инспектирования программных систем. – М., 2015. – 456 с. 37. Сивакова Н.Н. Управление современным ПО / СГПУ. – Ставрополь, 2014. – 18 с. 38. Тихонович М.И. Методики работы ПО. М: Просвещение. – 2014. – № 4. – С. 20-23. 39. Щетинина Н.Г. Изучение методов верификации и тестирования многопоточных приложений. М.: ИПР СПО, 2012. – 128 с. 40. Beyer D. Status report on software verification (competition summary SV-COMP 2014) // Tools and Algorithms for the Construction and Analysis of Systems / ed. by E. Abraham, K. Havelund. Springer Berlin Heidelberg, 2014. P. 373-388. DOI: 10.1007/978-3-642-54862- 8_25 (Ser. Lecture Notes in Computer Science; vol. 8413.). 41. Boehm B., Basili V. Top 10 list [software development] // IEEE Computer. 2014. Vol. 34, no. 1. P. 135-137. DOI: 10.1109/2.962984. 42. Boyer R.S., Elspas B., Levitt K.N. SELECT - a formal system for testing and debugging programs by symbolic execution // Proceedings of the International Conference on Reliable Software, Los Angeles, California, 1975. ACM New York, NY, USA, 2016. P. 234-254. DOI: 10.1145/800027.808445. 43. Cousot P. Abstract Interpretation // ACM Computing Surveys. 2016. Vol. 28, no. 2. P. 324-328. DOI: 10.1145/234528.234740. 44. Nielson F., Nielson N., Hankin C. Principles of Program Analysis. Corr. 2nd printing. Springer, 2015. 452 p. 45. Pasareanu C.S., Visser W. A survey of new trends in symbolic execution for software testing and analysis // International Journal on Software Tools for Technology Transfer. 2013. Vol.11, no. 2. P. 339-353. DOI: 10.1007/s10009-009-0118-1. 46. Кулямин В.В. Методы верификации программного обеспечения. 2008. 117 с. // Единое окно доступа к информационным ресурсам: интернет-портал. Режим доступа: http://www.window.edu.ru/resource/168/56168 (дата обращения 01.08.2018). 47. Лифшиц Ю. Верификация программ и темпоральные логики. Лекция № 3 курса «Современные задачи теоретической информатики». СПб., ИТМО, 2015. C. 3-8. [Электронный ресурс] Режим доступа: http://www.yury.name/modern/03modernnote.pdf (дата обращения 01.08.2018).
Отрывок из работы

РАЗДЕЛ 1 ТЕОРЕТИЧЕСКИЕ АСПЕКТЫ ВЕРИФИКАЦИИ МНОГОПОТОЧНЫХ ПРИЛОЖЕНИЙ 1.1 Общие сведения о верификации и аттестации программного обеспечения Верификация и аттестация это некий процесс контроля и анализирован-ные, в процессе которого происходит проверка на соответствие программы указанному и заявленному регламенту, а также требованию заказчика. Процесс верификации и аттестации занимает весь процесс жизнедеятельности и функционирования программного обеспечения, появляющийся в ходе анализированною требований заказчика и заканчивающийся сверкой кода программы на этапе контроля программного обеспечения [3]. Определения верификации и аттестации совершенно различны по своей структуре, но, тем не менее, их нередко путают. Для того чтобы научиться различать их, будет определено основное отличие среди этих двух терминов. Верификация даёт ответ на вопрос, верно ли спроектирована программа, а аттестация определяет, правильно ли функционирует программное обеспечение [11]. В процессах верификации и аттестации используются две основные ме-тодики проверки и анализа систем: инспектирование ПО и тестирование ПО. Инспектирование ПО подразумевает анализ и проверку различных представлений системы, например, документации. Инспектирование происходит на всех этапах разработки программной системы. Параллельно с инспектированием может проводиться автоматический анализ исходного кода программ и соответствующих документов. Инспектирование и автоматический анализ – это статические методы верификации и аттестации, поскольку им не требуется исполняемая система. Тестирование ПО есть анализ выходных данных и рабочих характеристик программного продукта для проверки правильности работы системы. Тестирование – динамический метод верификации и аттестации, так как применяется к исполняемой системе. Одной из важнейших проблем при проектировании и разработке про-граммного обеспечения является его верификация. Методы верификации про-граммного обеспечения предназначены для подтверждения фактов соответ-ствия конечного программного продукта заявленным требованиям, целью ве-рификации программного обеспечения является обнаружение ошибок, уязви-мостей, некорректно реализованных свойств и требований [3]. Проблема создания новой классификации методов верификации ПО является актуальной, так как позволяет рассмотреть существующие на данные момент методы верификации программного обеспечение и их программную реализацию, выявить их преимущества и недостатки. Поэтому, в процессе верификации происходит контроль соответствия программного обеспечения заявленным системным требованиям, а в частности, исправно ли функционирует либо не функционирует программное обеспечение согласно заявленным требованиям. Существует множество методов верификации ПО, в данной статье рас-сматривается лишь несколько методов, приведенных на Рис 1. Это, прежде всего, символьное выполнение, проверка моделей, динамические и статические методы верификации ПО. Данные методы являются наиболее эффективными на данный момент. Изучение алгоритмов и принципов работы существующих методов верификации, послужит основой для создания синтетического метода верификации на основе SMT-решателей. Рис. 1 - Методы верификации ПО Процесс аттестации – это наиболее обширный процесс. В ходе аттестации основная задача – показать клиенту, что программное обеспечение оправдывает ожидания заказчика. Аттестацию всегда проводят после процесса верификации. На раннем этапе проектирования программного обеспечения весьма зна-чим процесс аттестации системного требования. В требованиях нередко попа-даются определённые погрешности, ошибки, неточности, которые могут по-служить причиной несоответствия итоговой версии требованию клиента. Про-ектировщик обязан решить данную проблему. Тем не менее, общеизвестно, что весьма трудно исправить все неточности в требованиях. Некоторые погрешности могут выявиться лишь тогда, когда программное обеспечение уже реализовано [2]. В ходе верификации и аттестации применяются пару главных методик контроля и анализирование системы: инспектирование программного обеспе-чения и дальнейшая его проверка. Инспектирование программного обеспечения является неким анализом и контролем разных элементов программы, к примеру, документов. Процесс инспектирования протекает на всех стадиях проектирования программного обеспечения. Одновременно с процессом инспектирования может происходить автоматическое анализирование кода-исходника программного обеспечения и его соответствующих составляющих [4]. Процесс контроля и проверки системы является динамическим способом хода верификации и аттестации, поскольку используется к применяемой системе. На рисунке 2 представлена точка инспектировки и проверки системы в процессе проектирования программного обеспечения. Стрелки показывают на стадии хода проектирования, где используются указанные способы [9]. Рис. 2 - Инспектировка и проверка системы в процессе проектирования Ход инспектировки и анализа является методом статистической верифи-кации и аттестации, поскольку в данном случае не предполагается применяемая система. Контроль и оценка программного обеспечения является анализом итоговых данных и рабочих параметров программного обеспечения для контроля верности жизнедеятельности системы. Самой главной проблемой при проектировании и разработке программ-ного обеспечения считается его верификация. Методы верификации предназначаются для утверждения факта соответствия итогового продукта программы представленным требованиям, задачей считается нахождение ошибок, уязвимостей, некорректно осуществлённых свойств и требований заказчика [1]. Методы формального процесса верификации позволяют провести непо-средственно верификацию, основываясь на математической модели системы без обращения к её физической реализации. Техника символьного исполнения [5] часто применяется в последнее время для тестирования и анализа систем [6] и даёт возможность моделирования осуществления проектной деятельности, при которой доля входных переменных предстаёт в символьном варианте. Один из важных этапов верификации – это проверка программного обеспечения на соответствие заявленным характеристикам качества. Далее будут представлены самые основные свойства программного обеспечения: - корректность (соответствие программного обеспечения заявленному предназначению); - защищённость программного обеспечения; - стабильность программного обеспечения в случае недетерминированного действия общества (к примеру, неправильные входные данные); - результативность применения ресурсов периода и памяти; - адаптирование системы к определённым переменам окружения; - транспортабельность и сочетаемость. Наиболее значительные элементы верификации включают символьное осуществление, контроль модификаций, динамические и постоянные способы верификации. Исследование алгоритмов и основ службы существующих способов верификации, послужит базой для формирования искусственного способа верификации в основе SMT-решателей [11] – это некие методы, которые, принимают на входе вопрос разрешимости, т.е. ставят задачу, сформулированную в сфере определённой формальной системы, и требует ответа «да» либо «нет», и в итоге на выходе выдают соответствующий итоговый результат. Методы верификации включают: - проверку модификаций (model checking); - закономерность заключения (logical inference); - символьное осуществление; - абстрактное интерпретирование; - регулярное исследование алгоритмов и проектов; - схемы неоспоримого программирования. Основными разновидностями и характеристиками считаются: [12]: - непосредственно устойчивость программного обеспечения при недетерминированной операции; - эффективность использования временных ресурсов и ресурсов памяти. Существует большое количество способов верификации, далее представ-лены некоторые наиболее широко используемые технологии (рисунок А.1). Классификация способов верификации системы включает формальные способы. Следует внедрить несколько определений, которые содержатся в ос-новании этой систематизации способов, [13]: - типы способов – представление ключевых разновидностей рассматриваемого подхода; - уровень автоматизации – устанавливает степень возможной автоматиза-ции методов верификации; - степень многофункциональной годности – устанавливает степень ширины области вопросов, покрывающей способ верификации; - достоверность – оценка свойства получаемых замеров, демонстрирует, насколько неточность способа (анализ отклонения измеренного значимости величины от её подлинного значения) устремляется к нулю; - виды обнаруживаемых погрешностей; - результативность – устанавливает эффективность способа; - сфера применимости – устанавливает, в которой стадии исследования употребим тот либо другой способ верификации системы, кроме того, устанавливает к каким артефактам системы можно использовать способ верификации. Артефактом системы называется изучаемая часть программного кода проекта; - период исполнения – устанавливает период, который необходим для проведения процесса верификации; - метод достижения результата – устанавливает способы и методы, с по-мощью которых приборы наблюдения реализовывают верификацию программного обеспечения [21]. Экспертиза бывает двух видов: всеобщей либо специальной, при этом общую экспертизу можно поделить на соответствующие типы [27]: - техническая экспертиза – установление годности программного продукта с целью применения его согласно предназначению, соотношение его спецификации и образцам; - сквозное контролирование, исследование и анализ проекта посредством контроля артефакта, при поддержке группы специалистов, члены команды поочерёдно представляют все свойства программы, а специалисты исследуют её и записывают критические замечания, фиксируя вероятные погрешности и уязвимости; - проверка – исследование, при котором отбор погрешностей и уязвимо-стей исполняется в согласовании с чётким планом; - аудирование – исследование проекта, который производится людьми, не входящими в команду проекта. Специальную экспертизу дифференцируют на соответствующие типы [20]: - координационная экспертиза. Контролирование управлением состояния проекта; - экспертиза удобства применения. Контролирование заказчиком и поль-зователем удобства применения разрабатываемого программного обеспечения; - экспертиза безопасности. Контролирование экспертами согласно ин-формативной защищённости безопасности применения разрабатываемого про-граммного обеспечения; - исследование качеств архитектуры. Исследование качеств архитектуры программного обеспечения, анализ и систематизация сценариев взаимодей-ствия программного обеспечения с пользователем. Следовательно, наибольшим преимуществом представленной методики считается его применимость на различных этапах проектной деятельности и высокая степень покрытия классов погрешностей и уязвимости в программном обеспечении. Формальный метод верификации подразумевают под собой не некий процесс верификации математических моделей системы, а только её код-исходник. Условия к программной модификации формулируются в форме процесса спецификации. Осуществляется проверка выполнимости условий хода спецификации на форме программного обеспечения [10]. Поэтому, в процессе верификации происходит контроль соответствия программного обеспечения заявленным системным требованиям, а в частности, исправно ли оно функционирует либо не функционирует. Верификация и аттестация это некий процесс контроля и анализирования, в процессе которого происходит проверка на соответствие программы указанному и заявленному регламенту, а также требованию заказчика. Процесс верификации и аттестации занимает весь процесс жизнедеятельности и функционирования программного обеспечения, появляющийся в ходе анализирования требований заказчика и заканчивающийся сверкой кода программы на этапе контроля программного обеспечения [3]. Методы верификации предназначаются для утверждения факта соответ-ствия итогового продукта программы представленным требованиям, задачей верификации считается нахождение ошибок, уязвимостей, некорректно осу-ществлённых свойств и требований. 1.2 Верификация и аттестация программного обеспечения Одной из важнейших проблем при создании разработки ПО и проектировании является его верификация. Методы верификации программного обеспечения предназначены для подтверждения фактов соответствия конечного программного продукта требованиям заказчика, основной целью верификации является обнаружение ошибок, уязвимостей, некорректно выполнение реализованных свойств и требований [3]. Проблема создания новой классификации методов верификации является актуальной темой, так как позволяет рассмотреть существующие на данные момент методы верификации программного обеспечение и их программную реализацию, выявить их преимущества и недостатки. Классификация и исследование существующих методов позволяет составить список требований и рекомендаций для дальнейшей разработки и исследования синтетического метода верификации программного обеспечение, на основе SMT – решателя. Существует методы верификации[4] программного обеспечение эмпирические (использующие экспертизу) и формальные (использующие математический аппарат для верификации программного обеспечения)динамические (проверяющие работу программной реализации с помощью непосредственного запуска), а с точки зрения уровня автоматизации на ручные, автоматизированные и автоматические. Самым популярным способом верификации системы, считается экспертиза [20]. Экспертиза подразумевает изучение программного обеспечения, проводимое персоной (специалистом), сведущей в этой предметной сфере, специалист представляет собой, не всегда единственного творца программного продукта, но также может быть привлечена и группа лиц, со стороны, с целью объективной оценки данных программного продукта. Экспертиза исполняется командой грамотных экспертов, при этом дан-ный способ нереально осуществить механически, таким образом, все этапы экспертизы исполняются специалистами [17]. Данный способ имеет высочайшую многофункциональную пригодность и способен разрешать неограниченный круг вопросов в области верификации системы, он также употребим к различным свойствам программного обеспечения и на каждой стадии верификации [28]. Точность экспертизы находится в зависимости от квалификации и навыка экспертов, проводящих её. Исследования свидетельствуют, что от 50 до 90% погрешностей и уязвимостей обнаруживается с помощью метода экспертизы [16]. Способ даёт возможность обнаружить почти все возможные типы погрешностей и более результативен, в том случае если экспертизу выполняют максимально опытные и грамотные эксперты. Бесспорным превосходством, считается пригодность данного способа в каждой стадии исследования проекта. Период исполнения контроля находится в зависимости от трудности программного обеспечения и квалифицированно-сти команды экспертов. Формальные способы можно поделить по следующим соответствующим свойствам [19]: - дедуктивное исследование; - контроль модификаций; - контроль согласованности; - теоретическое толкование. В сравнении с экспертизой, очевидным превосходством формальных способов считается вероятность автоматизации хода верификации и возведения модификаций проектов. С целью возведения точной модификации постоянно нужен грамотный эксперт. Внешние способы отличаются значительной многофункциональной пригодностью, и значительной правильностью в том случае, когда создана соответственная внешняя форма [5]. При поддержке внешних способов обнаруживается соответствующие классы погрешностей [8]: - неопределённые действия программы; - неинициализированное неустойчивое отношение к NULL указателям; - несоблюдение законов и алгоритмов пользования библиотекой; - сценарии, приводящие к не задокументированному действию програм-мы; - переполнение буфера; - сценарии, препятствующие кроссплатформенности; - погрешности, образующиеся в циклическом коде; - погрешности форматных строчек; - погрешности при применении обычных библиотек. Недостатками способов внешней верификации считается, небольшая об-ласть разрешаемых вопросов верификации, а кроме того, далеко не каждый раз можно создать более совершенную и адекватную математическую модификацию, однако при этом данные методы способны результативно функционировать в промышленных планах. Этот способ используется только лишь к тем испытываемым участкам, какие возможно учитывать в формальной модификации [14]. Для возведения точных модификаций, как правило, применяется кон-струкция Крипке [9], а с целью спецификации программного обеспечения применяют темпоральную логику [10], механическое обоснование теорем, применение мультимножеств и графов, модельные комбинации (конечные автоматы, сети Петри, кратковременные автоматы, логичное определение). Главным плюсом способа проверки модификаций, считается вероятность автоматизации течения верификации и построения модификации. Создание внешней модификации даёт возможность показать, кодировку проекта в виде рядов закономерных формулировок, что тем самым даёт возможность проконтролировать характеристики программы, выявленные в разновидности спецификации [15]. Статическое изучение программы – это исследование, производимое без практического исполнения программы (исследование, выполненное при исполнении программного обеспечения, более известное как динамичное исследование). В большинстве ситуаций разбирается определённая модификация начального программного кода. Определённая разница от динамического наблюдения данного метода в том, что статичное исследование даёт возможность рассмотреть все без исключения вероятные пути исполнения программы. Данный термин, как правило, применяется в случае, если исследование выполняется с поддержкой автоматизированных приборов [3].
Не смогли найти подходящую работу?
Вы можете заказать учебную работу от 100 рублей у наших авторов.
Оформите заказ и авторы начнут откликаться уже через 5 мин!
Похожие работы
Диссертация, Информатика, 53 страницы
550 руб.
Служба поддержки сервиса
+7(499)346-70-08
Принимаем к оплате
Способы оплаты
© «Препод24»

Все права защищены

Разработка движка сайта

/slider/1.jpg /slider/2.jpg /slider/3.jpg /slider/4.jpg /slider/5.jpg