Главная / Программирование / Основы объектно-ориентированного программирования

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

Правильные ответы выделены зелёным цветом.
Все ответы: Фундаментальный учебник по основам объектно-ориентированного программирования и инженерии программ. В книге подробно излагаются основные понятия объектной технологии – классы, объекты, управление памятью, типизация, наследование, универсализация. Большое внимание уделяется проектированию по контракту и обработке исключений, как механизмам, обеспечивающим корректность и устойчивость программных систем.
К внешним факторам, влияющим на качество ПО относятся
(1) корректность
(2) модульность
(3) расширяемость
(4) язык разработки
Повторному использованию способствует объектный механизм наследования классов. Наследование позволяет классу иметь?
(1) одного и только одного непосредственного родителя
(2) одного и только одного непосредственного потомка
(3) одного или более непосредственных родителей
(4) одного или более непосредственных потомков
Корректность программы – это понятие
(1) неформальное
(2) которое можно определить, используя только термины самой программы
(3) которое можно формализовать триадой Хоара
(4) для формализации которого необходимо задание спецификации
Отказ
(1) понятие, связанное с вызовом программы, - вызов, заканчивающийся в состоянии, нарушающем контракт
(2) не может возникнуть для корректных программ
(3) понятие, противоположное понятию успех
(4) всякое исключение приводит к отказу
В ОО-окружении
(1) могут вызываться только ОО-программы
(2) должен быть способ вызова компонентов (процедур, функций), написанных на любых языках программирования
(3) внешние программы могут обеспечивать доступ к аппаратным возможностям
(4) необъектные компоненты должны быть переписаны в объектном стиле
При наследовании
(1) если класс А является родителем класса В, то класс В является наследником класса А
(2) если класс А является предком класса В, то класс В является потомком класса А
(3) по определению класс А является потомком класса А
(4) по определению класс А является предком класса А
Достоинства, недостатки и проблемы множественного наследования
(1) достоинство: наследование всех возможностей родителей
(2) недостаток: наследник не может отказаться от вредных или противоречащих родительских свойств
(3) проблема: родители имеют общих предков
(4) проблема: компоненты родителей имеют одинаковые имена
При повторном объявлении компонента
(1) предусловие расширяет число ситуаций, допустимых у клиента
(2) предусловие сужает число ситуаций, допустимых у клиента
(3) постусловие ужесточает требования, предъявляемые к работе компонента
(4) постусловие ослабляет требования, предъявляемые к работе компонента
Для успешного применения статической типизации требуется совместное применение механизмов
(1) утверждений
(2) множественного наследования
(3) попытки присваивания
(4) ограниченной и неограниченной универсальности
Для нормального функционирования системы глобальная информация необходима, как?
(1) источник разделяемых данных
(2) единственный способ обмена данными между модулями
(3) единые точки подключения к внешним мирам: базам данных, сети, окнам ввода и вывода
(4) не нужна в ОО-системах
Для ОО-метода разработки ПО
(1) некоторые классы представляют собой модули, другие типы данных
(2) класс всегда является модулем
(3) встроенные типы данных классами не являются
(4) класс всегда является типом данных
(5) тип данных всегда является классом
Верно ли, что различия между правилами, критериями и принципами модульности состоят в том, что
(1) правила модульности следует выполнять при разработке ПО
(2) механизмы ООП следует проектировать в соответствии с принципами
(3) разрабатываемая система должна удовлетворять критериям модульности
(4) между правилами, критериями и принципами нет различий – это синонимичные понятия
Повторное использование
(1) уменьшает время разработки
(2) позволяет отказаться от обработки исключительных ситуаций
(3) повышает эффективность приложения
(4) снижает надежность приложения
На какой основе следует строить модуль?
(1) процессоров
(2) объектов
(3) функций
(4) спецификаций
Какими критериями следует руководствоваться при описании типов объектов?
(1) описания должны быть полностью специфицированы
(2) описания не должны быть излишне специфицированы
(3) описания должны быть точными и недвусмысленными
(4) описания могут быть неточными
Класс - это?
(1) статическая структура
(2) программный текст
(3) динамическая структура, создаваемая в момент выполнения
(4) АТД с заданной реализацией (возможно частичной)
К какому понятию относятся определения: "экземпляр класса, набор полей, понятие периода исполнения"?
(1) ссылки
(2) объекта
(3) сущности
(4) класса
Режимами управления памятью являются?
(1) статический
(2) списковый
(3) стековый
(4) динамический
Под корректностью ПО понимается?
(1) способность ПО реагировать на изменения спецификаций
(2) способность ПО работать в точном соответствии со спецификацией
(3) безошибочная работа ПО во всех ситуациях
(4) способность отвечать на все вопросы пользователя
Родовое порождение
(1) это процесс подстановки фактических параметров вместо формальных параметров универсального класса
(2) требует, чтобы фактические родовые параметры представляли типы
(3) создает в результате новый тип
(4) разрешает использовать в качестве фактического параметра универсальный класс
Частью контракта, заключаемого между классом-поставщиком и классами, являющимися его клиентами, является?
(1) гарантия поставщиком выполнения всех предусловий методов класса в каждый момент выполнения клиентской программы
(2) гарантия поставщиком выполнения постусловия метода класса, при условии, что клиент гарантировал при вызове метода выполнения предусловия
(3) гарантия поставщиком выполнения постусловий всех методов класса в каждый момент выполнения клиентской программы
(4) обязательная проверка взаимных обязательств – поставщик проверяет выполнимость предусловий, клиент - постусловий
Исключения могут возникать в результате следующих ситуаций
(1) попытка квалифицированного вызова a.f и обнаружение, что a = void
(2) в результате невыполнения условия цикла
(3) вызов программы, приводящей к отказу
(4) итерация тела цикла не уменьшает вариант цикла
В вызове p(x)
(1) x – может быть как входным, так и выходным аргументом
(2) никогда не меняется значение x, если оно развернутого типа
(3) может измениться значение x, если оно является ссылкой
(4) значение x не может измениться, если оно является ссылкой, но поля объекта, с которым связана ссылка, могут меняться
Тип U согласован с типом T
(1) только если базовый класс для U является потомком базового класса для T
(2) если типы не являются универсально порожденными
(3) только если совпадают фактические параметры при универсальном порождении типов
(4) для универсально порожденных классов B [Y] будет согласован с A [X], если B является потомком A, а Y – потомком X
Переименование позволяет
(1) отложенный класс сделать эффективным
(2) эффективный класс сделать отложенным
(3) выбрать имена компонентов в соответствии со стилем класса наследника
(4) разрешить конфликт имен
Универсальные классы General и ANY - это библиотечные классы
(1) позволяющие клиентам решать все нужные им задачи
(2) автоматически вызываемые в специальных случаях
(3) по определению являющиеся предками всех создаваемых классов
(4) содержащие атрибуты и методы, необходимые всем объектам независимо от их природы
Ковариантность – это?
(1) стратегия изменения типов при переопределении компонента
(2) параллельное изменение спецификации компонента и его реализации
(3) механизм, приводящий в сочетании со статической типизацией к нарушению корректности системы
(4) механизм, устраняющий нарушения корректности системы
Константы специальных классов
(1) создаются, используя специальные правила, заданные для каждого класса
(2) создаются обычной процедурой создания класса
(3) представляют собой обычную функцию, вызывающую процедуру создания
(4) представляют собой однократную функцию, вызывающую процедуру создания
Статическая типизация означает?
(1) для каждой сущности при ее объявлении задается тип
(2) тип объекта, связываемого с сущностью, должен совпадать с типом сущности
(3) после того, как сущность связана с объектом, другие объекты не могут присоединяться к сущности
(4) связывание объекта и сущности выполняется еще на этапе трансляции и эта связь не может изменяться динамически в процессе выполнения приложения
К критериям модульности относятся
(1) слабая связность интерфейсов
(2) унифицированный доступ
(3) непрерывность
(4) единственный выбор
Класс поведения - это?
(1) класс, описывающий поведение пользователей системы
(2) абстрактный класс
(3) отложенный класс
(4) класс, для которого задана частичная реализация, но некоторые особенности оставлены для реализации различными потомками
Порядок выполнения модулей нужно устанавливать
(1) как можно раньше
(2) как можно позже
(3) с помощью логических ограничений
При описании АТД можно?
(1) указывать родовые параметры
(2) задавать родительский класс
(3) задавать реализацию функций
(4) задавать представление данных
Метод класса - это?
(1) компонент класса
(2) процедура или функция
(3) поле класса
(4) часть структуры данных, представляющей объект
Динамическая структура объектов, создаваемая в период выполнения
(1) имеет ту же сложность, что и статическая структура классов
(2) имеет, как правило, сложность, значительно превосходящую сложность статической структуры классов
(3) имеет, как правило, сложность более простую, чем сложность статической структуры классов
(4) не имеет ничего общего со статической структурой классов
Оригиналами называются?
(1) объекты в момент их создания
(2) объекты, для которых счетчик ссылок равен нулю
(3) объекты, напрямую присоединенные к сущностям
(4) динамические псевдонимы
При разработке сложного ПО основная доля затрат приходится на?
(1) разработку
(2) создание спецификаций
(3) отладку
(4) сопровождение
Допустим, класс содержит инструкции: sf: STACK[Figure]; sb: STACK[Book]; f:Figure; b: Book; Какие инструкции допустимы в программах этого класса?
(1) sf.put(f)
(2) b := sf.item
(3) b:= sb.item
(4) sf.item
Инвариант класса должен выполняться
(1) на момент создания объекта
(2) в каждый текущий момент выполнения методов класса
(3) в клиентской программе непосредственно перед вызовом любого метода
(4) в программе поставщика непосредственно после завершения вызова любого метода
N-версионное программирование - это?
(1) создание программы на основе предыдущей ее версии
(2) наличие нескольких версий программы (метода), каждая из которых может включаться, если при работе предыдущей версии возникло исключение
(3) наличие нескольких версий программы (метода), каждая из которых включается в зависимости от выбора программиста
(4) повышение надежности за счет увеличения объема кода
Левая часть инструкции присваивания x:=e
(1) не может быть локальной сущностью
(2) может быть сущностью Current
(3) может быть сущностью Result
(4) не может быть формальным аргументом программы
Динамические и статические типы
(1) сущность имеет динамический и статический типы
(2) сущность имеет только статический тип
(3) ссылка имеет динамический тип или может быть пустой
(4) объект имеет динамический и статический типы
Форма класса, в которой
(1) удалены предложения наследования и собраны все компоненты, наследуемые от всех предков, называется плоской формой
(2) собраны только открытые компоненты и не показана реализация называется краткой формой
(3) сочетаются свойства краткой и плоской формы называется кратко плоской формой
Попытка присваивания
(1) это специальное обобщение операции присваивания
(2) присваивание, заканчивающееся отказом
(3) предполагает динамическую проверку соответствия типов левой и правой части присваивания
(4) это присваивание цели значения void в случае несоответствия типов
Скрытие потомком – это?
(1) запрет, налагаемый родителем, на экспорт потомком некоторого компонента родительского класса
(2) запрет потомком экспортировать компонент, разрешенный к экспорту его родителем
(3) скрытие потомком всех компонентов его родителя
(4) запрет родителя классам потомкам экспортировать компоненты родителя
Однократная процедура – это процедура?
(1) вычисления однократного интеграла
(2) вызываемая только один раз
(3) удаляемая из класса после первого вызова
(4) выполняющая свою работу при первом обращении и ничего не делающая при последующих вызовах
Отложенный класс
(1) это класс, который временно не включается в состав приложения
(2) понятие эквивалентное понятию абстрактный класс
(3) класс, для которого не заданы спецификации
(4) класс, для которого не задана реализация
(5) класс, для которого реализация задана частично
Правило прямого отображения требует, чтобы
(1) модульная структура ПО непосредственно отображала структуру модели предметной области
(2) модульная структура ПО непосредственно отображала структуру предметной области
(3) модульная структура ПО непосредственно отображала структуру спецификаций
Повторно использовать или переделывать
(1) повторно использовать следует лишь тот компонент, который полностью соответствует потребностям
(2) если компонент лишь частично удовлетворяет потребностям, его следует переделать
(3) следует использовать объектный инструментарий (наследование, обертывание), удовлетворяющий критерию Открыт-Закрыт, допускающий расширяемость и повторное использование
Функциональная декомпозиция при проектировании сверху-вниз
(1) обеспечивает хорошее соответствие проекта его начальной спецификации
(2) способствует повторному использованию
(3) затрудняет связь с предыдущими версиями проекта
(4) облегчает понимание каждого шага декомпозиции
Какие определения, связанные с понятием класс, являются корректными?
(1) класс - это абстрактный тип данных, снабженный некоторой (возможно частичной) реализацией
(2) класс называется эффективным, если при его реализации используются эффективные алгоритмы
(3) класс называется абстрактным, если его реализация задана лишь частично
(4) класс называется отложенным, если его реализация задана лишь частично
Текущий объект – это?
(1) цель вызова в объектных вычислениях
(2) цель неквалифицированного вызова в объектных вычислениях
(3) объект, создаваемый в момент "большого взрыва"
(4) случайно выбираемый объект из множества объектов, созданных в процессе вычисления
Эффект инструкции создания вида create x состоит в?
(1) создании новой ссылки
(2) создании нового объекта
(3) инициализации полей создаваемого объекта значениями по умолчанию
(4) присоединения ссылки – значения x к новому объекту
Способы борьбы с недостижимыми объектами
(1) несерьезный – игнорировать проблему и не освобождать память
(2) ручной – возложить обязанность на программиста
(3) библиотечный – использовать для освобождения памяти библиотечные модули, вызываемые программистом
(4) автоматический – возложить обязанности освобождения памяти на сборщик мусора – компонент исполнительной среды
При разработке ПО в первую очередь следует заботиться о?
(1) корректности
(2) функциональности
(3) простоте использования
(4) интерфейсе пользователя
Корректно использовать сущность x, чей тип задан формальным родовым параметром G, можно?
(1) слева от оператора присваивания x := y, где выражение y также имеет тип G
(2) справа от оператора присваивания y:= x , где сущность y также имеет тип G
(3) в арифметических выражениях типа x + y, где оба операнда имеют тип G
(4) всюду, где разрешается использовать сущность x конкретного типа
В производственной системе следует предусмотреть возможность включения мониторинга утверждений для проверки?
(1) только предусловий
(2) предусловий, постусловий и инвариантов цикла
(3) вариантов и инвариантов цикла
(4) отключения всяческих проверок
Класс Exception
(1) позволяет классифицировать исключения
(2) создавать собственные исключения
(3) организовать разбор случаев при обработке исключения
(4) не может иметь наследников
Строки
(1) задаются специальным классом String
(2) на экземплярах STRING доступны многочисленные операции: сцепление, выделение символов и подстрок, сравнение и т.д
(3) размер строки динамически изменяется в ходе выполнения операций
(4) присваивание строк означает разделение общей памяти
Изменение объявления компонента позволяет?
(1) переопределить реализацию уже реализованного компонента
(2) задать реализацию отложенного компонента
(3) функцию без аргументов переопределить в виде атрибута
(4) переопределить атрибут в виде функции без аргументов
Наследник может
(1) отменить реализацию, сделав компонент отложенным
(2) запретить вызов реализации родителя
(3) переопределить реализацию
(4) превратить отложенный компонент в эффективный
При повторном объявлении
(1) требуется сохранение сигнатуры компонента
(2) разрешается изменение сигнатуры компонента
(3) разрешается произвольное изменение типа атрибута и типа аргументов у компонентов
(4) разрешается изменение типа атрибута и типа аргументов у компонентов в соответствии с правилами согласованности типов
Наилучшим решением проблемы системной корректности является решение?
(1) на основе глобального анализа всей системы
(2) на основе закрепления
(3) на основе введения понятия кэтколла
(4) лучшее решение не найдено
Значения Unique
(1) уникальные, редко используемые значения
(2) служат для задания перечислений
(3) следует использовать для перечислений с фиксированным набором значений
(4) для перечислений, чье множество значений может изменяться, вместо механизма Unique следует использовать наследование
Обработка исключений
(1) обеспечивает устойчивость ПО
(2) предназначена для обработки специальных случаев, предусмотренных спецификацией
(3) позволяет отключать некоторые модули приложения
(4) является механизмом восстановления в аварийных ситуациях
Унифицированный доступ означает?
(1) вызов объектом свойства или метода
(2) единый синтаксис вызова любых методов и свойств, не позволяющий распознать клиенту, что вызывается – метод или свойство
(3) единый синтаксис вызова свойства и метода без аргументов, не позволяющий распознать клиенту, что вызывается – метод или свойство
(4) унификацию доступа к данным класса
Проблема изменчивости реализаций для классов поведения состоит в том, что?
(1) реализация с течением времени изменяется
(2) класс поведения может не фиксировать структуру данных, так что реализация зависит от дальнейшего выбора структуры данных
(3) класс поведения может не фиксировать спецификацию, так что реализация зависит от дальнейшего уточнения спецификации
(4) класс поведения может не фиксировать алгоритм, так что реализация зависит от дальнейшего выбора алгоритма
Главная функция проекта
(1) наиболее стабильная и неизменная часть проекта
(2) может меняться в процессе разработки
(3) у проекта может вообще не существовать главной функции
(4) проект может иметь несколько главных функций
Спецификация АТД включает разделы
(1) типов
(2) функций
(3) аксиом
Создание законченной программной системы предполагает
(1) создание множества классов
(2) выбор корневого класса
(3) замыкание системы по отношению к корневому классу
(4) выбор корневой процедуры создания
Присоединение y к x
(1) имеет место при присваивании y:=x
(2) имеет место при вызове подпрограммы, когда формальный аргумент x заменяется фактическим y
(3) использует x как цель
(4) использует y как цель
Сборщик мусора обязан
(1) собирать только недостижимые объекты
(2) на каждом цикле работы собирать все недостижимые объекты
(3) иметь возможность отключаться в критически важные для приложения интервалы времени
(4) удалять недостижимые объекты в момент их появления
Отметьте истинные высказывания
(1) эффективность является одним из важнейших факторов
(2) оптимизация ПО может оказаться излишней и повредить расширяемости
(3) нужно всегда стремиться к построению наиболее эффективного ПО
(4) линейный алгоритм со сложностью O(n) всегда работает быстрее квадратичного алгоритма со сложностью O(n2)
Отметьте истинные высказывания
(1) ограниченная универсальность предоставляет меньше возможностей в сравнении с общим случаем
(2) в языках без статической проверки типов универсализация не нужна
(3) статическая проверка типов не возможна при введении универсальных классов с родовыми параметрами
(4) родовые классы могут использоваться для описания общих контейнерных структур данных, реализуемых независимо от типа элементов, которые они содержат
Отметьте истинные высказывания
(1) инвариант реализации, – часть инварианта класса – выражает корректность представления классом соответствующего АТД
(2) утверждения служат четырем целям: помогают в конструировании корректных программ; помогают в создании документации, помогают в отладке, являются основой механизма исключений
(3) включение функций в состав утверждений позволяет сохранить аппликативный характер утверждений
(4) вариант цикла изменяет значение на каждом шаге выполнения цикла
Отметьте истинные высказывания
(1) обработка исключений – это механизм, позволяющий справиться с неожиданными условиями, возникшими в период выполнения
(2) программа получает исключение в результате: отказа вызванной ею программы, нарушения утверждений, сигналов аппаратуры или операционной системы об аномалиях, возникших в ходе их работы
(3) программная система может включать исключения, спроектированные разработчиком
(4) организованная паника неприемлема при обработке исключения
Отметьте истинные высказывания
(1) операции ввода-вывода поддерживаются специальными классами FILE и STD_FILES
(2) взаимодействие с внешним ПО разумно осуществлять на уровне компонентов
(3) обертывание чаще всего сводится к добавлению объектного интерфейса к необъектному содержанию
(4) фактические аргументы при вызове не могут быть выражениями
Отметьте истинные высказывания
(1) у отложенного класса нет инвариантов, а для отложенного компонента не может быть задано предусловие и постусловие
(2) тип создаваемого экземпляра в процедуре создания не может быть отложенным
(3) всякое изменение отложенного компонента должно сделать его эффективным
(4) повторное объявление компонента – означает определение или переопределение его реализации
Отметьте истинные высказывания
(1) класс, наследовавший две или более различные и эффективные версии компонента дублируемого предка и не переопределивший их, должен включить одну из них в предложение select
(2) механизм репликации при дублируемом наследовании не должен дублировать компоненты, включающие родовые параметры
(3) в ОО-среде синтаксическая перегрузка столь же полезна, как и семантическая перегрузка, поддерживаемая динамическим связыванием
(4) конфликты имен при множественном наследовании должны устраняться переименованием, выполняемым в родительских классах
Отметьте истинные высказывания
(1) утверждения дают глубокое понимание природы наследования
(2) при повторном использовании интерфейсов скрывается информация о реализации
(3) наследование и скрытие информации – это взаимозависимые механизмы
(4) компонент, доступный классу, может быть не доступен его потомкам
Отметьте истинные высказывания
(1) язык статически типизирован, если он поставляется с набором согласованных правил, проверяемых компилятором, соблюдение которых гарантирует, что выполнение системы не приведет к нарушению типов
(2) совместное действие ряда полезных механизмов наследования, статической типизации, скрытия потомком может приводить к некорректной работе системы; удачное решение этой проблемы еще не найдено
(3) статическое связывание и статическая типизация – это синонимичные понятия
(4) для классово-корректной системы не могут возникать нарушения типа в период выполнения системы
Отметьте истинные высказывания
(1) константы занимают память, также как и обычные атрибуты
(2) потомки могут переопределять значения атрибутов-констант
(3) класс не может экспортировать или скрывать константы
(4) однократные функции могут применяться для моделирования глобальных значений – "системных параметров"
Отметьте истинные высказывания
(1) родовые классы – это классы, для которых задан их род
(2) клиентом класса А является класс В, вызывающий компоненты класса А
(3) повторное наследование – это ситуация, при которой класс динамически получает нового родителя
(4) утверждения должны быть частью ПО и автоматически включаться в документацию
Отметьте истинные высказывания?
(1) минимальное число связей системы, состоящей из n модулей равно n
(2) наличие общего блока данных – это свидетельство выполнения правила слабой связности интерфейсов
(3) правило скрытия интерфейсов утверждает, что описание модуля должно содержать лишь описание некоторых свойств и методов модуля
(4) разработчик модуля должен стремиться к тому, чтобы вся информация о модуле содержалась в самом модуле
Отметьте истинные высказывания?
(1) универсальность решает все проблемы повторного использования
(2) перегрузка метода является синтаксическим средством; она не решает важных проблем повторного использования и затрудняет читабельность текстов программ
(3) решение проблемы "повторно использовать или переделать" должно позволять сохранять одни свойства повторно используемого модуля и адаптировать другие
(4) образцы, описанные в литературе, частично решают проблему повторного использования
Отметьте истинные высказывания
(1) подход сверху-вниз хорошо подходит для описания разработки
(2) при ОО-подходе проектируются объекты и не рассматриваются функции
(3) при проектировании модульной структуры объекты стабильнее функций
(4) архитектуру системы можно получить исходя из функций или из типов объектов
Отметьте истинные высказывания
(1) для получения эффективного класса требуется предусмотреть все детали реализации
(2) описание АТД основано на описании функций, применяемых к данным
(3) конструирование ОО ПО – это построение программной системы как структурированной совокупности реализаций (возможно частичных) абстрактных типов данных
(4) система представляет собой совокупность классов, без выделения какого-либо главного или ответственного класса или головной программы
Отметьте истинные высказывания
(1) класс одновременно не может служить модулем и типом
(2) базовым механизмом ОО вычислений является вызов целью компонентов класса, заданного целью
(3) сущность Result – это специальный атрибут, которым снабжаются все классы
(4) ОО-системы имеют децентрализованную архитектуру
Отметьте истинные высказывания
(1) базовые типы (BOOLEAN, CHARACTER, INTEGER, REAL, DOUBLE) определены как развернутые классы
(2) каждое поле объекта соответствует атрибуту генерирующего класса
(3) в момент выполнения системы не могут существовать пустые ссылки (не связанные с объектами)
(4) определение в классе процедур создания автоматически запрещает использование базовой инструкции создания
Отметьте истинные высказывания
(1) память безгранична
(2) в статическом режиме сущность может быть присоединена максимум к одному объекту в процессе выполнения программы
(3) множество оригиналов включает корневой объект системы
К внутренним факторам, влияющим на качество ПО относятся
(1) расширяемость
(2) совместимость
(3) модульность
(4) объектная ориентированность
(5) переносимость
Повторному использованию способствует объектный механизм родовых классов. Универсализация позволяет классу иметь?
(1) один и только один родовой параметр
(2) несколько родовых параметров
(3) родовые параметры, задающие типы
(4) родовые параметры, задающие функции
Триада Хоара
(1) устанавливает корректность программы безотносительно каких либо условий
(2) устанавливает корректность программы по отношению к ее предусловию
(3) устанавливает корректность программы по отношению к ее постусловию
(4) устанавливает корректность программы по отношению к ее предусловию и постусловию
Успех
(1) понятие, связанное с вызовом программы, - вызов, заканчивающийся в состоянии, удовлетворяющему контракту
(2) может возникнуть для некорректных программ
(3) понятие, противоположное понятию отказ
(4) всякое исключение означает невозможность достижения успеха
Обертывание – это?
(1) способ, при котором внешние (не объектные) программы заворачиваются в объектную упаковку, становясь частью классов
(2) попытка представить старую систему как новую, вводя в заблуждение пользователя
(3) преобразование нескольких классов в один новый класс
(4) способ сохранения корректности при разбиении класса
Наследник
(1) наследует все компоненты родителя
(2) может определить собственные (непосредственные) компоненты
(3) может переопределить атрибуты родителя
(4) может переопределить методы родителя
Дублируемое наследование
(1) это ситуация, при которой родительские классы имеют компоненты с одинаковыми именами или совпадающими реализациями
(2) это ситуация, при которой родительские классы имеют общих предков
(3) это ситуация, при которой идет наследование от одного и того же класса по разным путям наследования
(4) запрещено из-за возникающих конфликтов
Инвариант класса
(1) совпадает с собственным (непосредственным) инвариантом класса – конъюнкцией утверждений из его раздела invariant
(2) является конъюнкцией собственного инварианта класса и собственного инварианта родителя
(3) если у класса нет собственного инварианта, то инвариант True играет эту роль
(4) является конъюнкцией собственных инвариантов всех предков класса
Статическая типизация
(1) позволяет обнаруживать многие ошибки еще на этапе компиляции
(2) возможна только для ОО-языков
(3) позволяет установить динамический тип сущности
(4) анализирует состояние объектов в период выполнения
В ОО-системах глобальные объекты
(1) существуют
(2) не существуют
(3) могут быть смоделированы
(4) не нужны
Универсальный класс
(1) это класс, способный решать широкий спектр задач
(2) это класс с родовыми параметрами, представляющими собой типы
(3) класс, способный выполнять операции над данными разных типов
(4) синоним абстрактного класса
Верно ли, что различия между правилами, критериями и принципами модульности состоят в том, что
(1) критерии являются взаимно независимыми
(2) правила следуют из критериев
(3) правила следуют из принципов
(4) критерии следуют из принципов
Почему ПИК (Повторно Используемый Компонент) стоит использовать?
(1) импортный товар всегда лучше
(2) чаще всего, по экономическим причинам
(3) зачастую по причинам эффективности
(4) для удовлетворения привычек пользователя
Функциональная декомпозиция имеет следующие достоинства
(1) система строится на основе хорошо понятных последовательных уточнений
(2) уровень абстракции на каждом шаге уточнения уменьшается
(3) позволяет справиться со сложностью исходной задачи
(4) выделяет главную функцию системы
Спецификация АТД включает разделы
(1) типов
(2) функций
(3) аксиом
(4) предусловий
Метакласс - это?
(1) большой класс
(2) синоним понятия абстрактный класс
(3) класс, экземпляры которого сами являются классами
(4) класс, объекты которого сами являются классами
К какому понятию относятся высказывания: "понятие периода исполнения, однозначно идентифицирует объект, может быть пустой"?
(1) ссылки
(2) объекта
(3) сущности
(4) класса
Достоинствами и недостатками статического режима управления памятью являются?
(1) достоинством является эффективность реализации алгоритма
(2) недостатком является простота реализации алгоритма
(3) достоинством является запрет на создание динамических структур данных
(4) недостатком является препятствие рекурсии
Под расширяемостью ПО понимается?
(1) возможность сборки ПО из готовых компонентов
(2) легкость адаптации ПО к изменениям спецификации
(3) автоматическое развертывание кода модулей
Допустим, класс содержит инструкции: sf: STACK[Figure]; sb: STACK[Book]; f:Figure; b: Book; Какие инструкции допустимы в программах этого класса?
(1) sf.put(f)
(2) sb.put(b)
(3) b:= sb.item
(4) f:=sf.item
Общая техника контрактов неприменима
(1) к библиотечным классам
(2) к классам, осуществляющим вход исходных данных
(3) к классам, реализующим интерактивное взаимодействие с конечным пользователем
(4) к классам, получающим данные от внешних источников
Исключения могут возникать в результате следующих ситуаций
(1) постусловие не выполняется на выходе
(2) выполнение инструкции, явно включающей исключение
(3) квалифицированный вызов a.f, в ходе которого обнаруживается отсутствие компонента f цели a
(4) выполняется утверждение инструкции check
Вызов компонента
(1) всегда имеет цель вызова
(2) в форме x.f(…), где x – цель вызова, называется квалифицированным
(3) в форме f(…) называется неквалифицированным
(4) квалифицированный вызов всегда может быть преобразован в неквалифицированный
В присваивании P:= S
(1) типы P и S должны совпадать
(2) тип S может быть потомком типа P
(3) тип P может быть потомком типа S
(4) присваивание возможно и в ситуации, когда типы P и S не связаны отношением наследования
Если компоненты родителей имеют одинаковые имена, то при наследовании возникает конфликт имен. Этот конфликт разрешается за счет того, что?
(1) один из родителей должен переименовать конфликтующий компонент
(2) оба родителя должны переименовать конфликтующий компонент
(3) наследник должен произвести переименование, получив два компонента с разными именами
(4) наследник может выполнить склеивание компонентов – ситуация часто возникающая при дублируемом наследовании
Контракты и субподряды. Под субподрядом понимается создание класса – наследника существующего класса. Субподрядчик
(1) не вправе изменить существующий контракт
(2) обязан удовлетворить всем требованиям существующего контракта
(3) вправе улучшить для клиентов условия контракта
(4) может эффективнее выполнить работу, предусмотренную контрактом
Динамическое связывание
(1) позволяет связать цель вызова с вызываемым компонентом еще на этапе компиляции
(2) имеет тот же эффект, что и статическое связывание
(3) выбирает связываемый компонент из класса, соответствующего динамическому типу цели
(4) выбирает связываемый компонент из класса, соответствующего статическому типу цели
Однократная функция - это функция?
(1) вычисления однократного интеграла
(2) вызываемая только один раз
(3) удаляемая из класса после первого вызова
(4) вычисляющая результат при первом обращении и возвращающая ссылку на него при последующих вызовах
Наследование может быть?
(1) единичное
(2) множественное
(3) повторное
(4) многоязычное
К правилам для обеспечения модульности относятся
(1) скрытие информации
(2) непрерывность
(3) явные интерфейсы
(4) композиция
Что представляет собой наиболее приемлемый образец, полезный для повторного использования?
(1) сценарий решения проблемы
(2) спецификацию проблемы
(3) описание алгоритма
(4) компонент ПО
ОО-конструирование – это?
(1) метод разработки, строящий архитектуру программной системы на модулях, выведенных из типов объектов
(2) метод разработки, строящий архитектуру программной системы на функциях, которые эта система реализует
(3) метод разработки, в котором функции подчинены объектам
(4) метод разработки, в котором объекты подчинены функциям
Распределитель - это?
(1) системный администратор, распределяющий задания между исполнителями
(2) специальный вид контейнера данных, в котором клиент управляет размещением элементов
(3) специальный вид контейнера данных, в котором размещение элементов определяется внутренней дисциплиной
Модуль – это?
(1) семантическое понятие
(2) синтаксическое понятие
(3) класс в ОО-подходе
(4) структурный архитектурный элемент, из набора которых строятся программы
На основе изучения статического текста программы нельзя точно предсказать
(1) какие объекты будут созданы
(2) когда будут созданы новые объекты
(3) какие ссылки будут присоединены к объектам
(4) когда ранее присоединенные ссылки становятся пустыми
Для динамического режима управления памятью характерно?
(1) разделение общей памяти и появление динамических псевдонимов
(2) жесткий порядок размещения и удаления объектов
(3) простота алгоритма обнаружения и удаления недостижимых объектов
(4) динамическое связывание сущности с разными объектами в процессе выполнения
Повторное использование означает
(1) многократный вызов процедур и функций в пределах одного модуля
(2) многократный вызов процедур и функций в пределах одного приложения
(3) использование библиотек компонентов
(4) создание компонентов ПО, способных служить для построения различных приложений
Корректно использовать сущность x, чей тип задан формальным родовым параметром G, можно?
(1) в логических выражениях вида x = y или x /= y, где y также типа G
(2) в арифметических выражениях вида x+ y или x- y, где y также типа G
(3) как фактический аргумент в вызове подпрограммы на месте формальных параметров типа G, или типа ANY
(4) как цель вызова компонента класса ANY
Для двух стилей разработки характерно?
(1) для требовательного стиля – более жесткие требования к клиентам класса
(2) для толерантного стиля – более жесткие требования к поставщику
(3) профессиональная разработка предполагает требовательный стиль
(4) профессиональная разработка предполагает толерантный стиль
В случае, когда обработка исключения завершается отказом в обработчике исключения
(1) можно не выполнять никаких действий
(2) следует освободить занятые ресурсы
(3) следует восстановить состояние, удовлетворяющее инварианту
(4) обеспечить появление исключения у вызывающей программы
В инструкции цикла
(1) предложение from, задающее инициализацию, факультативно
(2) предложения invariant и variant, задающие инвариант и вариант цикла, факультативны
(3) предложение invariant обязательно, а предложение variant, - факультативно
(4) проверка условия окончания цикла в предложении until выполняется в конце цикла
Полиморфизм – это способность обладать несколькими формами. Полиморфными могут быть?
(1) сущности
(2) структуры данных
(3) присваивания и присоединения
(4) методы
Под репликацией понимается?
(1) размножение у наследника компонента, наследуемого от общего предка
(2) слияние компонента общего предка, наследуемого от разных родителей, в единый компонент
(3) переименование компонентов, наследуемых от общего предка
(4) переопределение компонентов, наследуемых от общего предка
Структура семейства классов такова, что?
(1) все классы имеют общего предка – класс General
(2) все классы имеют общего потомка – класс None
(3) общие свойства классов проекта задаются в классе Any – наследнике класса General
(4) разрешается в интересах эффективности изменять состав верхнего и нижнего классов иерархии - General и None
Классово-корректная система удовлетворяет следующим правилам
(1) для каждой сущности указан тип
(2) при присоединении тип источника согласован с типом цели
(3) при вызове вызываемый компонент должен быть объявлен в классе цели и доступен клиенту, осуществляющему вызов
(4) статический и динамический тип сущности должны совпадать
Разделяемые объекты
(1) создаются, используя специальные правила, заданные для каждого класса
(2) создаются обычной процедурой создания класса
(3) представляют собой обычную функцию, вызывающую процедуру создания
(4) представляют собой однократную функцию, вызывающую процедуру создания
Под скрытием информации понимается?
(1) скрытие спецификаций от пользователей
(2) скрытие реализации от пользователей
(3) недокументированные возможности ПО
(4) механизм, делающий определённые компоненты недоступными для клиентов
Система, удовлетворяющая критерию декомпозиции
(1) может быть разбита на относительно независимые подсистемы, допускающие самостоятельную разработку
(2) может быть разбита на полностью независимые подсистемы, допускающие самостоятельную разработку
(3) может быть разработана способом проектирования "сверху-вниз"
(4) допускает многократное применение приема декомпозиции
Перегрузка может быть?
(1) статической
(2) динамической
(3) экстраординарной
(4) многократной
При проектировании системы типов можно использовать?
(1) повторно используемые объекты
(2) объекты физической реальности, к которой применяется ПО
(3) объекты, описанные в литературе
(4) объекты солнечной системы
Стек может быть представлен?
(1) массивом, растущим вверх
(2) набором простых переменных
(3) массивом, растущим вниз
(4) односвязным списком
Атрибут класса - это?
(1) компонент класса
(2) метод класса
(3) поле класса
(4) часть структуры данных, представляющей объект
При ссылочном присваивании (левая и правая части присваивания являются ссылками)
(1) создается новый объект – копия объекта, присоединенного к ссылке правой части, и ссылка левой части присоединяется к этой копии
(2) ссылка левой части присоединяется к объекту, присоединенному к ссылке правой части, только если ссылка левой части имела значение void
(3) ссылка левой части разрывает связь с объектом, к которому она была присоединена, и присоединяется к объекту, присоединенному к ссылке правой части
(4) ссылка левой части сохраняет связь с объектом, к которому она была присоединена, и дополнительно связывается с объектом, присоединенным к ссылке правой части
Несерьезный подход в освобождении памяти может применяться?
(1) в системах, где создается небольшое число объектов
(2) в системах, ориентированных на работу в среде без сборщика мусора
(3) в системах реального времени
(4) в системах, где время жизни объектов совпадает с временем жизни работы приложения
Условная корректность ПО означает?
(1) корректность при условии, что все нижележащее ПО – библиотеки, компиляторы, среда разработки - корректны
(2) корректность при условии корректности спецификации
(3) возможность нарушения спецификаций в небольшом проценте ситуаций
(4) задание условий, при которых допустимо нарушение спецификаций
Эффективно реализованный механизм универсализации требует минимальных затрат
(1) времени компиляции
(2) размера сгенерированного кода
(3) времени выполнения
(4) памяти, требуемой для выполнения
Каждый цикл
(1) имеет единственный инвариант
(2) имеет множество инвариантов
(3) имеет инвариант, позволяющий доказать его корректность
(4) имеет инвариант, позволяющий доказать завершаемость цикла
Цепочкой вызовов, связанной с программой rn, вызвавшей появление исключения, называется?
(1) список всех программ, вызываемых в теле rn
(2) список всех программ, вызывающих rn
(3) список всех программ, начиная с rn, программы rn-1, непосредственно ее вызвавшей, вплоть до программы r0 – корневой программы
(4) список всех программ, начиная с r0, программы r1, непосредственно ее вызвавшей, вплоть до программы rn – корневой программы
Выражениями являются?
(1) сущности
(2) вызовы функций
(3) вызовы процедур
Расширение или специализация
(1) наследование классов, рассматриваемое как наследование типов, является специализацией
(2) наследование классов, рассматриваемое как наследование модулей, является расширением
(3) экземпляры родительского класса являются экземплярами классов потомков
(4) у экземпляров потомков свойств и методов может быть больше, чем у экземпляров родительского класса
Финальным именем компонента является?
(1) для непосредственного компонента – имя, под которым оно объявлено
(2) для наследуемого компонента без переименования – финальное имя компонента (рекурсивно) в том родительском классе, от которого оно унаследовано
(3) в случае конфликта имен – имя, полученное слиянием конфликтующих имен
(4) для переименованного компонента – имя, полученное при переименовании
Закрепленное объявление – это способ?
(1) абсолютного объявления типа
(2) относительного объявления типа
(3) при котором тип сущности объявляется подобным типу опорного элемента
(4) при котором изменение типа опорного элемента приводит к изменению типов всех закрепленных сущностей
Некорректное использование типов может возникнуть из-за?
(1) конфликта между статической типизацией и ковариантностью
(2) конфликта между статической типизацией и динамическим связыванием
(3) конфликта между статической типизацией и скрытием потомком
(4) конфликта между статической типизацией и статическим связыванием
Однократные функции
(1) всегда безопасны
(2) всегда безопасны, если их значения принадлежат базовым типам
(3) потенциально несовместимы с механизмом закрепления типов
(4) потенциально несовместимы с механизмом универсальности
Под бесшовностью понимается?
(1) процесс разработки ПО из готовых компонентов
(2) использование одного языка программирования для разработки всех компонентов ПО
(3) использование одних и тех же ОО-механизмов на всех этапах жизненного цикла создания ПО - проектирования, разработки, сопровождения
(4) использование специальной технологии "NoShow"
Правило минимума интерфейсов предполагает, что?
(1) объем передаваемой информации каждым модулем минимален
(2) у каждого модуля системы число связей минимально
(3) заданы ограничения на пропускную способность каналов, по которым идет обмен информацией между модулями
Проблемы повторного использования связаны с?
(1) изменчивостью типов
(2) вариацией представлений
(3) взаимозависимостью операций
(4) непрерывностью представлений
Главный вопрос, который следует задавать при проектировании системы - это?
(1) что за функции выполняет система
(2) кто выполняет функции системы
(3) зачем выполнять функции системы
(4) какова стоимость выполнения функций системы
АТД, классы и скрытие информации
(1) все, что входит в АТД, никогда не скрывается и представляет интерфейс класса
(2) представление данных никогда не скрывается
(3) реализация данных обычно скрывается
(4) аксиомы АТД всегда скрываются
Клиенту класса должны быть доступны
(1) все компоненты класса-поставщика
(2) только компоненты, экспортируемые данному клиенту
(3) все компоненты, экспортируемые любому из клиентов
(4) все компоненты, за исключением тех, что экспортируются наследникам класса
Под динамическими псевдонимами понимается?
(1) существование двух или более объектов с одинаковыми значениями полей
(2) существование двух или более сущностей с одинаковыми именами
(3) существование двух или более сущностей, присоединенных к одному и тому же объекту
(4) существование двух или более объектов, связанных с одной и той же сущностью
Если с каждым объектом хранится счетчик ссылок, обновляемый при выполнении операций присоединения и отсоединения, то?
(1) нулевое значение счетчика указывает на недостижимость объекта
(2) нулевое значение счетчика указывает на достижимость объекта
(3) ненулевое значение счетчика указывает на недостижимость объекта
(4) ненулевое значение счетчика указывает на достижимость объекта
Отметьте истинные высказывания
(1) система должна выполнять свои задачи и в аварийных ситуациях, выходящих за пределы спецификаций
(2) после того, как спецификации к системе сформулированы, они замораживаются до момента завершения процесса разработки системы
(3) децентрализация модулей улучшает расширяемость ПО
(4) своевременность – это выпуск ПО в тот момент, когда появляется в нем необходимость
Отметьте истинные высказывания
(1) механизм ограниченной универсальности поддерживается механизмом наследования
(2) универсализация требуется только в типизированном языке, гарантирующем статически проверяемую безопасность типов
(3) единственные допустимые операции над сущностью, чей тип является формальным родовым параметром, это операции, применимые к любому типу
(4) статическая типизация облегчает читаемость и повышает надежность программы
Отметьте истинные высказывания
(1) компонент, появляющийся в предусловии программы, должен быть доступен каждому клиенту, которому доступна сама программа
(2) метод с предусловием False бесполезен для клиентов
(3) инварианты класса позволяют выражать только свойства и отношения между атрибутами класса
(4) класс описывает все возможные реализации АТД
Отметьте истинные высказывания?
(1) программа во время ее выполнения имеет право нарушать инварианты
(2) при обработке исключения возможен подъем по цепочке вызовов
(3) отказ возникает только тогда, когда предложение rescue не завершается инструкцией retry
(4) исключения могут быть следствием аппаратных прерываний
Отметьте истинные высказывания
(1) Current является синтаксически выражением, а не сущностью, потому ему нельзя присвоить значение
(2) нестрогие булевы операции не требуют определенности всех операндов
(3) присваивание строк s1:= s2 имеет ссылочную семантику с разделением значения
(4) регистр в идентификаторах не учитывается
Отметьте истинные высказывания
(1) полностью отложенный класс соответствует АТД
(2) если наследник переопределил метод родителя, то вызвать родительский метод у потомка не представляется возможным
(3) если результат статического связывания не совпадает с результатом динамического связывания, то семантически некорректным является статическое связывание
(4) наследование позволяет определять новые классы либо как расширение, либо как специализацию
Отметьте истинные высказывания
(1) версии дублируемого потомка, наследуемые под разными именами, представляют разные компоненты, являясь репликациями оригинала дублируемого предка
(2) класс, наследующий от разных родителей различные компоненты с идентичным именем, не корректен
(3) у корректных родителей наследники всегда корректны
(4) любой конфликт переопределений должен быть разрешен посредством select
Отметьте истинные высказывания
(1) у клиента нет возможности контроля изменения семантики операций создателями классов, пользующимися повторными объявлениями и динамическим связыванием
(2) повторное объявление должно удовлетворять утверждениям оригинальной подпрограммы
(3) попытка присваивания может заменить динамическое связывание
(4) при повторном использовании реализаций информация скрывается
Отметьте истинные высказывания
(1) нарушение типа в момент вызова x.f (arg), где x присоединен к объекту OBJ, не возникает, если существует компонент, соответствующий f и применимый к OBJ
(2) статическая типизация позволяет обнаружить нарушения типа в момент выполнения системы
(3) полиморфизм не дает возможности осуществить статическое связывание
(4) наследование позволяет перейти от жесткого требования совпадения типов источника и цели к мягкому требованию соответствия типов
Отметьте истинные высказывания
(1) константам не требуется ни память, ни время на их вычисление в период выполнения
(2) однократные процедуры могут применяться для инициализации общесистемного свойства, когда заранее неизвестно, какому компоненту это свойство понадобится первому
(3) тип результата однократной функции не может быть закреплен и не может включать любой родовой параметр
(4) разделяемые объекты могут быть реализованы как однократные функции. Можно использовать инвариант для указания их константности
Отметьте истинные высказывания
(1) компонент может быть доступным одним клиентам и скрыт для других
(2) для того чтобы типизация была практичной, необходимо иметь возможность определять классы с параметрами, задающими тип
(3) предки и потомки могут обмениваться компонентами при наследовании
(4) потомок не может изменять реализацию наследованного им компонента
Отметьте истинные высказывания?
(1) всякое общение двух модулей A и B между собой должно быть очевидным и отражаться в тексте A и/или B
(2) источником межмодульной связи может быть совместное использование данных
(3) на этапах проектирования и разработки должны использоваться различные языки
(4) программное обеспечение и документация к нему должны разрабатываться независимо
(5) принцип Открыт-Закрыт противоречив и удовлетворить ему реально невозможно
Отметьте истинные высказывания?
(1) метод нисходящего проектирования обеспечивает декомпозицию системы на подпрограммы
(2) пакеты можно рассматривать как абстрактные модули
(3) знаки операций могут быть перегруженными
(4) синдромы NIH и HIN препятствуют повторному использованию
Отметьте истинные высказывания
(1) вычисление включает три вида ингредиентов: потоки управления, функции и данные
(2) на ранних стадиях проектирования и разработки системы нужно уделять много внимания ограничениям на порядок действий
(3) естественно считать, что задача системы состоит в реализации только одной функции
(4) между типами объектов могут существовать два вида отношений: "быть клиентом" и наследование
Отметьте истинные высказывания
(1) для конструирования программ нужны не сами по себе АТД (как математическое понятие), а реализации АТД – программистское понятие
(2) задание спецификаций соответствует этапу анализа системы
(3) задание представлений соответствует этапу проектирования системы
(4) задание реализаций функций соответствует этапу реализации системы
Отметьте истинные высказывания
(1) для каждого вызова должна быть явно указана его цель
(2) сущность и объект – это синонимичные понятия
(3) атрибуты доступны только для чтения
(4) селективный экспорт позволяет группе концептуально связанных классов обеспечить друг другу доступ ко всем своим компонентам, скрыв их от остального мира
Отметьте истинные высказывания
(1) развернутый клиент не может быть своим клиентом
(2) вызов компонента для пустой ссылки приводит к ошибке в период выполнения
(3) пустые ссылки не считаются эквивалентными
(4) поле объекта является объектом или ссылкой
Отметьте истинные высказывания
(1) объект, созданный программистом, им же и должен быть удален
(2) алгоритм удаления объектов, основанный на счетчике ссылок обладает полнотой
(3) реальное восстановление предполагает возвращение свободной памяти в распоряжение операционной системы
(4) сборка мусора поколений позволяет сократить временные затраты сборщика мусора
Кривые Осмонда характеризуют
(1) эффективность разработки ПО
(2) корректность разработки ПО
(3) различные подходы к проектированию ПО, основанные на приоритете различных факторов
(4) вклад различных факторов на сопровождение ПО
Безопасность типов и повторное использование приводят к конфликту интересов. Этот конфликт
(1) разрешается за счет того, что при статической типизации запрещаются родовые параметры
(2) разрешается за счет того, что при введении универсализации запрещается статическая проверка типов
(3) неразрешим
(4) удается разрешить, сохранив статическую проверку типов и универсализацию
Укажите истинные триады Хоара
(1) {x>100} x:= -x; {abs(x) >10}
(2) {x>100} x:= x+ 10; {x >101}
(3) {x>100} x:= -x; {x < -100}
(4) {x>100} x:= x-90; {abs(x) <10}
Исключение
(1) приводит к прерыванию нормального процесса вычислений
(2) может служить причиной отказа
(3) может привести в конечном счете к успеху
(4) возникает всегда, когда в программе есть ошибка
Гибридный язык
(1) язык, в основе которого лежат идеи нескольких языков
(2) необъектный язык, дополненный ОО-механизмами
(3) универсальный язык, обладающий преимуществами старых и новых языков
(4) результат неудачного языкотворчества
Инвариант класса
(1) совпадает с собственным (непосредственным) инвариантом класса – конъюнкцией утверждений из его раздела invariant
(2) является конъюнкцией собственного инварианта класса и собственного инварианта одного родителя
(3) совпадает с инвариантом родителя
(4) является конъюнкцией утверждений из его раздела invariant и свойств инвариантов его родителей (если таковые имеются)
Браком по расчету называется такое множественное наследование, когда?
(1) один класс предоставляет атрибуты (данные), а другой – процедуры и функции (действия)
(2) один класс является красивым, а другой – богатым
(3) один класс предоставляет спецификации, а другой – возможности их реализации
(4) когда получено одобрение предков на множественное наследование
Если наследник повторно объявляет компонент родителя, то, чтобы не обмануть клиентов, он должен
(1) усилить или сохранить предусловие компонента
(2) усилить или сохранить постусловие компонента
(3) ослабить или сохранить предусловие компонента
(4) ослабить или сохранить постусловие компонента
Динамическая типизация
(1) позволяет обнаруживать многие ошибки еще на этапе компиляции
(2) возможна только для ОО-языков
(3) позволяет установить динамический тип сущности
(4) анализирует состояние объектов в период выполнения
Константы встроенных типов
(1) могут быть символическими (именованными)
(2) могут быть манифестными (заданными значением)
(3) в принятой нотации объявляются так: Pi : REAL is 3.1415926524
(4) в принятой нотации объявляются так: const Pi = 3.1415926524
Живучесть - это?
(1) способность ПО работать в условиях, когда нарушаются спецификации
(2) возможность сохранения состояния объекта
(3) возможность сохранения состояния объекта с одновременным сохранением всех связанных объектов
(4) свойство класса, позволяющее сохранять его методы и свойства
К принципам модульности относятся
(1) декомпозиция
(2) слабая связность
(3) единственный выбор
(4) принцип лингвистических единиц
Нужно ли создавать ПИК в процессе разработки системы?
(1) всегда да, поскольку это удешевляет и убыстряет процесс ее создания
(2) всегда нет, поскольку это удорожает и замедляет процесс ее создания
(3) всегда да, при наличии большого опыта
(4) только при наличии большого опыта и экономических предпосылок
Функциональная декомпозиция имеет следующие ограничения
(1) реальная система имеет широкий спектр сервисов, среди которых трудно выделить главную функцию
(2) не способствует поддержке расширяемости
(3) плохо согласуется с предыдущими версиями
(4) не поддерживает самодокументирование
В описании АТД функции разделяются на следующие категории
(1) запросы
(2) ответы
(3) конструкторы
(4) команды
Объект - это?
(1) статическая структура
(2) программный текст
(3) динамическая структура, создаваемая в момент выполнения
(4) экземпляр класса
К какому понятию относятся высказывания: "статическое понятие, применимое к тексту, идентификатор, имеет значение в период выполнения"?
(1) ссылки
(2) объекта
(3) сущности
(4) класса
Достоинствами и недостатками стекового режима управления памятью являются?
(1) достоинством является возможность динамического присоединения к сущности разных объектов
(2) достоинством является возможность удаления объектов
(3) недостатком является жесткий порядок размещения и удаления объектов
(4) достоинством является невозможность появления динамических псевдонимов
Документация
(1) является самостоятельным фактором качества ПО
(2) может быть внешней, ориентированной на пользователя
(3) может быть внутренней, ориентированной на разработчиков
(4) должна быть неотъемлемой частью ПО
Универсальный класс – это?
(1) синоним родового класса
(2) синоним параметризованного класса
(3) класс с параметрами, заданными типами
(4) класс, позволяющий решить проблему универсализации
Частью контракта, заключаемого между классом-поставщиком и классами, являющимися его клиентами, является ?
(1) гарантия клиентами выполнения всех предусловий методов класса в каждый момент выполнения клиентской программы
(2) проверка предусловия в методе класса в тот момент, когда клиент вызывает этот метод
(3) выполнение предусловия в клиентской программе непосредственно перед вызовом метода
(4) проверка предусловия в клиентской программе непосредственно перед вызовом метода и проверка постусловия сразу же по завершении метода
Исключения могут возникать в результате следующих ситуаций
(1) текущий объект получил значение void
(2) присоединение значения void к развернутой цели
(3) выполнение невозможной или запрещенной операции, обнаруживаемое аппаратно или операционной системой
(4) инвариант класса не выполняется на входе или выходе
Замена формальных аргументов фактическими при вызове метода
(1) имеет семантику присваивания
(2) называется операцией присоединения
(3) имеет семантику передачи аргументов по значению, запрещая в связи с этим явную модификацию формальных аргументов (использование их в левых частях операторов присваивания, в процедурах создания)
(4) не требует соответствия аргументов по числу и типам
Класс наследник
(1) не наследует конструкторы своего родителя
(2) наследует все компоненты родителя
(3) конструкторы родителя наследуются, но они не сохраняют статус конструкторов
(4) каждый класс должен определить собственный набор конструкторов
Один и тот же класс
(1) может быть родителем самых разных классов, предоставляя всем своим наследникам полезные свойства (сохраняемость, сравнимость и т.д.)
(2) может быть родителем самых разных классов, предоставляя всем своим наследникам полезные функции (возможность выполнения арифметических операций и т.д.)
(3) может быть общим предком всех классов
(4) не может быть родителем нескольких классов
Замораживание компонента означает?
(1) сохранение его интерфейса с возможностью изменений в скрытой части
(2) сохранение спецификаций потомком
(3) запрет потомкам изменять реализацию компонента
(4) запрет на переименование
Статическое связывание
(1) позволяет связать цель вызова с вызываемым компонентом еще на этапе компиляции
(2) имеет тот же эффект, что и динамическое связывание
(3) выбирает связываемый компонент из класса, соответствующего динамическому типу цели
(4) выбирает связываемый компонент из класса, соответствующего статическому типу цели
Константы
(1) разных классов объявляются в самих классах
(2) собираются вместе в специальных классах, предоставляющих этот набор другим классам
(3) классы, которым требуются константы, как правило являются наследниками специальных классов с набором констант
(4) классы, которым требуются константы, как правило являются клиентами специальных классов с набором констант
Сборка мусора – это?
(1) удаление модулей, не вызываемых в текущей сессии работы ПО
(2) удаление методов класса сразу после их вызова
(3) удаление объекта сразу после того, как с ним разорвана связь
(4) автоматическое удаление неиспользуемых объектов
(5) обязанность программиста периодически освобождать память, отводимую объектам
Принцип Открыт-Закрыт предполагает, что
(1) модуль является либо открытым, либо закрытым
(2) модуль всегда должен быть открытым для изменений
(3) уже работающий модуль всегда должен быть закрытым
(4) ОО-механизмы (наследование) позволяет построить систему, удовлетворяющему этому принципу
Что можно повторно использовать?
(1) персонал
(2) спецификации
(3) текст
(4) программный код
Проектирование интерфейса пользователя
(1) должно выполняться на самых ранних этапах ОО-проектирования
(2) должно выполняться на поздних этапах ОО-проектирования
(3) в процессе проектирования каждого класса
(4) после завершения проектирования основных классов
В основе спецификации должно лежать
(1) конкретное представление данных
(2) реализация функций, выполняемых над данными
(3) набор функций, заданных их сигнатурой и их формальными свойствами
(4) набор интерфейсов для работы пользователя с объектами
Функция всегда
(1) возвращает результат
(2) имеет аргументы
(3) требует вычислений
(4) возвращает значение атрибута
Прямые или косвенные ссылки объектов на самих себя в динамических структурах
(1) возможны, только если клиентские отношения между соответствующими классами также содержат прямые или косвенные циклы
(2) возможны только прямые циклы
(3) возможны, только косвенные циклы
(4) невозможны
Отсоединение
(1) необходимость в нем возникает как для сущностей ссылочного, так и развернутого типа
(2) необходимость в нем возникает при выполнении присваивания
(3) необходимость в нем возникает при завершении вызова подпрограмм
(4) необходимость в нем может возникнуть при выполнении инструкции создания
При сопровождении два основных фактора, определяющих затраты, связаны с?
(1) построением документации
(2) изменением требований пользователя
(3) улучшением эффективности
(4) изменением в формате данных
(5) отладкой оставшихся ошибок
Наследование и универсализация
(1) это конкурирующие механизмы
(2) это взаимно-дополняющие механизмы
(3) работа одного из этих механизмов требует присутствия другого механизма
(4) работа одного из этих механизмов исключает присутствие другого механизма
Неверное решение, принятое при разработке программной системы, классифицируется как
(1) ошибка
(2) дефект
(3) жучок
(4) неисправность
Дисциплинированная обработка исключения должна завершаться одной из следующих ситуаций
(1) отказом
(2) повторением работы тела метода
(3) уведомлением о возникшем исключении и продолжением работы
(4) исправлением ситуации и возвращением в точку возникновения исключения
В инструкции множественного выбора inspect e when vi … else … end
(1) ветвь else может быть факультативной
(2) выражение е может быть строкой символов
(3) может возникнуть исключение, когда ветвь else отсутствует и не найдено соответствие между e и проверяемыми значениями v
(4) для каждой ветви указывается ровно одна выполняемая инструкция
Полиморфное присоединение (присваивание, замена формального аргумента фактическим) допускается?
(1) только для ссылок
(2) только для развернутого типа
(3) для ссылок и для развернутого типа
(4) вообще не допускается
При дублируемом наследовании компонент многократно наследуется от общего предка. Какие ситуации приводят к конфликтам и должны быть разрешены?
(1) компонент с одной и той же реализацией и одним и тем же именем приходит от разных родителей
(2) от одного родителя приходит эффективный компонент, от другого отложенный, их имена совпадают
(3) родители предоставляют эффективные компоненты, имена компонентов различны
(4) родители предоставляют эффективные компоненты, имена компонентов совпадают, наследник переопределяет реализацию компонента
Ограничение универсальности
(1) означает, что при родовом порождении фактический параметр не может быть произвольного типа
(2) дает возможность задавать в качестве фактического параметра тип с заданным набором операций
(3) ограничивает возможности работы с объектами в сравнении с неограниченной универсальностью
(4) позволяет расширить набор операций, допустимых при работе с объектами
Системно-корректная система - это?
(1) классово-корректная система
(2) система, при выполнении которой не происходит нарушения типов
(3) классово-корректная система, дополненная правилом запрета полиморфных кэтколлов
(4) система, недостижимая на практике
Создание разделяемых объектов и разделяемых констант отличается тем, что?
(1) ничем не отличается
(2) для констант задаются инварианты, запрещающие изменять их значения
(3) как константы, так и разделяемые объекты являются константными ссылками
(4) в отличие от констант значения полей ссылки для разделяемых объектов изменяются в процессе работы
Полиморфизм - это?
(1) существование нескольких реализаций метода класса
(2) способность присоединять к сущности объекты различных возможных типов
(3) способность присоединять к сущности значение void
(4) возможность управлять объектами, тип которых не известен
Критерий непрерывности требует, чтобы
(1) разработка классов системы велась непрерывно
(2) модули системы можно было непрерывно открывать и закрывать
(3) малым изменениям спецификации системы соответствовало малое изменение ее реализации
(4) если объем текста изменений в спецификации имеет размер в N слов, то объем кода внесенных изменений, выраженный в байтах, должен иметь порядок O(N)
Роль универсальности в повторном использовании в том, что она...
(1) позволяет справиться с проблемой изменчивости типов
(2) позволяет справиться с проблемой изменчивости реализаций
(3) позволяет справиться с проблемой независимости представлений
(4) взаимозависимости операций
Девиз ОО-разработки
(1) не спрашивай вначале, кто в системе это делает; спроси, что система делает
(2) не спрашивай вначале, кто в системе это делает; спроси, зачем он это делает
(3) не спрашивай вначале, что система делает; спроси, кто в системе это делает
(4) не спрашивай вначале, что система делает; спроси, насколько хорошо она это делает
Спецификация
(1) задает множество правильно построенных выражений
(2) может быть неполной
(3) может быть противоречивой
(4) выражения, строящиеся на основе АТД, могут быть некорректными
Тип - это?
(1) семантическое понятие
(2) синтаксическое понятие
(3) класс в ОО-подходе
(4) множество объектов, над которыми определено заданное множество операций
При клонировании
(1) создается копия существующего объекта
(2) изменяется состояние существующего объекта
(3) при глубоком клонировании может создаваться несколько новых объектов
(4) при поверхностном клонировании копируется только открытая часть объекта
Достижимыми являются объекты?
(1) напрямую присоединенные к сущностям
(2) объекты, у которых счетчик ссылок больше нуля
(3) объекты, непосредственно зависимые от объектов, напрямую присоединенных к сущностям
(4) объекты, косвенно зависимые от объектов, напрямую присоединенных к сущностям
Выделите четыре основных фактора, влияющих на качество ПО
(1) функциональность
(2) устойчивость
(3) простота использования
(4) повторное использование
(5) своевременность
(6) самодокументируемость
(7) корректность
(8) расширяемость
Допустим, класс содержит инструкции: sf: STACK[Figure]; sb: STACK[Book]; f:Figure; b: Book; Какие инструкции допустимы в программах этого класса?
(1) f:= b
(2) b:= sf.item
(3) sf.put(b)
(4) sf.put(sf.item)
Если процедуры создания корректны (по их завершению выполняются все инварианты класса) и каждый из экспортируемых методов сохраняет инварианты, то?
(1) гарантируется выполнение инвариантов во все стабильные моменты
(2) эти условия еще не гарантируют выполнение инвариантов во все стабильные моменты
(3) гарантируется выполнение инвариантов во все стабильные моменты для программ без циклов
(4) гарантируется выполнение инвариантов во все стабильные моменты для программ без динамических псевдонимов
Организованная паника
(1) это один из двух нормальных способов завершения работы обработчика исключения
(2) подразумевает отказ для вызванного метода
(3) завершает работу вызванного метода и всего приложения
(4) означает, что приложение работает некорректно
Вызовы функций
(1) имеют такой же синтаксис, как и вызовы процедур
(2) могут быть только квалифицированными
(3) допускают нотацию с многоточием в виде: b.h(u, v).i.j(x, y, …)
(4) правило квалифицированного вызова применимо к вызовам функций
Отложенный компонент, отложенный класс
(1) компонент является отложенным, если его реализация возлагается на потомка
(2) компонент является отложенным, если потомок переопределил реализацию, заданную его родителем
(3) класс является отложенным, если он имеет хотя бы один отложенный компонент
(4) класс является отложенным, если все его компоненты отложены
Конфликт имен делает класс некорректным за исключением следующих случаев
(1) оба компонента унаследованы от общего предка, и ни один из них не получен повторным объявлением версии предка
(2) оба компонента имеют совместимые сигнатуры, и, по крайней мере, один из них наследуется в отложенной форме
(3) оба компонента имеют различные сигнатуры, и оба эффективны
(4) оба компонента имеют совместимые сигнатуры и переопределяются в новом классе
Экспорт и наследование
(1) экспорт компонентов может быть выборочным; тот или иной компонент можно экспортировать одному или нескольким клиентам
(2) экспорт компонента клиенту еще не означает, что компонент экспортируется всем потомкам этого клиента
(3) экспорт компонента клиенту означает, что компонент экспортируется всем потомкам этого клиента
(4) все компоненты класса должны быть доступны его потомкам
Возрастающая перекомпиляция
(1) компиляция проекта с возрастающей скоростью
(2) последовательная компиляция классов проекта
(3) параллельная компиляция классов проекта
(4) компиляция только тех компонентов, в которых были сделаны изменения и зависимых от них
Строковые константы
(1) являются разделяемыми объектами
(2) являются такими же константами, как и константы других базовых типов
(3) допускают изменение символов строки
(4) могут использоваться как выражения при передаче аргументов или присваивании
При ОО-вычислениях
(1) допустим широкий спектр организации вычислений
(2) разрешается использовать глобальные сущности
(3) разрешается вызывать глобальные методы, не принадлежащие конкретному классу
(4) допустим единственный механизм – вызов объектом своего метода и свойства
(5) методу могут передаваться аргументы в момент его вызова объектом
Принцип единственного выбора предполагает, что?
(1) в каждом методе должен встречаться единственный оператор выбора
(2) список выбора возможных вариантов должен быть известен лишь одному модулю
(3) список выбора возможных вариантов должен быть известен хотя бы одному модулю
(4) запрещено каждому модулю иметь доступ к любой информации, которая не является безусловно необходимой для его надлежащего функционирования
Форматом распространения ПИК, допускающим расширения, является
(1) исходный текст на языке программирования
(2) двоичный код исполняемого модуля
(3) код на промежуточном языке
(4) двоичный код исполняемого модуля и описание интерфейса
При описании типов объектов следует руководствоваться требованиями
(1) независимости описаний от спецификаций
(2) независимости описаний от представлений
(3) первоочередного задания структуры данных
(4) нахождения для описания функций подходящего места в архитектуре системы
Чтобы АТД превратить в эффективный класс необходимо?
(1) выбрать представление данных
(2) отобразить множество функций АТД в компоненты класса
(3) в соответствии с выбранным представлением задать реализацию компонентов, удовлетворяющую аксиомам
(4) провести формальное доказательство соответствия реализации и аксиом АТД
Согласно принципу унифицированного доступа клиент не может отличить
(1) вызов атрибута от вызова метода
(2) вызов атрибута от вызова функции
(3) вызов функции от вызова процедуры
(4) вызов атрибута от вызова функции без аргументов
Развернутый тип позволяет?
(1) улучшить эффективность
(2) экономить память
(3) обеспечить лучшее моделирование реального мира
(4) поддержать базовые типы
Работа по освобождении памяти, занятой недостижимыми объектами может вестись на уровне
(1) приложения
(2) отдельной процедуры
(3) компилятора
(4) исполнительной среды
Отметьте истинные высказывания
(1) под надежностью ПО понимают его корректность и устойчивость
(2) под модульностью ПО понимают расширяемость и повторное использование
(3) разработчики ПО не должны думать о его сопровождении
Отметьте истинные высказывания
(1) клиент родового класса должен предоставлять фактические типы для формальных параметров
(2) форма универсализации, где формальный родовой параметр уже не может быть произвольным типом, а является типом, гарантирующим предоставление ряда операций, называется ограниченной универсализацией
(3) фактический тип при родовом порождении может быть типом, полученным в результате родового порождения
(4) реализация универсальности предполагает фактическое создание классов при родовом порождении и приводит к увеличению программного кода
Отметьте истинные высказывания
(1) утверждения задают семантику класса
(2) инвариант класса это утверждение, выражающее общие согласованные ограничения, применимые к каждому экземпляру класса, как целому
(3) для модулей, чьими клиентами являются другие программные модули, требовательный подход обычно является правильным выбором
(4) предусловия должны описываться в терминах реализации метода
Отметьте истинные высказывания?
(1) несмотря на возникающие исключения и отказы работа приложения может завершиться успехом
(2) отказ в работе всего приложения происходит тогда, когда при обработке возникшего исключения происходят отказы для всех программ из цепочки вызовов
(3) отказ в работе всего приложения происходит тогда, когда при обработке возникшего исключения происходит отказ хотя бы для одной из программ цепочки вызовов
(4) механизм исключений противоречит механизму контрактов
Отметьте истинные высказывания
(1) объектная технология может служить в качестве механизма упаковки наследуемого ПО
(2) подпрограммы могут модифицировать свои аргументы
(3) Current - выражение, обозначающее текущий экземпляр
(4) синтаксис значения неименованной константы позволяет определить ее тип
Отметьте истинные высказывания
(1) вызов динамически связываемого компонента можно реализовать за константное время
(2) эффективный компонент – это компонент, снабженный реализацией
(3) программой с дырами называется еще не завершенная программа или программа, в которой обнаружены ошибки
(4) наследование является ключевым механизмом повторного использования и расширяемости
Отметьте истинные высказывания
(1) при вызове родительской версии компонента в случаях неоднозначности конструкцию Precursor следует уточнить указанием имени родительского класса
(2) в самых простых и наиболее общих случаях множественного наследования два родителя представляют независимые абстракции
(3) множественное наследование не используется для создания повторно используемых библиотек
(4) среди родителей класса должен быть хотя бы один эффективный класс
Отметьте истинные высказывания?
(1) лишь понимание принципов Проектирования по Контракту позволяет в полной мере постичь сущность концепции наследования
(2) экспорт определяет отношения между классом и его потомками
(3) при повторном использовании интерфейсов реализация не защищена
(4) заморозив компонент, можно гарантировать его семантическую уникальность
Отметьте истинные высказывания
(1) в ряде случаев универсальность требуется ограничить
(2) приведение типа (кастинг) препятствует строгой статической типизации
(3) задачи типизации и связывания могут быть решены только статически
(4) задачи типизации и связывания могут быть решены только динамически
Отметьте истинные высказывания
(1) манифестные константы базовых типов можно объявлять как константные атрибуты, не требующие памяти в объектах
(2) строковые константы нарушают принципы скрытия информации
(3) в ОО-системах не используется глобальный способ передачи информации
(4) однократные процедуры используются для инициализации свойств
Отметьте истинные высказывания
(1) в ситуациях, где допустима операция присваивания, допустима и операция попытка присваивания
(2) если класс является отложенным, – он считается эффективным
(3) сборщик мусора - это компонент системы периода выполнения
(4) ОО-модель не пригодна для задачи создания графического интерфейса
Отметьте истинные высказывания?
(1) выбор надлежащей структуры модуля является ключом к достижению целей его возможного повторного использования и расширяемости
(2) принципы модульности применимы на этапах спецификации и проектирования, но не применимы к реализации ПО
(3) скрытие информации приводит к необходимости строгого разделения интерфейса и реализации
(4) для эффективного руководства проектом следует поддерживать модули, являющиеся одновременно как открытыми, так и закрытыми
Отметьте истинное высказывание
(1) на создание ПИК требуются дополнительные затраты
(2) подпрограммы удовлетворяют всем потребностям повторного использования
(3) пакеты удовлетворяют всем потребностям повторного использования
Отметьте истинные высказывания
(1) в классической объектной технологии имеются только два отношения между типами объектов: быть клиентом и быть наследником
(2) отношение наследования покрывает многочисленные формы специализации
(3) описание, основанное на анализе функций системы с течением времени обеспечивает лучшую устойчивость и лучшие возможности для повторного использования, чем описание, основанное на типах объектов
(4) функциональное проектирование сверху вниз не подходит для программных систем с долгим жизненным циклом, включающим их изменения и повторное использование
Отметьте истинные высказывания
(1) спецификация абстрактного типа данных является текстом программы
(2) АТД не может быть родовым
(3) ОО-система – это совокупность классов. Каждый класс основан на некотором абстрактном типе данных и задает частичную или полную реализацию этого АТД
(4) класс является эффективным, если он полностью реализован, в противном случае он называется отложенным
Отметьте истинные высказывания
(1) законченная система содержит корневой класс и все классы, которые необходимы корневому прямо или косвенно через клиентские отношения или наследование
(2) каждая операция при ОО-вычислениях связана с определенным объектом – текущим экземпляром на момент выполнения операции
(3) неквалифицированным называется некорректный вызов компонента
(4) предопределенная сущность Result задает значение, возвращаемое функцией
Отметьте истинные высказывания
(1) при порождающем вызове создается новый объект с инициализацией полей, отличной от значений по умолчанию
(2) сущность развернутого типа не может быть пустой ссылкой
(3) объектные структуры могут содержать циклические цепочки ссылок
(4) в результате ссылочного присваивания всегда появляется висячий объект (доступный для сборщика мусора).
Отметьте истинные высказывания
(1) хороший механизм управления памятью должен возвращать неиспользуемую память текущему приложению, но не операционной системе
(2) вменять в обязанность приложения обнаружение мертвых объектов и восстановление памяти — опасно и обременительно. Эта проблема должна решаться на уровне языка
(3) сборщик мусора может при необходимости перемещать объекты
(4) в системах реального времени по соображениям эффективности зачастую приходится отказываться от динамического режима управления памятью и автоматической сборки мусора