- •Вопрос 1 - Определение алгоритма
- •1.4 Разновидности структур алгоритмов
- •Вопрос 2 - языки программирования
- •1. Машинно – ориентированные языки
- •1.2 Языки Символического Кодирования
- •1.3 Автокоды
- •1.4 Макрос
- •2. Машинно – независимые языки
- •2.1 Проблемно – ориентированные языки
- •Вопрос 4 - ооп
- •Вопрос 5 - Инкапсуляция, наследование, полиморфизм
- •Вопрос 6 - Классификация ос
- •Вопрос 7 - Характеристики, функции, структура ms Win
- •Вопрос 8 - Характеристики unix
- •Вопрос 9 - Понятия программы, программной системы (комплекса), программного продукта (средства, изделия), программного обеспечения.
- •Вопрос 10. Логические этапы разработки программного продукта. Системный анализ.
- •Проектирование
- •Программирование
- •Отладка и тестирование
- •Документирование
- •Оценка качества программного обеспечения
- •Вопрос 11. Основные методы проектирования (по направления декомпозиции).
- •Вопрос 12. Проектирование интерфейса пользователя (определение, классификация, требования).
- •Вопрос 13. Тестирование и отладка. Объекты и особенности процесса тестирования.
- •Вопрос 14. Классификация ошибок с точки зрения процесса разработки.
- •Вопрос 15. Основные программные и эксплуатационные документы
- •Вопрос 16. Методы оценки свойств программного продукта
- •Вопрос 17. Факторы качества программы: надежность, сопровождаемость, эффективность, удобство использования, универсальность, корректность
- •Вопрос 18 - Файловая организация внешней памяти. Каталог, дескриптор
- •Каталоги
- •Вопрос 19 - Загрузка выполняемых файлов в оперативную память. Организация динамического выделения памяти
- •Вопрос 20 - Программные средства управления внешними устройствами. Драйвер – назначение и структура
- •Вопрос 21 - Понятие базы данных (бд), системы управления базами данных (субд), банка данных (БнД)
- •Вопрос 22 - Модели данных
- •Вопрос 23 - Этапы проектирования бд
- •1. Формирование и анализ требований
- •2. Концептуальное проектирование
- •4. Физическое проектирование.
- •Вопрос 24 - Методы проектирования бд
- •Вопрос 25 - Роль нормализации при проектировании бд
- •Вопрос 26. Классификация языков моделирования.
- •Вопрос 27. Статистические методы обработки результатов.
- •Вопрос 28. Системы массового обслуживания. Понятия: цепь, поток событий, очереди.
- •1.2. Основные понятия.
Вопрос 14. Классификация ошибок с точки зрения процесса разработки.
Ошибки с точки зрения процесса разработки можно разделить на:
Синтаксические ошибки
Синтаксические ошибки выявляются транслятором, поэтому их устранение не вызывает особых трудностей. Трансляторы выделяют два вида ошибок: собственно ошибка (Error) и предупреждение (Warning). Предупреждение выдается в случае, когда конструкция синтаксически допустима, но существует значительная вероятность существования смысловой (семантической) ошибки.
Опечатки
Опечатки, как правило, вызваны невнимательностью программиста при механическом наборе или редактировании исходного текста. В результате появляется синтаксически правильный, но абсолютно неверный логически участок программы. Подобные ошибки, несмотря на их видимую простоту, довольно сложно находить без тщательной пошаговой отладки в символьном отладчике.
Ошибки реализации алгоритма
Под эту категорию подпадают все ошибки, вызванные неверным программированием при верном алгоритме. Этот тип ошибок, по-видимому, является самым распространенным и наиболее трудно классифицируемым.
Можно особо выделить класс ошибок, связанных, условно говоря, с неверным использованием памяти. Ошибки этого класса являются самыми опасными (как правило, приводят к зависанию или общему сбою программы) и трудно обнаруживаемыми. Классификация ошибок такого рода представлена в таблице:
|
Тип |
Варианты |
|
Ошибки распределения свободной памяти |
а) Выделение памяти неверного размера (слишком большого или меньше нужного) б) Освобождение невыделенной памяти (часто в результате повторного освобождения) |
|
Ошибки доступа к памяти |
а) Выход за границы массива (по указателю или индексу) б) Доступ по неинициализированному указателю (адресу) |
|
Использование неинициализированных переменных |
|
Разумеется, этот класс ошибок не исчерпывает все ошибки реализации, но, к сожалению, их труднее всего находить, поскольку их проявления зависят, зачастую, от текущего содержимого памяти, которое может быть различным в разное время и на разных машинах.
Ошибки алгоритма
Алгоритм может содержать логические ошибки, которые закономерно приводят к ошибочной работе программы даже при безупречной программной реализации. Такие ошибки очень тяжело выявлять, поскольку они интерферируют с неизбежными ошибками реализации, и предположение об их наличии делается программистом в самую последнюю очередь.
К ошибкам алгоритма относят также отсутствие в алгоритме учета ограничений реализуемого им метода. Такие ограничения на применимость метода, как правило, хорошо описаны, однако иногда в алгоритме пытаются обобщить метод без достаточных оснований.
Ошибки метода
Каждый метод должен сопровождаться описанием или оценкой вычислительных погрешностей и других ограничений, снижающих его универсальность. Отсутствие таких оценок может привести к неверной работе программы, реализующей данный метод.
Программисту тяжело обнаруживать ошибки метода, поскольку для этого требуется высокая квалификация в предметной области метода. Однако при полной уверенности, что все другие ошибки устранены и метод реализован правильно, сопровождаемой отказом программы в получении ожидаемых результатов, программист может предположить дефект в самом методе.
