Валидация и верификация программ

Примерные темы рефератов

  1. Классификация принципов обучения
  2. Содержание принципа профессиональной направленности обуче­ния
  3. Суть взаимодействие принципов коммуникатив­ности и сознательности в учебном процессе

 

Основная литература

1. 1. Щукин А.Н. Методика преподавания русского языка как иностранного: Учеб. пособие для вузов/А.Н.Щукин.- М.: Высш. шк., 2003.

2. Методика преподавания русского языка в школе /Под ред. М.Т. Баранова. – М., 2000.

 

Дополнительная литература

 

1. Методика преподавания русского языка как иностранного для зарубежных студентов-филологов/Подред. А.Н.Щукина.— М., 1990. Принципы обучения. С. 27—35.

2. Методика преподавания русского языка как иностранного/О.Д. Митрофанова и др.—М., 1990. Принципы. С. 76—109.

3. СурыгинА.И. Основы теории обучения на неродном для учащихся языке.— СПб., 2000. Закономерности и принципы обучения на неродном языке. С. 79—105.

4. Bum ИЛ. Теория и практика обучения немецкому языку в средней школе.— М., 1988. Основополагающие принципы обучения иностранному языку и немецкому языку в частности. С. 30—40.

5. Рогова Г.В., Верещагина И.Н. Методика обучения английскому языку на началь­ном этапе в общеобразовательных учреждениях.— М., 1998. Принципы обучения анг­лийскому языку на начальном этапе. С. 49—78.

6. Пассов Е.И. Коммуникативный метод обучения иноязычному говорению.— М., 1991. Характеристика основных принципов современной методики. С. 111 —116.

7. Миньяр-Велоручев Р.К. Методика обучения французскому языку.— М., 1990. Принципы обучения иностранным языкам. С. 20—32.

8. Леонтьев А.А. Язык и речевая деятельность в общей и педагогической психоло­гии.— М.— Воронеж, 2001. Психологические основы наглядности в учебнике иностран­ного языка. С. 283—291.

Верификация и валидация являются видами деятельности, направленными на контроль качества программного обеспечения и обнаружение ошибок в нем. Имея общую цель, они отличаются источниками проверяемых в их ходе свойств, правил и ограничений, нарушение которых считается ошибкой.

Для дальнейшего изложения нам необходимо ввести термин "артефакт жизненного цикла ПО".Артефактами жизненного цикла ПО называются различные информационные сущности, документы и модели, создаваемые или используемые в ходе разработки и сопровождения ПО. Так, артефактами являются техническое задание, описание архитектуры, модель предметной области на каком-либо графическом языке, исходный код, пользовательская документация и т.д. Различные модели, используемые отдельными разработчиками при создании и анализе ПО, но не зафиксированные в виде доступных другим людям документов, не могут считаться артефактами.

Верификация проверяет соответствие одних создаваемых в ходе разработки и сопровождения ПО артефактов другим, ранее созданным или используемым в качестве исходных данных, а также соответствие этих артефактов и процессов их разработки правилам и стандартам. В частности, верификация проверяет соответствие между нормами стандартов, описанием требований (техническим заданием) к ПО, проектными решениями, исходным кодом, пользовательской документацией и функционированием самого ПО. Кроме того, проверяется, что требования, проектные решения, документация и код оформлены в соответствии с нормами и стандартами, принятыми в данной стране, отрасли и организации при разработке ПО, а также - что при их создании выполнялись все указанные в стандартах операции, в нужной последовательности. Обнаруживаемые при верификации ошибки и дефекты являются расхождениями или противоречиями между несколькими из перечисленных документов, между документами и реальной работой программы, между нормами стандартов и реальным процессами разработки и сопровождения ПО. При этом принятие решения о том, какой именно документ подлежит исправлению (может быть, и оба) является отдельной задачей.

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

Различие между верификацией и валидацией проиллюстрировано на рисунке 1.

Рисунок 1 - Соотношение верификации и валидации

Приведенные определения получены некоторым расширением определений из стандарта IEEE 1012 на процессы верификации и валидации. В стандартном словаре терминов программной инженерии IEEE 610.12 1990 года определение верификации по смыслу примерно то же, а определение валидации несколько другое - там говорится, что валидация должна проверять соответствие полученного в результате разработки ПО исходным требованиям к нему. В этом случае валидация являлась бы частным случаем верификации, что нигде в литературе по программной инженерии не отмечается, поэтому, а также потому, что оно поправлено в IEEE 1012 2004 года, это определение следует считать неточным. Частое использование фразы B. Boehm'а:

Верификация отвечает на вопрос "Делаем ли мы продукт правильно?", а валидация- на вопрос "Делаем ли мы правильный продукт?"

также добавляет путаницы, поскольку афористичность этого высказывания, к сожалению, сочетается с двусмысленностью. Однако многочисленные труды его автора позволяют считать, что он подразумевал под верификацией и валидацией примерно те же понятия, которые определены выше. Указанные разночтения можно проследить и в содержании стандартов программной инженерии. Так, стандарт ISO 12207 считает тестирование разновидностью валидации, но не верификации, что, по-видимому, является следствием использования неточного определения из стандартного словаря.

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