Рефераты. Разработка базы данных для информатизации деятельности предприятия малого бизнеса Delphi 7.0
3.1.10. Отчет о работе.

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

3.1.11. Модернизация.

Если разработчик программы постоянно работает в некоторой области науки или техники, то обычно рано или поздно наступает такой момент, когда перед ним возникает вопрос о модернизации старой программы или о составлении новой, развивающей идеи, реализованной в прежней программе. Модернизация программы проходит те же этапы, что и разработка, и начинается с составления технического задания на модернизацию. Успешное осуществление модернизации зависит от того, насколько легко можно будет при разработке новой программы использовать блоки старой программы и вносить в них изменения. Быстрое выполнение такого рода работ зависит, в свою очередь, как от структуры модернизируемой программы, так и от качества ее оформления (наличие описания программы, подробных алгоритмов, пояснений к программе и т. п.).

3.2. Необходимость отладки разработанного программного продукта

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

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

У начинающих программистов изложенный плановый подход к проведению отладки вызывает вначале трудности, поскольку им приходится разрабатывать план отладки для несуществующей пока программы. Но нет другого пути освоения этого эффективного способа, кроме как развивать в себе навыки планирования своей работы и предвидения особенностей предстоящей отладки программы по ее проекту и общим алгоритмам. Чем на более ранней стадии разработки программист начинает заниматься вопросами отладки программы, тем меньше неприятных неожиданностей ожидает его в будущем. Надежды на то, что устранение ошибок из программы и получение правильных результатов произойдет как-то само собой, без затраты особых усилий, никогда не оправдываются. Вообще, оптимизм и самоуверенность для программиста на стадии разработки противопоказаны; они могут являться полезными только на стадии отладки при затяжной борьбе с очень глубоко скрытыми ошибками.

Примерное распределение между этапами общего времени, необходимого для разработки достаточно сложных программ, выглядит следующим образом :

1. Получение задания, составление проекта программы и общего плана отладки 10%

2 Разработка алгоритма (1.5%) и детального плана отладки 20%

3 Программирование (5%) и изготовление тестов 5%

4- 5. Препарация и первая трансляция 5%

6. Отладка 40%

7. Оформление программы 10%

Приведенные цифры отражают тот факт, что в процессе разработки программы работы по доказательству (демонстрации) правильности разрабатываемой программы равнозначны работам по ее изготовлению (проектированию, алгоритмизации и написанию), что можно выразить следующей формулой:

разработка программы = изготовление + доказательство.

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

а) путем ускорения поиска и исправления ошибок, имеющихся в программе;

б) путем уменьшения количества ошибок, допускаемых при разработке алгоритма и составлении программы.

3.3. Методы и средства отладки

3.3.1. Контроль программы

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

Контроль текста

Контроль текста программы можно производить как "вручную", так и с применением ЭВМ. Сначала рассмотрим "ручные" методы контроля текста программ (алгоритмов). Можно различать три способов контроля текста без применения ЭВМ: просмотр, проверка и прокрутка.

Просмотр

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

Проверка

При проверке программы программист по тексту программы мысленно старается восстановить тот вычислительный процесс, который определяет программа, после чего сверяет его с требуемым процессом, т. е. ТЗ, определенном в проекте.

Прокрутка

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

Печать текста

Для проверки правильности препарации программы (переноса текста на какие-либо машинные носители) после ввода в машину производится печать текста программы для последующей его сверки с исходным текстом.

3.3.2. Контроль результатов

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

Тестирование

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

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

Существует 3 основных способа тестирования: алгоритмическое, аналитическое, содержательное.

Алгоритмическое тестирование

Алгоритмическое тестирование применяется программистом для контроля этапов алгоритмизации и программирования. Программисты проектируют тесты и начинают готовить эталонные результаты на этапе алгоритмизации, а используют их на этапе отладки.

Функциональное или аналитическое тестирование

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

Содержательное тестирование

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

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

3.3.3. Классификация методов контроля

КОНТРОЛЬ

1. По тексту.

1.1. Без ЭВМ.

1.1.1. Просмотр.

1.1.2. Проверка.

1.1.3. Прокрутка.

1.2. С ЭВМ.

1.2.1. Печать.

1.2.2. Трансляция (синтаксический контроль).

1.2.3. Статический анализ.

2. По результатам.

3.1. Тестирование.

3.1.1. Алгоритмическое.

3.1.2. Функциональное.

3.1.3. Содержательное.

3.2. Специальные методы.

3.3.4. Локализация ошибок.

Способы локализации

После того, как с помощью контрольных тестов (или каким либо другим путем) установлено, что в программе или в конкретном ее блоке имеется ошибка, возникает задача ее локализации, то есть установления точного места в программе, где находится ошибка.

Процесс локализации ошибок состоит из следующих трех компонент:

Получение на машине тестовых результатов.

. Анализ тестовых результатов и сверка их с эталонными.

. Выявление ошибки или формулировка предположения о характере и месте ошибки в программе.

По принципам работы средства локализации разделяются на 4типа:

Аварийная печать.

Печать в узлах.

Слежение.

Прокрутка.

АВАРИЙНАЯ ПЕЧАТЬ осуществляется один раз при работе отлаживаемой программы, в момент возникновения аварийной ситуации в программе, препятствующей ее нормальному выполнению. Тем самым, конкретное место включения в работу аварийной печати определяется автоматически без использования информации от программиста, который должен только определить список выдаваемых на печать переменных.

ПЕЧАТЬ В УЗЛАХ включается в работу в выбранных программистом местах программы; после осуществления печати значений данных переменных продолжается выполнение отлаживаемой программы.

СЛЕЖЕНИЕ производится или по всей программе, или на заданном про грамм истом участке. Причем слежение может осуществляться как за переменными (арифметическое слежение), так и за операторами (логическое слежение). Если обнаруживается, что происходит присваивание заданной переменной или выполнение оператора с заданной меткой, то производится печать имени переменной или метки и выполнение программы продолжается. Отличием от печати в узлах является то, что место печати может точно и не определяться программистом (для арифметического слежения); отличается также и содержание печати.

ПРОКРУТКА производится на заданных участках программы, и после выполнения каждого оператора заданного типа (например, присваивания или помеченного) происходит отладочная печать.

Классификация средств локализации ошибок

Ниже дана классификация средств локализации.

Средства локализации:

1. Аварийная печать (арифметическая).

1.1. Специальные средства языка.

1.2. Системные средства.

2. Печать в узлах (арифметическая).

2.1. Обычные средства языка.

2.2. Специальные средства языка.

3. Слежение (специальные средства).

3.1. Арифметическое.

3.2. Логическое.

4. Прокрутка (специальные средства).

4.1. Арифметическая.

4.2. Логическая.

3.3.5. Технология отладки программы

Рассмотрим этапы создания рассматриваемой программы, основываясь на приведенных выше методах и приемах.

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

При отладке программы использовались следующие методы контроля и локализации ошибок (обзор методов см. в теоретической части раздела):

Просмотр текста программы и прокрутка с целью обнаружения явных синтаксических и логических ошибок.

Трансляция программы (транслятор выдает сообщения об обнаруженных им ошибках в тексте программы).

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

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

В общем случае отладка программы производилась по следующему алгоритму:

Прогонка программы с набором тестовых входных данных и наличия ошибок.

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

Новая прогонка программы. Если работа программы прервалась до обработки контрольной точки, значит, ошибка произошла раньше. Контрольная точка переносится, и процесс отладки возвращается к шагу 2.

Если контрольная точка программы была обработана, то далее следует изучение значений регистров, переменных и параметров программы с тем, чтобы убедиться в их правильности. При появлении ошибки - новый перенос контрольной точки и возврат к шагу 2

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

Решающим этапом, устанавливающим пригодность программы для работы, является её контроль по результатам ее выполнения на ЭВМ. Наиболее универсальным методом проверки для всех классов задач является метод контрольных тестов или тестирование.

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

Array

Страницы: 1, 2, 3, 4, 5, 6



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.