«Технология разработки программного обеспечения»
ВАРИАНТ 1
- Какие программы можно отнести к системному
программному обеспечению:
а)
прикладные
программы;
б)
операционные
системы;
в)
игровые
программы.
- Можно ли отнести операционную систему к
программному обеспечению:
а)
да;
б)
нет.
- Самый
большой этап в жизненном цикле программы:
а)
изучение
предметной области;
б)
программирование;
в)
тестирование;
г)
эксплуатация;
д)
корректировка
ошибок.
- Какой
этап выполняется раньше:
а)
отладка;
б)
тестирование.
- Способы оценки качества:
а)
наличие документации;
б)
сравнение с
аналогами;
в)
оптимизация
программы;
г)
структурирование
алгоритма.
- Существует ли связь между эффективностью и
оптимизацией программы:
а)
да;
б)
нет.
- Можно ли внутри цикла поместить еще один цикл:
а)
да;
б)
нет.
- Можно ли ставить знак подчеркивания в начале имени:
а)
да, без
ограничений;
б)
да, но не
рекомендуется;
в)
нет.
- Как называется способ составления имен переменных,
когда в начале имени сообщается тип переменной:
а)
прямым
указанием;
б)
венгерской
нотацией;
в)
структурным
программированием;
г)
поляризацией.
- Можно ли писать комментарии в отдельной строке:
а)
да;
б)
нет.
- Наличие комментариев позволяет:
а)
быстрее
писать программы;
б)
быстрее
выполнять программы.
в)
быстрее
найти ошибки в программе;
- Возможно ли комбинирование языков программирования
в рамках одной задачи:
а)
нет.
б)
да;
- Для решения инженерных задач характерно применение:
а)
САПР (систем
автоматизированного проектирования);
б)
СУБД (систем
управления базами данных);
в)
ОС
(операционных систем).
- Причины
синтаксических ошибок:
а)
ошибки в
исходных данных;
б)
ошибки,
допущенные на более ранних этапах;
в)
плохое
знание языка программирования;
г)
неправильное
применение процедуры тестирования.
- Защитное
программирование это:
а)
встраивание
в программу отладочных средств;
б)
создание
задач защищенных от копирования;
в)
разделение
доступа в программе;
г)
использование
паролей;
- Отладка – это:
а)
определение
списка параметров;
б)
правило
вызова процедур (функций);
в)
процедура
поиска ошибок, когда известно, что ошибка есть;
г)
составление
блок-схемы алгоритма.
17. Когда программист может
проследить последовательность выполнения команд программы:
а)
при
тестировании;
б)
при
трассировке;
в)
при
компиляции;
г)
при
выполнении программы;
д)
при
компоновке.
- На каком этапе создания программы могут появиться
синтаксические ошибки:
а)
анализ
требований;
б)
проектирование;
в)
программирование;
г)
тестирование.
- Позволяет ли автоматизация программирования всегда
создавать эффективные программы:
а)
да.
б)
нет;
20. Позволяет ли автоматизация программирования всегда
создавать надежные программы:
а)
нет;
б)
да.
21. Что легко поддается
автоматизации:
а)
работа с файлами;
б)
сложные логические задачи;
в)
интерфейс;
г)
алгоритмизация.
22. Что
такое оптимизация программ:
а)
создание
удобного интерфейса пользователя;
б)
улучшение
работы существующей программы;
в)
разработка
модульной конструкции программы;
г)
применение
методов объектно-ориентированного программирования.
23.
Сущность оптимизации циклов:
а)
;трассировка
циклов;
б)
сокращение
тела цикла;
в)
представление
циклов в виде блок-схем;
г)
сокращение
количества повторений выполнения тела цикла
24. В чем сущность модульного программирования:
а)
в
разбиении программы на отдельные равные части;
б)
в
разбиении программы на отдельные функционально независимые части;
в)
в
разбиение программы на процедуры и функции;
г)
снижает количество ошибок.
25. Недостаток модульного
программирования:
а)
увеличивает трудоемкость
программирования;
б)
снижает быстродействие программы;
в)
не позволяет выполнять оптимизацию
программы.
г)
усложняет процедуру комплексного
тестирования;
26. При структурном программировании задача выполняется:
а)
поэтапным
разбиением на более легкие задачи;
б)
без участия программиста;
в)
объединением
отдельных модулей программы.
27. Достоинство структурного программирования:
а)
можно
приступить к автономному тестированию на раннем этапе разработки;
б)
нет
необходимости выполнять тестирование;
в)
можно
приступить к комплексному тестированию на раннем этапе разработки;
г)
можно
пренебречь отладкой.
28.
Может ли дочерний элемент иметь двух родителей:
а) да;
б) нет;
в) только для
визуальных элементов;
г) если их свойства
совпадают.
29.
Есть ли различие между объектом и экземпляром:
а) да;
б) нет;
в) если у них общий
предок.
30. Могут ли два экземпляра
одного объекта реагировать на событие по-разному:
а)
да;
б)
нет.
31. Какие этапы проектирования можно объединять:
а)
эскизный и
рабочий;
б)
технический
и эскизный.
в)
технический
и рабочий;
32. Процесс преобразования постановки задачи в план
алгоритмического или вычислительного решения это:
а)
анализ
требований;
б)
программирование;
в)
проектирование;
г)
тестирование.
33. Модульное программирование применимо при:
а)
проектировании
сверху вниз;
б)
проектирование
снизу-вверх;
34. Проектирование сверху вниз это:
а)
последовательное
разбиение общих задач на более мелкие;
б)
составление
из отдельных модулей большой программы.
35. Проектирование снизу-вверх это:
а)
составление
из отдельных модулей большой программы;
б)
последовательное
разбиение общих задач на более мелкие.
36. Зависит ли трудоемкость разработки от вида
информации:
а)
да;
б)
нет.
37. Кому принадлежит право собственности на ПО:
а)
продавцу;
б)
разработчику;
в)
покупателю.
38. Кому принадлежит авторское право на ПО:
а)
покупателю.
б)
продавцу;
в)
разработчику;
39. Если вы приобрели программы законным путем, имеете
ли вы право продать ее:
а)
да;
б)
нет.
40. Если вы приобрели программу законным путем,
являетесь ли вы
собственником программы:
а)
нет;
б)
да.
ВАРИАНТ 2
1. Специфические особенности ПО как продукта:
а) продажа по ценам ниже
себестоимости (лицензирование);
б) низкие материальные затраты при
создании программ;
в) возможность создание программ
небольшие коллективом или даже одним человеком;
г) разнообразие решаемых задач с помощью
программных средств.
2. Можно ли отнести операционную систему к прикладному
программному обеспечению:
а)
да;
б)
нет.
3.
Какой этап выполняется раньше:
а)
отладка;
б)
тестирование.
4. В стадии разработки программы не входит:
а)
постановка
задачи;
б)
составление
спецификаций;
в)
эскизный
проект;
г)
автоматизация
программирования;
д)
тестирование.
5. Наиболее важный критерий качества:
а)
надежность;
б)
быстродействие;
в)
удобство в
эксплуатации;
г)
удобный
интерфейс;
д)
эффективность.
6. Способы оценки надежности:
а)
сравнение с
аналогами;
б)
тестирование;
в)
трассировка;
г)
оптимизация.
7. Можно ли внутри условного оператора поместить еще
одно условие:
а)
да;
б)
нет.
8. Какие символы не допускаются в именах переменных:
а)
цифры;
б)
подчеркивание
в)
пробелы;
9. Транслируются ли комментарии:
а)
да;
б)
нет.
10. Что определяет выбор языка программирования:
а)
область приложения;
б)
знание
языка;
в)
наличие
дополнительных библиотек.
11. Наличие комментариев позволяет:
а)
применять
сложные структуры;
б)
легче
разобраться в программе;
в)
увеличить
быстродействие.
12. Допустимо ли комбинирование языков программирования
в рамках одной задачи :
а)
нет.
б)
да;
13. Для решения экономических задач характерно
применение:
а)
СУБД (систем
управления базами данных);
б)
языков
высокого уровня;
в)
языков
низкого уровня;
г)
применение
сложных математических расчетов.
14.
Когда можно обнаружить синтаксические ошибки:
а)
при отладке;
б)
при
тестировании;
в)
на этапе
проектирования;
г)
при
компиляции;
д)
при
эксплуатации.
15. Вид ошибки с неправильным написанием служебных слов
(операторов):
а)
синтаксическая;
б)
семантическая;
в)
логическая;
г)
символьная.
16. Когда программист может проследить последовательность
выполнения команд программы:
а)
при
тестировании;
б)
при
компиляции;
в)
при
выполнении программы;
г)
при
трассировке;
д)
при
компоновке.
17. Когда приступают к тестированию программы:
а)
после
постановки задачи;
б)
на этапе
программирования;
в)
на этапе проектирования;
г)
когда
программа уже закончена;
д)
после
составления спецификаций,
18. Тестирование бывает:
а)
инструментальное;
б)
автономное;
в)
визуальное;
г)
алгоритмическое.
19. Назначение отладки:
а)
поиск
возможных ошибок;
б)
составление
спецификаций;
в)
разработка
алгоритма.
г)
поиск причин
существующих ошибок;
20. Отладка программ это:
а)
локализация
и исправление ошибок;
б)
алгоритмизация
программирования;
в)
компиляция и
компоновка.
21. В чем сущность автоматизации программирования:
а)
получение
готовой программы без выполнения компоновки;
б)
создание
программы без написания ее текста;
в)
в отсутствии
компиляции.
22. Выполняется ли процедура
компиляции при автоматизации программирования:
а)
да;
б)
нет.
23. Относится ли визуальное
программирование к средствам автоматизации:
а)
нет.
б)
да;
24. Нахождение
наилучшего варианта из множества возможных:
а)
тестирование;
б)
оптимизация;
в)
автоматизация;
г)
отладка;
д)
сопровождение.
25.
Результат оптимизации программы:
а)
надежность;
б)
машино-независимость;
в)
эффективность;
г)
мобильность.
26.
Критерии оптимизации программы:
а)
быстродействие
или размер программы;
б)
быстродействие
и размер программы;
в)
надежность
или эффективность;
г)
надежность и
эффективность.
27. Достоинство модульного
программирования:
а)
не требует комплексного
тестирования;
б)
возможность приступить к
тестированию до завершения написания всей программы;
в)
уменьшает размер программы;
г)
повышает надежность программы.
28. Разрешается ли использование циклов при структурном
программированииp:
а)
да;
б)
нет.
29. Достоинство структурного программирования:
а)
повышает
быстродействие программы;
б)
облегчает
работу над большими и сложными проектами;
в)
снижает
затраты на программирование.
1. Какое утверждение
верно:
а) предки наследуют
свойства родителей;
б) родители наследуют
свойства потомков;
в) потомки не могут
иметь общих предков;
г) потомки наследуют свойства
родителей.
31.
Изменение свойств, приводит к изменению поведения экземпляра:
а) нет;
б) только для
визуальных;
в) только НЕ для
визуальных;
г) да.
32. Какой методикой проектирования пользуются при
структурном программировании:
а)
сверху вниз;
б)
снизу-вверх.
33. Какой этап проектирования может быть исключен:
а)
эскизный
проект;
б)
технический
проект;
в)
рабочий
проект.
34. Какие этапы проектирования можно объединять:
а)
эскизный и
рабочий;
б)
технический
и рабочий;
в)
технический
и эскизный.
35. Модульное программирование применимо при:
а)
проектировании
сверху вниз;
б)
проектирование
снизу-вверх;
36. Модульное программирование применимо при:
а)
проектировании
сверху вниз;
б)
проектирование
снизу-вверх;
в)
и в том, и
другом случае;
г)
ни в коем
случае.
37. Какой методикой проектирования пользуются при
структурном программировании:
а)
сверху вниз;
б)
снизу-вверх.
38. Зависит ли трудоемкость разработки от вида
информации:
а)
да;
б)
нет.
39. Если вы приобрели программы законным путем, имеете
ли вы право вносить в нее изменения:
а)
да
б)
нет;
40. Если вы приобрели программы законным путем, имеете
ли вы право продать ее:
а)
да;
б)
нет.
ВАРИАНТ 3
1. Какие программы можно отнести к системному ПО:
а) драйверы;
б) текстовые редакторы;
в) электронные таблицы;
г) графические редакторы.
2. Специфические особенности ПО как продукта:
а)
универсальность;
б)
низкие
затраты при дублировании;
в)
простота
эксплуатации;
г)
наличие
поддержки (сопровождения) со стороны разработчика.
3.
Какой этап выполняется раньше:
а)
отладка;
б)
оптимизация;
в)
программирование;
г)
тестирование.
4. Специфические особенности ПО как продукта:
а)
низкие
затраты при дублировании;
б)
универсальность;
в)
простота
эксплуатации;
г)
наличие
поддержки (сопровождения) со стороны разработчика.
5. Повышает ли качество программ оптимизация:
а)
да;
б) нет.
6. Существует ли связь между надежностью и
быстродействием:
а)
нет:
б)
да.
7. Можно ли одно большое (длинное) выражение разбить на
несколько выраженийp:
а)
да;
б)
нет.
8. Найдите НЕ правильное условие для создания имен:
а)
длинное имя
можно сократить;
б)
из имени
лучше выбрасывать гласные;
в)
имена могут
содержать пробелы;
г)
можно
использовать большие буквы.
9. Наличие комментариев позволяет:
а)
улучшить
читабельность программы;
б)
улучшить
эксплуатацию программы;
в)
повысить
надежность программы.
10. Что определяет выбор языка программирования:
а)
знание
языка;
б)
область
приложения;
в)
наличие
дополнительных библиотек.
11. Наличие комментариев позволяет:
а)
улучшить
читабельность программы;
б)
улучшить
эксплуатацию программы;
в)
повысить
надежность программы.
12. Для каких задач характерно использование большого количества
исходных данных, выполнение операций поиска, группировки:
а)
для
системных задач;
б)
для
экономических задач;
в)
для
инженерных задач.
13. Можно ли использовать комбинацию языков
программирования в рамках одного проекта:
а)
да;
б)
нет.
14.
Ошибки компоновки заключаются в том, что:
а)
неправильно
использовано зарезервированное слово;
б)
составлено
неверное выражение;
в)
указано
внешнее имя, но не объявлено;
г)
указан
неверный тип переменной.
15. Вид ошибки с неправильным использованием служебных
слов (операторов):
а)
синтаксическая;
б)
семантическая;
в)
логическая;
г)
символьная.
16. Программа для просмотра значений переменных при
выполнении программы:
а)
компилятор;
б)
интерпретатор;
в)
отладчик;
г)
трассировка;
д)
тестирование.
17. Тестирование бывает:
а)
инструментальное;
б)
комплексное;
в)
визуальное;
г)
алгоритмическое.
18.
При
комплексном тестировании проверяются:
а)
правильность
работы отдельных частей программы;
б)
согласованность
работы отдельных частей программы;
в)
быстродействие
программы;
г)
эффективность
программы.
19. Существует ли различие между отладкой и тестированием:
а)
да;
б)
нет.
20. Что выполняется раньше, отладка или тестирование:
а)
отладка;
б)
тестирование.
21. В чем сущность автоматизации программирования:
а)
получение
готовой программы без выполнения компоновки;
б)
создание
программы без написания ее текста;
в)
в отсутствии
компиляции.
22. Влияет ли автоматизация программирования на
эффективность программы:
а)
нет;
б)
да
23. Позволяет ли автоматизация программирования всегда
создавать надежные программы:
а)
нет;
б)
да.
24.
Критерии оптимизации:
а)
размер
программы и ее эффективность;
б)
время
выполнения или размер требуемой памяти;
в)
независимость
модулей;
г)
качество
программы, ее надежность.
25.
Нахождение наилучшего варианта из множества возможных:
а)
тестирование;
б)
автоматизация;
в)
отладка;
г)
оптимизация;
д)
сопровождение.
26. Рекомендуемые размеры модулей:
а)
большие;
б)
равные;
в)
небольшие;
г)
фиксированной
длины.
27. В чем заключается независимость модуля:
а)
в написании,
отладке и тестировании независимо от остальных модулей;
б)
в разработке
и написании независимо от других модулей;
в)
в
независимости от работы основной программы.
28. Допустимо ли использование оператора GO
ТO при структурном программировании:
а)
нет;
б)
да.
29. Возможно, ли преобразовать неструктурированную
программу к структурному виду:
а)
да;
б)
нет.
30. Недостаток структурного программирования:
а)
снижает
эффективность;
б)
уменьшает
количество ошибок;
в)
увеличивает
размер программы;
г)
не требует
отладки.
31. Три
«кита» объектно-ориентированного метода программирования:
а) предки, родители,
потомки;
б) полиморфизм,
инкапсуляция, наследование;
в) свойства, события,
методы;
г) визуальные, не
визуальные компоненты и запросы.
32.
Можно ли свойствам присваивать значения:
а) да (всегда);
б) не всегда;
в) нет.
33. Модульное программирование применимо при:
а)
проектировании
сверху вниз;
б)
проектирование
снизу-вверх;
34. Процесс преобразования постановки задачи в план
алгоритмического или вычислительного решения это:
а)
проектирование;
б)
анализ
требований;
в)
программирование;
г)
тестирование.
35. Процесс преобразования постановки задачи в план
алгоритмического или вычислительного решения это:
а)
анализ требований;
б)
программирование;
в)
проектирование;
г)
тестирование.
36. Этап разработки программы, на котором дается
характеристика области применения программы:
а)
эскизный
проект;
б)
технический
проект;
в)
внедрение;
г)
рабочий
проект.
д)
техническое
задание;
37. Составление спецификаций это:
а)
эскизный
проект;
б)
поиск
алгоритма;
в)
формализация
задачи;
г)
отладка.
38. В чем заключается иерархический подход в решении
задачи:
а)
в выделении
основных и второстепенных элементов;
б)
в
последовательном разбиении задачи на более мелкие составные части;
в)
в
возможности параллельного выполнения отдельных частей задачи.
39. Какой метод проектирования соответствует
иерархическому подходу в решении задачи:
а)
нисходящее
(сверху вниз);
б)
восходящее
(снизу-вверх).
40. Кому принадлежит авторское право на ПО:
а)
разработчику;
б)
продавцу;
в)
покупателю.
ВАРИАНТ 4
- Какие программы можно отнести к системному ПО:
а)
программа
расчета заработной платы;
б)
электронные
таблицы;
в)
СУБД
(системы управления базами данных).
- Какие программы можно отнести к системному ПО:
а)
утилиты;
б)
экономические
программы;
в)
статистические
программы;
г)
мультимедийные
программы.
- Что выполняется раньше:
а)
компиляция;
б)
отладка;
в)
компоновка;
г)
тестирование.
- Этап,
занимающий наибольшее время, в жизненном цикле программы:
а)
проектирование;
б)
тестирование;
в)
программирование;
г)
сопровождение;
д)
формулировка
требований.
- В каких единицах можно измерить надежность:
а)
км/час;
б)
отказов/час;
в)
Кбайт/сек;
г)
операций/сек.
- Что относится к этапу программирования:
а)
написание
кода программы;
б)
разработка
интерфейса;
в)
работоспособность;
г)
анализ требований.
- . Если имеется стандартная функция, нужно ли писать
собственную:
а)
нет;
б)
да.
- . Доступ, при котором записи файла читаются в
физической последовательности, называется:
1)
прямым;
2)
простым;
3)
последовательным;
4)
основным.
- Можно ли ставить знак подчеркивания в начале
имени:
а)
да, но не
рекомендуется;
б)
да, без
ограничений;
в)
нет.
- Как называется способ составления имен переменных,
когда в начале имени сообщается тип переменной:
а)
прямым
указанием;
б)
венгерской
нотацией;
в)
структурным
программированием;
г)
поляризацией.
- . Что определяет выбор языка программирования:
а)
область
приложения;
б)
знание
языка;
в)
наличие
дополнительных библиотек.
- Для каких задач характерен большой объем
вычислений, использование сложного математического аппарата:
а)
для
системных задач;
б)
для
инженерных задач;
в)
для
экономических задач.
- . На каком этапе производится выбор языка
программирования:
а)
проектирование;
б)
программирование;
в)
отладка;
г)
тестирование.
- Могут ли проявиться ошибки при изменении условий
эксплуатации:
а)
да;
б)
нет.
15. Ошибки при написании программы бывают:
а)
орфографические;
б)
лексические;
в)
синтаксические;
г)
фонетические;
д)
морфологические.
16. Отладка – это:
а)
определение
списка параметров;
б)
правило
вызова процедур (функций);
в)
процедура
поиска ошибок, когда известно, что ошибка есть;
г)
составление
блок-схемы алгоритма.
- При комплексном тестировании проверяются:
а)
правильность
работы отдельных частей программы;
б)
согласованность
работы отдельных частей программы;
в)
быстродействие
программы;
г)
эффективность
программы.
18. Чему нужно уделять больше времени, чтобы получить хорошую
программу:
а)
программированию;
б)
отладке;
в)
тестированию;
г)
проектированию.
19. Назначение тестирования:
а)
обнаружение
ошибок;
б)
повышение
эффективности программы;
в)
улучшение
эксплуатационных характеристик;
г)
повышение
надежности программы;
д)
приведение
программы к структурированному виду.
20. Инструментальные средства отладки (НЕ правильный
ответ):
а)
трассировка.
б)
отладчики;
в)
компиляторы;
21.
Возможны ли ошибки при автоматизации программирования:
а)
да;
б)
нет.
22. Один из методов автоматизации программирования:
а)
структурное программирование;
б)
модульное
программирование;
в)
визуальное
программирование;
г)
объектно-ориентированное
программирование.
23.
Нахождение наилучшего варианта из множества возможных:
а)
тестирование;
б)
автоматизация;
в)
отладка;
г)
сопровождение.
д)
оптимизация;
24.
Критерии оптимизации:
а)
эффективность
использования ресурсов;
б)
структурирование
алгоритма;
в)
структурирование
программы.
25. В
чем заключается оптимизация условных выражений:
а)
в
использовании простых логических выражений;
б)
в изменении
порядка следования элементов выражения;
в)
в
использовании сложных логических выражений;
г)
в
использовании операций AND, OR и NOT.
26. В чем сущность модульного программирования:
а)
в разбиении
программы на отдельные равные части;
б)
в разбиении
программы на отдельные функционально независимые части;
в)
в разбиение
программы на процедуры и функции;
27. Можно ли сочетать модульное и структурное
программирование:
а)
да;
б)
нет.
28. Можно ли сочетать структурное программирование с
модульным:
а)
можно;
б)
нельзя;
в)
только в
особых случаях.
29. При структурном программировании задача выполняется:
а)
без участия
программиста;
б)
поэтапным
разбиением на более легкие задачи;
в)
объединением
отдельных модулей программы.
30. Повышает ли читабельность программ структурное
кодирование:
а)
да;
б)
нет.
31. Полиморфизм это:
а) передача свойств
по наследству;
б) изменение
поведения потомков на разные события;
в) изменение
поведения потомков, имеющих общих предков;
г) изменение
поведения экземпляров, имеющих общих предков;
32. Можно ли переопределять
методы:
а)
да;
б)
нет.
33. В каких единицах измеряются затраты на
проектирование:
а)
в
человеко-днях;
б)
в долларах;
в)
в тенге;
г)
в
килобайтах.
34. Можно ли переопределять
свойства:
а)
да;
б)
нет.
35. Составление спецификаций это:
а)
эскизный
проект;
б)
формализация
задачи;
в)
поиск
алгоритма;
г)
отладка.
36. Этап разработки программы, на котором дается
характеристика области применения программы:
а)
эскизный
проект;
б)
технический
проект;
в)
внедрение;
г)
рабочий
проект.
д)
техническое
задание;
37. Этап разработки программы, на котором дается
характеристика области применения программы:
а)
технический
проект;
б)
техническое
задание;
в)
эскизный
проект;
г)
внедрение;
д)
рабочий
проект.
38. Укажите правильную последовательность создания
программы:
а)
анализ
требований, проектирование, программирование, тестирование, отладка;
б)
анализ
требований, программирование, проектирование, тестирование;
в)
анализ
требований, проектирование, программирование, модификация, трассировка;
г)
формулирование
задачи, анализ требований, проектирование, программирование;
д)
формулирование
задачи, анализ требований, программирование, проектирование, отладка.
39. В каких единицах измеряются затраты на
проектирование:
а)
в долларах;
б)
в
человеко-днях;
в)
в тенге;
г)
в
килобайтах.
40. Зависит ли трудоемкость разработки от сложности
алгоритма:
а)
да;
б)
нет.
ВАРИАНТ 5
- Какие программы нельзя отнести к системному ПО:
а)
компиляторы
языков программирования;
б)
операционные
системы;
в)
игровые
программы;
г)
системы
управления базами данных.
- Этап,
занимающий наибольшее время, в жизненном цикле программы:
а)
тестирование;
б)
программирование;
в)
формулировка
требований.
г)
сопровождение;
д)
проектирование;
- Что выполняется раньше:
а) программирование;
б) отладка;
в) тестирование.
г) проектирование;
- Самый
большой этап в жизненном цикле программы:
а)
эксплуатация;
б)
изучение
предметной области;
в)
программирование;
г)
тестирование;
д)
корректировка
ошибок.
- В каких единицах можно измерить быстродействие:
а)
отказов/час;
б)
км/час;
в)
Кбайт/сек;
г)
операций/сек.
- Последовательность
этапов программирования:
а)
компоновка,
отладка, компилирование;
б)
отладка,
компилирование, компоновка;
в)
компилирование,
отладка, компоновка.
г)
компилирование,
компоновка, отладка;
- Инструментальные средства программирования:
а)
СУБД
(системы управления базами данных);
б)
BIOS
(базовая система ввода-вывода);
в)
ОС
(операционные системы).
г)
компиляторы,
интерпретаторы;
- Что
выполняется раньше:
а)
разработка алгоритма;
б)
выбор языка программирования;
в)
написание исходного кода;
г)
компиляция.
- Если имеется стандартная функция, нужно ли писать
собственную:
а)
нет;
б)
да.
- Наличие комментариев позволяет:
а)
быстрее
найти ошибки в программе;
б)
быстрее
писать программы;
в)
быстрее
выполнять программы.
- На каком этапе производится выбор языка
программирования:
а)
программирование;
б)
отладка;
в)
тестирование.
г)
проектирование;
- Для каких задач характерен большой объем
вычислений, использование сложного математического аппарата:
а)
для
инженерных задач;
б)
для
системных задач;
в)
для
экономических задач.
- Могут ли проявиться ошибки при изменении в
предметной области:
а)
да;
б)
нет.
- Процедура поиска ошибки, когда известно, что она
есть это:
а)
тестирование;
б)
компоновка;
в)
отладка;
г)
транзакция;
д)
трансляция.
- Ошибки при написании программы бывают:
а)
синтаксические;
б)
орфографические;
в)
лексические;
г)
фонетические;
д)
морфологические.
- Процесс исполнения программы с целью обнаружения
ошибок:
а)
кодирование;
б)
тестирование;
в)
сопровождение;
г)
проектирование.
- Автономное тестирование это:
а)
составление
блок-схем;
б)
пошаговая
проверка выполнения программы
в)
тестирование
отдельных частей программы;
г)
инструментальное
средство отладки;
- Инструментальные средства отладки (НЕ правильный
ответ):
а)
компиляторы;
б)
отладчики;
в)
трассировка.
- Отладка программ это:
а)
алгоритмизация
программирования;
б)
локализация
и исправление ошибок;
в)
компиляция и
компоновка.
20.
Недостаток
автоматизации программирования;
а)
низкое
быстродействие;
б)
большой
размер программы;
в)
сложность
программы.
- Возможны
ли ошибки при автоматизации программирования:
а)
да;
б)
нет.
- Возможна
ли оптимизация программ без участия программиста:
а)
да;
б)
нет.
23. Нахождение наилучшего варианта из множества
возможных:
а)
тестирование;
б)
автоматизация;
в)
отладка;
г)
сопровождение.
д)
оптимизация;
24. В чем заключается независимость модуля:
а)
в разработке
и написании независимо от других модулей;
б)
в
независимости от работы основной программы.
в)
в написании,
отладке и тестировании независимо от остальных модулей;
25. При модульном программировании желательно, чтобы
модуль имел:
а)
большой
размер;
б)
небольшой
размер;
в)
фиксированный
размер;
г)
любой
размер.
26. Любую ли программу можно привести к
структурированному виду:
а)
любую;
б)
не все;
в)
нельзя.
27. Разрешается ли использование оператора GO TO при
структурном программировании:
а)
да;
б)
иногда.
в)
нет;
28. Разрешается ли использование циклов при
объектно-ориентированном программировании:
а)
да;
б)
нет.
29. Наследование это:
а) передача свойств
экземплярам;
б) передача свойств
предкам;
в) передача свойств
потомкам;
г) передача событий
потомкам.
30. Предусматривает ли объектно-ориентированное
программирование использование стандартных процедур и функций:
а)
да;
б)
нет.
31. Какой методикой проектирования пользуются при
структурном программировании:
а)
сверху вниз;
б)
снизу-вверх.
32. Составление спецификаций это:
а)
эскизный
проект;
б)
формализация
задачи;
в)
поиск
алгоритма;
г)
отладка.
33. Могут ли два различных
объекта реагировать на событие по-разному:
а)
да;
б)
нет.
34. Несуществующий метод проектирования:
а)
алгоритмическое;
б)
нисходящее;
в)
восходящее.
35. Укажите правильную последовательность создания
программы:
а)
анализ
требований, проектирование, программирование, тестирование, отладка;
б)
анализ
требований, программирование, проектирование, тестирование;
в)
анализ
требований, проектирование, программирование, модификация, трассировка;
г)
формулирование
задачи, анализ требований, программирование, проектирование, отладка.
д)
формулирование
задачи, анализ требований, проектирование, программирование;
36. Уточнение структуры входных и выходных данных,
разработка алгоритмов, определение элементов интерфейса входят в:
а)
рабочий
проект;
б)
эскизный
проект.
в)
технический
проект;
37. Несуществующий метод проектирования:
а)
алгоритмическое;
б)
нисходящее;
в)
восходящее.
38. Зависит ли трудоемкость разработки от сложности
алгоритма:
а)
да;
б)
нет.
39. Какой метод проектирования соответствует
иерархическому подходу в решении задачи:
а)
нисходящее
(сверху вниз);
б)
восходящее
(снизу-вверх).
40. Если вы приобрели программы законным путем, имеете
ли вы право продать ее:
а)
да;
б)
нет.
ВАРИАНТ 6
1. Какие программы можно отнести к прикладному
программному обеспечению:
а)
электронные
таблицы;
б)
таблицы
решений;
в)
СУБД
(системы управления базами данных).
2. В стадии разработки программы не входит:
а)
составление
спецификаций;
б)
эскизный
проект;
в)
тестирование.
г)
автоматизация
программирования;
д)
постановка
задачи;
3. Что выполняется раньше:
а) программирование;
б) проектирование;
в) отладка;
г) тестирование.
4. В стадии разработки программы не входит:
а)
постановка
задачи;
б)
составление
спецификаций;
в)
эскизный
проект;
г)
тестирование.
д)
автоматизация
программирования;
5. На языке программирования составляется:
а)
исполняемый
код;
б)
объектный
код;
в)
алгоритм.
г)
исходный
код;
6. Правила, которым должна следовать программа это:
а)
алгоритм;
б)
структура;
в)
спецификация;
г)
состав
информации.
7. Можно ли переменным присваивать произвольные
идентификаторы:
а)
да;
б)
нет.
8. Найдите НЕ правильное условие для создания имен:
а)
длинное имя
можно сократить;
б)
из имени
лучше выбрасывать гласные;
в)
можно
использовать большие буквы.
г)
имена могут
содержать пробелы;
9. Доступ, при котором записи файла обрабатываются в
произвольной последовательности, называется:
а)
последовательным;
б)
простым;
в)
основным.
г)
прямым;
10. Что определяет выбор языка программирования:
а)
знание
языка;
б)
наличие
дополнительных библиотек.
в)
область
приложения;
11. Транслируются ли комментарии:
а)
да;
б)
нет.
12. Можно ли использовать комбинацию языков
программирования в рамках одного проекта:
а)
да;
б)
нет.
13. На каком этапе производится выбор языка
программирования:
а)
проектирование;
б)
программирование;
в)
отладка;
г)
тестирование.
14.
Возможно ли программирование с защитой от ошибок:
а)
да;
б)
нет.
15. Программа для просмотра значений переменных при
выполнении программы:
а)
компилятор;
б)
интерпретатор;
в)
трассировка;
г)
тестирование.
д)
отладчик;
16. Вид ошибки с неправильным использованием служебных
слов (операторов):
а)
синтаксическая;
б)
логическая;
в)
символьная.
г)
семантическая;
17. Трассировка это:
а)
проверка пошагового
выполнения программы;
б)
тестирование
исходного кода;
в)
отладка
модуля;
г)
составление
блок-схемы алгоритма.
18. Локализация ошибки:
а)
определение
причин ошибки;
б)
определение
места возникновения ошибки;
в)
обнаружение
причин ошибки;
г)
исправление
ошибки.
19. Локализация ошибки:
а)
определение
причин ошибки;
б)
обнаружение
причин ошибки;
в)
определение
места возникновения ошибки;
г)
исправление
ошибки.
20. Назначение тестирования:
а)
обнаружение
ошибок;
б)
повышение
эффективности программы;
в)
улучшение
эксплуатационных характеристик;
г)
приведение
программы к структурированному виду.
д)
повышение
надежности программы;
21. Выполняется ли процедура
компиляции при автоматизации программирования:
а)
да;
б)
нет.
22. Что легко поддается
автоматизации:
а)
интерфейс;
б)
работа с файлами;
в)
сложные логические задачи;
г)
алгоритмизация.
23. Модульное программирование это:
а)
использование
стандартных процедур и функций
б)
разбиение
программы на отдельные части;
в)
структурирование;
24. Можно ли использовать оператор GO TO в модульном
программах:
а)
можно;
б)
нельзя.
25. Разрешается ли использование циклов при структурном
программированииp:
а)
да;
б)
нет.
26. Разрешается ли использование оператора IF при
объектно-ориентированном программировании:
а)
нет
б)
да
27. Что такое объект, в объектно-ориентированное
программировании:
а)
событие;
б)
обработка
событий;
в)
тип данных;
г)
структура
данных;
д)
использование
стандартных процедур.
28. Могут ли два экземпляра
одного объекта реагировать на событие по-разному:
а)
да;
б)
нет.
29. Укажите правильную последовательность создания
программы:
а)
анализ
требований, проектирование, программирование, тестирование, отладка;
б)
анализ
требований, программирование, проектирование, тестирование;
в)
формулирование
задачи, анализ требований, проектирование, программирование;
г)
анализ
требований, проектирование, программирование, модификация, трассировка;
д)
формулирование
задачи, анализ требований, программирование, проектирование, отладка.
30. Уточнение структуры входных и выходных данных,
разработка алгоритмов, определение элементов интерфейса входят в:
а)
технический
проект;
б)
рабочий проект;
в)
эскизный
проект.
31. Метод проектирования:
а)
алгоритмическое;
б)
логическое;
в)
нисходящее;
г)
использование
языков программирования;
д)
составление
блок-схем.
32. Нисходящее проектирование это:
а)
составление
блок-схем;
б)
разделение
программы на отдельные участи (блоки);
в)
последовательное
уточнение (детализация);
г)
трассировка.
33. В каких единицах измеряются затраты на
проектирование:
а)
в
человеко-днях;
б)
в долларах;
в)
в тенге;
г)
в
килобайтах.
34. Зависит ли трудоемкость разработки от языка или
системы программирования:
а)
да;
б)
нет.
35. Зависит ли трудоемкость разработки от сложности
алгоритма:
а)
да;
б)
нет.
36. Зависит ли трудоемкость разработки от вида
информации:
а)
да;
б)
нет.
37. Зависит ли трудоемкость разработки от количества
обрабатываемой информации:
а)
да;
б)
нет.
38. Кому принадлежит право собственности на ПО:
а)
продавцу;
б)
разработчику;
в)
покупателю.
39. Если вы приобрели программы законным путем, имеете
ли вы право продать ее:
а)
да;
б)
нет.
40. Кому принадлежит право собственности на ПО:
а)
разработчику;
б)
продавцу;
в)
покупателю.
ВАРИАНТ 7
- Какие программы можно отнести к прикладному ПО:
а)
программа
расчета заработной платы;
б)
диспетчер
программ;
в)
программа
«Проводник» (Explorer).
- Этап,
занимающий наибольшее время, при разработке программы:
а) тестирование;
б) сопровождение;
в) проектирование;
г) программирование;
д) формулировка требований.
- Первый этап в жизненном цикле программы:
а)
анализ
требований;
б)
проектирование;
в)
формулирование
требований;
г)
автономное
тестирование;
д)
комплексное
тестирование.
- Самый важный критерий качества программы:
а)
надежность;
б)
эффективность;
в)
работоспособность;
г)
быстродействие;
д)
простота
эксплуатации.
- В каких единицах можно измерить надежность:
а)
км/час;
б)
Кбайт/сек;
в)
отказов/час;
г)
операций/сек.
- Способы оценки надежности:
а)
тестирование;
б)
сравнение с
аналогами;
в)
трассировка;
г)
оптимизация.
- Какие символы не допускаются в именах переменных:
а)
цифры;
б)
пробелы;
в)
подчеркивание
- Транслируются ли комментарии:
а)
да;
б)
нет.
- Наличие комментариев позволяет:
а)
быстрее
найти ошибки в программе;
б)
быстрее
писать программы;
в)
быстрее
выполнять программы.
- Какие символы не допускаются в именах переменных:
а)
цифры
б)
подчеркивание
в)
пробелы
- Можно ли ставить знак подчеркивания в начале имени:
а)
да, без
ограничений;
б)
да, но не
рекомендуется;
в)
нет.
- Можно ли писать комментарии в отдельной строке:
а)
да;
б)
нет.
- Для решения экономических задач характерно
применение:
а)
языков
низкого уровня;
б)
применение
сложных математических расчетов.
в)
СУБД (систем
управления базами данных);
г)
языков
высокого уровня;
14.
Есть ли недостатки программирования с защитой от ошибок:
а)
да;
б)
нет.
15. Отладка – это:
а)
определение
списка параметров;
б)
процедура
поиска ошибок, когда известно, что ошибка есть;
в)
правило
вызова процедур (функций);
г)
составление
блок-схемы алгоритма.
16. Вид ошибки с неправильным написанием служебных слов
(операторов):
а)
семантическая;
б)
логическая;
в)
символьная.
г)
синтаксическая;
17. На каком этапе создания программы могут появиться
синтаксические ошибки:
а)
проектирование;
б)
анализ
требований;
в)
тестирование.
г)
программирование;
18. Когда приступают к тестированию программы:
а)
когда
программа уже закончена;
б)
после
постановки задачи;
в)
на этапе
программирования;
г)
на этапе
проектирования;
д)
после
составления спецификаций,
19. Процесс исполнения программы с целью обнаружения
ошибок:
а)
кодирование;
б)
сопровождение;
в)
тестирование;
г)
проектирование.
20. Трассировка это:
а)
тестирование
исходного кода;
б)
отладка
модуля;
в)
проверка
пошагового выполнения программы;
г)
составление
блок-схемы алгоритма.
21. Автоматизация программирования позволяет:
а)
повысить
надежность программы;
б)
сократить
время разработки программы;
в)
повысить
быстродействие программы.
22. Позволяет ли автоматизация программирования всегда
создавать эффективные программы:
а)
да.
б)
нет;
23. Что
такое оптимизация программ:
а)
улучшение
работы существующей программы;
б)
создание
удобного интерфейса пользователя;
в)
разработка
модульной конструкции программы;
г)
применение
методов объектно-ориентированного программирования.
24. Выполняется ли процедура
компиляции при автоматизации программирования:
а)
да;
б)
нет.
25.
Сущность оптимизации циклов:
а)
сокращение
тела цикла;
б)
представление
циклов в виде блок-схем;
в)
сокращение
количества повторений выполнения тела цикла;
г)
трассировка
циклов;
д)
поиск ошибок
в циклах.
26. В чем сущность модульного программирования:
а)
в разбиении
программы на отдельные функционально независимые части;
б)
в разбиении
программы на отдельные равные части;
в)
в разбиение
программы на процедуры и функции;
27. Можно ли использовать оператор GO TO в
структурированных программах:
а)
можно;
б)
нельзя;
в)
только в
особых случаях.
28. Разрешается ли использование оператора IF при
структурном программировании:
а)
да;
б)
нет.
29. Предусматривает ли объектно-ориентированное
программирование использование стандартных процедур и функций:
а)
да;
б)
нет.
30. Предусматривает ли объектно-ориентированное
программирование использование стандартных процедур и функций:
а)
да;
б)
нет.
31. Какой методикой проектирования пользуются при
структурном программировании:
а)
сверху вниз;
б)
снизу-вверх.
31. Составление спецификаций это:
а)
эскизный
проект;
б)
формализация
задачи;
в)
поиск
алгоритма;
г)
отладка.
32. Этап разработки программы, на котором дается характеристика
области применения программы:
а)
техническое
задание;
б)
эскизный
проект;
в)
технический
проект;
г)
внедрение;
д)
рабочий
проект.
33. Признаки нисходящего программирования:
а)
наличие
оптимизации;
б)
наличие
тестирования;
в)
последовательная
детализация;
г)
автоматизация
программирования.
34. Какой этап проектирования может быть исключен:
а)
эскизный
проект;
б)
технический
проект;
в)
рабочий
проект.
35. Какой методикой проектирования пользуются при
структурном программировании:
а)
сверху вниз;
б)
снизу-вверх.
36. В чем заключается иерархический подход в решении
задачи:
а)
в
последовательном разбиении задачи на более мелкие составные части;
б)
в выделении
основных и второстепенных элементов;
в)
в
возможности параллельного выполнения отдельных частей задачи.
37. Зависит ли трудоемкость разработки от языка или
системы программирования:
а)
да;
б)
нет.
38. Зависит ли трудоемкость разработки от количества
обрабатываемой информации:
а)
да;
б)
нет.
39. Зависит ли трудоемкость разработки от вида
информации:
а)
да;
б)
нет.
40. Если вы приобрели программу законным путем,
являетесь ли вы
собственником программы:
а)
нет;
б)
да.
ВАРИАНТ 8
- Какие программы нельзя отнести к прикладному ПО:
а)
компиляторы
и (или) интерпретаторы;
б)
текстовые и
(или) графические редакторы;
в)
электронные
таблицы.
- Один из необязательных этапов жизненного цикла
программы:
а)
оптимизация;
б)
проектирование;
в)
тестирование;
г)
программирование;
д)
анализ
требований.
- Самый важный критерий качества программы:
а)
надежность;
б)
эффективность;
в)
работоспособность;
г)
быстродействие;
д)
простота
эксплуатации.
- В стадии разработки программы не входит:
а)
автоматизация
программирования;
б)
постановка
задачи;
в)
составление
спецификаций;
г)
эскизный
проект;
д)
тестирование.
- Способы оценки качества:
а)
оптимизация
программы;
б)
наличие
документации;
в)
сравнение с
аналогами;
г)
структурирование
алгоритма.
- Повышает ли качество программ оптимизация:
а)
да;
б) нет.
- Можно ли использовать имена, которые уже были
использованы в другой программе (модуле):
а)
да;
б)
нет.
- Как называется способ составления имен переменных,
когда в начале имени сообщается тип переменной:
а)
прямым
указанием;
б)
венгерской
нотацией;
в)
структурным
программированием;
г)
поляризацией.
- Можно ли писать комментарии в отдельной строке:
а)
да;
б)
нет.
- Найдите НЕ правильное условие для создания имен:
а)
имена могут
содержать пробелы;
б)
длинное имя
можно сократить;
в)
из имени
лучше выбрасывать гласные;
г)
можно
использовать большие буквы.
- Какие символы не допускаются в именах переменных:
а)
пробелы;
б)
цифры;
в)
подчеркивание
- Наличие комментариев позволяет:
а)
улучшить
эксплуатацию программы;
б)
улучшить
читабельность программы;
в)
повысить
надежность программы.
г)
ОС
(операционных систем).
- Для решения экономических задач характерно
применение:
а)
языков
высокого уровня;
б)
СУБД (систем
управления базами данных);
в)
языков
низкого уровня;
г)
применение
сложных математических расчетов.
- Есть
ли недостатки программирования с защитой от ошибок:
а)
да;
б)
нет.
15. Когда программист может
проследить последовательность выполнения команд программы:
а)
при
трассировке;
б)
при
тестировании;
в)
при
компиляции;
г)
при
выполнении программы;
д)
при
компоновке.
- Защитное
программирование это:
а)
встраивание
в программу отладочных средств;
б)
создание
задач защищенных от копирования;
в)
разделение
доступа в программе;
г)
использование
паролей;
д)
оформление
авторских прав на программу.
- Программа для просмотра значений переменных при
выполнении программы:
а)
отладчик;
б)
компилятор;
в)
интерпретатор;
г)
трассировка;
д)
тестирование.
- Отладка – это:
а)
определение
списка параметров;
б)
процедура
поиска ошибок, когда известно, что ошибка есть;
в)
правило
вызова процедур (функций);
г)
составление
блок-схемы алгоритма.
- Тестирование бывает:
а)
комплексное;
б)
инструментальное;
в)
визуальное;
г)
алгоритмическое.
- Существует ли различие между отладкой и
тестированием:
а)
да;
б)
нет.
21. Один из методов
автоматизации программирования:
а)
структурное
программирование;
б)
модульное
программирование;
в)
визуальное
программирование;
г)
объектно-ориентированное
программирование.
22. Влияет ли автоматизация
программирования на эффективность программы:
а)
нет;
б)
да
- В чем
заключается оптимизация условных выражений:
а)
в
использовании простых логических выражений;
б)
в
использовании сложных логических выражений;
в)
в изменении
порядка следования элементов выражения;
г)
в
использовании операций AND, OR и NOT.
- Оптимизация циклов заключается в:
а)
уменьшении
количества повторений тела цикла;
б)
просмотре
задачи с другой стороны;
в)
упрощение
задачи за счет включения логических операций.
24. При модульном программировании желательно, чтобы
модуль имел:
а)
большой
размер;
б)
небольшой
размер;
в)
фиксированный
размер;
г)
любой
размер.
25. Модульное программирование это:
а)
разбиение
программы на отдельные части;
б)
структурирование;
в)
использование
стандартных процедур и функций.
26. Разрешается ли использование циклов при структурном
программированииp:
а)
да;
б)
нет.
27. Программирование без GO TO применяется. при:
а)
модульном
программировании;
б)
объектно-ориентированном
программировании;
в)
структурном
программировании;
г)
все ответы
верные.
28. . Можно ли сочетать объектно-ориентированное и
структурное программирование
а)
можно;
б)
нельзя.
29. Инкапсуляция это:
а) определение новых
типов данных;
б) определение новых
структур данных;
в) объединение
переменных, процедур и функций в одно целое;
г) разделение
переменных, процедур и функций;
д) применение
стандартных процедур и функций.
30. Проектирование сверху вниз это:
а)
последовательное
разбиение общих задач на более мелкие;
б)
составление
из отдельных модулей большой программы.
31. Проектирование снизу-вверх это:
а)
составление
из отдельных модулей большой программы;
б)
последовательное
разбиение общих задач на более мелкие.
32.
Модульное
программирование применимо при:
а)
проектировании
сверху вниз;
б)
проектирование
снизу-вверх;
в)
и в том, и
другом случае;
г)
ни в коем
случае.
33.
Какой
методикой проектирования пользуются при структурном программировании:
а)
сверху вниз;
б)
снизу-вверх.
34. Какой этап проектирования может быть исключен:
а)
эскизный
проект;
б)
технический
проект;
в)
рабочий
проект.
35. Модульное программирование применимо при:
а)
проектировании
сверху вниз;
б)
проектирование
снизу-вверх;
36. Процесс преобразования постановки задачи в план
алгоритмического или вычислительного решения это:
а)
проектирование;
б)
анализ
требований;
в)
программирование;
г)
тестирование.
37. В каких единицах измеряются затраты на
проектирование:
а)
в долларах;
б)
в тенге;
в)
в
человеко-днях;
г)
в
килобайтах.
38. Зависит ли трудоемкость разработки от языка или
системы программирования:
а)
да;
б)
нет.
39. Что охраняется законом:
а)
структура базы данных;
б)
содержание базы данных
40. Кому принадлежит авторское право на ПО:
а)
разработчику;
б)
продавцу;
в)
покупателю.
|
номер вопроса |
Номер варианта |
||||||||
|
Ответы |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
|
|
1. |
б |
а |
а |
в |
в |
а |
а |
а |
|
|
2. |
а |
б |
б |
а |
г |
г |
а |
а |
|
|
3. |
г |
а |
в |
а |
г |
б |
в |
в |
|
|
4. |
а |
г |
а |
г |
а |
б |
в |
а |
|
|
5. |
б |
а |
а |
б |
г |
б |
в |
в |
|
|
6. |
а |
б |
а |
а |
г |
а |
а |
а |
|
|
7. |
а |
в |
а |
а |
г |
а |
б |
а |
|
|
8. |
б |
в |
в |
в |
а |
г |
б |
б |
|
|
9. |
б |
б |
а |
а |
а |
г |
а |
а |
|
|
10. |
а |
а |
б |
б |
а |
в |
в |
а |
|
|
11. |
в |
б |
а |
а |
г |
б |
б |
а |
|
|
12. |
б |
б |
б |
б |
а |
а |
а |
б |
|
|
13. |
а |
а |
а |
а |
а |
а |
в |
б |
|
|
14. |
в |
г |
в |
а |
а |
а |
а |
а |
|
|
15. |
а |
а |
б |
в |
а |
д |
б |
а |
|
|
16. |
в |
г |
в |
в |
б |
г |
г |
а |
|
|
17. |
б |
г |
б |
б |
в |
а |
г |
а |
|
|
18. |
в |
б |
б |
в |
а |
б |
а |
б |
|
|
19. |
б |
г |
а |
г |
б |
в |
в |
а |
|
|
20. |
б |
а |
а |
в |
б |
д |
в |
а |
|
|
21. |
в |
б |
б |
а |
а |
а |
б |
в |
|
|
22. |
б |
а |
а |
в |
а |
а |
б |
а |
|
|
23. |
г |
б |
а |
д |
д |
б |
а |
в |
|
|
24. |
б |
б |
б |
а |
в |
а |
а |
б |
|
|
25. |
г |
в |
г |
б |
б |
а |
а |
а |
|
|
26. |
в |
а |
в |
б |
а |
б |
а |
а |
|
|
27. |
в |
б |
а |
а |
в |
в |
б |
в |
|
|
28. |
б |
а |
а |
а |
а |
а |
а |
а |
|
|
29. |
а |
б |
а |
б |
в |
в |
а |
в |
|
|
30. |
а |
г |
в |
в |
а |
а |
а |
а |
|
|
31. |
в |
г |
б |
в |
а |
в |
а |
а |
|
|
32. |
в |
а |
б |
а |
б |
в |
б |
в |
|
|
33. |
б |
а |
б |
а |
а |
а |
в |
а |
|
|
34. |
а |
б |
а |
б |
а |
а |
а |
а |
|
|
35. |
а |
б |
в |
б |
д |
а |
а |
б |
|
|
36. |
а |
в |
д |
д |
в |
а |
а |
а |
|
|
37. |
б |
а |
в |
б |
а |
б |
а |
в |
|
|
38. |
в |
а |
б |
г |
а |
б |
б |
а |
|
|
39. |
а |
б |
а |
б |
а |
а |
а |
б |
|
|
40. |
а |
а |
а |
а |
а |
а |
а |
а |
Ключ к тестам
1.Верно ли утверждение, что между эффективностью и опти-
мизацией программы существует связь?
2.Что такое оптимизация программ:
a)улучшение работы существующей программы
b)создание удобного интерфейса пользователя
c)разработка модульной конструкции программы
d)применение методов объектно-ориентированного программирования
3.Критерии оптимизации:
a)время выполнения или размер требуемой памяти
b)размер программы и ее эффективность
c)независимость модулей
d)качество программы, ее надежность
4.Возможна ли оптимизация программ без участия програм-
миста?
5.Оптимизация программы это:
a)модификация
b)отладка
c)повышение сложности программы
d)уменьшение сложности программы
4.5.Типовой вариант по теме
«Дебаггинг»
8.Отладка программы – это
a)работы, связанные с обслуживанием программы в процессе
ееэксплуатации
b)контроль логически сложных участков программы
c)испытание, проверка правильности работы программы в целом либо ее составных частей
d)процесс поиска и устранения ошибок в программе, производимый по результатам ее прогона на ПК
e)определение функциональных возможностей системы
9.Какой этап выполняется раньше:

a)отладка
b)тестирование
10.Процедура поиска ошибки, когда известно, что она есть это:
a)отладка
b)тестирование
c)компоновка
d)транзакция
e)трансляция
11.Верно ли утверждение, что между отладкой и тестированием
существует различие?
12.Инструментальные средства отладки (НЕ правильный от-
вет):
a)компиляторы
b)отладчики
c)трассировка
13.Как называется процесс преобразования кода программы в
машинный код?
a)трансляция
b)отладка
c)тестирование
d)компиляция
e)компоновка
5. КОМПЛЕКТ ЗАДАНИЙ ДЛЯ КОНТРОЛЬНОЙ РАБОТЫ
Контрольная работа № 1 «Рефакторинг и технологии управления программным кодом»
Задание 1. Подготовьте письменные ответы на следующие вопросы:
1.2 Основные причины и предпосылки рефакторинга
2.2Основные принципы и методы рефакторинга
2.3Признаки “плохого” кода
2.4Возможности рефакторинга кода, которые распознаются в Visual Studio (заполните таблицу)
|
Прием рефакторинга |
Описание |
Укажите источники информации, используемые при подготовке ответов на задание.
Задача 2. Существует программа на языке C++
#include <iostream> using namespace std;
//Structure for a bank certificate of deposit: struct CDAccount
{
double balance; double interest_rate;
int term;//months until maturity
};
void get_data(CDAccount& the_account);
//Postcondition: the_account.balance and the_account.interest_rate //have been given values that the user entered at the keyboard.
int main( )
{
CDAccount account; get_data(account);
double rate_fraction, interest; rate_fraction = account.interest_rate/100.0;
interest = account.balance*rate_fraction*(account.term/12.0); account.balance = account.balance + interest;
cout.setf(ios::fixed);
cout.setf(ios::showpoint);
cout.precision(2);
cout << «When your CD matures in «
<<account.term << » months,n»
<<«it will have a balance of $»
<<account.balance << endl; system(«Pause»);
return 0;
}
//Uses iostream:
void get_data(CDAccount& the_account)
{
cout << «Enter account balance: $»; cin >> the_account.balance;
cout << «Enter account interest rate: «; cin >> the_account.interest_rate;
cout << «Enter the number of months until maturityn» << «(must be 12 or fewer months): «;
cin >> the_account.term;
}
Перепишите данную программу так, чтобы:
−переопределить CDAccount, чтобы это был класс а не
structure;
−member variable — были бы private;
−включить member functions для: to return the initial balance, to return the balance at maturity, to return the rent interest rate, to return term.
−включить конструктор который опрелит все member variables to any specified values, как же как default constructor.
Задача 3. Решите задача на С++/С#. Проведите оптимизацию полученного кода.
В городе M строятся N новых микрорайонов, между которыми запланировано M магистральных дорог. Каждая дорога имеет свою стоимость строительства Pij. В прошлом году из этих M дорог муниципалитет успел построить K штук. К сожалению, в этом году финансирование строительства решено было сократить, и теперь из запланированных, но не построенных M-K дорог нужно оставить такие, чтобы из любого микрорайона в любой другой существовал хотя бы один путь, но при этом стоимость их строительства была минимальной (гарантируется, что такой набор существует).
Какова минимальная стоимость P завершения строительства дорожной сети по новому плану, и сколько новых дорог по нему предстоит построить?
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
07.01.2021231.97 Кб541.pdf
- #
From Wikipedia, the free encyclopedia
In computer programming and software development, debugging is the process of finding and resolving bugs (defects or problems that prevent correct operation) within computer programs, software, or systems.
Debugging tactics can involve interactive debugging, control flow analysis, unit testing, integration testing, log file analysis, monitoring at the application or system level, memory dumps, and profiling. Many programming languages and software development tools also offer programs to aid in debugging, known as debuggers.
Etymology[edit]
A computer log entry from the Mark II, with a moth taped to the page
The terms «bug» and «debugging» are popularly attributed to Admiral Grace Hopper in the 1940s.[1] While she was working on a Mark II computer at Harvard University, her associates discovered a moth stuck in a relay and thereby impeding operation, whereupon she remarked that they were «debugging» the system. However, the term «bug», in the sense of «technical error», dates back at least to 1878 and Thomas Edison who describes the «little faults and difficulties» of mechanical engineering as «Bugs».
Similarly, the term «debugging» seems to have been used as a term in aeronautics before entering the world of computers. In an interview Grace Hopper remarked that she was not coining the term.[citation needed] The moth fit the already existing terminology, so it was saved. A letter from J. Robert Oppenheimer (director of the WWII atomic bomb Manhattan Project at Los Alamos, New Mexico) used the term in a letter to Dr. Ernest Lawrence at UC Berkeley, dated October 27, 1944,[2] regarding the recruitment of additional technical staff.
The Oxford English Dictionary entry for «debug» quotes the term «debugging» used in reference to airplane engine testing in a 1945 article in the Journal of the Royal Aeronautical Society. An article in «Airforce» (June 1945 p. 50) also refers to debugging, this time of aircraft cameras. Hopper’s bug was found on September 9, 1947. Computer programmers did not adopt the term until the early 1950s.
The seminal article by Gill[3] in 1951 is the earliest in-depth discussion of programming errors, but it does not use the term «bug» or «debugging».
In the ACM’s digital library, the term «debugging» is first used in three papers from 1952 ACM National Meetings.[4][5][6] Two of the three use the term in quotation marks.
By 1963 «debugging» was a common-enough term to be mentioned in passing without explanation on page 1 of the CTSS manual.[7]
Scope[edit]
As software and electronic systems have become generally more complex, the various common debugging techniques have expanded with more methods to detect anomalies, assess impact, and schedule software patches or full updates to a system. The words «anomaly» and «discrepancy» can be used, as being more neutral terms, to avoid the words «error» and «defect» or «bug» where there might be an implication that all so-called errors, defects or bugs must be fixed (at all costs). Instead, an impact assessment can be made to determine if changes to remove an anomaly (or discrepancy) would be cost-effective for the system, or perhaps a scheduled new release might render the change(s) unnecessary. Not all issues are safety-critical or mission-critical in a system. Also, it is important to avoid the situation where a change might be more upsetting to users, long-term, than living with the known problem(s) (where the «cure would be worse than the disease»). Basing decisions of the acceptability of some anomalies can avoid a culture of a «zero-defects» mandate, where people might be tempted to deny the existence of problems so that the result would appear as zero defects. Considering the collateral issues, such as the cost-versus-benefit impact assessment, then broader debugging techniques will expand to determine the frequency of anomalies (how often the same «bugs» occur) to help assess their impact to the overall system.
Tools[edit]
Debugging on video game consoles is usually done with special hardware such as this Xbox debug unit intended for developers.
Debugging ranges in complexity from fixing simple errors to performing lengthy and tiresome tasks of data collection, analysis, and scheduling updates. The debugging skill of the programmer can be a major factor in the ability to debug a problem, but the difficulty of software debugging varies greatly with the complexity of the system, and also depends, to some extent, on the programming language(s) used and the available tools, such as debuggers. Debuggers are software tools which enable the programmer to monitor the execution of a program, stop it, restart it, set breakpoints, and change values in memory. The term debugger can also refer to the person who is doing the debugging.
Generally, high-level programming languages, such as Java, make debugging easier, because they have features such as exception handling and type checking that make real sources of erratic behaviour easier to spot. In programming languages such as C or assembly, bugs may cause silent problems such as memory corruption, and it is often difficult to see where the initial problem happened. In those cases, memory debugger tools may be needed.
In certain situations, general purpose software tools that are language specific in nature can be very useful. These take the form of static code analysis tools. These tools look for a very specific set of known problems, some common and some rare, within the source code, concentrating more on the semantics (e.g. data flow) rather than the syntax, as compilers and interpreters do.
Both commercial and free tools exist for various languages; some claim to be able to detect hundreds of different problems. These tools can be extremely useful when checking very large source trees, where it is impractical to do code walk-throughs. A typical example of a problem detected would be a variable dereference that occurs before the variable is assigned a value. As another example, some such tools perform strong type checking when the language does not require it. Thus, they are better at locating likely errors in code that is syntactically correct. But these tools have a reputation of false positives, where correct code is flagged as dubious. The old Unix lint program is an early example.
For debugging electronic hardware (e.g., computer hardware) as well as low-level software (e.g., BIOSes, device drivers) and firmware, instruments such as oscilloscopes, logic analyzers, or in-circuit emulators (ICEs) are often used, alone or in combination. An ICE may perform many of the typical software debugger’s tasks on low-level software and firmware.
Debugging process[edit]
The debugging process normally begins with identifying the steps to reproduce the problem. This can be a non-trivial task, particularly with parallel processes and some Heisenbugs for example. The specific user environment and usage history can also make it difficult to reproduce the problem.
After the bug is reproduced, the input of the program may need to be simplified to make it easier to debug. For example, a bug in a compiler can make it crash when parsing a large source file. However, after simplification of the test case, only few lines from the original source file can be sufficient to reproduce the same crash. Simplification may be done manually using a divide-and-conquer approach, in which the programmer attempts to remove some parts of original test case then checks if the problem still occurs. When debugging in a GUI, the programmer can try skipping some user interaction from the original problem description to check if the remaining actions are sufficient for causing the bug to occur.
After the test case is sufficiently simplified, a programmer can use a debugger tool to examine program states (values of variables, plus the call stack) and track down the origin of the problem(s). Alternatively, tracing can be used. In simple cases, tracing is just a few print statements which output the values of variables at particular points during the execution of the program.[citation needed]
Techniques[edit]
- Interactive debugging uses debugger tools which allow an application’s code execution to be processed one step at a time and to be paused to inspect or alter application state. These tools commonly support watchpoints, where execution can proceed until a particular variable changes, and catchpoints which cause the debugger to stop for certain kinds of program events, such as exceptions or the loading of a shared library.
- Print debugging or tracing is the act of watching (live or recorded) trace statements, or print statements, that indicate the flow of execution of a process and the data progression. Tracing can be done with specialized tools (like with GDB’s trace) or by insertion of trace statements into the source code. The latter is sometimes called printf debugging, due to the use of the printf function in C. This kind of debugging was turned on by the command TRON in the original versions of the novice-oriented BASIC programming language. TRON stood for, «Trace On.» TRON caused the line numbers of each BASIC command line to print as the program ran.
- Remote debugging is the process of debugging a program running on a system different from the debugger. To start remote debugging, a debugger connects to a remote system over a communications link such as a local area network. The debugger can then control the execution of the program on the remote system and retrieve information about its state.
- Post-mortem debugging is debugging of the program after it has already crashed. Related techniques often include various tracing techniques like examining log files, outputting a call stack on crash,[8] and analysis of memory dump (or core dump) of the crashed process. The dump of the process could be obtained automatically by the system (for example, when the process has terminated due to an unhandled exception), or by a programmer-inserted instruction, or manually by the interactive user.
- «Wolf fence» algorithm: Edward Gauss described this simple but very useful and now famous algorithm in a 1982 article for Communications of the ACM as follows: «There’s one wolf in Alaska; how do you find it? First build a fence down the middle of the state, wait for the wolf to howl, determine which side of the fence it is on. Repeat process on that side only, until you get to the point where you can see the wolf.»[9] This is implemented e.g. in the Git version control system as the command git bisect, which uses the above algorithm to determine which commit introduced a particular bug.
- Record and replay debugging is the technique of creating a program execution recording (e.g. using Mozilla’s free rr debugging tool; enabling reversible debugging/execution), which can be replayed and interactively debugged. Useful for remote debugging and debugging intermittent, non-determinstic, and other hard-to-reproduce defects.
- Time travel debugging is the process of stepping back in time through source code (e.g. using Undo LiveRecorder) to understand what is happening during execution of a computer program; to allow users to interact with the program; to change the history if desired and to watch how the program responds.
- Delta Debugging – a technique of automating test case simplification.[10]: p.123
- Saff Squeeze – a technique of isolating failure within the test using progressive inlining of parts of the failing test.[11][12]
- Causality tracking: There are techniques to track the cause effect chains in the computation.[13] Those techniques can be tailored for specific bugs, such as null pointer dereferences.[14]
Debugging for embedded systems[edit]
In contrast to the general purpose computer software design environment, a primary characteristic of embedded environments is the sheer number of different platforms available to the developers (CPU architectures, vendors, operating systems, and their variants). Embedded systems are, by definition, not general-purpose designs: they are typically developed for a single task (or small range of tasks), and the platform is chosen specifically to optimize that application. Not only does this fact make life tough for embedded system developers, it also makes debugging and testing of these systems harder as well, since different debugging tools are needed for different platforms.
Despite the challenge of heterogeneity mentioned above, some debuggers have been developed commercially as well as research prototypes. Examples of commercial solutions come from Green Hills Software,[15] Lauterbach GmbH[16] and Microchip’s MPLAB-ICD (for in-circuit debugger). Two examples of research prototype tools are Aveksha[17] and Flocklab.[18] They all leverage a functionality available on low-cost embedded processors, an On-Chip Debug Module (OCDM), whose signals are exposed through a standard JTAG interface. They are benchmarked based on how much change to the application is needed and the rate of events that they can keep up with.
In addition to the typical task of identifying bugs in the system, embedded system debugging also seeks to collect information about the operating states of the system that may then be used to analyze the system: to find ways to boost its performance or to optimize other important characteristics (e.g. energy consumption, reliability, real-time response, etc.).
Anti-debugging[edit]
Anti-debugging is «the implementation of one or more techniques within computer code that hinders attempts at reverse engineering or debugging a target process».[19] It is actively used by recognized publishers in copy-protection schemas, but is also used by malware to complicate its detection and elimination.[20] Techniques used in anti-debugging include:
- API-based: check for the existence of a debugger using system information
- Exception-based: check to see if exceptions are interfered with
- Process and thread blocks: check whether process and thread blocks have been manipulated
- Modified code: check for code modifications made by a debugger handling software breakpoints
- Hardware- and register-based: check for hardware breakpoints and CPU registers
- Timing and latency: check the time taken for the execution of instructions
- Detecting and penalizing debugger[20]
An early example of anti-debugging existed in early versions of Microsoft Word which, if a debugger was detected, produced a message that said, «The tree of evil bears bitter fruit. Now trashing program disk.», after which it caused the floppy disk drive to emit alarming noises with the intent of scaring the user away from attempting it again.[21][22]
See also[edit]
- Assertion (software development)
- Automatic bug fixing
- Debugging pattern
- Magic debug values
- Shotgun debugging
- Software bug
- Software testing
- Time travel debugging
- Trace table
- Troubleshooting
References[edit]
- ^ «InfoWorld Oct 5, 1981». 5 October 1981. Archived from the original on September 18, 2019. Retrieved July 17, 2019.
- ^ «Archived copy». Archived from the original on 2019-11-21. Retrieved 2019-12-17.
{{cite web}}: CS1 maint: archived copy as title (link) - ^ S. Gill, The Diagnosis of Mistakes in Programmes on the EDSAC Archived 2020-03-06 at the Wayback Machine, Proceedings of the Royal Society of London. Series A, Mathematical and Physical Sciences, Vol. 206, No. 1087 (May 22, 1951), pp. 538-554
- ^ Robert V. D. Campbell, Evolution of automatic computation Archived 2019-09-18 at the Wayback Machine, Proceedings of the 1952 ACM national meeting (Pittsburgh), p 29-32, 1952.
- ^ Alex Orden, Solution of systems of linear inequalities on a digital computer, Proceedings of the 1952 ACM national meeting (Pittsburgh), p. 91-95, 1952.
- ^ Howard B. Demuth, John B. Jackson, Edmund Klein, N. Metropolis, Walter Orvedahl, James H. Richardson, MANIAC doi=10.1145/800259.808982, Proceedings of the 1952 ACM national meeting (Toronto), p. 13-16
- ^ The Compatible Time-Sharing System Archived 2012-05-27 at the Wayback Machine, M.I.T. Press, 1963
- ^ «Postmortem Debugging». Archived from the original on 2019-12-17. Retrieved 2019-12-17.
- ^ E. J. Gauss (1982). «Pracniques: The ‘Wolf Fence’ Algorithm for Debugging». Communications of the ACM. 25 (11): 780. doi:10.1145/358690.358695. S2CID 672811.
- ^ Zeller, Andreas (2005). Why Programs Fail: A Guide to Systematic Debugging. Morgan Kaufmann. ISBN 1-55860-866-4.
- ^ «Kent Beck, Hit ’em High, Hit ’em Low: Regression Testing and the Saff Squeeze». Archived from the original on 2012-03-11.
- ^ Rainsberger, J.B. «The Saff Squeeze». The Code Whisperer. Retrieved 28 March 2022.
- ^ Zeller, Andreas (2002-11-01). «Isolating cause-effect chains from computer programs». ACM SIGSOFT Software Engineering Notes. 27 (6): 1–10. doi:10.1145/605466.605468. ISSN 0163-5948. S2CID 12098165.
- ^ Bond, Michael D.; Nethercote, Nicholas; Kent, Stephen W.; Guyer, Samuel Z.; McKinley, Kathryn S. (2007). «Tracking bad apples». Proceedings of the 22nd annual ACM SIGPLAN conference on Object oriented programming systems and applications — OOPSLA ’07. p. 405. doi:10.1145/1297027.1297057. ISBN 9781595937865. S2CID 2832749.
- ^ «SuperTrace Probe hardware debugger». www.ghs.com. Archived from the original on 2017-12-01. Retrieved 2017-11-25.
- ^ «Debugger and real-time trace tools». www.lauterbach.com. Archived from the original on 2022-01-25. Retrieved 2020-06-05.
- ^ Tancreti, Matthew; Hossain, Mohammad Sajjad; Bagchi, Saurabh; Raghunathan, Vijay (2011). «Aveksha: A Hardware-software Approach for Non-intrusive Tracing and Profiling of Wireless Embedded Systems». Proceedings of the 9th ACM Conference on Embedded Networked Sensor Systems. SenSys ’11. New York, NY, USA: ACM: 288–301. doi:10.1145/2070942.2070972. ISBN 9781450307185. S2CID 14769602.
- ^ Lim, Roman; Ferrari, Federico; Zimmerling, Marco; Walser, Christoph; Sommer, Philipp; Beutel, Jan (2013). «FlockLab: A Testbed for Distributed, Synchronized Tracing and Profiling of Wireless Embedded Systems». Proceedings of the 12th International Conference on Information Processing in Sensor Networks. IPSN ’13. New York, NY, USA: ACM: 153–166. doi:10.1145/2461381.2461402. ISBN 9781450319591. S2CID 447045.
- ^ Shields, Tyler (2008-12-02). «Anti-Debugging Series – Part I». Veracode. Archived from the original on 2016-10-19. Retrieved 2009-03-17.
- ^ a b «Software Protection through Anti-Debugging Michael N Gagnon, Stephen Taylor, Anup Ghosh» (PDF). Archived from the original (PDF) on 2011-10-01. Retrieved 2010-10-25.
- ^ Ross J. Anderson (2001-03-23). Security Engineering. p. 684. ISBN 0-471-38922-6.
- ^ «Microsoft Word for DOS 1.15». Archived from the original on 2013-05-14. Retrieved 2013-06-22.
Further reading[edit]
- Agans, David J. (2002). Debugging: The Nine Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems. AMACOM. ISBN 0-8144-7168-4.
- Blunden, Bill (2003). Software Exorcism: A Handbook for Debugging and Optimizing Legacy Code. APress. ISBN 1-59059-234-4.
- Ford, Ann R.; Teorey, Toby J. (2002). Practical Debugging in C++. Prentice Hall. ISBN 0-13-065394-2.
- Grötker, Thorsten; Holtmann, Ulrich; Keding, Holger; Wloka, Markus (2012). The Developer’s Guide to Debugging, Second Edition. Createspace. ISBN 978-1-4701-8552-7.
- Metzger, Robert C. (2003). Debugging by Thinking: A Multidisciplinary Approach. Digital Press. ISBN 1-55558-307-5.
- Myers, Glenford J (2004). The Art of Software Testing. John Wiley & Sons Inc. ISBN 0-471-04328-1.
- Robbins, John (2000). Debugging Applications. Microsoft Press. ISBN 0-7356-0886-5.
- Telles, Matthew A.; Hsieh, Yuan (2001). The Science of Debugging. The Coriolis Group. ISBN 1-57610-917-8.
- Vostokov, Dmitry (2008). Memory Dump Analysis Anthology Volume 1. OpenTask. ISBN 978-0-9558328-0-2.
- Zeller, Andreas (2009). Why Programs Fail, Second Edition: A Guide to Systematic Debugging. Morgan Kaufmann. ISBN 978-0-1237-4515-6.
- Peggy Aldrich Kidwell, Stalking the Elusive Computer Bug, IEEE Annals of the History of Computing, 1998.
External links[edit]
Wikiquote has quotations related to Debugging.
- Crash dump analysis patterns – in-depth articles on analyzing and finding bugs in crash dumps
- Learn the essentials of debugging – how to improve your debugging skills, a good article at IBM developerWorks (archived from the original on February 18, 2007)
- Plug-in Based Debugging For Embedded Systems
- Embedded Systems test and debug – about digital input generation – results of a survey about embedded system test and debug, Byte Paradigm (archived from the original on January 12, 2012)
From Wikipedia, the free encyclopedia
In computer programming and software development, debugging is the process of finding and resolving bugs (defects or problems that prevent correct operation) within computer programs, software, or systems.
Debugging tactics can involve interactive debugging, control flow analysis, unit testing, integration testing, log file analysis, monitoring at the application or system level, memory dumps, and profiling. Many programming languages and software development tools also offer programs to aid in debugging, known as debuggers.
Etymology[edit]
A computer log entry from the Mark II, with a moth taped to the page
The terms «bug» and «debugging» are popularly attributed to Admiral Grace Hopper in the 1940s.[1] While she was working on a Mark II computer at Harvard University, her associates discovered a moth stuck in a relay and thereby impeding operation, whereupon she remarked that they were «debugging» the system. However, the term «bug», in the sense of «technical error», dates back at least to 1878 and Thomas Edison who describes the «little faults and difficulties» of mechanical engineering as «Bugs».
Similarly, the term «debugging» seems to have been used as a term in aeronautics before entering the world of computers. In an interview Grace Hopper remarked that she was not coining the term.[citation needed] The moth fit the already existing terminology, so it was saved. A letter from J. Robert Oppenheimer (director of the WWII atomic bomb Manhattan Project at Los Alamos, New Mexico) used the term in a letter to Dr. Ernest Lawrence at UC Berkeley, dated October 27, 1944,[2] regarding the recruitment of additional technical staff.
The Oxford English Dictionary entry for «debug» quotes the term «debugging» used in reference to airplane engine testing in a 1945 article in the Journal of the Royal Aeronautical Society. An article in «Airforce» (June 1945 p. 50) also refers to debugging, this time of aircraft cameras. Hopper’s bug was found on September 9, 1947. Computer programmers did not adopt the term until the early 1950s.
The seminal article by Gill[3] in 1951 is the earliest in-depth discussion of programming errors, but it does not use the term «bug» or «debugging».
In the ACM’s digital library, the term «debugging» is first used in three papers from 1952 ACM National Meetings.[4][5][6] Two of the three use the term in quotation marks.
By 1963 «debugging» was a common-enough term to be mentioned in passing without explanation on page 1 of the CTSS manual.[7]
Scope[edit]
As software and electronic systems have become generally more complex, the various common debugging techniques have expanded with more methods to detect anomalies, assess impact, and schedule software patches or full updates to a system. The words «anomaly» and «discrepancy» can be used, as being more neutral terms, to avoid the words «error» and «defect» or «bug» where there might be an implication that all so-called errors, defects or bugs must be fixed (at all costs). Instead, an impact assessment can be made to determine if changes to remove an anomaly (or discrepancy) would be cost-effective for the system, or perhaps a scheduled new release might render the change(s) unnecessary. Not all issues are safety-critical or mission-critical in a system. Also, it is important to avoid the situation where a change might be more upsetting to users, long-term, than living with the known problem(s) (where the «cure would be worse than the disease»). Basing decisions of the acceptability of some anomalies can avoid a culture of a «zero-defects» mandate, where people might be tempted to deny the existence of problems so that the result would appear as zero defects. Considering the collateral issues, such as the cost-versus-benefit impact assessment, then broader debugging techniques will expand to determine the frequency of anomalies (how often the same «bugs» occur) to help assess their impact to the overall system.
Tools[edit]
Debugging on video game consoles is usually done with special hardware such as this Xbox debug unit intended for developers.
Debugging ranges in complexity from fixing simple errors to performing lengthy and tiresome tasks of data collection, analysis, and scheduling updates. The debugging skill of the programmer can be a major factor in the ability to debug a problem, but the difficulty of software debugging varies greatly with the complexity of the system, and also depends, to some extent, on the programming language(s) used and the available tools, such as debuggers. Debuggers are software tools which enable the programmer to monitor the execution of a program, stop it, restart it, set breakpoints, and change values in memory. The term debugger can also refer to the person who is doing the debugging.
Generally, high-level programming languages, such as Java, make debugging easier, because they have features such as exception handling and type checking that make real sources of erratic behaviour easier to spot. In programming languages such as C or assembly, bugs may cause silent problems such as memory corruption, and it is often difficult to see where the initial problem happened. In those cases, memory debugger tools may be needed.
In certain situations, general purpose software tools that are language specific in nature can be very useful. These take the form of static code analysis tools. These tools look for a very specific set of known problems, some common and some rare, within the source code, concentrating more on the semantics (e.g. data flow) rather than the syntax, as compilers and interpreters do.
Both commercial and free tools exist for various languages; some claim to be able to detect hundreds of different problems. These tools can be extremely useful when checking very large source trees, where it is impractical to do code walk-throughs. A typical example of a problem detected would be a variable dereference that occurs before the variable is assigned a value. As another example, some such tools perform strong type checking when the language does not require it. Thus, they are better at locating likely errors in code that is syntactically correct. But these tools have a reputation of false positives, where correct code is flagged as dubious. The old Unix lint program is an early example.
For debugging electronic hardware (e.g., computer hardware) as well as low-level software (e.g., BIOSes, device drivers) and firmware, instruments such as oscilloscopes, logic analyzers, or in-circuit emulators (ICEs) are often used, alone or in combination. An ICE may perform many of the typical software debugger’s tasks on low-level software and firmware.
Debugging process[edit]
The debugging process normally begins with identifying the steps to reproduce the problem. This can be a non-trivial task, particularly with parallel processes and some Heisenbugs for example. The specific user environment and usage history can also make it difficult to reproduce the problem.
After the bug is reproduced, the input of the program may need to be simplified to make it easier to debug. For example, a bug in a compiler can make it crash when parsing a large source file. However, after simplification of the test case, only few lines from the original source file can be sufficient to reproduce the same crash. Simplification may be done manually using a divide-and-conquer approach, in which the programmer attempts to remove some parts of original test case then checks if the problem still occurs. When debugging in a GUI, the programmer can try skipping some user interaction from the original problem description to check if the remaining actions are sufficient for causing the bug to occur.
After the test case is sufficiently simplified, a programmer can use a debugger tool to examine program states (values of variables, plus the call stack) and track down the origin of the problem(s). Alternatively, tracing can be used. In simple cases, tracing is just a few print statements which output the values of variables at particular points during the execution of the program.[citation needed]
Techniques[edit]
- Interactive debugging uses debugger tools which allow an application’s code execution to be processed one step at a time and to be paused to inspect or alter application state. These tools commonly support watchpoints, where execution can proceed until a particular variable changes, and catchpoints which cause the debugger to stop for certain kinds of program events, such as exceptions or the loading of a shared library.
- Print debugging or tracing is the act of watching (live or recorded) trace statements, or print statements, that indicate the flow of execution of a process and the data progression. Tracing can be done with specialized tools (like with GDB’s trace) or by insertion of trace statements into the source code. The latter is sometimes called printf debugging, due to the use of the printf function in C. This kind of debugging was turned on by the command TRON in the original versions of the novice-oriented BASIC programming language. TRON stood for, «Trace On.» TRON caused the line numbers of each BASIC command line to print as the program ran.
- Remote debugging is the process of debugging a program running on a system different from the debugger. To start remote debugging, a debugger connects to a remote system over a communications link such as a local area network. The debugger can then control the execution of the program on the remote system and retrieve information about its state.
- Post-mortem debugging is debugging of the program after it has already crashed. Related techniques often include various tracing techniques like examining log files, outputting a call stack on crash,[8] and analysis of memory dump (or core dump) of the crashed process. The dump of the process could be obtained automatically by the system (for example, when the process has terminated due to an unhandled exception), or by a programmer-inserted instruction, or manually by the interactive user.
- «Wolf fence» algorithm: Edward Gauss described this simple but very useful and now famous algorithm in a 1982 article for Communications of the ACM as follows: «There’s one wolf in Alaska; how do you find it? First build a fence down the middle of the state, wait for the wolf to howl, determine which side of the fence it is on. Repeat process on that side only, until you get to the point where you can see the wolf.»[9] This is implemented e.g. in the Git version control system as the command git bisect, which uses the above algorithm to determine which commit introduced a particular bug.
- Record and replay debugging is the technique of creating a program execution recording (e.g. using Mozilla’s free rr debugging tool; enabling reversible debugging/execution), which can be replayed and interactively debugged. Useful for remote debugging and debugging intermittent, non-determinstic, and other hard-to-reproduce defects.
- Time travel debugging is the process of stepping back in time through source code (e.g. using Undo LiveRecorder) to understand what is happening during execution of a computer program; to allow users to interact with the program; to change the history if desired and to watch how the program responds.
- Delta Debugging – a technique of automating test case simplification.[10]: p.123
- Saff Squeeze – a technique of isolating failure within the test using progressive inlining of parts of the failing test.[11][12]
- Causality tracking: There are techniques to track the cause effect chains in the computation.[13] Those techniques can be tailored for specific bugs, such as null pointer dereferences.[14]
Debugging for embedded systems[edit]
In contrast to the general purpose computer software design environment, a primary characteristic of embedded environments is the sheer number of different platforms available to the developers (CPU architectures, vendors, operating systems, and their variants). Embedded systems are, by definition, not general-purpose designs: they are typically developed for a single task (or small range of tasks), and the platform is chosen specifically to optimize that application. Not only does this fact make life tough for embedded system developers, it also makes debugging and testing of these systems harder as well, since different debugging tools are needed for different platforms.
Despite the challenge of heterogeneity mentioned above, some debuggers have been developed commercially as well as research prototypes. Examples of commercial solutions come from Green Hills Software,[15] Lauterbach GmbH[16] and Microchip’s MPLAB-ICD (for in-circuit debugger). Two examples of research prototype tools are Aveksha[17] and Flocklab.[18] They all leverage a functionality available on low-cost embedded processors, an On-Chip Debug Module (OCDM), whose signals are exposed through a standard JTAG interface. They are benchmarked based on how much change to the application is needed and the rate of events that they can keep up with.
In addition to the typical task of identifying bugs in the system, embedded system debugging also seeks to collect information about the operating states of the system that may then be used to analyze the system: to find ways to boost its performance or to optimize other important characteristics (e.g. energy consumption, reliability, real-time response, etc.).
Anti-debugging[edit]
Anti-debugging is «the implementation of one or more techniques within computer code that hinders attempts at reverse engineering or debugging a target process».[19] It is actively used by recognized publishers in copy-protection schemas, but is also used by malware to complicate its detection and elimination.[20] Techniques used in anti-debugging include:
- API-based: check for the existence of a debugger using system information
- Exception-based: check to see if exceptions are interfered with
- Process and thread blocks: check whether process and thread blocks have been manipulated
- Modified code: check for code modifications made by a debugger handling software breakpoints
- Hardware- and register-based: check for hardware breakpoints and CPU registers
- Timing and latency: check the time taken for the execution of instructions
- Detecting and penalizing debugger[20]
An early example of anti-debugging existed in early versions of Microsoft Word which, if a debugger was detected, produced a message that said, «The tree of evil bears bitter fruit. Now trashing program disk.», after which it caused the floppy disk drive to emit alarming noises with the intent of scaring the user away from attempting it again.[21][22]
See also[edit]
- Assertion (software development)
- Automatic bug fixing
- Debugging pattern
- Magic debug values
- Shotgun debugging
- Software bug
- Software testing
- Time travel debugging
- Trace table
- Troubleshooting
References[edit]
- ^ «InfoWorld Oct 5, 1981». 5 October 1981. Archived from the original on September 18, 2019. Retrieved July 17, 2019.
- ^ «Archived copy». Archived from the original on 2019-11-21. Retrieved 2019-12-17.
{{cite web}}: CS1 maint: archived copy as title (link) - ^ S. Gill, The Diagnosis of Mistakes in Programmes on the EDSAC Archived 2020-03-06 at the Wayback Machine, Proceedings of the Royal Society of London. Series A, Mathematical and Physical Sciences, Vol. 206, No. 1087 (May 22, 1951), pp. 538-554
- ^ Robert V. D. Campbell, Evolution of automatic computation Archived 2019-09-18 at the Wayback Machine, Proceedings of the 1952 ACM national meeting (Pittsburgh), p 29-32, 1952.
- ^ Alex Orden, Solution of systems of linear inequalities on a digital computer, Proceedings of the 1952 ACM national meeting (Pittsburgh), p. 91-95, 1952.
- ^ Howard B. Demuth, John B. Jackson, Edmund Klein, N. Metropolis, Walter Orvedahl, James H. Richardson, MANIAC doi=10.1145/800259.808982, Proceedings of the 1952 ACM national meeting (Toronto), p. 13-16
- ^ The Compatible Time-Sharing System Archived 2012-05-27 at the Wayback Machine, M.I.T. Press, 1963
- ^ «Postmortem Debugging». Archived from the original on 2019-12-17. Retrieved 2019-12-17.
- ^ E. J. Gauss (1982). «Pracniques: The ‘Wolf Fence’ Algorithm for Debugging». Communications of the ACM. 25 (11): 780. doi:10.1145/358690.358695. S2CID 672811.
- ^ Zeller, Andreas (2005). Why Programs Fail: A Guide to Systematic Debugging. Morgan Kaufmann. ISBN 1-55860-866-4.
- ^ «Kent Beck, Hit ’em High, Hit ’em Low: Regression Testing and the Saff Squeeze». Archived from the original on 2012-03-11.
- ^ Rainsberger, J.B. «The Saff Squeeze». The Code Whisperer. Retrieved 28 March 2022.
- ^ Zeller, Andreas (2002-11-01). «Isolating cause-effect chains from computer programs». ACM SIGSOFT Software Engineering Notes. 27 (6): 1–10. doi:10.1145/605466.605468. ISSN 0163-5948. S2CID 12098165.
- ^ Bond, Michael D.; Nethercote, Nicholas; Kent, Stephen W.; Guyer, Samuel Z.; McKinley, Kathryn S. (2007). «Tracking bad apples». Proceedings of the 22nd annual ACM SIGPLAN conference on Object oriented programming systems and applications — OOPSLA ’07. p. 405. doi:10.1145/1297027.1297057. ISBN 9781595937865. S2CID 2832749.
- ^ «SuperTrace Probe hardware debugger». www.ghs.com. Archived from the original on 2017-12-01. Retrieved 2017-11-25.
- ^ «Debugger and real-time trace tools». www.lauterbach.com. Archived from the original on 2022-01-25. Retrieved 2020-06-05.
- ^ Tancreti, Matthew; Hossain, Mohammad Sajjad; Bagchi, Saurabh; Raghunathan, Vijay (2011). «Aveksha: A Hardware-software Approach for Non-intrusive Tracing and Profiling of Wireless Embedded Systems». Proceedings of the 9th ACM Conference on Embedded Networked Sensor Systems. SenSys ’11. New York, NY, USA: ACM: 288–301. doi:10.1145/2070942.2070972. ISBN 9781450307185. S2CID 14769602.
- ^ Lim, Roman; Ferrari, Federico; Zimmerling, Marco; Walser, Christoph; Sommer, Philipp; Beutel, Jan (2013). «FlockLab: A Testbed for Distributed, Synchronized Tracing and Profiling of Wireless Embedded Systems». Proceedings of the 12th International Conference on Information Processing in Sensor Networks. IPSN ’13. New York, NY, USA: ACM: 153–166. doi:10.1145/2461381.2461402. ISBN 9781450319591. S2CID 447045.
- ^ Shields, Tyler (2008-12-02). «Anti-Debugging Series – Part I». Veracode. Archived from the original on 2016-10-19. Retrieved 2009-03-17.
- ^ a b «Software Protection through Anti-Debugging Michael N Gagnon, Stephen Taylor, Anup Ghosh» (PDF). Archived from the original (PDF) on 2011-10-01. Retrieved 2010-10-25.
- ^ Ross J. Anderson (2001-03-23). Security Engineering. p. 684. ISBN 0-471-38922-6.
- ^ «Microsoft Word for DOS 1.15». Archived from the original on 2013-05-14. Retrieved 2013-06-22.
Further reading[edit]
- Agans, David J. (2002). Debugging: The Nine Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems. AMACOM. ISBN 0-8144-7168-4.
- Blunden, Bill (2003). Software Exorcism: A Handbook for Debugging and Optimizing Legacy Code. APress. ISBN 1-59059-234-4.
- Ford, Ann R.; Teorey, Toby J. (2002). Practical Debugging in C++. Prentice Hall. ISBN 0-13-065394-2.
- Grötker, Thorsten; Holtmann, Ulrich; Keding, Holger; Wloka, Markus (2012). The Developer’s Guide to Debugging, Second Edition. Createspace. ISBN 978-1-4701-8552-7.
- Metzger, Robert C. (2003). Debugging by Thinking: A Multidisciplinary Approach. Digital Press. ISBN 1-55558-307-5.
- Myers, Glenford J (2004). The Art of Software Testing. John Wiley & Sons Inc. ISBN 0-471-04328-1.
- Robbins, John (2000). Debugging Applications. Microsoft Press. ISBN 0-7356-0886-5.
- Telles, Matthew A.; Hsieh, Yuan (2001). The Science of Debugging. The Coriolis Group. ISBN 1-57610-917-8.
- Vostokov, Dmitry (2008). Memory Dump Analysis Anthology Volume 1. OpenTask. ISBN 978-0-9558328-0-2.
- Zeller, Andreas (2009). Why Programs Fail, Second Edition: A Guide to Systematic Debugging. Morgan Kaufmann. ISBN 978-0-1237-4515-6.
- Peggy Aldrich Kidwell, Stalking the Elusive Computer Bug, IEEE Annals of the History of Computing, 1998.
External links[edit]
Wikiquote has quotations related to Debugging.
- Crash dump analysis patterns – in-depth articles on analyzing and finding bugs in crash dumps
- Learn the essentials of debugging – how to improve your debugging skills, a good article at IBM developerWorks (archived from the original on February 18, 2007)
- Plug-in Based Debugging For Embedded Systems
- Embedded Systems test and debug – about digital input generation – results of a survey about embedded system test and debug, Byte Paradigm (archived from the original on January 12, 2012)
Содержание
- 8.10. Каковы характерные ошибки программирования? 8.11. Является ли отсутствие синтаксических ошибок свидетельством правильности программы? 8.12. Какие ошибки не обнаруживаются транслятором? 8.13. В чем заключается сопровождение программы?
- Ошибки в программах
- Виды ошибок
- Синтаксические ошибки
- Ошибки, которые не обнаруживает транслятор
- Готовые работы на аналогичную тему
- Сопровождение программы
- Проектирование и технология разработки программного обеспечения.. Технология разработки программного обеспечения
- ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
- A)продажа по ценам ниже себестоимости (лицензирование)
- B)низкие материальные затраты при создании программ
- C)возможность создание программ небольшие коллективом или даже одним человеком
- D)разнообразие решаемых задач с помощью программных средств
- алгоритм.
8.10. Каковы характерные ошибки программирования? 8.11. Является ли отсутствие синтаксических ошибок свидетельством правильности программы? 8.12. Какие ошибки не обнаруживаются транслятором? 8.13. В чем заключается сопровождение программы?
8.10. Каковы характерные ошибки программирования?
| Вид ошибки | Пример |
| Неправильная постановка задачи | Правильное решение неверно сформулированной задачи |
| Неверный алгоритм | Выбор алгоритма, приводящего к неточному или эффективному решению задачи |
| Ошибка анализа | Неполный учет ситуаций, которые могут возникнуть; логические ошибки |
| Семантические ошибки | Непонимание порядка выполнения оператора |
| Синтаксические ошибки | Нарушение правил, определяемых языком программирования |
| Ошибки при выполнении операций | Слишком большое число, деление на ноль, извлечение квадратного корня из отрицательного числа и т. п. |
| Ошибки в данных | Неудачное определение возможного диапазона изменения данных |
| Опечатки | Перепутаны близкие по написанию символы, например, цифра 1 и буквы I, l |
| Ошибки ввода-вывода | Неверное считывание входных данных, неверное задание форматов данных |
8.11. Является ли отсутствие синтаксических ошибок свидетельством правильности программы?
Обычно синтаксические ошибки выявляются на этапе трансляции. Многие же другие ошибки транслятору выявить невозможно, так как транслятору неизвестны замыслы программиста.
Примеры синтаксических ошибок:
8.12. Какие ошибки не обнаруживаются транслятором?
Существует множество ошибок, которые транслятор выявить не в состоянии, если используемые в программе операторы сформированы верно.
Примеры таких ошибок.
Логические ошибки:
Ошибки в циклах:
Ошибки ввода-вывода; ошибки при работе с данными:
Ошибки в использов нии переменных:
Ошибки при работе с массивами:
Ошибки арифметических операций:
Эти ошибки обнаруживаются с помощью тестирования.
8.13. В чем заключается сопровождение программы?
Сопровождение программ — это работы, связанные с обслуживанием программ в процессе их эксплуатации.
Многократное использование разработанной программы для решения различных задач заданного класса требует проведения дополнительных работ, связанных с доработками программы для решения конкретных задач, проведения дополнительных тестовых просчетов и т.п.
Программа, предназначеная для длительной эксплуатации, должна иметь соответствующую документацию и инструкцию по её использованию.
Источник
Ошибки в программах
Вы будете перенаправлены на Автор24
Виды ошибок
Ошибки в программах могут допускаться от самого начального этапа составления алгоритма решения задачи до окончательного оформления программы. Разновидностей ошибок достаточно много. Рассмотрим некоторые группы ошибок и соответствующие примеры:
Рассмотрим более подробно некоторые из вышеприведенных видов ошибок.
Синтаксические ошибки
Синтаксические ошибки зачастую выявляют уже на этапе трансляции. К сожалению, многие ошибки других видов транслятор выявить не в силах, т.к. ему не известен задуманный или требуемый результат работы программы.
Отсутствие сообщений транслятора о наличии синтаксических ошибок является необходимым условием правильности программы, но не может свидетельствовать о том, что она даст правильный результат.
Примерами синтаксических ошибок является:
Синтаксическая ошибка «Не задан идентификатор»:
Ошибки, которые не обнаруживает транслятор
В случае правильного написания операторов в программе может присутствовать большое количество ошибок, которые транслятор не может обнаружить. Рассмотрим примеры таких ошибок:
Готовые работы на аналогичную тему
Ошибки ввода-вывода; ошибки при работе с данными:
Ошибки в использовании переменных:
Ошибки при работе с массивами:
Ошибки в арифметических операциях:
Ошибка в арифметических операциях «Деление на нуль»:
Все вышеописанные ошибки можно обнаружить методом тестирования.
Сопровождение программы
Сопровождением программ называются работы по обслуживанию программ в процессе их эксплуатации.
В случае многократного использования разработанной программы для решения различных задач определенного класса требуется проведение таких дополнительных работ, как:
При проведении работ по сопровождению многих программ стоимость этого сопровождения превышает половину затрат, которые приходятся на весь период времени существования программы (от разработки начального алгоритма до морального ее устаревания).
Программа, которая предназначена для длительной эксплуатации, должна сопровождаться соответствующей документацией и инструкцией по ее использованию.
Получи деньги за свои студенческие работы
Курсовые, рефераты или другие работы
Автор этой статьи Дата написания статьи: 02 06 2017
Источник
Проектирование и технология разработки программного обеспечения.. Технология разработки программного обеспечения
ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Вариант 1
1.Какие программы можно отнести к системному программному обеспечению:
C)игровые программы
2.Какие программы можно отнести к системному ПО:
D)графические редакторы
3.Специфические особенности ПО как продукта:
A)продажа по ценам ниже себестоимости (лицензирование)
B)низкие материальные затраты при создании программ
C)возможность создание программ небольшие коллективом или даже одним человеком
D)разнообразие решаемых задач с помощью программных средств
4. Какие программы можно отнести к системному ПО:
A) СУБД (системы управления базами данных).
B)программа расчета заработной платы;
электронные таблицы;
5. Какие программы нельзя отнести к системному ПО:
компиляторы языков программирования;
системы управления базами данных.
6. Какие программы можно отнести к прикладному программному обеспечению:
СУБД (системы управления базами данных)
7. Какие программы можно отнести к прикладному ПО:
программа расчета заработной платы;
программа «Проводник» (Explorer).
8. Какие программы нельзя отнести к прикладному ПО:
компиляторы и (или) интерпретаторы
текстовые и (или) графические редакторы
электронные таблицы
9. Специфические особенности ПО как продукта:
низкие затраты при дублировании;
наличие поддержки (сопровождения) со стороны разработчика.
10. Какие программы можно отнести к системному ПО:
мультимедийные программы.
11. Этап, занимающий наибольшее время, в жизненном цикле программы:
формулировка требований.
12. Этап, занимающий наибольшее время, при разработке программы:
формулировка требований.
13. Первый этап в жизненном цикле программы:
комплексное тестирование.
16. Один из необязательных этапов жизненного цикла программы:
анализ требований.
17. Самый большой этап в жизненном цикле программы:
изучение предметной области;
корректировка ошибок.
19. Какой этап выполняется раньше:
тестирование.
20. Что выполняется раньше:
тестирование.
21. Что выполняется раньше:
тестирование.
22. В стадии разработки программы не входит:
тестирование
23. Самый важный критерий качества программы:
простота эксплуатации
24. Способы оценки качества:
сравнение с аналогами
структурирование алгоритма.
26. Наиболее важный критерий качества:
удобство в эксплуатации;
эффективность.
27. Способы оценки надежности:
сравнение с аналогами;
оптимизация.
30. В каких единицах можно измерить надежность:
операций/сек.
31. В каких единицах можно измерить быстродействие:
операций/сек.
32. Что относится к этапу программирования:
написание кода программы;
B) разработка интерфейса;
анализ требований.
33. Последовательность этапов программирования:
компилирование, компоновка, отладка;
B) компоновка, отладка, компилирование;
отладка, компилирование, компоновка;
компилирование, отладка, компоновка.
34) Инструментальные средства программирования:
СУБД (системы управления базами данных);
BIOS (базовая система ввода-вывода);
ОС (операционные системы).
35. На языке программирования составляется:
алгоритм.
36. Правила, которым должна следовать программа это:
41. Доступ, при котором записи файла читаются в физической последовательности, называется:
42. Доступ, при котором записи файла обрабатываются в произвольной последовательности, называется:
основным.
43. Методы программирования (укажите НЕ верный ответ):
модульное.
44. Что выполняется раньше:
выбор языка программирования;
написание исходного кода;
46. Найдите НЕ правильное условие для создания имен:
имена могут содержать пробелы;
длинное имя можно сократить;
из имени лучше выбрасывать гласные;
можно использовать большие буквы.
50. Как называется способ составления имен переменных, когда в начале имени сообщается тип переменной:
53. Наличие комментариев позволяет:
быстрее найти ошибки в программе;
быстрее писать программы;
быстрее выполнять программы.
54. Наличие комментариев позволяет:
применять сложные структуры;
увеличить быстродействие.
55. Наличие комментариев позволяет:
улучшить читабельность программы;
улучшить эксплуатацию программы;
повысить надежность программы.
56. Что определяет выбор языка программирования:
наличие дополнительных библиотек.
59. Для каких задач характерно использование большого количества исходных данных, выполнение операций поиска, группировки:
для экономических задач;
для системных задач;
для инженерных задач.
60. Для каких задач характерен большой объем вычислений, использование сложного математического аппарата:
для инженерных задач;
для системных задач;
для экономических задач.
61. На каком этапе производится выбор языка программирования:
63. Для решения экономических задач характерно применение:
СУБД (систем управления базами данных);
языков высокого уровня;
языков низкого уровня;
применение сложных математических расчетов.
64. Для решения инженерных задач характерно применение:
САПР (систем автоматизированного проектирования);
СУБД (систем управления базами данных);
ОС (операционных систем).
65. Причины синтаксических ошибок:
плохое знание языка программирования;
ошибки в исходных данных;
ошибки, допущенные на более ранних этапах;
неправильное применение процедуры тестирования.
66. Когда можно обнаружить синтаксические ошибки:
на этапе проектирования;
67. Ошибки компоновки заключаются в том, что:
указано внешнее имя, но не объявлено;
неправильно использовано зарезервированное слово;
составлено неверное выражение;
указан неверный тип переменной.
72. Защитное программирование это:
встраивание в программу отладочных средств;
создание задач защищенных от копирования;
разделение доступа в программе;
оформление авторских прав на программу.
73. Вид ошибки с неправильным написанием служебных слов (операторов):
74. Вид ошибки с неправильным использованием служебных слов (операторов):
75. Ошибки при написании программы бывают:
морфологические.
76. Процедура поиска ошибки, когда известно, что она есть это:
77. Программа для просмотра значений переменных при выполнении программы:
процедура поиска ошибок, когда известно, что ошибка есть;
определение списка параметров;
правило вызова процедур (функций);
составление блок-схемы алгоритма.
- 79. Когда программист может проследить последовательность выполнения команд программы:
при трассировке;
при выполнении программы;
80. На каком этапе создания программы могут появиться синтаксические ошибки:
81. Когда приступают к тестированию программы:
когда программа уже закончена;
после постановки задачи;
на этапе программирования;
на этапе проектирования;
82. Тестирование бывает:
83. Тестирование бывает:
85. При комплексном тестировании проверяются:
согласованность работы отдельных частей программы;
правильность работы отдельных частей программы;
86. Чему нужно уделять больше времени, чтобы получить хорошую программу:
87. Процесс исполнения программы с целью обнаружения ошибок:
88. Автономное тестирование это:
тестирование отдельных частей программы;
инструментальное средство отладки;
пошаговая проверка выполнения программы.
89. Трассировка это:
проверка пошагового выполнения программы;
тестирование исходного кода;
составление блок-схемы алгоритма.
90. Локализация ошибки:
определение места возникновения ошибки;
определение причин ошибки;
обнаружение причин ошибки;
91. Назначение тестирования:
повышение надежности программы;
повышение эффективности программы;
улучшение эксплуатационных характеристик;
приведение программы к структурированному виду.
92. Назначение отладки:
поиск причин существующих ошибок;
поиск возможных ошибок;
93. Инструментальные средства отладки (НЕ правильный ответ):
94. Отладка программ это:
локализация и исправление ошибок;
компиляция и компоновка.
97. Что такое автоматизация программирования:
создание исходного кода программными средствами;
создание исходного кода при помощи компилятора;
создание исходного кода без разработки алгоритма.
98. В чем сущность автоматизации программирования:
создание программы без написания ее текста;
получение готовой программы без выполнения компоновки;
в отсутствии компиляции.
100. Создание исполняемого кода программы без написания исходного кода называется:
составлением спецификаций;
автоматизацией программирования;
101. Одно из преимуществ автоматизации программирования:
наглядное программирование с визуальным контролем;
получение стандартной программы;
создание программы с оптимальным кодом.
102. Один из методов автоматизации программирования:
объектно-ориентированное программирование.
107. Недостаток автоматизации программирования;
большой размер программы;
сложность программы.
111. Что легко поддается автоматизации:
сложные логические задачи;
113. Нахождение наилучшего варианта из множества возможных:
114. Что такое оптимизация программ:
улучшение работы существующей программы;
создание удобного интерфейса пользователя;
разработка модульной конструкции программы;
применение методов объектно-ориентированного программирования.
115. Критерии оптимизации:
размер программы и ее эффективность;
качество программы, ее надежность.
116. Критерии оптимизации:
эффективность использования ресурсов;
структурирование программы.
119. В чем заключается оптимизация условных выражений:
в изменении порядка следования элементов выражения;
в использовании простых логических выражений;
в использовании сложных логических выражений;
в использовании операций AND, OR и NOT.
120. Оптимизация циклов заключается в:
уменьшении количества повторений тела цикла;
просмотре задачи с другой стороны;
упрощение задачи за счет включения логических операций.
121. Оптимизация программы это:
повышение сложности программы;
уменьшение сложности программы.
122. Критерии оптимизации программы:
быстродействие или размер программы;
быстродействие и размер программы;
надежность или эффективность;
надежность и эффективность.
123. Результат оптимизации программы:
124. Сущность оптимизации циклов:
сокращение количества повторений выполнения тела цикла;
сокращение тела цикла;
представление циклов в виде блок-схем;
поиск ошибок в циклах.
125. В чем сущность модульного программирования:
A) в разбиении программы на отдельные функционально независимые части;
B) в разбиении программы на отдельные равные части;
C) в разбиение программы на процедуры и функции;
126. Можно ли сочетать модульное и структурное программирование:
127. Может ли модуль включать несколько процедур или функций:
128. Рекомендуемые размеры модулей:
D) фиксированной длины.
129. В чем заключается независимость модуля:
A) в написании, отладке и тестировании независимо от остальных модулей;
B) в разработке и написании независимо от других модулей;
C) в независимости от работы основной программы.
130. При модульном программировании желательно, чтобы модуль имел:
B) небольшой размер;
C) фиксированный размер;
131. Модульное программирование это:
A) разбиение программы на отдельные части;
C) использование стандартных процедур и функций.
132. Можно ли использовать оператор GO TO в модульном программах:
B) нельзя.
133. Разрешается ли использование циклов при модульном программировании:
134. Разрешается ли использование условных операторов при модульном программировании:
135. Сократится ли размер программы, если ее написать в виде набора модулей:
B) да.
136. Достоинство модульного программирования:
A) создание программы по частям в произвольном порядке;
B) не требует компоновки;
D) снижает количество ошибок.
137. Недостаток модульного программирования:
A) увеличивает трудоемкость программирования;
B) усложняет процедуру комплексного тестирования;
C) снижает быстродействие программы;
D) не позволяет выполнять оптимизацию программы.
138. Достоинство модульного программирования:
A) возможность приступить к тестированию до завершения написания всей программы;
B) не требует комплексного тестирования;
C) уменьшает размер программы;
140. Можно ли сочетать структурное программирование с модульным:
C) только в особых случаях.
141. Любую ли программу можно привести к структурированному виду:
142. Можно ли использовать оператор GO TO в структурированных программах:
C) только в особых случаях.
143. Возможно, ли преобразовать неструктурированную программу к структурному виду:
144. Возможно ли программирование без оператора GO TO:
B) нет.
145. При структурном программировании задача выполняется:
A) поэтапным разбиением на более легкие задачи;
B) без участия программиста;
C) объединением отдельных модулей программы.
146. Разрешается ли использование оператора GO TO при структурном программировании:
147. Разрешается ли использование циклов при структурном программированииp:
148. Разрешается ли использование оператора IF при структурном программировании:
149. Программирование без GO TO применяется. при:
A) структурном программировании;
B) модульном программировании;
C) объектно-ориентированном программировании;
D) все ответы верные.
150. Достоинство структурного программирования:
A) можно приступить к комплексному тестированию на раннем этапе разработки;
B) можно приступить к автономному тестированию на раннем этапе разработки;
C) нет необходимости выполнять тестирование;
D) можно пренебречь отладкой.
151. Достоинство структурного программирования:
A) облегчает работу над большими и сложными проектами;
B) повышает быстродействие программы;
C) снижает затраты на программирование.
152. Недостаток структурного программирования:
A) увеличивает размер программы;
B) снижает эффективность;
C) уменьшает количество ошибок;
D) не требует отладки.
153. Повышает ли читабельность программ структурное кодирование:
B) нет.
154. Разрешается ли использование циклов при объектно-ориентированном программировании:
156. Предусматривает ли объектно-ориентированное программирование использование стандартных процедур и функций:
157. Можно ли сочетать объектно-ориентированное и структурное программирование
158) Можно ли сочетать объектно-ориентированное и модульное программирование:
159. Что такое объект, в объектно-ориентированное программировании:
B) структура данных;
D) обработка событий;
A) определение новых типов данных;
B) определение новых структур данных;
C) объединение переменных, процедур и функций в одно целое;
D) разделение переменных, процедур и функций;
E) применение стандартных процедур и функций.
A) передача свойств экземплярам;
B) передача свойств предкам;
C) передача свойств потомкам;
D) передача событий потомкам.
A) изменение поведения потомков, имеющих общих предков;
B) передача свойств по наследству;
C) изменение поведения потомков на разные события;
D) изменение поведения экземпляров, имеющих общих предков;
A) предки, родители, потомки;
B) полиморфизм, инкапсуляция, наследование;
C) свойства, события, методы;
D) визуальные, не визуальные компоненты и запросы.
A) предки наследуют свойства родителей;
B) родители наследуют свойства потомков;
C) потомки не могут иметь общих предков;
D) потомки наследуют свойства родителей.
165. Может ли дочерний элемент иметь двух родителей:
C) только для визуальных элементов;
D) если их свойства совпадают.
C) если их свойства совпадают;
D) если их методы совпадают.
167. Есть ли различие между объектом и экземпляром:
C) если у них общий предок.
168. Есть ли различие в поведении объекта и экземпляра того же типа:
B) если у них есть общий предок;
D) если у них нет общего предков.
169. Изменение свойств, приводит к изменению поведения экземпляра:
B) только для визуальных;
C) только НЕ для визуальных ;
C) нет.
171. Можно ли переопределять методы:
B) нет.
172. Можно ли переопределять свойства:
B) нет.
173. Могут ли два различных объекта реагировать на событие по-разному:
B) нет.
174. Могут ли два экземпляра одного объекта реагировать на событие по-разному:
B) нет.
175. Какой методикой проектирования пользуются при структурном программировании:
176. Какой этап проектирования может быть исключен:
B) технический проект;
177. Какие этапы проектирования можно объединять:
A) технический и рабочий;
C) технический и эскизный.
178. Модульное программирование применимо при:
A) проектировании сверху вниз;
B) проектирование снизу-вверх;
179. Процесс преобразования постановки задачи в план алгоритмического или вычислительного решения это:
B) анализ требований;
180. Составление спецификаций это:
A) формализация задачи;
181. Этап разработки программы, на котором дается характеристика области применения программы:
A) техническое задание;
C) технический проект;
182. Укажите правильную последовательность создания программы:
A) формулирование задачи, анализ требований, проектирование, программирование;
B) анализ требований, проектирование, программирование, тестирование, отладка;
C) анализ требований, программирование, проектирование, тестирование;
D) анализ требований, проектирование, программирование, модификация, трассировка;
E) формулирование задачи, анализ требований, программирование, проектирование, отладка.
183. Уточнение структуры входных и выходных данных, разработка алгоритмов, определение элементов интерфейса входят в:
A) технический проект;
184. Несуществующий метод проектирования:
185. Метод проектирования:
D) использование языков программирования;
E) составление блок-схем.
186. Нисходящее проектирование это:
A) последовательное уточнение (детализация);
B) составление блок-схем;
C) разделение программы на отдельные участи (блоки);
187. Признаки нисходящего программирования:
A) последовательная детализация;
B) наличие оптимизации;
C) наличие тестирования;
D) автоматизация программирования.
188. Какой методикой пользуются при структурном программировании:
189. Проектирование сверху вниз это:
A) последовательное разбиение общих задач на более мелкие;
B) составление из отдельных модулей большой программы.
190. Проектирование снизу-вверх это:
A) составление из отдельных модулей большой программы;
B) последовательное разбиение общих задач на более мелкие.
191. Модульное программирование применимо при:
A) проектировании сверху вниз;
B) проектирование снизу-вверх;
C) и в том, и другом случае;
D) ни в коем случае.
192. Какой методикой проектирования пользуются при структурном программировании:
193. В чем заключается иерархический подход в решении задачи:
B) в выделении основных и второстепенных элементов;
B) восходящее (снизу-вверх).
195. В каких единицах измеряются затраты на проектирование:
196. Зависит ли трудоемкость разработки от сложности алгоритма:
B) нет.
197. Зависит ли трудоемкость разработки от количества программистов:
B) нет.
198. Зависит ли трудоемкость разработки от языка или системы программирования:
B) нет.
199. Зависит ли трудоемкость разработки от количества обрабатываемой информации:
B) нет.
200. Зависит ли трудоемкость разработки от вида информации:
B) нет.
201. Если вы приобрели программу законным путем, являетесь ли вы
202. Если вы приобрели программы законным путем, имеете ли вы право вносить в нее изменения:
203. Если вы приобрели программы законным путем, имеете ли вы право продать ее:
204. Кому принадлежит право собственности на ПО:
Источник
Подборка по базе: 30_ПМ. 01 Проектирование цифровых устройств_Назарцев М.С.docx, ББ компьютерлік технологиялар және телекоммуникация ЛЕКЦИЯ.doc, планирование и проектирование организаций пкз .doc, соцаильная статистика защиты и обеспечения.docx, Настольная книга тимлида разработки ПО.pdf, 4 кл РП ТЕХНОЛОГИЯ.doc, Право социального обеспечения Социальное обслуживание населения., Научная работа по предмету «Право» на тему_ «Меры обеспечения пр, Түсінік Кондитер өндірісінің технологиялық.docx, Воспитательные задачи Технология.docx
ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Вариант 1
1.Какие программы можно отнести к системному программному обеспечению:
A)операционные системы
B)прикладные программы
C)игровые программы
2.Какие программы можно отнести к системному ПО:
A)драйверы
B)текстовые редакторы
C)электронные таблицы
D)графические редакторы
3.Специфические особенности ПО как продукта:
A)продажа по ценам ниже себестоимости (лицензирование)
B)низкие материальные затраты при создании программ
C)возможность создание программ небольшие коллективом или даже одним человеком
D)разнообразие решаемых задач с помощью программных средств
4. Какие программы можно отнести к системному ПО:
A) СУБД (системы управления базами данных).
B)программа расчета заработной платы;
электронные таблицы;
5. Какие программы нельзя отнести к системному ПО:
игровые программы;
компиляторы языков программирования;
операционные системы;
системы управления базами данных.
6. Какие программы можно отнести к прикладному программному обеспечению:
электронные таблицы;
таблицы решений;
СУБД (системы управления базами данных)
7. Какие программы можно отнести к прикладному ПО:
программа расчета заработной платы;
диспетчер программ;
программа «Проводник» (Explorer).
8. Какие программы нельзя отнести к прикладному ПО:
компиляторы и (или) интерпретаторы
текстовые и (или) графические редакторы
электронные таблицы
9. Специфические особенности ПО как продукта:
низкие затраты при дублировании;
универсальность;
простота эксплуатации;
наличие поддержки (сопровождения) со стороны разработчика.
10. Какие программы можно отнести к системному ПО:
утилиты;
экономические программы;
статистические программы;
мультимедийные программы.
11. Этап, занимающий наибольшее время, в жизненном цикле программы:
сопровождение;
проектирование;
тестирование;
программирование;
формулировка требований.
12. Этап, занимающий наибольшее время, при разработке программы:
тестирование;
сопровождение;
проектирование;
программирование;
формулировка требований.
13. Первый этап в жизненном цикле программы:
формулирование требований;
анализ требований;
проектирование;
автономное тестирование;
комплексное тестирование.
16. Один из необязательных этапов жизненного цикла программы:
оптимизация;
проектирование;
тестирование;
программирование;
анализ требований.
17. Самый большой этап в жизненном цикле программы:
эксплуатация;
изучение предметной области;
программирование;
тестирование;
корректировка ошибок.
19. Какой этап выполняется раньше:
отладка;
оптимизация;
программирование;
тестирование.
20. Что выполняется раньше:
компиляция;
отладка;
компоновка;
тестирование.
21. Что выполняется раньше:
проектирование;
программирование;
отладка;
тестирование.
22. В стадии разработки программы не входит:
автоматизация программирования
постановка задачи
составление спецификаций
эскизный проект
тестирование
23. Самый важный критерий качества программы:
работоспособность;
надежность;
эффективность;
быстродействие;
простота эксплуатации
24. Способы оценки качества:
сравнение с аналогами
наличие документации;
оптимизация программы;
структурирование алгоритма.
26. Наиболее важный критерий качества:
надежность;
быстродействие;
удобство в эксплуатации;
удобный интерфейс;
эффективность.
27. Способы оценки надежности:
тестирование;
сравнение с аналогами;
трассировка;
оптимизация.
30. В каких единицах можно измерить надежность:
отказов/час;
км/час;
Кбайт/сек;
операций/сек.
31. В каких единицах можно измерить быстродействие:
отказов/час;
км/час;
Кбайт/сек;
операций/сек.
32. Что относится к этапу программирования:
написание кода программы;
B) разработка интерфейса;
C) работоспособность;
анализ требований.
33. Последовательность этапов программирования:
компилирование, компоновка, отладка;
B) компоновка, отладка, компилирование;
отладка, компилирование, компоновка;
компилирование, отладка, компоновка.
34) Инструментальные средства программирования:
компиляторы, интерпретаторы;
СУБД (системы управления базами данных);
BIOS (базовая система ввода-вывода);
ОС (операционные системы).
35. На языке программирования составляется:
исходный код;
исполняемый код;
объектный код;
алгоритм.
36. Правила, которым должна следовать программа это:
алгоритм;
структура;
спецификация;
состав информации.
41. Доступ, при котором записи файла читаются в физической последовательности, называется:
последовательным;
прямым;
простым;
основным.
42. Доступ, при котором записи файла обрабатываются в произвольной последовательности, называется:
прямым;
последовательным;
простым;
основным.
43. Методы программирования (укажите НЕ верный ответ):
логическое;
структурное;
модульное.
44. Что выполняется раньше:
разработка алгоритма;
выбор языка программирования;
написание исходного кода;
компиляция.
46. Найдите НЕ правильное условие для создания имен:
имена могут содержать пробелы;
длинное имя можно сократить;
из имени лучше выбрасывать гласные;
можно использовать большие буквы.
50. Как называется способ составления имен переменных, когда в начале имени сообщается тип переменной:
прямым указанием;
венгерской нотацией;
структурным программированием;
поляризацией.
53. Наличие комментариев позволяет:
быстрее найти ошибки в программе;
быстрее писать программы;
быстрее выполнять программы.
54. Наличие комментариев позволяет:
легче разобраться в программе;
применять сложные структуры;
увеличить быстродействие.
55. Наличие комментариев позволяет:
улучшить читабельность программы;
улучшить эксплуатацию программы;
повысить надежность программы.
56. Что определяет выбор языка программирования:
область приложения;
знание языка;
наличие дополнительных библиотек.
59. Для каких задач характерно использование большого количества исходных данных, выполнение операций поиска, группировки:
для экономических задач;
для системных задач;
для инженерных задач.
60. Для каких задач характерен большой объем вычислений, использование сложного математического аппарата:
для инженерных задач;
для системных задач;
для экономических задач.
61. На каком этапе производится выбор языка программирования:
проектирование;
программирование;
отладка;
тестирование.
63. Для решения экономических задач характерно применение:
СУБД (систем управления базами данных);
языков высокого уровня;
языков низкого уровня;
применение сложных математических расчетов.
64. Для решения инженерных задач характерно применение:
САПР (систем автоматизированного проектирования);
СУБД (систем управления базами данных);
ОС (операционных систем).
65. Причины синтаксических ошибок:
плохое знание языка программирования;
ошибки в исходных данных;
ошибки, допущенные на более ранних этапах;
неправильное применение процедуры тестирования.
66. Когда можно обнаружить синтаксические ошибки:
при компиляции;
при отладке;
при тестировании;
на этапе проектирования;
при эксплуатации.
67. Ошибки компоновки заключаются в том, что:
указано внешнее имя, но не объявлено;
неправильно использовано зарезервированное слово;
составлено неверное выражение;
указан неверный тип переменной.
72. Защитное программирование это:
встраивание в программу отладочных средств;
создание задач защищенных от копирования;
разделение доступа в программе;
использование паролей;
оформление авторских прав на программу.
73. Вид ошибки с неправильным написанием служебных слов (операторов):
синтаксическая;
семантическая;
логическая;
символьная.
74. Вид ошибки с неправильным использованием служебных слов (операторов):
семантическая;
синтаксическая;
логическая;
символьная.
75. Ошибки при написании программы бывают:
синтаксические;
орфографические;
лексические;
фонетические;
морфологические.
76. Процедура поиска ошибки, когда известно, что она есть это:
отладка;
тестирование;
компоновка;
транзакция;
трансляция.
77. Программа для просмотра значений переменных при выполнении программы:
отладчик;
компилятор;
интерпретатор;
трассировка;
тестирование.
78. Отладка – это:
процедура поиска ошибок, когда известно, что ошибка есть;
определение списка параметров;
правило вызова процедур (функций);
составление блок-схемы алгоритма.
- 79. Когда программист может проследить последовательность выполнения команд программы:
при трассировке;
при тестировании;
при компиляции;
при выполнении программы;
при компоновке.
80. На каком этапе создания программы могут появиться синтаксические ошибки:
программирование;
проектирование;
анализ требований;
тестирование.
81. Когда приступают к тестированию программы:
когда программа уже закончена;
после постановки задачи;
на этапе программирования;
на этапе проектирования;
после составления спецификаций,
82. Тестирование бывает:
автономное;
инструментальное;
визуальное;
алгоритмическое.
83. Тестирование бывает:
комплексное;
инструментальное;
визуальное;
алгоритмическое.
85. При комплексном тестировании проверяются:
согласованность работы отдельных частей программы;
правильность работы отдельных частей программы;
быстродействие программы;
эффективность программы.
86. Чему нужно уделять больше времени, чтобы получить хорошую программу:
тестированию;
программированию;
отладке;
проектированию.
87. Процесс исполнения программы с целью обнаружения ошибок:
тестирование;
кодирование;
сопровождение;
проектирование.
88. Автономное тестирование это:
тестирование отдельных частей программы;
инструментальное средство отладки;
составление блок-схем;
пошаговая проверка выполнения программы.
89. Трассировка это:
проверка пошагового выполнения программы;
тестирование исходного кода;
отладка модуля;
составление блок-схемы алгоритма.
90. Локализация ошибки:
определение места возникновения ошибки;
определение причин ошибки;
обнаружение причин ошибки;
исправление ошибки.
91. Назначение тестирования:
повышение надежности программы;
обнаружение ошибок;
повышение эффективности программы;
улучшение эксплуатационных характеристик;
приведение программы к структурированному виду.
92. Назначение отладки:
поиск причин существующих ошибок;
поиск возможных ошибок;
составление спецификаций;
разработка алгоритма.
93. Инструментальные средства отладки (НЕ правильный ответ):
компиляторы;
отладчики;
трассировка.
94. Отладка программ это:
локализация и исправление ошибок;
алгоритмизация программирования;
компиляция и компоновка.
97. Что такое автоматизация программирования:
создание исходного кода программными средствами;
создание исходного кода при помощи компилятора;
создание исходного кода без разработки алгоритма.
98. В чем сущность автоматизации программирования:
создание программы без написания ее текста;
получение готовой программы без выполнения компоновки;
в отсутствии компиляции.
100. Создание исполняемого кода программы без написания исходного кода называется:
составлением спецификаций;
отладкой;
проектированием.
автоматизацией программирования;
101. Одно из преимуществ автоматизации программирования:
наглядное программирование с визуальным контролем;
получение стандартной программы;
создание программы с оптимальным кодом.
102. Один из методов автоматизации программирования:
структурное программирование;
модульное программирование;
визуальное программирование;
объектно-ориентированное программирование.
107. Недостаток автоматизации программирования;
низкое быстродействие;
большой размер программы;
сложность программы.
111. Что легко поддается автоматизации:
интерфейс;
работа с файлами;
сложные логические задачи;
алгоритмизация.
113. Нахождение наилучшего варианта из множества возможных:
оптимизация;
тестирование;
автоматизация;
отладка;
сопровождение.
114. Что такое оптимизация программ:
улучшение работы существующей программы;
создание удобного интерфейса пользователя;
разработка модульной конструкции программы;
применение методов объектно-ориентированного программирования.
115. Критерии оптимизации:
Варианты ответа:
время выполнения или размер требуемой памяти;
размер программы и ее эффективность;
независимость модулей;
качество программы, ее надежность.
116. Критерии оптимизации:
эффективность использования ресурсов;
структурирование алгоритма;
структурирование программы.
119. В чем заключается оптимизация условных выражений:
в изменении порядка следования элементов выражения;
в использовании простых логических выражений;
в использовании сложных логических выражений;
в использовании операций AND, OR и NOT.
120. Оптимизация циклов заключается в:
уменьшении количества повторений тела цикла;
просмотре задачи с другой стороны;
упрощение задачи за счет включения логических операций.
121. Оптимизация программы это:
модификация;
отладка;
повышение сложности программы;
уменьшение сложности программы.
122. Критерии оптимизации программы:
быстродействие или размер программы;
быстродействие и размер программы;
надежность или эффективность;
надежность и эффективность.
123. Результат оптимизации программы:
эффективность;
надежность;
машино-независимость;
мобильность.
124. Сущность оптимизации циклов:
сокращение количества повторений выполнения тела цикла;
сокращение тела цикла;
представление циклов в виде блок-схем;
трассировка циклов;
поиск ошибок в циклах.
125. В чем сущность модульного программирования:
Варианты ответа:
A) в разбиении программы на отдельные функционально независимые части;
B) в разбиении программы на отдельные равные части;
C) в разбиение программы на процедуры и функции;
126. Можно ли сочетать модульное и структурное программирование:
Варианты ответа:
A) да;
B) нет.
127. Может ли модуль включать несколько процедур или функций:
Варианты ответа:
A) да;
B) нет.
128. Рекомендуемые размеры модулей:
Варианты ответа:
A) небольшие;
B) большие;
C) равные;
D) фиксированной длины.
129. В чем заключается независимость модуля:
Варианты ответа:
A) в написании, отладке и тестировании независимо от остальных модулей;
B) в разработке и написании независимо от других модулей;
C) в независимости от работы основной программы.
130. При модульном программировании желательно, чтобы модуль имел:
Варианты ответа:
A) большой размер;
B) небольшой размер;
C) фиксированный размер;
D) любой размер.
131. Модульное программирование это:
Варианты ответа:
A) разбиение программы на отдельные части;
B) структурирование;
C) использование стандартных процедур и функций.
132. Можно ли использовать оператор GO TO в модульном программах:
Варианты ответа:
A) можно;
B) нельзя.
133. Разрешается ли использование циклов при модульном программировании:
Варианты ответа:
A) да;
B) нет.
134. Разрешается ли использование условных операторов при модульном программировании:
Варианты ответа:
A) да;
B) нет.
135. Сократится ли размер программы, если ее написать в виде набора модулей:
Варианты ответа:
A) нет;
B) да.
136. Достоинство модульного программирования:
Варианты ответа:
A) создание программы по частям в произвольном порядке;
B) не требует компоновки;
C) всегда дает эффективные программы;
D) снижает количество ошибок.
137. Недостаток модульного программирования:
Варианты ответа:
A) увеличивает трудоемкость программирования;
B) усложняет процедуру комплексного тестирования;
C) снижает быстродействие программы;
D) не позволяет выполнять оптимизацию программы.
138. Достоинство модульного программирования:
Варианты ответа:
A) возможность приступить к тестированию до завершения написания всей программы;
B) не требует комплексного тестирования;
C) уменьшает размер программы;
D) повышает надежность программы.
139. Допустимо ли использование оператора GO ТO при структурном программировании:
- Варианты ответа:
A) нет;
B) да.
140. Можно ли сочетать структурное программирование с модульным:
Варианты ответа:
A) можно;
B) нельзя;
C) только в особых случаях.
141. Любую ли программу можно привести к структурированному виду:
Варианты ответа:
A) любую;
B) не все;
C) нельзя.
142. Можно ли использовать оператор GO TO в структурированных программах:
Варианты ответа:
A) можно;
B) нельзя;
C) только в особых случаях.
143. Возможно, ли преобразовать неструктурированную программу к структурному виду:
Варианты ответа:
A) да;
B) нет.
144. Возможно ли программирование без оператора GO TO:
Варианты ответа:
A) да;
B) нет.
145. При структурном программировании задача выполняется:
Варианты ответа:
A) поэтапным разбиением на более легкие задачи;
B) без участия программиста;
C) объединением отдельных модулей программы.
146. Разрешается ли использование оператора GO TO при структурном программировании:
Варианты ответа:
A) нет;
B) да;
C) иногда.
147. Разрешается ли использование циклов при структурном программированииp:
Варианты ответа:
A) да;
B) нет.
148. Разрешается ли использование оператора IF при структурном программировании:
Варианты ответа:
A) да;
B) нет.
149. Программирование без GO TO применяется. при:
Варианты ответа:
A) структурном программировании;
B) модульном программировании;
C) объектно-ориентированном программировании;
D) все ответы верные.
150. Достоинство структурного программирования:
Варианты ответа:
A) можно приступить к комплексному тестированию на раннем этапе разработки;
B) можно приступить к автономному тестированию на раннем этапе разработки;
C) нет необходимости выполнять тестирование;
D) можно пренебречь отладкой.
151. Достоинство структурного программирования:
Варианты ответа:
A) облегчает работу над большими и сложными проектами;
B) повышает быстродействие программы;
C) снижает затраты на программирование.
152. Недостаток структурного программирования:
Варианты ответа:
A) увеличивает размер программы;
B) снижает эффективность;
C) уменьшает количество ошибок;
D) не требует отладки.
153. Повышает ли читабельность программ структурное кодирование:
Варианты ответа:
A) да;
B) нет.
154. Разрешается ли использование циклов при объектно-ориентированном программировании:
Варианты ответа:
A) да;
B) нет.
- 155. Разрешается ли использование оператора IF при объектно-ориентированном программировании:
- Варианты ответа:
A) да;
B) нет.
156. Предусматривает ли объектно-ориентированное программирование использование стандартных процедур и функций:
A) да;
B) нет.
157. Можно ли сочетать объектно-ориентированное и структурное программирование
Варианты ответа:
A) можно;
B) нельзя.
158) Можно ли сочетать объектно-ориентированное и модульное программирование:
Варианты ответа:
A) можно;
B) нельзя.
159. Что такое объект, в объектно-ориентированное программировании:
Варианты ответа:
A) тип данных;
B) структура данных;
C) событие;
D) обработка событий;
E) использование стандартных процедур.
- Инкапсуляция это:
Варианты ответа:
A) определение новых типов данных;
B) определение новых структур данных;
C) объединение переменных, процедур и функций в одно целое;
D) разделение переменных, процедур и функций;
E) применение стандартных процедур и функций.
- Наследование это:
Варианты ответа:
A) передача свойств экземплярам;
B) передача свойств предкам;
C) передача свойств потомкам;
D) передача событий потомкам.
- Полиморфизм это:
Варианты ответа:
A) изменение поведения потомков, имеющих общих предков;
B) передача свойств по наследству;
C) изменение поведения потомков на разные события;
D) изменение поведения экземпляров, имеющих общих предков;
- Три «кита» объектно-ориентированного метода программирования:
Варианты ответа:
A) предки, родители, потомки;
B) полиморфизм, инкапсуляция, наследование;
C) свойства, события, методы;
D) визуальные, не визуальные компоненты и запросы.
- Какое утверждение верно:
Варианты ответа:
A) предки наследуют свойства родителей;
B) родители наследуют свойства потомков;
C) потомки не могут иметь общих предков;
D) потомки наследуют свойства родителей.
165. Может ли дочерний элемент иметь двух родителей:
Варианты ответа:
A) да;
B) нет;
C) только для визуальных элементов;
D) если их свойства совпадают.
- Могут ли два визуальных компонента иметь общего предка:
Варианты ответа:
A) да;
B) нет;
C) если их свойства совпадают;
D) если их методы совпадают.
167. Есть ли различие между объектом и экземпляром:
Варианты ответа:
A) да;
B) нет;
C) если у них общий предок.
168. Есть ли различие в поведении объекта и экземпляра того же типа:
Варианты ответа:
A) да;
B) если у них есть общий предок;
C) нет;
D) если у них нет общего предков.
169. Изменение свойств, приводит к изменению поведения экземпляра:
Варианты ответа:
A) нет;
B) только для визуальных;
C) только НЕ для визуальных ;
D) да .
170. Можно ли свойствам присваивать значения:
Варианты ответа:
A) да (всегда);
B) не всегда;
C) нет.
171. Можно ли переопределять методы:
Варианты ответа:
A) да;
B) нет.
172. Можно ли переопределять свойства:
Варианты ответа:
A) да;
B) нет.
173. Могут ли два различных объекта реагировать на событие по-разному:
Варианты ответа:
A) да;
B) нет.
174. Могут ли два экземпляра одного объекта реагировать на событие по-разному:
Варианты ответа:
A) да;
B) нет.
175. Какой методикой проектирования пользуются при структурном программировании:
Варианты ответа:
A) сверху вниз;
A) снизу-вверх.
176. Какой этап проектирования может быть исключен:
Варианты ответа:
A) эскизный проект;
B) технический проект;
C) рабочий проект.
177. Какие этапы проектирования можно объединять:
Варианты ответа:
A) технический и рабочий;
B) эскизный и рабочий;
C) технический и эскизный.
178. Модульное программирование применимо при:
Варианты ответа:
A) проектировании сверху вниз;
B) проектирование снизу-вверх;
179. Процесс преобразования постановки задачи в план алгоритмического или вычислительного решения это:
Варианты ответа:
A) проектирование;
B) анализ требований;
C) программирование;
D) тестирование.
180. Составление спецификаций это:
Варианты ответа:
A) формализация задачи;
B) эскизный проект;
C) поиск алгоритма;
D) отладка.
181. Этап разработки программы, на котором дается характеристика области применения программы:
Варианты ответа:
A) техническое задание;
B) эскизный проект;
C) технический проект;
D) внедрение;
E) рабочий проект.
182. Укажите правильную последовательность создания программы:
Варианты ответа:
A) формулирование задачи, анализ требований, проектирование, программирование;
B) анализ требований, проектирование, программирование, тестирование, отладка;
C) анализ требований, программирование, проектирование, тестирование;
D) анализ требований, проектирование, программирование, модификация, трассировка;
E) формулирование задачи, анализ требований, программирование, проектирование, отладка.
183. Уточнение структуры входных и выходных данных, разработка алгоритмов, определение элементов интерфейса входят в:
Варианты ответа:
A) технический проект;
B) рабочий проект;
C) эскизный проект.
184. Несуществующий метод проектирования:
Варианты ответа:
A) алгоритмическое;
B) нисходящее;
C) восходящее.
185. Метод проектирования:
Варианты ответа:
A) нисходящее;
B) алгоритмическое;
C) логическое;
D) использование языков программирования;
E) составление блок-схем.
186. Нисходящее проектирование это:
Варианты ответа:
A) последовательное уточнение (детализация);
B) составление блок-схем;
C) разделение программы на отдельные участи (блоки);
D) трассировка.
187. Признаки нисходящего программирования:
Варианты ответа:
A) последовательная детализация;
B) наличие оптимизации;
C) наличие тестирования;
D) автоматизация программирования.
188. Какой методикой пользуются при структурном программировании:
Варианты ответа:
A) сверху вниз;
B) снизу-вверх.
189. Проектирование сверху вниз это:
Варианты ответа:
A) последовательное разбиение общих задач на более мелкие;
B) составление из отдельных модулей большой программы.
190. Проектирование снизу-вверх это:
Варианты ответа:
A) составление из отдельных модулей большой программы;
B) последовательное разбиение общих задач на более мелкие.
191. Модульное программирование применимо при:
Варианты ответа:
A) проектировании сверху вниз;
B) проектирование снизу-вверх;
C) и в том, и другом случае;
D) ни в коем случае.
192. Какой методикой проектирования пользуются при структурном программировании:
Варианты ответа:
A) сверху вниз;
B) снизу-вверх.
193. В чем заключается иерархический подход в решении задачи:
Варианты ответа:
A) в последовательном разбиении задачи на более мелкие составные части;
B) в выделении основных и второстепенных элементов;
C) в возможности параллельного выполнения отдельных частей задачи.
- 194. Какой метод проектирования соответствует иерархическому подходу в решении задачи:
- Варианты ответа:
A) нисходящее (сверху вниз);
B) восходящее (снизу-вверх).
195. В каких единицах измеряются затраты на проектирование:
Варианты ответа:
A) в человеко-днях;
B) в долларах;
C) в тенге;
D) в килобайтах.
196. Зависит ли трудоемкость разработки от сложности алгоритма:
Варианты ответа:
A) да;
B) нет.
197. Зависит ли трудоемкость разработки от количества программистов:
Варианты ответа:
A) да;
B) нет.
198. Зависит ли трудоемкость разработки от языка или системы программирования:
Варианты ответа:
A) да;
B) нет.
199. Зависит ли трудоемкость разработки от количества обрабатываемой информации:
Варианты ответа:
A) да;
B) нет.
200. Зависит ли трудоемкость разработки от вида информации:
Варианты ответа:
A) да;
B) нет.
201. Если вы приобрели программу законным путем, являетесь ли вы
собственником программы:
Варианты ответа:
A) нет;
B) да.
202. Если вы приобрели программы законным путем, имеете ли вы право вносить в нее изменения:
Варианты ответа:
A) нет;
B) да
203. Если вы приобрели программы законным путем, имеете ли вы право продать ее:
Варианты ответа:
A) да;
B) нет.
204. Кому принадлежит право собственности на ПО:
Варианты ответа:
А) разработчику;
- продавцу;
- покупателю.
205. Кому принадлежит авторское право на ПО:
Варианты ответа:
А) разработчику;
- продавцу;
- покупателю.
206. Что охраняется законом:
Варианты ответа:
A) структура базы данных;
B) содержание базы данны
