Проверка вашей области разработки программного обеспечения!
Вы действительно не можем гарантировать, что приложения работают корректно, если вы не предпринять конкретные шаги для проверки программного обеспечения.
К сожалению, как мы все знаем, ошибки всегда существуют в программном обеспечении. Работа с ними является необходимым и повседневной деятельности для многих инженеров химических веществ. Собственные проверки программных приложений поможет нам значительно, путем:
* Изготовление выполнения наших заказов более эффективными и менее отягчающих
* Укрепление доверия к рекомендации на основе программного обеспечения результаты
* Сведение к минимуму правовые обязательства, если приложение предоставляет неправильных ответов.
Простой и ясный, проверка надлежащей технической практикой. Но это должно быть сделано правильно - в противном случае, конечный пользователь, а также разработчиком, все еще может столкнуться с существенными правовыми обязательствами. Действительно, дизайнер, скорее всего, потеряет иск, вытекающие из недостаток конструкции оборудования из-за неизвестной ошибка программного обеспечения. Это все равно, что за пределами поставщиков разработали программное обеспечение или, что дизайнер не был связан с разработкой программного обеспечения. Дизайнер должен проявлять должную осторожность и осмотрительность, и это требует надлежащей проверки программного обеспечения.
Правда проверка не является "оценки". Это гораздо более всеобъемлющим и включает в себя весь жизненный цикл программного обеспечения. Национальный Институт Стандартов и Технологии (1) обеспечивает отличный обзор концепции программы проверки. Я объединил эти с моим прошлым опытом для обеспечения руководящих принципов и методов, которые можно использовать для проверки программного обеспечения. Я конкретно не рассматривается проверки безопасности критического программного обеспечения или знания систем - многие из концепций, представленных применить, но проверка этих типов программного обеспечения, систем требует дополнительных специальных методов.
Перед началом проверки усилия, три вопроса должен быть дан ответ:
1. Что такое утверждение?
2. Что мы проверяет?
3. Как мы можем утверждать?
Эти вопросы необходимо ответить в рамках жизненного цикла программного обеспечения приложения.
Жизни цикла разработки программного обеспечения
В таблице 1 приведены развития и пост-деятельности в области развития, которые происходят в течение жизненного цикла приложения.
Модель развития. Большинство приложений, разработки программного обеспечения используют математические модели для моделирования физических явлений. Эти модели опираются либо на установленные законы физики или на эмпирических отношений. В большинстве случаев, очевидно одно: только для моделей приближенный характер.
Программное обеспечение требований и спецификаций. Большинство моделей включают сложные математические расчеты и манипуляции, которые лучше делать на компьютере. Чтобы включить компьютер, чтобы обрабатывать их соответствующим образом, требования к программному обеспечению с точки зрения техники и функциональные характеристики являются необходимыми.
Техническая документация определить, какие модели будут использоваться и как результаты модели 'являются манипуляцией. Например, два технической документации на применение для моделирования двухфазных потоков в трубах могут быть:
* "Разделенных потока модели будут использоваться для оценки потерь давления".
* "Перепад давления в зависимости от длины трубопровода будет выход из приложения."
Функциональные характеристики определяют, как ввод / вывод и осуществляется, как приложение взаимодействует с другими и аппаратных вычислительных средах. Например:
* "Все выходные будут отправлены в базу данных Access."
* "Приложение будет полностью совместим с Windows NT 4.0 операционная система".
Алгоритм развития. Для технической документации, алгоритм является логическим процедуры для решения уравнений математической модели. Он превращает вклад в выход предсказывает модель. Как правило, современные численные методы работают. Эвристические методы логики также используются. Алгоритмы служить "мостом" между моделью и кодирования. Программный код должен соответствовать последовательности мероприятий, предусмотренных алгоритмом. Логика диаграммы обычно разрабатываются иллюстрирующие нужной последовательности событий.
Рассмотрим модель для смешения реактора. Модель состоит из баланса массы, тепловой баланс, и кинетикой реакции. Несколько наборов температуры и реакции мощности возможны при решении этих уравнений модели. Два множества неподвижных точек операционной, в то время как один набор неустойчиво. Один из стабильных множеств дает очень низкий выход реакции и другие очень высокий 1. Алгоритм отвечает на вопросы: Каким образом приложение найти эти несколько наборов решение? Как это определить стабильные? Как стабильной и высокой прибылью набор нашли?
Одним из таких алгоритмов можно использовать исчерпывающий численный метод поиска связанных точки эксплуатации. Тогда, ограниченную технику поиска, например, интервал вдвое, могут быть использованы для сходятся на рабочей точке. Алгоритм должен решать, когда рабочая точка была найдена. Как правило, это включает в себя спецификации и использование значений сходимости терпимости. Многие приложения имеют допуски сходимости жестко и похоронен в рамках своих алгоритмов. Это не хорошая практика программирования. Неправильные результаты, модель нестабильности и nonconvergence много раз, увязанных с плохой допуски сходимости. Пользователь должен вводить эти допуски.
Для функциональных спецификаций, алгоритм логической процедуры обеспечения правильных требований интерфейс между приложением и других вычислительных и аппаратных средах. Она превращает вывод из других сред в формат ввода требуется приложение, или наоборот. Она также обеспечивает логическое процедуры для преобразования команд пользовательского ввода в действие требует применения (например, открытие / закрытие / сохранение файлов, вырезать / вставить "и т.д.).
Кодирование. Это язык (например, FORTRAN, APL, C или Pascal) для общения алгоритма на компьютере. Разработчик использует для конкретного языка для преобразования протоколов алгоритма на соответствующий код.
Компиляция. Компиляторы преобразования кодирования язык и понимание со стороны разработчиков на машинный язык используется компьютер форме исполняемые файлы приложений. В этом смысле, действительно есть две версии программного обеспечения: кодированного варианта понял разработчиком и скомпилированные версии понял компьютером. Это различие, хотя и тонкая, очень важно. То, что разработчик понимает, выраженная на языке программирования, не может быть, что компьютер не понимает. Составители не непогрешимым!
Язык компиляторы компьютерных микросхем зависит. Чип DEC Alpha может потребовать другой компилятор, чем чип INTEL Pentium за тот же код языка. И даже если они скомпилированы с использованием тех же исходный код, выход из различных скомпилированные версии может быть совершенно другим!
Составители также являются операционной системы зависит. Программное обеспечение выхода из DOS-скомпилированные версии могут отличаться от NT-скомпилированные версии, которые также могут отличаться от UNIX-скомпилированную версию.
Интеграции. Программное обеспечение во много раз разрабатывается как набор модулей или подразделения. Индивидуальные программисты обычно развития каждого отдельного подразделения. Интеграция включает сцепление этих обособленных подразделений в единое системы.
Программные приложения могут быть выданы нарочно как набор отдельных модулей. Данные модули служат в качестве строительных блоков, которые пользователь управляет и настраивает для моделирования конкретной системы. Таблиц приложения являются хорошим примером. Процесс инженерного программного обеспечения для моделирования Еще один случай. Эти системы обеспечивают набор моделей для конкретных единиц оборудования: насосы, теплообменники, дистилляционные колонны и т.д. инженер объединяет эти отдельные модели в один всеобъемлющий моделирование весь отряд процесса. Хотя отдельные модели могут прошли тщательную проверку, то маловероятно, что любой комбинации моделей была подтверждена. Инженер должен подтвердить, что комплексная модель процесса является надежной и обеспечивает правильные ответы.
Интеграция включает в себя интерфейс приложения с других компьютеров и аппаратных средах, которые необходимо внести в функциональных спецификаций. Оборудование может состоять из механического оборудования и инструментов, а не только компьютеры. Эффективная интеграция имеет решающее значение и должны быть очень надежными для систем управления в процессе, медицинской и военной промышленности.
Интеграция включает также как приложение вписывается в повседневные рабочие процессы. Больше раз, чем не работать процессы должны быть изменены, чтобы эффективно использовать программное обеспечение. Иногда, существующих процессов работы должно быть брошенных и разрабатывать новые. Программное обеспечение должно предоставлять значительные экономические или технические преимущества, чтобы компенсировать изменения рабочего процесса. Лучшие приложения не требуют такого изменения, но сделать существующие рабочие процессы более эффективными.
И наконец, интеграция предполагает также взаимодействие с оператором или пользователем приложения. Простота использования с минимальным уровнем подготовки является весьма желательным. Программное обеспечение должно быть интуитивным, и, таким образом, должны свести к минимуму необходимость "Советы и хитрости" для его работы.
Установки. Это размещение и использование заявки в частности операционной среды. В программе должны быть корректной работы с аппаратными и программными системами (как указано в функциональной спецификации). Программное обеспечение установлено на самом деле должны быть такими же, как исполняемый код настроен и поставляется для установки. Кроме того, надлежащее версии всех необходимых программ поддержки должен быть использован.
Эксплуатация и техническое обслуживание. Обслуживание может представлять до 50% от общей стоимости программного обеспечения, особенно, если заявка плохо проверяются. Сопровождение программного обеспечения могут быть классифицированы как корректирующие, совершенного и адаптивной.
Корректирующее обслуживание устраняет ошибки и замеченных во время работы приложения. Совершенный обслуживание повышает производительность, ремонтопригодность и другие атрибуты приложения. Адаптивная обслуживания делает программное обеспечение, используемые в изменившейся обстановке.
Корректирующие содержание не должно происходить, но почти всегда это необходимо. Именно поэтому проверка деятельности требуется после установки и в ходе эксплуатации программного обеспечения. Помните, что любые изменения, будь то корректирующие, совершенного или адаптивной, чтобы исправить одну проблему могут создавать весь репертуар новыми проблемами.
Что такое утверждение?
Проверка охватывает весь жизненный цикл приложения, а не только конец его использования. Каждый жизненный цикл шаг свои требования валидации. Проверка может быть определена как создание, на основе объективных данных, что все программные требования были выполнены правильно и полностью, и проследить, чтобы требования к системе (1). Основная цель заключается в получении достаточно уверенности в программное обеспечение для разрешить его использование.
Многие люди используют условия проверки и контроля, как взаимозаменяемые. Проверка, однако, только один процесс, посредством которого осуществляется проверка. Другие процессы, способствующие аттестация программного обеспечения включают планирование, анализ и документацию. Эти мероприятия, а также проверки, которые необходимы для проверки программного обеспечения.
Планирование. Ключ к эффективной проверки является разработка всеобъемлющего плана проверки. Этот план определяет мероприятия, необходимые проверки для каждой стадии жизненного цикла программного обеспечения (см. Рисунок 1).
Утверждение плана ответы последние два ранее заданные вопросы:
* Что мы проверяет?
* Как мы можем утверждать?
Утверждение плана включает в себя (но не ограничиваясь ими) определения:
* Какие жизненного цикла этапах будет проверяться
* Какие инженерные характеристики и функциональные характеристики будут подтверждены
* Конкретные мероприятия, проверки для каждого цикла активности
* Методы и процедуры для каждой проверки деятельности
* Критерии для начала, завершения и принятия каждой проверки деятельности
* Соответствующие планы испытаний, процедуры и случаев (реперы), которые будут использоваться
* Входы для каждой задачи проверки
* Результаты проверки каждой задачи
* Критерии оценки мероприятий правильно ли соответствовать требованиям связанные с входами
* Какие инструменты и ресурсы будут использоваться для каждого вида деятельности
* Роли и обязанности каждого члена команды проверки
* Какие предположения будут проведены, и какие риски будут приниматься в процессе проверки.
"Строительных блоков" типов приложений, таких как электронные таблицы и процесс тренажеры, заслуживают особого упоминания. Каждый комплексного "решения", разработанный с использованием таких программ требует своего плана проверки. Это не должны быть столь всеобъемлющим, как планы на сами приложения, но необходимо, тем не менее. В конце концов, эти заявления по существу могут обеспечить бесконечное число комбинаций модулей или объектов. Таким образом, хотя отдельные элементы, возможно, были проверены, все возможные комбинации не имеет. Список 2 и 3 представить более подробную информацию об одобрении планов.
Проверка. Программное обеспечение включает в себя проверку динамические, статические, а также формальные методы. Для каждого метода, число отдельных видов деятельности может быть связано с каждым шагом жизненного цикла.
Динамические методы демонстрации поведению во время выполнения программы в ответ на выбранные входы и условий. Эти методы применяются главным образом в postdevelopment стадии жизненного цикла. Тестирование классический метод динамической. Прототипы и другая тенденция техника, используемая для проверки ответа на аппаратных команд программы действий. Например, имеет смысл проверить программное обеспечение на чрезвычайные ситуации с помощью выключения-прототип лаборатории или компьютерном моделировании реальной завода, а не на самой станции. Для большинства приложений, тестирование будет наиболее часто используемых динамических метод анализа.
Тестирование показывает соответствие с инженерно-функциональной спецификации определены для проверки в одобрении плана. Индивидуальные тесты, связанные с конкретными элементами спецификации. Каждый тест случае необходимо заранее, и следовало ожидать, явные и измеримые результаты производства. Результаты должны производиться в соответствии с конкретной помощи и должны быть получены из технического задания. Планы тестирования должны быть написаны таким образом, чтобы тест выход может быть правильно и четко прослеживается в конкретный вклад. Это необходимо, чтобы определить цель успеха / критерии отказа.
Сравнение тестирования является наиболее широко используемый метод для проверки технической документации. Программных средств можно сравнить с:
* Экспериментальные результаты
* Коммерческая эффективность
* Учебник примеры
* Другие результаты программного обеспечения
* Простой теоретический результат
* Обоснованного решения инженерных
* Расчеты рук.
При использовании данных от экспериментов и коммерческих структур, всегда учитывать их ошибок измерений. Слишком много разброс делает данные бесполезными. И не спешите делать вывод о том, что программное обеспечение является неправильным, если его результаты не совсем совпадают с данными. Выход только нужно падать в пределах погрешности оценки данных измерений. Статистическая проверка гипотез должно быть использовано для определения обоснованности вывода по сравнению с данными. Критерии для принятия или отклонения гипотезы должны быть указаны в оценочном плане.
Прежде чем полагаться на учебник примеры, результаты других программ, или руку расчетов проверить программное обеспечение, вам лучше убедиться, что они правы.
Простая теория и инженерные решения могут обеспечить быстрый и грязный "проверки вменяемости". Например, поток тепла должна быть пропорциональна разности температур на постоянной коэффициент теплоотдачи. Или, падение давления в трубопроводе должны непосредственно относиться к квадрату скорости потока для полностью развитого турбулентного течения. Отсутствие программного обеспечения пройти эти проверки вменяемости обычно указывает на проблемы с кодировкой или алгоритм.
Хотя один из самых важных методов, тестирование само по себе не достаточно для проверки, особенно собственная разработчиков. Потому что большинство программного обеспечения комплекса, тестирование только может быть недостаточно, чтобы показать, что приложения правильно, полностью функциональным, и без дефектов. Чтобы компенсировать это ограничение, статические методы проверки могут быть использованы. Эти методы непосредственно анализировать форму и структуру программного обеспечения, без которой он выполняется. Они, как правило, применяются на стадии развития жизненного цикла. Статические методы включают в себя инспекции, пошаговые руководства, обзоры, аудиторские проверки, считывания кода и т. д. Эти и другие более подробно описаны в работе. 1.
Формальная верификация применяется строгий математический аппарат для анализа и проверки алгоритмов. Требований к программному обеспечению написаны на специальном языке позволяет проверки формальных методов анализа. Примеры включают в COQ INRIA, Ланд и PROTHEO инициатив (4), и SPIN программного обеспечения Лаборатории Белл (5). Использование этих методов узкоспециализированными. Вместо них определенных методов анализа можно косвенно проверки алгоритмов.
Анализ. Многие методы анализа существуют для проверки программного обеспечения. В таблице 2 перечислены некоторые наиболее распространенные из них. Я остановлюсь лишь на некоторых из этих методов. Вы можете найти более подробную информацию в работе. 1, а также в книгах в разделе "Дополнительная литература".
Критичности. Это помогает ответить на "Что у нас проверяет?" Эффект Парето гласит, что 20% проблем, причиной 80% от расходов переработать. Это также относится и к программному обеспечению. Поскольку ресурсы для проверки может быть дорогостоящим и мало, важно, чтобы усилия проверки будут наиболее эффективными. Критичности определяются сферы приложения, содержащих критические характеристики и высоким риском проблем. Критические характеристики должны быть выполнены правильно и надежно - если нет, то серьезные последствия может привести (underspecified технологического оборудования, неустойчивых строительных конструкций и т.д.).
Критичности выполняется как первый шаг в осуществлении проверки план - определить "критический" технические характеристики и требования, которые должны быть подтверждены. Таким образом, требования к программному обеспечению являются приоритетными и эффективного распределения ресурсов, облегчается.
Алгоритм анализа. Так как это сделали во время разработки программного обеспечения, она применяется только для внутреннего развитых программ. Алгоритмы должны быть правильными, соответствующими, стабильной и соответствует всем точность, сроков и размера требований. Этот метод дополняет формальные проверки алгоритмов обсуждался ранее. Пригодности численных методов состоит в оценке. Например, является ли для решения дифференциальных уравнений применимые к данному типу дифференциальных уравнений в модели? Если оптимизация занимается, это оптимизации с ограничениями? Линейные? Нелинейные?
Усечение округления, точности вычислений хранения слово и переменные (например, против одного арифметика с двойной точностью), и данных ввода влияет должны быть оценены. Влияние различных допусков на точность сходимости производства и точности также должны быть проанализированы.
Последовательность проверки. Это косвенно проверки алгоритма, кодирование, компиляцию и этапы жизненного цикла. Выход исследования чувствительности сравнивается с фактической или приближенного математического описания явлений. Тенденции с помощью программы выходного должен надлежащим образом отражать модели, на которых алгоритм, кодирование, компиляцию и основаны. Если этого не произойдет, проблема, скорее всего, ошибка в алгоритме, кодирование, компиляцию или (в таком порядке).
Рассмотрим приложение, которое оценивает падение давления для сжимаемой жидкости в трубе. Если программное обеспечение основано на адиабатической модели, мы должны получить прямой прокладки потока пара массовый ((T ^ ^ выход сабвуфера - T ^ ^ к югу в / [(T ^ ^ к югу в / P югу ^ в ^) SUP ^ 2 ^ - (T ^ ^ выход сабвуфера / P ^ выход сабвуфера ^) ^ SUP 2 ^]) ^ SUP 1 / 2 ^, где T ^ к югу в работе температура линии на входе, deg.R, T ^ выход сабвуфера ^ температура линия выхода, deg.R, P ^ к югу в работе является напорной линии на входе, дюйм, а P ^ ^ выход сабвуфера давление линия выхода, дюйм. Если в результате исследования чувствительности не согласен с этой линейной зависимости , программное обеспечение не проверяются.
Контроль потока анализа. Это делается в стадии развития жизненного цикла. Требования к программному обеспечению преобразуются и отображаются в виде графических диаграмм потока, потому что логика программного обеспечения и данных проще анализировать, чем графически письменных описаний. Этот вид анализа является наиболее подходящей для реального времени и данные приложений. Примеры таких диаграмм потоков управления включают PERT, переходное состояние, а также сделки диаграмм.
Диаграммах показаны иерархии основных процедур и их подфункций. Анализ диаграммы:
* Проверяет, что предлагаемый управление потоком без проблем (например, недоступен или неправильное проектирование программного обеспечения и элементов кода), а также
* Обнаружение бедных и, возможно, неправильный программных структур.
База данных анализа. Структура базы данных и методы доступа должны быть совместимы с логическое проектирование программного обеспечения. Этот анализ помогает обеспечить совместимость. Она обычно проводится на программы со значительными хранения данных и тех, хранения логики в данных параметров. Поскольку эти данные параметры влияют программным управлением, логический анализ их значения не требуется. База данных анализа помогает гарантировать, что:
* Общие данные и переменные регионов последовательно использовать все вызовом процедур
* Целостность данных обеспечивается
* Нет нуль или переменной может быть случайно перезаписаны переполнены таблицы данных
* Данные ввода и использования последовательной на протяжении всей программы.
Метрики. Метрических определяется как математическое определение, алгоритм, или функция, используемая для получения количественной оценки продукта или процесса (1). Чтобы быть полезной и достоверной, метрических должна быть простой, объективной, легко собираются, надежную и силе.
Есть два основных класса метрики:
1. Управление показателей для контроля за процессом разработки программного обеспечения, например, для помощи в оценке ресурсов, затрат и выполнения задач, а также
2. Качество метрик для оценки характеристик программного обеспечения или качества.
Множество метрик, доступных для каждого этапа жизненного цикла программного обеспечения. Я только представит краткий обзор некоторых из них. Более подробную информацию можно найти в работах. 1, 6 и 7.
Если вы заняты в большой внутренний SoftwareDevelopment проекта, наилучшим образом использовать метрическую анализ в процессе эксплуатации и технического обслуживания стадии жизненного цикла. Таблица 3 перечисляет ряд примитивных метрик, которые могут помочь в оценке качества программного обеспечения на этом этапе. В дополнение к этим примитивным метрики, следующие две метрики могут помочь определить, какие приложения являются самыми надежными:
Ошибка плотности. Разделив число зарегистрированных неисправностях на размер приложения, вы можете вычислить показателем качества управления усилия поставщика программного обеспечения. Логично, что крупные программы, должны иметь больше ошибок, чем мелкие. Так, нормализуя количество ошибок в отношении программного обеспечения размера обеспечивает лучшее сравнение программ, выполняющих одинаковые функции. Этот показатель является весьма полезным, если бы ресурсы ограничить количество инженерных и функциональные спецификации должны быть проверены. Вероятность возникновения проблем в будущем может быть больше на программное обеспечение с более высокой плотностью вины.
Недостатки обычно взвешенные по степени серьезности, с вина плотность, рассчитанная с помощью:
где N это общее количество недостатков, S ряд серьезных недостатков, число среднем недостатки тяжести, M ряд незначительных недостатков, W ^ ^ к югу я весовых коэффициентов (по умолчанию составляет 10, 3 и 1 соответственно ), а Z является "размер" параметр, который может быть тысячи строк кода или мегабайтов памяти (за исключением документов, "помощь", и файлы с примерами).
Средняя наработка на отказ (MTTF). Это включает записи время, прошедшее между го и (я - 1)-й ошибки, а затем найти текущий показатель по всем сообщили ошибок. Это работает среднем будет увеличиваться. Высокие значения MTTF подразумевает хорошую надежность. Этот показатель также предоставляет говорю указанием qualitycontrol усилия поставщика программного обеспечения.
Документация. Это необходимо, чтобы доказать надлежащее внимание и усердие в использовании программного обеспечения. Документы, перечисленные в таблице 4 должен быть сформирован для облегчения проверки и обеспечения качества продукции.
Для приобрели программное обеспечение, вы должны получить гарантии от продавцов, что они такие документы в той или иной форме. Если это возможно, каждый производитель должен поставлять свою проверку и качества плана обеспечения этапы развития своих программных продуктов. По крайней мере, продавец должен обеспечить перечень проверка / анализ деятельности, осуществляемой в разработке программного обеспечения. Каждый производитель также должны представить документы о действительности всех моделей, на которых основана программа, а также информацию о всех вычислительных алгоритмов, а также проверку введенных усилия. Архив документации этого производителя с остальными проверки документации программного обеспечения.
Собственные документации позволит упорядочить уровень верификации программного обеспечения требуется, если изменения не выделяется. С другой стороны, усилия и расходы на программное обеспечение повторного подтверждения может резко возрасти, если не documenta.tion собственности архивируются и доступны для дальнейшего использования.
Что мы проверяет?
С неограниченными ресурсами и "глубокие карманы", ответ прост: все! Но, как мы знаем, ресурсы и средства ограничены. Таким образом, ответ на этот вопрос становится немного сложнее.
Деятельность в области развития. Для приобретенного программного обеспечения, проверка деятельности в области развития является обязанностью продавца. Поставщика необходимо представить письменные гарантии, как уже говорилось ранее, что эти усилия были надлежащим образом выполняться. Обычно, если деятельность в области развития были правильно проверки проверки своего жизненного цикла после разработки хорошо с несколькими проблемами.
Для внутренних развитое программное обеспечение, все виды деятельности жизненного цикла развития, должны быть подтверждены. Вы можете использовать критичности в процессе разработки. Осуществление трудно в этот момент, однако, поскольку большинство компонентов программного обеспечения до сих пор не определены или не закончил. А качество продукта на более поздних этапах жизненного цикла, не может быть гарантирована. В идеале, лучше всего для отладки программы является не имеют ошибок. Хорошо написанная и осуществляемые проверки плана мероприятий в целях развития способствует достижению этой цели. Всеобъемлющего процесса проверки в течение жизненного цикла развития помогает снизить долгосрочную стоимость программного обеспечения - потому что это будет проще и дешевле надежно изменить программное обеспечение и еще раз подтверждают изменения в программном обеспечении.
Компиляторы обеспечивают отличные возможности для отладки, чтобы помочь проверки кода. К счастью, в большинстве случаев, проверка компилятор не является необходимым. Как правило, хорошо налаженные программы компилятора используется для преобразования исходного кода в объектный код. Они прошли через подробные проверки их разработчиков. Известные проблемы списки формируются и доступны от разработчиков. Как минимум, проверить, чтобы подтвердить, что эти функции компилятор известно, что проблемы не реализованы в программном приложении.
Однако, если программное обеспечение разрабатывается для эксплуатации и управления безопасностью критически важного оборудования, то компилятор проверки могут потребоваться. И, если другой компилятор используется для перекомпиляции кода, хотя ни один из кодекс был изменен, то повторного подтверждения всех компонентов должны быть рассмотрены.
Опубликовать разработок. Ключом к эффективному использованию ресурсов при проверке после развития критичности для выявления инженерных рисков и функциональными характеристиками. Решение, то это сделал и задокументированы в план проверки, являются ли эти единственные характеристики, будут одобрены.
Кроме того, спецификации и другие программные компоненты, которые должны быть рассмотрены для проверки являются:
* Интеграция приложений в существующие рабочие процессы. Программное обеспечение может обеспечить точные ответы и выполнить flawlessly._ Но, если серьезных изменений в существующие рабочие процессы необходимы, вам лучше подумать о санкционировании его использования. Это особенно важно, если менее эффективным процесс работы должны быть выполнены.
Например, приложение может оказаться полезным для разработки химического завода низовом, но трудно и неэффективно использовать для реконструкции. Или, приложение делает стадии детального инженерного проекта, более эффективна, но требует гораздо больше работы в концептуальных и предварительных этапах техники.
Некоторые приложения требуют крупных капитальных затрат реализовать. Новые файловых серверов, рабочих станций, операционных систем, телекоммуникационного оборудования и т.д., которые могут потребоваться для надлежащего выполнения. Некоторые системы управления предприятием обошлись компании столько, сколько с половиной миллиардов долларов, чтобы осуществить. Хотя это крайний пример, вам лучше быть абсолютно уверенным в том, что окупаемость таких расходов не существует. Интеграции фазы жизненного цикла, не может быть проигнорировано.
Интеграция "кирпичиков", программных модулей. Каждый раз, когда набор модулей, включенных в комплексную систему моделирования, что система должна быть проверена. Чтобы еще раз подчеркнуть: отдельные функции таблицы могут прошли значительные усилия проверки, но не все комбинации функций имеет. Каждый всеобъемлющего "решение" должно быть подтверждено.
* Простота в использовании. Если эта программа будет сложно использовать, а не интуитивно, ошибки могут случиться. Вы знаете, говорят: "Мусор в, мусор на выходе". Если пользователь не может легко обеспечить ввод или изменение настроек и параметров, то риск неправильного выход высокий. Функциональные характеристики для этих входных деятельности могут работать, но если пользователь не знает, как ими пользоваться или не могут легко внедрить в них, какая от них польза?
Либо функциональной спецификации необходимо изменить, "острием и хитрость" обойти должны быть выполнены, или интенсивных курсов. Слишком многие советы и рекомендации можно определить простоту в использовании, в то время как обширные затраты на обучение деньги. Будьте осторожны с продавцами листинг множество учебных курсов рекомендуется запускать их программное обеспечение. Это означает, что приложение не может быть простым в использовании, или, что многие решения являются требуется.
* Простота установки. Как только вы начинаете установить приложение, вы будете знать, можно легко установить. Перед тем, как достичь этой точки, откуда нет возврата, имеет смысл проверить некоторые вещи:
Насколько легко в установке и управлении необходимые лицензии "ключи" или "жетоны"?
Ли установки требуется ручное редактирование Operat, ING параметров системы, например, реестр Windows?
Можно сделать установки конечным пользователем или специалистом управления информацией необходимо?
Есть четкие инструкции по установке?
Имейте все компоненты приложения были установлены? Вам нужно узнать о них заранее. Список должен быть обеспечен установки документации.
Какие-либо обновления, изменения или исправления для операционной системы необходимо перед установкой? Они также должны быть указаны с установкой документации.
У каких-либо внешних приложений или оборудования должны быть приобретены и установлены до программного обеспечения, могут быть полностью функциональной?
Может ли пользователь определить в какой диск или каталог приложения должен быть установлен?
Какие оперативной памяти (RAM) и жестких требованиях к хранению, гнать? Разве что много пространства?
* Инструкция по эксплуатации. Это должно быть ясно, легко читать, и полной, в том числе разъяснение реализации всех функций. Если инструкция по эксплуатации написана хорошо и тщательно, то никаких учебных классах должно быть предусмотрено.
Корректирующие, совершенного или адаптивные изменения могут быть внесены в заявление во время обслуживания стадии жизненного цикла. Они проявляются в скачать, исправлений, изменений и т.д. Всякий раз, когда изменение сделано для восстановления дефекта, новая конструкция установлена. Эти изменения могут показаться незначительными, и тонкие, но неожиданные побочные эффекты может вызвать серьезные проблемы в других частях программы.
Если изменений не предлагается, все проверки деятельности должны рассматриваться и, возможно, повторяется. влияние изменений на протяжении всего приложения и в течение остальной части жизненного цикла должна быть определена и понял до внедрении изменений. Правильное рассмотрение предлагаемых изменений может свидетельствовать о том, что проверка деятельности должны быть повторены только небольшая часть приложения - или, что все эти мероприятия первоначально был реализован не должны повторяться.
Вот почему надлежащей документации и архивирования процесс проверки не требуется. Тщательно и полностью документирование структуры дизайн и взаимосвязи между различными модулями, интерфейсов и т.д., ревалидация усилия могут быть ограничены.
Как мы можем утверждать?
Прежде чем приступить к обширным и ехг) ensive. проверки усилия, 2 вопросы необходимо дать ответ:
1. Может ли программное обеспечение или "решение" быть эффективно интегрированы в наши рабочие процессы?
Перед проверки программного обеспечения, определить, какую работу процесса изменений, если таковые имеются, не требуется. Вы можете обратиться к поставщику литературы, журнал проверок или текущих пользователей применения этой информации. Если вы не можете себе позволить или не имеют времени для осуществления необходимых изменений workprocess, то проверка усилия закончилась. Вы не должны разрешать приобретение или использование программного обеспечения. В некоторых случаях вы можете не знать, что необходимо до начала проверки. Как только вы обнаружите, что выполнение важной программной функцией мандатов рабочих процессов изменения, необходимо для ее решения. Если это не представляется возможным осуществить изменения, то нет смысла в продолжении проверки усилий. Для внутренних развитое программное обеспечение, вы должны разрабатывать приложения таким образом, что все необходимые работы процесса изменения реальны. Это одно из преимуществ разработки программного обеспечения собственными силами.
2. У всех моделей были должным образом утверждены?
Если ответ на это "нет", то проверка усилия закончилась. Заявление не может быть допущены к использованию. Доказательство правильности для всех моделей в программе не требуется. Разработчики должны представить документы, журнальные статьи, экспериментальные исследования, коммерческие данные, правительственные отчеты и т.д., что все модели являются действительными, или, что модели на основе принятых законов физики. Года Представление этих документов автоматически не благословит модели действительными. Пользователь должен адекватно рассмотреть эти документы, с тем, что соответствующее решение может быть сделано.
То же самое верно для собственного развития. Модели, используемые в программных средств может быть новым и частной собственностью. Должно быть принято решение относительно того, экспериментальные программы, необходимые для правильной проверки.
Если вы можете ответить "да" на эти два вопроса, то проверка может быть продолжена. Для поставляемых независимыми разработчиками программного обеспечения, функциональные спецификации должны быть проверены в первую очередь. Они легче, чем для проверки технической документации. И если большинство функциональных спецификаций не работают, проверки усилия должны остановиться и не перейти к технической документации. Если вы не можете входных данных или вывода результатов программы бесполезно независимо от того, техническая документация мет. Это было бы пустой тратой времени для проверки технической документации. В таблице 5 приводится последовательность событий для проверки производителю программного обеспечения.
Для внутренних программные разработки, проверки план развития этапах жизненного цикла не требуется. Это утверждение плана идет рука об руку с планом разработки программного обеспечения. Действительно, план развития могут быть пересмотрены на основе результатов аттестации. Таблица 6 показывает, предложил ряд мер для проверки в доме-разработчиков.
Правильная реализация этих мер проверки, будь то продавец или программных средств, зависит от использования правильных методов проверки на каждом этапе жизненного цикла. Утверждение плана необходимо определить, какие методы будут использованы для каждого этапа. Таблица 7 содержатся руководящие указания, на которых проверка методов, доступных для каждого этапа жизненного цикла, но не исчерпывающий перечень. Другие имеющиеся методы рассматриваются в ссылки.
Обсудить эту статью!
Чтобы присоединиться к онлайновой дискуссии по этой статье с автором и другими читателями, перейдите на номер ProcessCity Обсуждение статей КЭП на <A HREF = "http://www.processcity.com/cep" целевых = "_blank" относительной = " NOFOLLOW "> www.processcity.com / <белыми / A>.
ЛИТЕРАТУРА
1. "Справочная информация для проверки программного обеспечения и проверки процесса", NIST специальной публикации 500-234, US Dept торговли, Вашингтон (март 1996).
2. "Проверка программного обеспечения и проверки планов", IEEE Std 1012-1986, IEEE, в Нью-Йорке (1986).
3. "Руководящие принципы для проверки программного обеспечения и проверки планов", FIPS PUB 132, US Dept торговли, Национального бюро стандартов, Вашингтон (19 ноября 1987).
4. Французский институт исследований в области компьютерных наук и управления (INRIA). Веб-сайт: <a target="_blank" href="http://www.inria.fr/Themes/Theme2-eng.html" rel="nofollow"> http://www.inria.fr/Themes/Theme2 -eng.html </ A>.
5. Веб Лаборатории Белл сайте: <a target="_blank" href="http://netlib.bell-labs.com/netlib/spin/index.html" rel="nofollow"> http://netlib.bell-labs .com / Netlib / спина / index.html </ A>.
6. "Программное обеспечение Анализ ошибок", NIST специальной публикации 500-209, US Dept торговли, Вашингтон (апрель 1993).
7. "Руководство по использованию стандарта IEEE Словарь мер для обеспечения получения надежных программного обеспечения", ANSI / IEEE Std. 982.2-1988, IEEE, Нью-Йорк (июнь 1989).
8. "Общие принципы программного обеспечения проверки", FDA Проект руководства для промышленности, Версия 1.1, пищевых продуктов и медикаментов Admin., US Dept здравоохранения и социальных служб, Вашингтон (9 июня 1997).
9. Сетей Петри World Web-сайт: <a target="_blank" href="http://www.daimi.au.dk/PetriNets/" rel="nofollow"> http://www.daimi.au.dk/PetriNets / </ A>.
Дополнительная литература
Бейзер, B., "Методы тестирования программного обеспечения", второе издание, ИЛ Рейнгольд, Нью-Йорк (1990).
Хецел, туалет, "Полное руководство по Тестирование", второе издание, и требовалось доказать информатики, Уэлсли, М. (1988).
Майерс, Г., "Искусство тестирования программного обеспечения", Wiley Interscience в Нью-Йорке (1979).
Перри, МЫ, "Эффективные методы для тестирования программного обеспечения", М., Нью-Йорке (1995).
Ропер, М., "Тестирование", McGraw-Hill, Нью-Йорк (1994). "Руководство по жизненным циклом проверки, верификация и тестирование Com
компьютерное программное обеспечение ", FIPS PUB 101, US Dept торговли, Вашингтон (6 июня. 1983).
"Основа для развития и обеспечения высокого целостности программного обеспечения", NIST223, US Dept торговли, Вашингтоне (декабрь 1994).
"Исследование анализа рисков в высоком целостности программного обеспечения стандартов и руководящих принципов", NIST5589, US Dept торговли, Вашингтон (январь 1995).
"Качественных характеристик и метрик для многоразового программного обеспечения", NIST5459, Департамент США по торговле. Вашингтон (май 1994).
"Software Quality Assurance: Документация и обзоры", NIST4909, US Dept торговли, Вашингтон (сентябрь 1992). "Контроль и проверка программного обеспечения: его роль в компьютерных Assurance
и его соотношение с программным обеспечением управления проектами стандартов ", NIST165. Департамент США по торговле, Вашингтон (сентябрь 1989). Стандарты:
"Формальные Обзоры Дизайн", ANSI ГОСТ Р ИСО 160-1995 Стандартный Dl, Amer. Soc. по контролю качества, Милуоки (1995).
"Руководящие принципы по применению ANSI / ISO ГОСТ Р ИСО Q9001 в области развития, поставка и обслуживание программного обеспечения", ANSI / ISO ГОСТ Р ИСО Q9000-3-1991, Amer. Soc. по контролю качества, Милуоки (1991).
"Руководящие принципы для проверки и подтверждения научных и инженерных программ Компьютер для атомной отрасли", ANSI/ANS10.4-1987, Amer. Туземный ЗППП. Inst. Нью-Йорке (1987).
"Информационные технологии - Cycle Software жизненных процессов," ISO / IEC 12207, Intl. Электротехническая Com., Женева (22 февраля 1995).
Майкл TANZIO, Fluor Daniel, INC
М. TANZIO является главный инженер процесс Fluor Daniel, Inc Маунт-Лорел, штат Нью-Джерси (тел. (856) 552-6869, факс: (856) 552-6837, E-почта: mike.tanzio @ fluor.com), , где он работает на инжиниринг, проектирование, и строительство процессов переработки и химических заводов. В его обязанности входит координация и проверки приложений используется для моделирования и проектирования этих объектов. Он имеет более чем 25-летним опытом в области разработки, использования и проверки разработки программного обеспечения. Ранее он работал в США комиссии по атомной энергии, Rohm