Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТП.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
209.61 Кб
Скачать
  1. Классификация и проявление ошибок программирования

В зависимости от этапа разработки, на котором проявляются ошибки, различают:

- синтаксические ошибки, фиксируемые компилятором, транслятором, интерпретатором);

- ошибки компоновки, выявляемые компоновщиком (редактором связей) при объединении модулей;

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

Ошибки выполнения. Проявляться эти ошибки могут следующим образом:

- в виде сообщения о переполнении разрядной сетки, делении на ноль, нарушении адресации;

- в виде сообщения о нарушении защиты памяти, ошибках 

- “зависание” компьютера;

- несовпадение полученных результатов тестирования с ожидаемыми.

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

-------------------------------------------.

  1. Методы отладки программ.

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

Метод индукции включает:

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

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

3)для подтверждения гипотезы разрабатывается тесты, которые должны либо подтвердить, либо опровергнуть гипотезу;

4)если дополнительные тесты подтверждают гипотезу, можно приступать к исправлению ошибки

Альтернативный метод дедукции заключается в:

1)перечисление возможных причин или гипотез:

2)использование данных тестирования для исключения некоторых возможных причин;

3)уточнение выбранной наиболее вероятной гипотезы, возможно с использованием дополнительных тестов;

-------------------------------------------

  1. Методы получения дополнительной информации об ошибках.

Наиболее распространенными и наименее эффективными для отладки являются так называемые методы ‘грубой силы’. К ним относят:

* использование отладочного вывода;

* интегрированные средства отладки;

* независимые отладчики.

-------------------------------------------

  1. Общая методика отладки программ.

Ошибки программы и исправления ошибок, после того, как ошибки были обнаружены в процессе тестирования.

1й этап – изучение проявления ошибки. Результатом выполнения этапа должна быть локализация ошибки. При этом можно использовать методы индукции и дедукции и средства получения дополнительной информации об ошибке.

2й этап – выполняется, если произошло “зависание” или не удалось локализовать ошибку, используя методы 1го этапа

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

4й этап – исправление ошибки.

5й этап – повторное тестирование

-------------------------------------------

  1. Статические структуры данных: вектор и массив. Функции линеаризации.

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

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

-------------------------------------------

  1. Критерии качества программ.

1) функциональность

2) надежность

3) легкость применения

4) эффективность

5) сопровождаемость

6) мобильность

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

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

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

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

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

Мобильность - это способность ПП быть перенесенным из одной вычислительной среды (окружения) в другую.

-------------------------------------------

  1. Стиль оформления программ.

Стиль оформления включает:

1) правила именования объектов программы – имя должно соответствовать содержанию.

2) правила оформления модулей – каждый модуль должен иметь описание того, что он делает.

3) стиль оформления текстов программ – красивое оформление кода + коменты

-------------------------------------------

  1. Эффективность программ: способы экономии памяти.

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

-------------------------------------------

  1. Эффективность программ: способы экономии времени выполнения.

- Сложение быстрее умножения

- int быстрее double

- использовать const

- избегать многократное обращения к элементу

-------------------------------------------

  1. Программирование “с защитой от ошибок”.

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

1. правильность выполнения операций ввода-вывода;

2. допустимость промежуточных результатов

3. предотвращение накопления погрешности

-------------------------------------------

  1. Стихийное программирование. Этапы совершенствования архитектуры программ.

Стихийное – первые ЭВМ – 60е годы.

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

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

  1. Стихийное

  2. Структурный

  3. ООП

  4. Компонентный подход и CASE-технологии

-------------------------------------------

  1. Структурное программирование. Определение подхода, цель и принципы.

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

Цель структурного программирования – разработка программы, которой присуща определенная структура, основанная на применении принципов структурного программирования.

Перечислим эти принципы:

  1. Каждый программный модуль (блок, функция, процедура) должен иметь только один вход и один выход.

Это позволяет максимально упростить стыковку модулей в программе.

  1. В программах рекомендуется применять 4 типа конструкций:

а) последовательность (модулей, операторов)

б) разветвление (условный оператор)

в) цикл

  1. с предусловием

  2. с постусловием

г) выбор из нескольких альтернатив (или переключатель)

  1. разработку программ рекомендуется вести сверху – вниз или по нисходящей стратегии.

-------------------------------------------

  1. Нисходящая стратегия разработки программ.

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

-------------------------------------------

  1. Принципы модульного программирования.

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

а) усиление внутренних связей в каждом модуле (иначе принцип называется повышением прочности модуля);

б) ослабление взаимосвязи между модулями (иначе этот принцип называется ослаблением сцепления модулей).

Класс прочности является мерой связи предложений внутри модуля. Сцепление модулей – это мера зависимости между модулями.

-------------------------------------------

  1. Основные понятия объектно-ориентированного программирования.

Основными понятиями ООП являются объект (экземпляр класса), класс, метод и сообщение (запрос)

Класс - это структура данных, которая может содержать в своем составе переменные, функции и процедуры.

Объектом или экземпляром класса называется переменная объектного типа (или переменная типа класс).

Методы – операции обработки.

Сообщением является совокупность данных определенного типа, передаваемых объектом-отправителем объекту-получателю, имя которого указывается в сообщении.

-------------------------------------------

  1. Достоинства и недостатки объектно-ориентированного программирования.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]