Основными программными документами являются: спецификация, ведомость держателей подлинников, пояснительная записка, описание программы, текст программы, техническое задание, программа и методика испытаний и эксплуатационная документация.
ПД приведены (опустить):
Вид программного документа | Содержание программного документа |
Спецификация | Состав программы и документации на нее |
Ведомость держателей подлинников | Перечень предприятий, на которых хранят подлинники программных документов |
Текст программы | Запись программы с необходимыми комментариями |
Описание программы | Сведения о логической структуре и функционировании программы |
Программа и методика испытаний | Требования, подлежащие проверке при испытании программы, а также порядок и методы их контроля |
Техническое задание | Назначение и область применения программы, технические., технико-экономические и специальные требования, предъявляемые к программе, необходимые стадии и сроки разработки, виды испытаний |
Пояснительная записка | Схема алгоритма, общее описание алгоритма и (или) функционирования программы. а также обоснование принятых технических и технико-экономических решений |
Эксплуатационные документы | Сведения для обеспечения функционирования и эксплуатации программы |
Планирование и проектирование скриптов. Написание кода. Тестирование и отладка
Что относится к технологической документации?
ТЕХНИЧЕСКОЕ ЗАДАНИЕ (ГОСТ 19.201-78) содержит основание для разработки, назначение разработки, требования к программе, требования к
программной документации, технико-экономические показатели, стадии
и этапы разработки, порядок контроля и приемки.
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА (ГОСТ 19.404-79) содержит схемы алгоритмов, подробное описание алгоритма функционирования программы, обоснование принятых технических и экономических решений.
ПРОГРАММА И МЕТОДИКА ИСПЫТАНИЙ ГОСТ 19.301-79 включает:
1) сведения об области применения тестируемой программы;
2) определенную и достижимую цель испытания;
· к комплектности программной документации,
· характеристикам программы применительно к условиям эксплуатации,
· к информационной и программной совместимости;
4)порядок проведения и
5)используемые методы испытаний, где указывается последовательность испытаний, перечень необходимых технических и программных средств.
Приводятся описания применяемых методов испытаний с указанием
конкретных проверок и результатов этого испытания. Во всех случаях
при применении теста необходимо четко определить конкретные значе-
ния входных данных, ожидаемые выходные и промежуточные результаты.
В приложении к документу об испытаниях программы могут быть
включены тестовые примеры, их контрольные распечатки, аналитические
и другие материалы. Мы включаем это в ПД «Текст программы».
Тестирование и отладка решения задачи «Минимальная строка»
ТЕКСТ ПРОГРАМЫ ГОСТ 19.401-78 сотоит из символических записей на исходном языке с подробными комментариями, которые должны составлять около 30% текста программы. Рекомендуется в комментариях описывать назначение программы,основные особенности алгоритма отдельных участков, особенности ввода-вывода и т.д.
РУКОВОДСТВО ПРОГРАММИСТА (ГОСТ 19.504-79) содержит все сведения, необходимые для сопровождения программы.
РУКОВОДСТВО СИСТЕМНОГО ПРОГРАММИСТА (ГОСТ 19.503-79) дополняется сведениями для проверки, обеспечения функционирования и настройки программы на условия конкретного применения с учетом используемых технических и вспомогательных системных программных средств.
К эсплуатационной документации относятся:
ОПИСАНИЕ ПРИМЕНЕНИЯ (ГОСТ 19.502-78) содержит сведения о назначении программы, области применения, применяемых методах, классе решаемых задач, ограничениях для применения, минимальной конфигурации технических средств, описание входных и выходных данных.
ОПИСАНИЕ ПРОГРАММЫ ГОСТ (19.402-78) включает:
— ПО, необходимое для функционирования программы,
— логическое строение, состоящее из:
1) алгоритмов модулей,
2) используемых методов,
3) структуры программы с описанием функций составных частей (модулей) и связи между ними,
4) связей программы с другими программами.
Оформление блок-схем см. ГОСТ 19.707-90
Здесь содержатся разделы: «Используемые технические средства»,
где указаны типы ЭВМ и устройств, необходимых для эксплуатации прог-
раммы, «Входные и выходные данные»(характер, организация, предва-
рительная подготовка (для входных данных), формат способ кодирования
В РУКОВОДСТВЕ ОПЕРАТОРА (ГОСТ 19.505-79) дается вся необходимая информация для обеспечения процедуры общения (взаимодействия) оператора с ЭВМ в процессе выполнения программы.
Материалы любого программного документа располагаются в следующей последовательности (ГОСТ 19.105-78):
1) Титульная часть (ГОСТ 19.104-78):
— лист утверждения (не входит в общее число листов)
— титульный лист (первый лист документа)
2) Информационная часть:
— аннотация (сведения о назначении документа и краткое изложение его основной части);
3) Основная часть:
— текст документа с рисунками и таблицами;
4) Часть регистрации изменений:
— лист регистрации изменений
Остальное изучить самостоятельно на кафедральном сайте. Некоторые требования висят в коридоре на кафедре.
Лента новостей. Сколько стоят ошибки?
В общем случае в программах ошибки могут быть следующих видов:
СИСТЕМНЫЕ ошибки могут быть вызваны неполной информацией о предметной области, а тfкже о реальных процессах, происходящих в источниках и потребителях информации. Допускаются на этапе проектирования ПО, а именно при системном анализе.
АЛГОРИТМИЧЕСКИЕ(ЛОГИЧЕСКИЕ) ошибки (30%) — ошибки, обусловленные некорректной постановкой задачи, неполным учетом всех условий решения задачи, ошибки связей модулей, просчеты в использовании доступных ресурсов ЗВМ. Эти ошибки очень сложно устраняются.
ПРОГРАММНЫЕ ошибки (30%) — деление на 0, обработка отсутствующих данных, использование индекса за пределами массива, корень квадратный из отрицательного числа и т.д.
Причинами таких ошибок могут быть ошибки в программе, допущенные при разработке, ошибки при вводе исходных данных данных и т.д. Они могут быть обнаружены только при выполнении программы, т.к. как правило приводят к прекращению выполнения программы.
Всемирно известными примерами таких ошибок являются следующие.
1) Неудача при запуске первого американского спутника к Венере случилась вероятнее всего, из-за ошибки в программе — вместо требуемой в операторе точки была поставлена запятая.
Вот так был записан
DO 50 I = 12,525, а нужно
DO 50 I = 12.525.
2) Потеря связи с космической станцией «Фобос-1» (СССР) произошла из-за ошибочной команды, переданной с Земли на бортовой компьютер.
3) Причиной осложнений, возникших при возвращении на Землю советско-афганского и советско-французского экипажей, явились ошибки, допущенные в программном обеспечении бортовых компьютеров.
ТЕХНОЛОГИЧЕСКИЕ ошибки(5-10%) — связаны с вводом программы, ее копированием, редактированием и т.д. Ошибки, возникающие при вводе в компьютер неверных данных.
В 1983 г. произошло наводнение в юго-западной части США. Причина заключалась в том, что в компьютер были введены неверные данные о погоде, в результате чего он дал ошибочный сигнал шлюзам, перекрывающим реку Колорадо.
Досточно свежие примеры:
1) Программа виновна в гибели самолета (osp.ru Сводка новостей от 30.06.2000)
Федеральный суд Майами, рассмотревший дело о крушении самолета Boeing 757 авиакомпании American Airlines в Колумбии в 1995 году, вынес частное определение в отношении компании Honeywell Air Transport Systems и производителя программного обеспечения — Jeppesen Sanderson. Во время полета из Майами в Колумбию пилоты ввели в бортовой компьютер некорректный код, а тот выдал неправильную команду, из-за чего лайнер врезался в гору.
Жертвами катастрофы стали 159 человек.
2) Из-за хакера могли погибнуть астронавты
Сенсационное заявление сделала 3 июля 2000 года генеральный инспектор НАСА Roberta Gross в интервью программе «Панорама» телекомпании BBC.
Оказывается, в 1997 году из-за действий некоего хакера под угрозой оказались жизни астронавтов
на корабле «Шаттл», летевшем к российской космической станции «Мир». В результате неких манипуляций хакеру удалось вызвать перегрузку информационной системы, которая непрерывно передает информацию о состоянии здоровья космонавтов, что в итоге могло сказаться на
функционировании всей системы связи с космическим кораблем.
К счастью, удалось быстро переключить связь на резервную систему, так что обошлось без серьезных последствий.
Тестирование и отладка программ различаются тем, что при тестировании устанавливается факт ошибки, а отладка выявляет причину и предлагает способы ее устранения. Эти этапы создания правильных
программ чередуются и перекрывают друг друга.
Тестирование является одним из наиболее устоявшихся способов обеспечения качества разработки программного обеспечения и входит в набор эффективных средств современной системы обеспечения качества программного продукта.
Сущность тестирования состоит в том, что пользователь готовит систему тестов, с помощью которых проверяется работа программы во всех возможных режимах. Каждый тест содержит набор исходных данных, для которых известен результат. Если в результате работы программы с данным тестом получаются результаты, отличные от ожидаемых, то это говорит о наличии ошибок.
Выделяют две стратегии тестирования — структурное тестирование (стратегия «белого ящика») и функциональное (стратегия «черного ящика»).
1) Структурное тестирование основывается на детальном изучении логики программы и подборе тестов, обеспечивающих максимально возможное число проверяемых операторов, логических ветвлений и условий. При построении тестов используют следующие критерии:
— покрытие операторов путем выбора набора данных, обеспечивающего выполнение каждого оператора в программе по крайней мере один раз.
— покрытие условий путем подбора наборов данных, обеспечивающих в узлах ветвления с более чем одним условием принятие каждым условием значения «истина» или «ложь» хотя бы по одному разу.
— комбинаторное покрытие условий путем подбора тестовых наборов данных, обеспечивающих в узлах ветвления с более чем одним условием перебор всех возможных сочетаний значений условий в одном узле ветвления.
или выдающая сообщение об ошибке>
writeln(‘Введите a и b’);
Источник: studopedia.ru
Отладка и тестирование программы
После того как алгоритм разработан, его записывают на алгоритмическом языке, то есть разрабатывают текст программы или программный код. Этот процесс еще называют кодированием алгоритма, а людей, которые выполняют эту работу – кодировщики. Для выполнения данного этапа необходимо знать хотя бы один из многих существующих языков программирования, а лучше знать несколько, чтобы выбрать наиболее подходящий для решаемой задачи.
Хотя этап кодирования считается менее творческим, чем предыдущие, для его успешного выполнения требуется хорошее знание, как самого языка, так и средств разработки программ: транслятора, компоновщика, программных библиотек и многого другого.
Кодирование включает в себя следующие виды работ: выбор языка программирования; уточнение способов организации данных; запись алгоритма на выбранном языке программирования.
Целью данного этапа является поиск и устранение ошибок в программе. Ошибки бывают синтаксические (нарушение грамматики алгоритмического языка) и смысловые (искажение самого алгоритма решения задачи). О первых мы не говорим, их обычно обнаруживают и исправляют на этапе кодирования, совершая пробную трансляцию программы. Вторые же можно выявить только в процессе проверки программы на специально подобранных входных данных или в ходе опытной эксплуатации программы.
Под отладкой программы понимается процесс испытания работы программы и исправления обнаруженных при этом ошибок. Обнаружить ошибки, связанные с нарушением правил записи программы на языке программирования (синтаксические и семантические ошибки), помогает используемая система программирования. Пользователь получает сообщение об ошибке, исправляет ее и снова повторяет попытку исполнить программу.
Проверка на компьютере правильности алгоритма производится с помощью тестов. Тест — это конкретный вариант значений исходных данных, для, которого известен ожидаемый результат. Прохождение теста — необходимое условие правильности программы. На тестах проверяется правильность реализации программой запланированного сценария.
Отладка и тестирование — это два четко различимых и непохожих друг на друга этапа:
· при отладке происходит локализация и устранение синтаксических ошибок и явных ошибок кодирования;
· в процессе же тестирования проверяется работоспособность программы, не содержащей явных ошибок.
Тестирование устанавливает факт наличия ошибок, а отладка выясняет ее причину.
Английский термин debugging («отладка») буквально означает «вылавливание жучков». Термин появился в 1945 г., когда один из первых компьютеров — «Марк-1» прекратил работу из-за того, что в его электрические цепи попал мотылек и заблокировал своими останками одно из тысяч реле машины.
Процесс тестирования можно разделить на три этапа:
· Проверка в нормальных условиях.
· Проверка в экстремальных условиях.
· Проверка в исключительных ситуациях.
Проверка в нормальных условиях. Предполагает тестирование на основе данных, которые характерны для реальных условий функционирования программы.
Проверка в экстремальных условиях. Тестовые данные включают граничные значения области изменения входных переменных, которые должны восприниматься программой как правильные данные. Типичными примерами таких значений являются очень маленькие или очень большие числа и отсутствие данных. Еще один тип экстремальных условий — это граничные объемы данных, когда массивы состоят из слишком малого или слишком большого числа элементов.
Проверка в исключительных ситуациях. Проводится с использованием данных, значения которых лежат за пределами допустимой области изменений.
Наихудшая ситуация складывается тогда, когда программа воспринимает неверные данные как правильные и выдает неверный, но правдоподобный результат. Программа должна сама отвергать любые данные, которые она не в состоянии обрабатывать правильно.
Таким образом тестирование и отладка включают в себя синтаксическую отладку; отладку семантики и логической структуры программы; тестовые расчеты и анализ результатов тестирования; совершенствование программы.
Источник: studopedia.su
Программирование и отладка программы (стр. 1 из 2)
Компьютерная техника и компьютерная технология прочно вошли в человеческую жизнь. Развитие научно-технического прогресса невозможно без автоматизации вычислительных процессов. Именно потребность в автоматизации вычислительных процессов стала первоначальным импульсом в развитии программирования.
Традиционная технология программирования формировалась на заре вычислительной техники, когда в распоряжении пользователей были ограниченные ресурсы ЭВМ, а разработчик программ был в то же время и главным ее пользователем. В этих условиях главное внимание обращалось на получение эффективных программ в смысле оптимального использования ресурсов ЭВМ.
В настоящее время, когда сфера применения компьютеров чрезвычайно расширилась, разработка и эксплуатация программ осуществляется, как правило, разными людьми. Поэтому наряду с эффективностью на первый план выдвигаются и другие важные характеристики программ такие, как понятность, хорошая документированность, надежность, гибкость, удобство сопровождения и т.п. Проблема разработки программ, обладающих такими качествами, объясняется трудоемкостью процесса программирования.
Для создания программы появляется необходимость придерживаться определенных принципов и новых технологий программирования.
В наше время из-за постоянного прогресса компьютерных технологий программирование играет важнейшую роль в жизнедеятельности человека.
Чтобы компьютер выполнил решение, какой либо задачи ему необходимо получить от человека инструкцию, как ее решать, набор таких инструкций для компьютера, направленной на решение какой-либо задачи называется – программой.
Программирование – процесс создания компьютерных программ или программного обеспечения с помощью языков программирования. Программирование сочетает в себе элементы фундаментальных наук, таких как математика, высшая математика и инженерия.
Язык программирования – формальная знаковая система, предназначенная для записи программ. Со времени создания первых программируемых машин человечество придумало уже более восьми с половиной тысяч языков программирования. Каждый год их число пополняется новыми. Некоторыми языками умеет пользоваться только небольшое число их собственных разработчиков, другие становятся известны миллионам людей. Профессиональные программисты иногда применяют в своей работе более десятка разнообразных языков программирования.
В процессе создания любой программы можно выделить следующую последовательность этапов:
1 этап. Постановка задачи: на этом этапе участвует человек хорошо представляющий предметную область задачи. Он должен четко определить цель, задачи, дать словесное описание содержания задачи и предложить общий подход к ее решению, анализируются характер и сущность всех величин, используемых в задаче, и определяются условия, при которых она решается, иначе говоря, на этом этапе формируется условие задачи. Этот этап очень важен, так как от правильного понимания целей и требований зависит в основном успех реализации создаваемой программы.
2 этап. Анализ задачи и моделирования: целью этого этапа является математическая модель или математическая постановка. На этом этапе выполняются следующие пункты
1) Определяются исходные данные и их типы.
2) Решение задачи описывается в виде аналитических зависимостей (уравнения, функции).
3) Определяются конечные данные и их типы.
Таким образом формируется математическая модель с определенной точностью, допущениями и ограничениями. При этом в зависимости от специфики решаемой задачи могут быть использованы различные разделы математики и других дисциплин.
3 этап. Алгоритмизация задачи и составление блок-схемы: выполняется на основе математического описания программы. На данном этапе составляется алгоритм решения задачи согласно действиям, задаваемым выбранным методом решения. Процесс обработки данных разбивается на отдельные относительно самостоятельные блоки, и устанавливается последовательность выполнения блоков. Разрабатывается блок-схема алгоритма.
4 этап. Программирование: на этом этапе алгоритм решения задачи переводится на конкретный язык программирования. Для программирования обычно используются языки высокого уровня, поэтому составленная программа требует перевода ее на машинный язык. После такого перевода выполняется уже соответствующая машинная программа.
5 этап. Отладка и тестирование программы: заключается в поиске и устранении синтаксических и логических ошибок в программе.
В ходе синтаксического контроля программы транслятором выявляются конструкции и сочетания символов, недопустимые с точки зрения правил их построения или написания, принятых в данном языке. Сообщения об ошибках компьютер выдает программисту, при этом вид и форма выдачи подобных сообщений зависят от вида языка и версии используемого транслятора. После устранения синтаксических ошибок проверяется логика работы программы в процессе ее выполнения с конкретными исходными данными.
6 этап. Исполнение отлаженной программы и анализ результатов: после отладки программы ее можно использовать для решения прикладной задачи. При этом обычно выполняется многократное решение задачи на компьютере для различных наборов исходных данных. Получаемые результаты интерпретируются и анализируются специалистом или пользователем, поставившим задачу.
Несмотря на то, что создание программы происходит в несколько этапов, наиболее важным и трудоемким является этап отладки и тестирования программы. Именно на этом этапе устраняются все логические и синтетические ошибки в создаваемой программе.
Отладка – это деятельность, направленная на обнаружение и исправление ошибок в программе.
Тестирование – это процесс выполнения программы на некотором наборе данных, для которого заранее известен результат применения или известны правила поведения этих программ. Таким образом, отладку можно представить в виде многократного повторения трех процессов: тестирования, в результате которого может быть констатировано наличие ошибки, поиска места ошибки в программе и редактирования программы и документации с целью устранения обнаруженной ошибки. Таким образом, все вышесказанное можно представить формулой:
Отладка = Тестирование + Поиск ошибок + Редактирование.
Успех отладки в значительной степени предопределяет рациональная организация тестирования. При отладке отыскиваются и устраняются, в основном, те ошибки, наличие которых устанавливается при тестировании. Как было уже отмечено, тестирование не может доказать правильность программы, в лучшем случае оно может продемонстрировать наличие в нем ошибки.
Поэтому возникает две задачи. Первая: подготовить такой набор тестов, чтобы обнаружить в нем по возможности большее число ошибок. Однако чем дольше продолжается процесс тестирования, тем большей становится стоимость программы. Отсюда вторая задача: определить момент окончания отладки. Признаком возможности окончания отладки является полнота охвата пропущенными через программу тестами, и относительно редкое проявление ошибок в проверяемой программе на последнем отрезке процесса тестирования.
Есть различные подходы и средства отладки; в качестве основного средства используются встроенные программные отладчики, которые включают в себя пользовательский интерфейс для пошагового выполнения программы: оператор за оператором, функция за функцией, с остановками на некоторых строках исходного кода или при достижении определённого условия.
Кроме использования встроенных программных отладчиков существуют и другие методы отладок программы: использование внутрисхемного эмулятора, отладка при помощи внешних программных отладчиков и отлаживаемым устройством с записанным в память программ двоичным кодом программы.
Внутрисхемный эмулятор с отображением переменных языка программирования на дисплее компьютера оказывает значительную помощь при отладке программ непосредственно на разрабатываемой аппаратуре. Этот метод отладки предоставляет наиболее удобную среду, когда можно непосредственно в отлаживаемом устройстве останавливать программу, контролировать выполнение программы непосредственно по исходному тексту программы, состояние внешних портов и внутренних переменных, как входящих в состав микросхемы, так и объявленных при написании исходного текста программы. До недавнего времени внутрисхемный эмулятор являлся отдельным устройством, подключаемым к разрабатываемой плате.
Встроенный программный отладчик, входящий в состав интегрированной среды программирования значительно упрощает процесс отладки программы. Но в тоже время она значительно замедляется.
Внешний программный отладчик. В некоторых случаях используется не интегрированная среда программирования, а отдельный транслятор с выбранного языка программирования. Так как объектные форматы различных трансляторов несколько отличаются друг от друга, то в качестве входного файла используется загрузочный модуль в двоичном формате.
Отладка программ заключается в проверке правильности работы программы и аппаратуры. Программа, не содержащая синтаксических ошибок, тем не менее, может содержать логические ошибки, не позволяющие программе выполнять заложенные в ней функции. Логические ошибки могут быть связаны с алгоритмом программы или с неправильным пониманием работы аппаратуры, подключённой к портам микроконтроллера.
Источник: smekni.com