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

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

Правильные ответы выделены зелёным цветом.
Все ответы: В этом курсе переместимся на передний край современной технологии программирования и посмотрим, какие преимущества можно получить, если использовать всю мощь ОО-идей.
При описании математических структур – моноида, группы и кольца - Вы создали три класса, связав их отношением наследования. Укажите правильный порядок наследования, начиная с родительского класса?
(1) группа, кольцо, моноид
(2) группа, моноид, кольцо
(3) кольцо, моноид, группа
(4) кольцо, группа, моноид
(5) моноид, группа, кольцо
(6) моноид, кольцо, группа
Что понимается под "жизненным циклом ПО"?
(1) создание множества программных продуктов в течение жизни программиста
(2) этапы разработки программного продукта, начиная от его задумки до выпуска первой версии
(3) этапы анализа, проектирования, разработки, сопровождения программного продукта, начиная с его первой версии до его последней версии, завершающей существование продукта
(4) монотонный и нескончаемый процесс поиска и исправления ошибок в программном продукте
Проектирование семейства классов начинается с создания класса – прародителя семейства. Как правило, такой класс является отложенным классом, называемым также абстрактным классом. Какой же класс называется отложенным?
(1) класс, создание которого отложено на завтра
(2) класс, у которого есть хотя бы один отложенный метод
(3) класс, в котором у некоторых методов задана сигнатура и спецификация, но не задана реализация
(4) класс, у которого может не быть отложенных методов, но объявленный с ключевым словом deferred
(5) только такой класс, у которого отложены все методы
Что происходит с контрактами при наследовании. Укажите корректные утверждения?
(1) в отличие от компонент класса контракты родительского класса не наследуются
(2) контракты родительского класса наследуются и не могут быть изменены
(3) контракты родительского класса наследуются, но часть контракта может быть отменена
(4) контракты родительского класса наследуются, должны выполняться потомком, но потомок может включить в контракт дополнительные обязательства
Универсальность и наследование – два тесно связанных механизма, обеспечивающие мощь ОО проектирования и программирования. Рассмотрим полиморфную структуру данных LIST[VEHICLE] – список, элементами которого являются транспортные средства. Укажите, элементы какого или каких классов не могут храниться в этом списке?
(1) BUS
(2) TAXI
(3) STATION
(4) LINE
(5) TRAM
Основная операция в ООП – это операция вызова x.M(…). Здесь x – это объект – цель вызова. Метод М задает операцию, применяемую к объекту x. Какие утверждения о методах и объектах являются справедливыми?
(1) метод описывает операцию, применимую к объекту
(2) объект вызывает метод
(3) метод не может быть объектом
(4) объект может быть методом
Что такое лямбда исчисление? Укажите корректные высказывания
(1) наука, изучающая специальный вид червей
(2) наука, изучающая функции как механизм, принимающий аргументы и вырабатывающий результат
(3) теория, позволяющая лучше понять, что является областью определения переменной, какова роль аргументов, как можно рассматривать программу как объект
(4) наука, изучающая специальный вид функций
Проектирование, управляемое событиями, - это стиль, определяющий архитектуру проекта. Он широко применяется в тех случаях, когда программа взаимодействует с внешним миром, - в интерактивных приложениях, в программах, управляющих производственными процессами. Какие утверждения справедливы для этого стиля проектирования?
(1) определяющим является понятие "событие", при возникновении которого программа должна реагировать должным образом
(2) при проектировании программы создаются сервисы или службы – программные методы, обеспечивающие нужную реакцию на возникающие события
(3) порядок возникновения событий строго фиксирован
(4) события могут возникать в строго фиксированном модуле программы
Что понимается под образцом проектирования?
(1) образцово выполненный проект
(2) класс, допускающий повторное использование
(3) библиотека классов (DLL), допускающая повторное использование
(4) семейство классов, как правило отложенных, с заданной архитектурой, предназначенных для решения определенного круга задач
Какие факторы можно не учитывать, когда речь идет об инженерии программ?
(1) этику программирования
(2) процесс разработки программного проекта
(3) коммуникации в команде разработчиков
(4) хобби членов команды
(5) требования к программному проекту
При рассмотрении наследования используются такие термины как: потомок, наследник, правильный потомок, родитель, предок, правильный предок. Какие утверждения справедливы относительно этих терминов?
(1) если класс В наследует от А, то А родитель В
(2) если класс А родитель В, то В наследник А
(3) наследник и потомок эквивалентные понятия
(4) если класс В является наследником А, то В является потомком А
(5) если класс В является потомком А, то В является наследником А
Какие утверждения справедливы для модели водопада?
(1) все этапы жизненного цикла проходятся последовательно и однократно
(2) все этапы жизненного цикла проходятся последовательно. После выполнения последнего этапа вернуться можно только к началу цикла
(3) после выполнения каждого этапа жизненного цикла можно вернуться к началу предыдущего этапа
(4) модель водопада предусматривает как спуск по этапам жизненного цикла, так и подъем
Если в родительском классе есть отложенный метод, то наследник класса обязан?
(1) оставить этот метод отложенным
(2) задать реализацию отложенного метода
(3) задать реализацию либо оставить метод отложенным
(4) в случае задания реализации создать новый отложенный метод
Пусть наследник класса переопределил метод М родителя, задав например реализацию отложенного метода М. В контракте метода М у родителя задано предусловие Р, которое должно выполняться при вызове М. Какие утверждения справедливы относительно предусловия РР метода М в классе наследника?
(1) наследник обязан сохранить предусловие метода (РР = Р)
(2) наследник может сохранить предусловие метода (РР = Р)
(3) наследник может ослабить предусловие метода (Р => PР and not(PP = P))
(4) наследник может усилить предусловие метода (РР => Р and not(PP = P))
Пусть задан универсальный класс C[T] и одно из полей этого класса объявлено как x : T. Какие операции допустимы для сущности x?
(1) любые операции любого типа данных, поскольку класс универсальный и никаких ограничений на Т не накладывается
(2) только операция проверки на равенство
(3) любые операции, определенные в классе ANY – предком всех классов
(4) операции сравнения
Какие утверждения справедливы относительно метода call в языке Eiffel?
(1) применим ко всем агентам
(2) имеет один аргумент, представляющий кортеж
(3) позволяет вызывать метод, связанный с агентом, только в том случае, если вызываемый метод имеет ровно один аргумент
(4) позволяет вызывать связанный с агентом метод, число аргументов у которого произвольно
Композиция функций math и math – это специальная операция над функциями, которая обозначается как math или math. Результатом операции является функция math, такая что math для любого применимого аргумента math. Какие утверждения справедливы по отношению к функции math?
(1) область значений функции math совпадает с областью значений функции math
(2) область значений функции math совпадает с областью значений функции math
(3) область значений функции math представляет композицию областей значений функций math и math
(4) область определения функции math, совпадает с областью определения функции math
(5) область определения функции math, совпадает с областью определения функции math
Управление событиями, можно рассматривать как некоторую структуру управления, получившую название "издатели – подписчики". Какие утверждения справедливы относительно этой структуры?
(1) издатели включают события
(2) подписчики включают события
(3) издатели получают сообщение о возникшем событии
(4) подписчики получают сообщение о возникшем событии
(5) для получения сообщения о событии необходимо подписаться на событие
Архитектура образца "Наблюдатель" включает проектирование класса Publisher (Издатель), который является родителем соответствующего семейства классов. Какие утверждения справедливы относительно этого класса?
(1) класс задает общие свойства и поведение издателей без учета какой-либо специфики конкретного издателя
(2) класс является эффективным с полностью заданной реализацией
(3) класс является отложенным
(4) класс задает свойства и поведение конкретного издателя
Жизненный цикл программного продукта включает несколько этапов. Одним из них является сопровождение. Какие виды деятельности характерны для этого этапа?
(1) устранение замеченных недостатков
(2) сопровождение программистов к месту работы
(3) добавление новой функциональности
(4) улучшение качества
(5) адаптация к изменяющемуся программному окружению
Для отображения отношений между классами Eiffel Studio позволяет построить диаграмму классов. Какие утверждения справедливы для этой диаграммы?
(1) одинарная линия связывает родителя и его наследника
(2) одинарная линия связывает клиента и его поставщика
(3) двойная линия связывает родителя и его наследника
(4) двойная линия связывает клиента и его поставщика
Какой из этапов разработки, характерный для кластерной модели отсутствует в модели водопада?
(1) анализ
(2) проектирование
(3) реализация
(4) обобщение
Какие утверждения справедливы для понятий экземпляр типа и прямой экземпляр типа?
(1) экземпляр типа является объектом, а прямой экземпляр таковым не является
(2) экземпляр типа создается конструктором (оператором создания) этого типа
(3) экземпляр типа и прямой экземпляр типа – это эквивалентные понятия
(4) прямой экземпляр типа создается конструктором (оператором создания) этого типа
(5) экземпляром типа является прямой экземпляр этого типа или прямой экземпляр согласованного типа (потомка класса)
При переопределении метода возможно и переопределение контракта. Как при переопределении контракта записывается новое постусловие, и каков его эффект?
(1) постусловие можно не задавать. В этом случае сохранится постусловие родителя
(2) постусловие можно не задавать. В этом случае отменяется постусловие родителя
(3) постусловие можно задать в форме ensure else new_post, где new_post – дополнительное условие, заданное потомком, расширяющее область возможных значений для результатов метода
(4) постусловие можно задать в форме ensure then new_post, где new_post – дополнительное условие, заданное потомком, сужающее область возможных значений для результатов метода
Ограничение универсальности класса C[T] означает:
(1) ограничение возможностей класса C
(2) расширение возможностей класса C
(3) расширение числа операций для сущностей, тип которых задается параметром T
(4) сужение числа операций для сущностей, тип которых задается родовым параметром T
Механизм агентов находит широкое применение в различных приложениях. Укажите приложения, для которых показано, как применять агентов:
(1) итерирование – применение операции, заданной агентом, к данным контейнера
(2) численное интегрирование – вычисление интеграла, где агент задает подынтегральную функцию
(3) механизм отката redo – undo, где агенты задают действия, выполняемые при повторах и откатах
(4) механизм наследования, где агент задает потомка класса
(5) механизм событий, где агент задает действие, выполняемое при обработке возникающего события
Связанные переменные лямбда-выражения это:
(1) переменные, на которые наложены дополнительные ограничения
(2) переменные, связанные друг с другом
(3) аргументы функции
(4) переменные, заданные при описании сигнатуры функции
Как подписчики получают сообщение о событии?
(1) издатели имеют списки потенциальных клиентов сообщения и рассылают всем им сообщение о возникшем событии
(2) подписчики имеют списки всех издателей и подписываются на получение всех возможных сообщений
(3) подписчики периодически опрашивают издателей о возникших событиях и выбирают понравившееся им событие
(4) типы возможных событий известны подписчикам и они подписываются на событие того или иного типа, получая сообщение о событии выбранного типа в тот момент, когда оно возникает
Какие поля и методы имеет класс Subscriber?
(1) поле subscribers, задающее список подписчиков
(2) поле publishers, задающее список издателей
(3) метод Subscribe, позволяющий подписаться у издателя, заданного аргументом метода
(4) метод Unsubscribe, позволяющий отменить подписку у издателя, заданного аргументом метода
В соответствии с классификацией DIAMO инженерия программ включает несколько частей. Какие это части?
(1) описание
(2) определение
(3) интерфейс
(4) реализация
(5) оценка
(6) функционирование
(7) управление
Полиморфизм - одно из важнейших понятий, связанных с наследованием. Полиморфными могут быть:
(1) присваивание
(2) замена аргумента при вызове метода
(3) класс
(4) сущность
(5) выражение
(6) оператор выбора
(7) контейнерная структура данных
Что справедливо для методологии Agile – гибкой разработки ПО?
(1) она основана на модели водопада и является ее развитием
(2) она основана на спиральной модели и является ее развитием
(3) она основана на кластерной модели и является ее развитием
(4) она не предполагает жесткой структуры этапов разработки. Ориентирована на постепенную расширяемость строящейся системы и тесную связь разработчиков и заказчиков, в интересах которых строится система
Если родитель задал реализацию метода, то наследник:
(1) обязан сохранить эту реализацию в неприкосновенности
(2) может сохранить и использовать реализацию родителя
(3) может переопределить эту реализацию
(4) может отменить реализацию и объявить метод отложенным
В родительском классе Р задан эффективный метод М с предусловием "Быть пушистым" and "Быть белым". Наследник этого класса Р1 переопределил этот метод, задав соответственно предусловие: require else "Быть белым". Наследник этого класса Р2 переопределил этот метод, задав соответственно предусловие: require else "Быть пушистым".Наследник этого класса Р3 переопределил этот метод, задав соответственно предусловие: require else "Быть натуральным". Объект, передаваемый на вход методу М, обладает свойствами "Быть белым" and "Быть натуральным". Методы какого класса могут применяться для обработки этого объекта?
(1) Р
(2) Р1
(3) Р2
(4) Р3
Пусть проектируется класс VECTOR[ELEMENT], задающий вектор, тип элементов которого задается параметром класса. Операции класса предполагают возможность выполнения арифметических операций как над элементами вектора, так и над векторами. Какие утверждения справедливы в этом случае?
(1) необходимо задать ограничение на параметр ELEMENT, сделав его потомком класса NUMERIC
(2) достаточно задать ограничение на параметр ELEMENT, сделав его потомком класса NUMERIC
(3) необходимо, чтобы класс VECTOR был потомком класса NUMERIC
(4) необходимо и достаточно, чтобы класс VECTOR был потомком класса NUMERIC, а также ограничить параметр ELEMENT, сделав его потомком класса NUMERIC
Когда механизм агентов применяется для обработки событий, то:
(1) все подписчики события при возникновении события выполняют один и тот же метод, связанный с агентом
(2) все подписчики события при возникновении события выполняют метод, специфика которого определяется подписчиком
(3) все подписчики события при возникновении события выполняют метод, сигнатура которого задается агентом
(4) все подписчики события при возникновении события выполняют специфические методы, на которые не накладываются никакие ограничения
Какие утверждения справедливы относительно карринга двухаргументной функции?
(1) область определения функции расширяется
(2) область определения функции сужается
(3) функция становится одноаргументной
(4) значением одноаргументной функции, полученной в результате карринга, становится одноаргументная функция
(5) значением одноаргументной функции, полученной в результате карринга, становится двухаргументная функция
Что происходит, когда подписчик получает уведомление о событии
(1) он отправляет сообщение в "долгий ящик"
(2) может при желании обработать сообщение, а может посчитать его самом и проигнорировать факт получения сообщения
(3) вызывает метод, указанный при регистрации подписки, который и обрабатывает информацию, пришедшую с событием
(4) в зависимости от информации, пришедшей с событием, подписчик вызывает тот или другой метод из тех, что есть в его распоряжении
При описании образца "Наблюдатель" могут применяться две схемы задания аргументов события. Первая предполагает, что аргументы задаются списком, содержащим элементы произвольного типа, заданного параметром ANY. Во второй схеме аргументы задаются в ориентации на конкретный вид сообщения. Какие утверждения справедливы относительно этих двух схем
(1) первая схема носит универсальный характер и может применяться для сообщений с произвольным числом аргументов и произвольными типами, не требуя внесения изменений ни в класс Publisher, ни в класс Subscriber
(2) вторая схема носит универсальный характер и может применяться для сообщений с произвольным числом аргументов и произвольными типами, не требуя внесения изменений ни в класс Publisher, ни в класс Subscriber
(3) первая схема носит универсальный характер и может применяться для сообщений с произвольным числом аргументов и произвольными типами, но требует внесения изменений в класс Publisher
(4) первая схема носит универсальный характер и может применяться для сообщений с произвольным числом аргументов и произвольными типами, но требует внесения изменений в классы, являющиеся потомками класса Subscriber, для приведения аргумента, заданного типом ANY к конкретному типу аргумента
(5) вторая схема требует настройки и внесения изменений в класс Publisher
Какова главная цель инженерии программ?
(1) получение максимального дохода
(2) создание продукта с максимальной функциональностью
(3) создание качественного продукта
(4) выпуск продукта в минимальные сроки
Трансформация и полиморфное присоединение – два механизма, поддерживающие семантику присваивания и аналогичную семантику замены формальных аргументов при вызове метода. Какие утверждения справедливы для этих механизмов?
(1) если применяется полиморфное присоединение, то обязательно происходит и трансформация объекта источника
(2) если применяется полиморфное присоединение, то может выполняться и трансформация объекта источника
(3) если применяется полиморфное присоединение, то трансформация объекта источника не применяется
(4) если применяется один механизм, то второй применяться не может
(5) трансформация допустима для ссылочного присваивания, если оно не является полиморфным
Какие утверждения справедливы относительно процесса сбора и отбора требований к системе?
(1) единственным источником требований являются будущие клиенты системы. Все их запросы должны включаться в документ требований
(2) при анализе требований часть запросов должна отвергаться по причине их неосуществимости
(3) при анализе требований часть запросов должна отвергаться по причине высокой стоимости их реализации
(4) часть требований исходит от разработчиков будущей системы, которые в отличие от клиентов могут предложить лучшие решения, отсутствующие в существующих системах
(5) предложения от разработчиков не должны входить в документ требований, поскольку они могут предложить функционал, не представляющий интерес для пользователей системы
С присваиванием связаны два механизма – трансформация и полиморфное присоединение. Какие утверждения справедливы для этих механизмов?
(1) если применяется полиморфное присоединение, то обязательно происходит и трансформация объекта источника
(2) если применяется полиморфное присоединение, то может выполняться и трансформация объекта источника
(3) если применяется полиморфное присоединение, то трансформация объекта источника не применяется
(4) если применяется один механизм, то второй применяться не может
(5) трансформация допустима для ссылочного присваивания, если оно не является полиморфным
В классе Р задан эффективный метод М с постусловием "Т > 10". Наследник этого класса Р1 переопределил этот метод, задав соответственно постусловие: ensure then "Т > 20". Класс Р2 - наследник Р1 в свою очередь переопределил этот метод, задав соответственно постусловие: ensure then "Т > 50". Класс Р3 - наследник Р2 в свою очередь переопределил этот метод, задав соответственно постусловие: ensure then "Т > 100". Клиенту требуется вызвать метод, обеспечивающий на выходе истинность условия: "T > 15". Методы каких классов могут гарантировать истинность выполнения этого условия?
(1) Р1
(2) Р2
(3) Р3
(4) Р
Динамическое связывание и полиморфизм не являются единственно возможными механизмами, применяемыми в ситуациях, когда некоторую специфическую операцию следует применять к объектам разного типа. Какие утверждения справедливы для этих механизмов?
(1) если на верхнем уровне проектирования удается задать сигнатуру операции и возможно общую схему реализации, возложив на потомков реализацию специфики операции, характерную для данного потомка, то наиболее эффективным механизмом является разбор случаев, когда, анализируя тип потомка, выбирается нужная операция
(2) если на верхнем уровне проектирования удается задать сигнатуру операции и возможно общую схему реализации, возложив на потомков реализацию специфики операции, характерную для данного потомка, то наиболее эффективным механизмом является полиморфизм и динамическое связывание
(3) если операция настолько специфична, что даже ее сигнатуру нельзя зафиксировать на верхнем уровне, то наиболее эффективным механизмом является разбор случаев, когда, анализируя тип потомка, выбирается нужная операция
(4) если операция настолько специфична, что даже ее сигнатуру нельзя зафиксировать на верхнем уровне, то наиболее эффективным механизмом является полиморфизм и динамическое связывание
Механизм агентов с успехом применяется в ряде ситуаций. Какие утверждения справедливы? Можно ли при итерировании заменить этот механизм?
(1) нельзя и приходится отказываться от итерирования
(2) можно, - встраивая каждую операцию в схему итерирования и дублируя, тем самым, код итерирования
(3) можно, используя механизм наследования и образец "много маленьких оберток", когда класс представляет обертку одного метода – операции, выполняемой над элементами контейнера
(4) механизм наследования в этой ситуации не применим
Рассмотрим выражение: math Какие утверждения справедливы?
(1) в этом выражении переменная y является свободной
(2) в этом выражении переменная y является связанной
(3) в этом выражении переменная x является свободной
(4) в этом выражении переменная x является связанной
(5) существует свободное вхождение переменной x в выражение
(6) существует связанное вхождение переменной x в выражение
Какие утверждения справедливы для понятия "контекст события"?
(1) контекст события – это булевское выражение, задаваемое в момент включения события
(2) контекст события – это булевское выражение, задаваемое в момент регистрации подписки
(3) контекст события – это булевское выражение, вычисляемое в момент включения события
(4) контекст события – это булевское выражение, вычисляемое в момент регистрации подписки
Образец "Наблюдатель" имеет серьезные недостатки. Поэтому в таких языках, как Eiffel, где есть такие средства как агенты и кортежи, можно использовать при работе с событиями другой образец, основанный на классе EVENT_TYPE. Какие утверждения справедливы для этого класса?
(1) это единственный класс, лежащий в основе нового образца
(2) класс играет роль класса Subscriber, но для публикации необходим еще один класс – аналог класса Publisher
(3) класс играет роль класса Publisher, но для подписки необходим еще один класс – аналог класса Subscriber
(4) методы класса позволяют осуществлять как публикацию сообщения, так и подписку на событие, а также отмену подписки
Какие факторы качества ПО относятся к факторам, характеризующим процесс разработки?
(1) адекватность требованиям
(2) переносимость
(3) стоимость разработки
(4) эффективность процесса разработки
(5) измеримость
(6) простота обучения
Какая комбинация стратегий применяется в Eiffel?
(1) динамический анализ типов и динамическое связывание
(2) динамический анализ типов и статическое связывание
(3) статический анализ типов и динамическое связывание
(4) статический анализ типов и статическое связывание
Из 15 сформулированных свойств хороших требований, какое из свойств не входит в этот список?
(1) полнота
(2) вычислимость
(3) прослеживаемость
(4) понятность
(5) обоснованность
Контракты играют важную роль при проектировании. Какие утверждения справедливы для контрактов в процессе наследования?
(1) контракты нельзя задать на верхнем уровне абстракции. Они тесно связаны с реализацией
(2) контракты следует задавать на как можно высоком уровне абстракции
(3) при переопределении реализации метода наследником контракт метода сохраняется
(4) при переопределении реализации метода наследником контракт метода также переопределяется
Какие утверждения относительно экспорта компонентов класса справедливы в Eiffel?
(1) по умолчанию клиентам класса доступны для чтения все компоненты, но атрибуты класса закрыты для записи
(2) в Eiffel нет возможности запретить клиентам класса доступ к компонентам на чтение атрибутов или вызов метода
(3) Eiffel позволяет клиентам избранных классов – VIP клиентам - разрешить доступ к некоторым компонентам на чтение атрибутов или вызов метода, задав предложение выборочного экспорта в форме feature { F, …G}
(4) Eiffel позволяет полностью запретить доступ к некоторым компонентам, задав предложение выборочного экспорта в форме feature { NONE}
Пусть p – сущность типа F. Динамическим кастингом или приведением типа называется конструкция (S) p, динамически изменяющая в период выполнения тип сущности на тип S. Какие утверждения справедливы относительно динамического кастинга?
(1) динамический кастинг опасная операция, грозящая ошибками, поскольку тип объекта, связанного с сущностью p, может не совпадать с типом S
(2) динамический кастинг необходим, когда объекты приходят из внешнего мира и их тип может быть любым
(3) динамический кастинг всегда приводит к разбору случаев
(4) динамический кастинг всегда можно заменить динамическим связыванием
Когда выполняется присваивание x := agent r, то переменная x должна принадлежать специальному типу, часто называемому функциональным, поскольку объектами этого типа являются функции и процедуры. В Eiffel этот тип задается классом ROUTINE и тремя его потомками – классами PROCEDURE, FUNCTION, PREDICATE. Какой из этих классов обозначает запросы, за исключением запросов, возвращающих тип BOOLEAN?
(1) ROUTINE
(2) PROCEDURE
(3) FUNCTION
(4) PREDICATE
Выражение math может быть получено из выражения math путем подстановки – заменой вхождений переменной math подвыражением math. Какие утверждения справедливы относительно подстановки?
(1) при подстановке заменяются все вхождения переменой в выражение
(2) при подстановке заменяются только все свободные вхождения переменой в выражение
(3) при подстановке заменяются только все связанные вхождения переменой в выражение
(4) при подстановке заменяется одно выбранное вхождение переменой в выражение
При проектировании ПО следует выделять как отдельные элементы "модель" ПО и "облик" ПО. Какие утверждения справедливы?
(1) модель ПО проектируется в одном экземпляре
(2) модель ПО проектируется, как правило, в нескольких экземплярах
(3) облик ПО проектируется в одном экземпляре
(4) облик ПО проектируется, как правило, в нескольких экземплярах
Какие утверждения справедливы относительно класса EVENT_TYPE, задающего описание типа события?
(1) класс является универсальным и имеет один аргумент типа ANY
(2) класс является универсальным и имеет один аргумент типа ARGUMENTS
(3) класс является универсальным и имеет один аргумент типа ARGUMENTS->TUPLE с ограничением наследования, требующим, чтобы аргументы представляли кортеж
(4) класс не является универсальным и имеет один аргумент типа ANY
Говоря о качестве программного продукта можно рассматривать как внешние факторы, так и внутренние факторы. Какие утверждения являются справедливыми?
(1) для пользователей продукта роль играют только внешние факторы
(2) для пользователей продукта роль играют только внутренние факторы
(3) для пользователей продукта роль играют как внешние факторы, так и внутренние
(4) внешние факторы во многом зависят от внутренних факторов
Пусть заданы классы P, F, M, S, D, где P – родитель классов F и M, класс F – родитель S, а M – родитель D. Пусть созданы объекты этих классов – op, of, om, os, od. Какие утверждения являются несправедливыми?
(1) присваивание op := os допустимо. В результате присваивания статический тип op задан классом P, а динамический тип – классом S
(2) присваивание op := os допустимо. В результате присваивания статический и динамический тип op задан классом S
(3) присваивание op := os недопустимо
(4) допустимы взаимные присваивания всех заданных объектов
Верификация и проверка правильности один из важных этапов разработки ПО. Какие утверждения относительно В&П являются корректными?
(1) для проектов, созданных классной командой программистов, этот этап не является необходимым
(2) В&П сводится к тестированию
(3) тестирование – статический метод В&П
(4) тестирование – динамический метод В&П
(5) статические методы В&П включают доказательство корректности
Каждый создаваемый объект содержит поля, в которых хранятся значения атрибутов класса, задающие свойства объекта. В языке Eiffel при создании объекта добавляются поля, содержащие дополнительную информацию. Каково число таких полей?
(1) 1
(2) 2
(3) 4
(4) 8
Какие утверждения относительно множественного наследования в Eiffel являются справедливыми?
(1) множественное наследование не допустимо
(2) множественное наследование относится к базисным механизмам языка Eiffel
(3) замена множественного наследования классов множественным наследованием интерфейсов, как это делается в ряде языков программирования (C#, Java), является непрактичным
(4) множественное наследование интерфейсов эквивалентно множественному наследованию классов
Какие утверждения являются справедливыми относительно образца проектирования "Посетитель (Visitor)"?
(1) паттерн "Посетитель" применяется, когда появляется новый тип данных и требуется добавить новый класс в ранее спроектированное семейство классов
(2) паттерн "Посетитель" применяется, когда появляется новая операция у типов ранее спроектированного семейства классов
(3) новая операция добавляется во все классы существующего семейства классов
(4) образец предполагает создание специального класса, методы которого задают реализацию новой операции для каждого типа данных
Какой метод наследуют классы PROCEDURE, FUNCTION, PREDICATE от родительского класса ROUTINE?
(1) call
(2) last_result
(3) item
(4) entry
Под трансформацией лямбда-выражения будем понимать последовательное выполнение ряда операций, включающих альфа-преобразование и бета-редукцию. Пусть заданы две различные трансформации, преобразующие лямбда-выражение math в выражения math и math. Согласно теореме Черча – Россера:
(1) не существует двух других трансформаций, которые приводили бы выражения math и math к единому выражению math
(2) cуществуют две другие трансформации, которые приводят выражения math и math к единому выражению math
(3) cуществует трансформация, которая приводит выражение math к math
(4) cуществует трансформация, которая приводит выражение math к math
При проектировании ПО приходится учитывать два разных аспекта проектирования, - разделяя "модель" и "облик", "издателей" и "подписчиков". Какие утверждения справедливы относительно взаимодействия этих аспектов?
(1) издатели включают события, которые могут непосредственно изменить облик
(2) включение события не может быть причиной изменения облика
(3) подписчик, обрабатывая событие, может изменить облик
(4) обработка события не может быть причиной изменения облика ПО
Какие утверждения являются справедливыми относительно контроллера в модели МОК (MVC)?
(1) контроллер является независимой частью ПО
(2) контроллер обеспечивает подписку элементов модели на типы события
(3) контроллер всегда связан с обликами
(4) контроллер связан с обликами, если используются контексты
Какие утверждения относительно факторов качества ПО являются справедливыми?
(1) простота добавления нового функционала в программный продукт относится к долговременным факторам качества продукта
(2) простота использования системы означает, что система может работать в разных режимах, ориентированных как на новичков, начинающих работать с системой, так и на экспертов, хорошо знающих возможности системы
(3) эффективность системы всегда предполагает оптимальное использование ресурсов – минимальное время работы, минимальное использование памяти компьютера
(4) эффективность системы означает адекватное использование ресурсов, зачастую не требующее оптимального их использования
(5) создавать переносимое ПО следует только в тех случаях, когда для этого не требуется дополнительные затраты
Какие утверждения справедливы?
(1) если во время выполнения сущность x присоединяется к объекту, то тип этого объекта будет динамическим типом сущности x
(2) если класс не является универсальным, то он однозначно определяет тип
(3) универсальный класс с родовыми параметрами задает множество типов
(4) универсальный класс задает универсальный тип данных – общий предок всех типов
Организации, создающие ПО, могут быть сертифицированы. Одна из таких сертификаций, оценивающая уровень зрелости организации, - сертификация CMMI – предполагает 5 уровней зрелости. Для зрелой организации в процессе разработки требуется проведение измерений и анализа, начиная с уровня зрелости:
(1) начальный
(2) управляемый
(3) определенный
(4) количественно управляемый
(5) оптимизирующий
Какие утверждения справедливы?
(1) метод класса является эффективным, если задана его спецификация и реализация
(2) достаточно задать контракт метода, чтобы сделать его эффективным
(3) эффективный метод может быть "программой с дырами", содержащей вызовы отложенных методов
(4) отложенным методом называется метод, содержащий реализацию, но спецификация которого не задана
Пусть класс Р имеет метод М. Пусть у класса Р есть два наследника F и G, которые являются родительскими классами для класса S. В каких ситуациях у класса S будет существовать две версии метода М?
(1) класс Р задал реализацию метода М. Оба наследника наследовали ее без всяких изменений (сохранив имя и реализацию)
(2) класс Р метод М определил как отложенный. Один из наследников F задал реализацию метода, другой оставил метод отложенным
(3) класс Р задал реализацию метода М. Один из наследников F выполнил переопределение, задав собственную реализацию метода, другой оставил реализацию метода родителя
(4) класс Р задал реализацию метода М. Оба наследника выполнили переопределение, задав собственные реализации метода М
Какие утверждения справедливы относительно реализации образца проектирования "Посетитель"?
(1) образец проектирования требует двойной диспетчеризации, поскольку выбор производится по двум критериям типу объекта и типу операции
(2) поскольку среда реализации позволяет реализовать только одинарную диспетчеризацию, то реализация этого паттерна в среде Eiffel не представляется возможной
(3) двойная диспетчеризация реализуется двойным применением механизма одиночной диспетчеризации
(4) схема реализации образца проектирования "Посетитель" предполагает создание двух семейств классов – семейства целевых классов и семейства классов посетителей, каждый из которых реализует одну операцию для всех применяемых типов данных
При определении агента его операндами являются как аргументы метода, присоединяемого к агенту, так и цель вызова. Операнды агента могут быть как открытыми, так и закрытыми. Какие утверждения справедливы относительно операндов агента?
(1) все операнды могут быть открытыми
(2) только аргументы могут быть открытыми операндами, а цель всегда должна быть закрыта
(3) все операнды могут быть закрытыми
(4) только цель может быть открытым операндом, а аргументы всегда должны быть закрыты
Манифестный агент – это агент:
(1) выходящий на манифестации
(2) связанный с методом класса
(3) связанный с анонимным методом, который задается непосредственно в точке определения агента
(4) связанный с методом, для которого задан манифест
Одним из известных образцов проектирования является образец (pattern), называемый МОК (Модель – Облик – Контроллер) или MVC (Model – View – Controller). Согласно этому образцу:
(1) облик задает представление модели
(2) одна и та же модель может быть представлена разными обликами
(3) модель однозначно определяет свой облик
(4) пользователь может видеть разные облики модели
(5) пользователь обновляет облик
Пусть в интерфейсе пользователя заданы 5 командных кнопок класса Button и три пункта меню класса Menu. Для всех этих элементов возможно событие Click. Сколько обработчиков события Click, следует создать в этой ситуации?
(1) 1
(2) 2
(3) 3
(4) 5
(5) 8
Создание большой новой программной системы следует начинать с этапа:
(1) проектирования
(2) спецификации
(3) анализа осуществимости
(4) анализа требований
При моделировании 7-и уровневой классификации Линнея создан объект prima класса "Примат". (В классификации Линнея это уровень – отряд. Согласно Линнею, к приматам относятся люди, обезьяны, летучие мыши, ленивцы). Какие утверждения справедливы по отношению к этому объекту?
(1) он полностью описывает все свойства приматов - прикладных математиков
(2) он описывает некоторые свойства прикладных математиков
(3) если создан объект homo класса "Человек Разумный", то возможно присваивание: homo := prima
(4) если создан объект homo класса "Человек Разумный", то возможно присваивание: prima := homo
При описании жизненного цикла ПО используются модели:
(1) водопада
(2) снегохода
(3) змейки
(4) кластерная
(5) спиральная
Проектирование семейства классов начинается с создания класса – прародителя семейства. Как правило, такой класс является отложенным классом. У отложенного класса есть хотя бы один отложенный метод. Какой же метод называется отложенным?
(1) метод, для которого задана реализация, но не задана сигнатура и спецификация
(2) метод, для которого задана сигнатура и спецификация, но не задана реализация
(3) метод, для которого задана сигнатура и реализация, но не задана спецификация
(4) метод, для которого задана сигнатура, но не задана реализация и спецификация
Что происходит с инвариантами класса при наследовании. Укажите корректные утверждения?
(1) в отличие от компонент класса инварианты родительского класса не наследуются
(2) инварианты родительского класса наследуются и не могут быть изменены
(3) инварианты родительского класса наследуются, но часть из них может быть отменена
(4) инварианты родительского класса наследуются, должны выполняться потомком, но потомок может включить в контракт дополнительные инварианты
Универсальность и наследование – два тесно связанных механизма, обеспечивающие мощь ОО проектирования и программирования. Рассмотрим универсальный класс LIST[T] – список, тип элементов которого задается параметром T. Укажите, какие классы получены в результате родового порождения?
(1) LIST[TAXI]
(2) LINKEDLIST[T]
(3) LIST[BUS]
(4) LIST[PERSON]
(5) TWOLINKEDLIST[T]
Какие выражения синтаксически корректны в Eiffel?
(1) agent James_Bond
(2) agent 007
(3) agent x
(4) agent Iren & agent John
Какие утверждения справедливы по отношению к понятию функция?
(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) наследник может ослабить постусловие метода (Р => PР and not(PP = P))
(4) наследник может усилить постусловие метода (РР => Р and not(PP = P))
Пусть задан универсальный класс C[T] и одно из полей этого класса объявлено как x : T. Какие операции допустимы для сущности x?
(1) операции, определенные в классе С
(2) арифметические операции
(3) логические операции
(4) операции, разрешенные для всех типов
Пусть присваивание x := agent N корректно выполняется в программе на Eiffel . Какие утверждения корректны относительно вызова x.call([y,z])?
(1) этот вызов заведомо не корректен
(2) означает вызов метода N, которому передаются два аргумента – y и z
(3) означает вызов метода call, которому передаются два аргумента – y и z
(4) эквивалентен вызову N(x,y)
Определим сигнатуру композиции двух функций math следующим образом: math Какие утверждения справедливы?
(1) множество math задает область определения функции math
(2) множество math задает область определения функции, представляющей результат композиции
(3) множество math задает область значений функции math
(4) множество math задает область определения функции, представляющей результат композиции
(5) множество math задает область значений функции math
(6) множество math задает область определения функции, представляющей результат композиции
Управление событиями, можно рассматривать как некоторую структуру управления, получившую название "издатели – подписчики". Какие утверждения справедливы относительно этой структуры?
(1) элемент ПО (класс), являющийся издателем, не может быть подписчиком
(2) элемент ПО (класс), являющийся подписчиком, не может быть издателем
(3) элемент ПО (класс), являющийся издателем (одного события), может одновременно быть подписчиком (другого события)
(4) издатель не обязан знать своих подписчиков
Архитектура образца "Наблюдатель" предполагает проектирование двух классов Publisher (Издатель) и Subscriber (Подпичик), которые являются родителями соответствующих семейств классов. Какие утверждения справедливы относительно этих классов?
(1) оба класса проектируются как отложенные классы
(2) оба класса проектируются как эффективные – полностью реализованные классы
(3) класс Publisher проектируется как эффективный – полностью реализованный класс, а класс Subscriber проектируется как отложенный класс
(4) класс Subscriber проектируется как эффективный – полностью реализованный класс, а класс Publisher проектируется как отложенный класс
Разработка программного продукта, его появление на рынке и его использование приводит к тому, что многие люди в той или иной мере связаны с этим продуктом, становятся сопричастниками. Кого нельзя отнести к сопричастникам (stakeholder) программного продукта?
(1) архитектора продукта
(2) разработчика
(3) тестера
(4) пользователя
(5) человека, деятельность которого не связана ни с программным продуктом, ни с областью его применения
(6) человека, не использующего программный продукт, но потерявшего работу в связи с появлением данного продукта
Для отображения отношений между классами Eiffel Studio позволяет построить диаграмму классов. Какие утверждения справедливы для этой диаграммы?
(1) одинарная линия, связывающая родителя и его наследника, имеет стрелку, указывающую на наследника
(2) одинарная линия, связывающая родителя и его наследника, имеет стрелку, указывающую на родителя
(3) одинарная линия, связывающая родителя и его наследника, имеет стрелки, указывающие как на родителя, так и на наследника
(4) одинарная линия, связывающая родителя и его наследника, не имеет стрелок, указывающих на родителя или на наследника
Для объектно-ориентированного стиля разработки ПО наиболее подходит модель:
(1) кластерная
(2) спиральная
(3) водопада
(4) любая
Отложенные классы характерны для верхних уровней проектирования программных систем. Некоторые методы отложенного класса носят название "программы с дырами". Какие это методы?
(1) метод, в коде которого мыши прогрызли дыры
(2) метод, в котором часть исполняемого кода отсутствует и заменена псевдокодом
(3) метод, в котором отсутствует реализация
(4) эффективный метод с заданной реализацией, но код которого вызывает отложенные методы, не имеющие реализации
При переопределении метода возможно и переопределение контракта. Как при переопределении контракта записывается новое предусловие, и каков его эффект?
(1) предусловие можно не задавать. В этом случае сохранится предусловие родителя
(2) предусловие можно не задавать. В этом случае отменяется предусловие родителя
(3) предусловие можно задать в форме require else new_pred, где new_pred – дополнительное условие, заданное потомком, расширяющее область возможных значений для входных данных метода
(4) предусловие можно задать в форме require then new_pred, где new_pred – дополнительное условие, заданное потомком, сужающее область возможных значений для входных данных метода
Ограничение универсальности класса C[T1, T2, …TK] означает
(1) уменьшение числа родовых параметров TJ
(2) наложение ограничений на один или несколько родовых параметров универсального класса TJ
(3) увеличение числа возможных операций для тех сущностей, на типы которых наложены ограничения
(4) уменьшение числа возможных операций для тех сущностей, на типы которых наложены ограничения
Что можно делать с агентами?
(1) задать определение агента, связав агент с методом
(2) задать реализацию метода call
(3) вызвать метод call, который в свою очередь вызовет метод агента
(4) создать агента, используя конструктор класса агента
Какие утверждения справедливы для лямбда-выражения?
(1) начинается греческой буквой math (лямбда)
(2) задает описание сигнатуры функции - имена аргументов и их типы
(3) частью лямбда-выражения является выражение, задающее определяемую функцию
(4) с помощью лямбда-выражения можно определить только функции одного аргумента
Какие утверждения справедливы для понятия "сигнатура события"?
(1) каждое событие имеет сигнатуру
(2) сигнатура есть только у некоторых событий
(3) сигнатура события эквивалентна сигнатуре методов и состоит из указания имен аргументов события и связанных с ними типов
(4) сигнатура события принципиально отличается от сигнатуры методов ПО
Каким отношением связаны классы Subscriber и Publisher?
(1) класс Subscriber является наследником класса Publisher
(2) класс Publisher является наследником класса Subscriber
(3) класс Subscriber является клиентом класса Publisher
(4) класс Publisher является клиентом класса Subscriber
В соответствии с классификацией DIAMO к какому этапу относится задание спецификаций программного продукта?
(1) описание
(2) управление
(3) функционирование
(4) реализация
(5) оценка
Полиморфизм - одно из важнейших понятий, связанных с наследованием. Какие высказывания справедливы для присваивания?
(1) присваивание всегда рассматривается как полиморфное
(2) при полиморфном присваивании типы источника и цели могут быть произвольными
(3) при полиморфном присваивании типы источника и цели могут различаться, но должны быть согласованы
(4) при полиморфном присваивании тип источника должен быть потомком типа цели
(5) при полиморфном присваивании тип цели должен быть потомком типа источника
Agile – это методология быстрой разработки ПО. Какие высказывания справедливы для этой методологии?
(1) работающий код как принципиальная мера прогресса разработки
(2) созданию кода предшествуют этапы анализа и разработка документа требований
(3) сотрудничество между разработчиками и заказчиками, имеющих своих представителей в команде разработчиков
(4) строго планируемое и частое обсуждение результатов разработки
Говорят, что наследник переопределяет родительский метод, если
(1) у родителя метод отложенный, а наследник задает его реализацию
(2) у родителя метод имеет реализацию (эффективен), а наследник ее изменяет
(3) у родителя метод отложенный, а наследник изменяет сигнатуру или контракт, оставляя метод отложенным
(4) У родителя метод имеет реализацию (эффективен), а наследник объявляет метод отложенным
В родительском классе Р задан эффективный метод М с предусловием "Быть пушистым" and "Быть белым". Наследник этого класса Р1 переопределил этот метод, задав соответственно предусловие: require else "Быть белым". Наследник этого класса Р2 переопределил этот метод, задав соответственно предусловие: require else "Быть пушистым". Наследник этого класса Р3 переопределил этот метод, задав соответственно предусловие: require else "Быть натуральным". Объект, передаваемый на вход методу М, обладает свойствами "Быть пушистым" and "Быть натуральным". Методы какого класса могут применяться для обработки этого объекта?
(1) Р
(2) Р1
(3) Р2
(4) Р3
Пусть проектируется класс MATRIX[ELEMENT], задающий матрицу, тип элементов которой задается параметром класса. Операции класса предполагают возможность выполнения арифметических операций, как над элементами матрицы, так и над самими матрицами. Какие утверждения справедливы в этом случае?
(1) необходимо задать ограничение на параметр ELEMENT, сделав его потомком класса NUMERIC
(2) достаточно задать ограничение на параметр ELEMENT, сделав его потомком класса NUMERIC
(3) необходимо, чтобы класс MATRIX был потомком класса NUMERIC
(4) необходимо и достаточно, чтобы класс MATRIX был потомком класса NUMERIC, а также ограничить параметр ELEMENT, сделав его потомком класса NUMERIC
При численном вычислении интегралов механизм агентов:
(1) не применим
(2) применим при вычислении определенных однократных интегралов
(3) применим при вычислении определенных двойных интегралов
(4) применим при вычислении определенных интегралов любой кратности
(5) применим при вычислении неопределенных интегралов
Примером карринга на практике может служить отношение между компилятором и интерпретатором. Какие высказывания справедливы относительно компилятора и интерпретатора?
(1) компилятор можно рассматривать как функцию двух аргументов, - один из которых задает программу, другой входные данные
(2) интепретатор можно рассматривать как функцию двух аргументов, - один из которых задает программу, другой входные данные
(3) компилятор можно рассматривать как применение карринга к интерпретатору
(4) интерпретатор можно рассматривать как применение карринга к компилятору
Какие высказывания справедливы относительно регистрации подписки?
(1) регистрация подписки означает подписку на определенное событие
(2) регистрация подписки означает подписку на определенный тип события
(3) регистрация выполняется до появления события
(4) регистрация выполняется после появления события
(5) при полиморфном присваивании тип источника должен быть потомком типа цели
(6) при полиморфном присваивании тип цели должен быть потомком типа источника
Какой из методов класса Publisher существует в нескольких вариантах?
(1) Subscribe
(2) Unsubscribe
(3) Publish
(4) Subscribed
Обеспечение качества – одна из главных задач инженерии программ. Какие утверждения о качестве справедливы?
(1) инженерия программ занимается только проблемами создания качественного программного кода
(2) инженерия программ занимается только проблемами создания качественного программного продукта, куда входят все результаты разработки – программный код, спецификации, документация, тесты
(3) целью инженерии программ является не программный продукт, а процессы его разработки
(4) инженерия программа занимается всеми проблемами – созданием качественного продукта и применением наилучших процессов разработки этого продукта
Какие утверждения справедливы для полиморфного контейнера:
(1) может хранить объекты разных типов
(2) может хранить ссылки на объекты разных типов
(3) любая контейнерная структура данных является полиморфной
(4) контейнер является полиморфным, если таковыми являются сущности, задающие элементы контейнера
(5) структура типа ARRAY[REAL] является полиморфной
Документ требований к системе сам должен удовлетворять определенным требованиям. Стандарт IEEE "Рекомендуемая практика специфицирования требований ПО" задает эти требования. Укажите, какое из предлагаемых описаний не входит в этот стандарт?
(1) функции продукта
(2) характеристики пользователя
(3) характеристики команды программистов
(4) характеристики производительности
(5) требования к базам данных
Переопределение наследником метода, заданного родителем, должно делаться явно с использованием специального ключевого слова: redefine. Какие утверждения справедливы по отношению к этому термину?
(1) имена всех переопределяемых методов должны быть заданы в предложении redefine в inherit части класса, задающей наследование
(2) ключевое слов redefine должно сопровождать объявление каждого метода
(3) включение имени метода в предложение redefine означает существование двух экземпляров метода с одним и тем же именем, но с разными реализациями (задание перегрузки метода)
(4) включение имени метода в предложение redefine означает отсутствие перегрузки метода, поскольку после переопределения метод с таким именем существует в единственном экземпляре
В классе Р задан эффективный метод М с постусловием "Т > 10". Наследник этого класса Р1 переопределил этот метод, задав соответственно постусловие: ensure then "Т > 20". Класс Р2 - наследник Р1 в свою очередь переопределил этот метод, задав соответственно постусловие: ensure then "Т > 50". Класс Р3 - наследник Р2 в свою очередь переопределил этот метод, задав соответственно постусловие: ensure then "Т > 100". Клиенту требуется вызвать метод, обеспечивающий на выходе истинность условия: "T > 40". Каково число реализаций метода М, которые могут гарантировать истинность выполнения этого условия?
(1) 1
(2) 2
(3) 3
(4) 4
(5) 0
Динамическое связывание и полиморфизм не являются единственно возможными механизмами, применяемыми в ситуациях, когда некоторую специфическую операцию следует применять к объектам разного типа. Какие утверждения справедливы для этих механизмов?
(1) если объекты создаются внутри программы, то чаще всего для них можно определить согласованную систему классов, связанных наследованием, и применять механизмы полиморфизма и динамического связывания
(2) если объекты создаются вне программы, их типы могут быть любыми, то для них можно определить согласованную систему классов, связанных наследованием, и применять механизмы полиморфизма и динамического связывания
(3) если объекты создаются внутри программы, то перед вызовом операции следует применять механизм приведения типа, более эффективный, чем механизмы полиморфизма и динамического связывания
(4) если объекты создаются вне программы, их типы могут быть любыми, то перед вызовом операции необходимо применять приведения типа
Механизм агентов с успехом применяется в ряде ситуаций. Какие утверждения справедливы? Можно ли при численном интегрировании заменить этот механизм?
(1) можно, - встраивая каждую подынтегральную функцию в схему вычисления интеграла и дублируя, тем самым, код интегрирования
(2) нельзя, иначе придется отказаться от интегрирования
(3) можно, используя механизм наследования и образец "много маленьких оберток", когда класс представляет обертку одного метода – соответствующей подынтегральной функции
(4) механизм наследования в этой ситуации не применим
Какие утверждения справедливы для связанных и свободных переменных выражения:
(1) переменная является связанной в выражении, если существует хотя бы одно ее связанное вхождение в выражение
(2) переменная является свободной в выражении, если существует хотя бы одно ее свободное вхождение в выражение
(3) одна и та же переменная выражения может быть как связанной, так и свободной
(4) одна и та же переменная выражения не может быть одновременно как связанной, так и свободной
Какие утверждения справедливы для понятия "контекст события"?
(1) контекст можно рассматривать как булевское выражение, задаваемое в момент регистрации подписки на событие
(2) в событиях, связанных с GUI – графическим интерфейсом пользователя, контекст обычно определяет некоторый элемент управления
(3) если в ПО есть несколько объектов, которые могут включать события одного типа, то контекст задает тот объект, на события которого производится подписка
(4) контекст задает текст, окружающий точку включения события
Какие утверждения о недостатках, характерных для образца "Наблюдатель", являются справедливыми?
(1) связи между классами Subscriber и Publisher слабые, - издатели не знают своих подписчиков, подписчики не знают издателей, что мешает их взаимодействию
(2) связи между классами Subscriber и Publisher жесткие, - издатели знают своих подписчиков, подписчики знают издателей
(3) возможность применения двух схем аргументов обеспечивает гибкость и свободу выбора, облегчая разработку конкретного проекта
(4) обе схемы задания аргументов события, применяемые в образце "Наблюдатель", имеют серьезные недостатки
Какие факторы качества ПО относятся к долговременным факторам?
(1) адекватность требованиям
(2) переносимость
(3) стоимость разработки
(4) эффективность процесса разработки
(5) выполнение правил стиля программирования
(6) простота обучения
Динамическое связывание и полиморфное присоединение – два механизма, поддерживающие семантику присваивания и аналогичную семантику замены формальных аргументов при вызове метода. Какие утверждения справедливы для этих механизмов?
(1) если применяется полиморфное присоединение, то обязательно выполняется динамическое связывание
(2) если применяется полиморфное присоединение, то динамическое связывание может выполняться, а может и не выполняться
(3) если применяется полиморфное присоединение, то динамическое связывание не применяется
(4) если применяется один механизм, то второй применяться не может
(5) альтернативой динамического связывания является статическое связывание
Из 15 сформулированных свойств хороших требований, какое из предлагаемых свойств не входит в этот список?
(1) верифицируемость
(2) корректность
(3) коммуникативность
(4) приоритетность
(5) модифицируемость
При проектировании важное значение играет скрытие информации. В чем ценность этого приема?
(1) разработчик класса сохраняет свое "know how", не раскрывая деталей реализации
(2) клиенты класса могут работать с классом без необходимости рассмотрения деталей реализации
(3) благодаря полиморфизму и динамическому связыванию клиенту класса не требуется знать, какой именно поставщик создал вызванный им метод
(4) клиентам класса вполне достаточно знать интерфейс класса поставщика, включающий контракты
При проектировании программной системы многие классы связываются отношением наследования. Какие утверждения справедливы для наследования?
(1) для каждого класса – библиотечного, предопределенного, создаваемого программистом – существует предопределенный класс NONE, являющийся общим потомком
(2) класс, создаваемый программистом, может не иметь потомков
(3) класс, создаваемый программистом, имеет в качестве потомка класс NONE
(4) единственным экземпляром класса NONE является значение VOID, указывающее на отсутствие объекта
Пусть p – сущность типа F. Динамическим кастингом или приведением типа называется конструкция (S) p, динамически изменяющая в период выполнения тип сущности на тип S. Динамический кастинг опасная операция. В языке Eiffel для безопасного применения динамического кастинга введена конструкция, называемая тестом объекта. Тест объекта – это булевское выражение следующего вида: attached (S) p as t. Выражение получает значение false, если тип объекта, присоединенного к p, не согласован с типом S. Выражение получает значение true, если сущность p присоединена к объекту, согласованному по типу с типом S. В этом случае в качестве побочного эффекта создается локальная переменная t типа S, к которой присоединяется соответствующий объект. Пусть тест объекта появляется как условие if оператора. Какие утверждения справедливы относительно области определения локальной переменной t?
(1) переменную t можно использовать только в then ветви оператора if
(2) переменную t можно использовать только в else ветви оператора if
(3) переменную t можно использовать как в then, так и в else ветви оператора if
(4) переменную t можно использовать в операторах, следующих за оператором if
Когда выполняется присваивание x := agent r, то переменная x должна принадлежать специальному типу, часто называемому функциональным, поскольку объектами этого типа являются функции и процедуры. В Eiffel этот тип задается классом ROUTINE и тремя его потомками – классами PROCEDURE, FUNCTION, PREDICATE. Какой из этих классов обозначает запросы, возвращающие тип BOOLEAN?
(1) ROUTINE
(2) PROCEDURE
(3) FUNCTION
(4) PREDICATE
Одной из основных операций, применяемых к лямбда-выражениям, является операция, называемая бета-редукцией, позволяющая избавиться от связанных переменных выражения путем подстановки. Лямбда-выражение: math преобразуется в выражение math Какие утверждения справедливы для бета-редукции?
(1) для программиста, вызывающего метод, бета-редукция эквивалентна замене формальных аргументов метода фактическими аргументами, представленных выражениями
(2) бета-редукция всегда применима
(3) бета-редукция не применима, если в выражении math существует свободная переменная связно входящая в выражение math
(4) в этом примере math бета-редукция не применима
При проектировании ПО следует выделять как отдельные элементы "модель" ПО и "облик" ПО. Какие утверждения справедливы относительно понятия "модель"? Облик ПО – это:
(1) стиль, применяемый при описании ПО, - наличие документируемых комментариев, содержательные имена, другие правила, характеризующие стиль программирования.
(2) описание предметной области, в интересах которой разрабатывается ПО
(3) элементы ПО, отвечающие за представление информации при взаимодействии ПО с внешним миром, форму отображения
(4) графическая модель, иллюстрирующая связи между элементами ПО
Где следует объявлять событие?
(1) если событие не зависит от контекста, то его следует объявлять в классе, доступном как издателю, публикующего событие, так и подписчикам события
(2) если событие зависит от контекста, то его следует объявлять в каждом классе, задающем контекст
(3) событие всегда следует объявлять в классе, задающем издателя
(4) событие всегда следует объявлять в классе, задающем подписчика
Какие факторы качества ПО важны для пользователей программного продукта?
(1) внутренние
(2) внешние
(3) долговременные
(4) факторы, характеризующие процесс разработки
Пусть заданы классы P, F, M, S, D, где P – родитель классов F и M, класс F – родитель S, а M – родитель D. Пусть созданы объекты этих классов – op, of, om, os, od. Какие утверждения являются несправедливыми?
(1) присваивание of := od допустимо. В результате присваивания статический тип of задан классом F, а динамический тип – классом D
(2) присваивание of := od допустимо. В результате присваивания статический и динамический тип op задан классом D
(3) присваивание of := od недопустимо
(4) допустимы лишь те присваивания, в которых тип объекта источника является потомком статического типа цели
Какие утверждения относительно тестирования являются справедливыми?
(1) тестирование позволяет обнаружить ошибку
(2) тестирование позволяет обнаружить все ошибки
(3) в результате тестирования может быть доказано, что проект не содержит ошибок
(4) тестирование не позволяет доказать, что ошибки отсутствуют
Каждый создаваемый объект содержит поля, в которых хранятся значения атрибутов класса, задающие свойства объекта. В реализации языка Eiffel при создании объекта добавляются поля, содержащие дополнительную информацию. Эти поля содержат информацию, задающую:
(1) тип объекта
(2) значение объекта
(3) число классов - предков
(4) число классов - потомков
(5) данные для сборщика мусора
Пусть заданы классы P и F – родители класса S, а M – метод с одним и тем же именем в классах P и F. Какие утверждения в этой ситуации являются справедливыми?
(1) множественное наследование в этом случае невозможно из-за конфликта имен
(2) множественное наследование в этом случае возможно и конфликт имен разрешается автоматически, не требуя каких-либо описаний в классе S
(3) если метод M наследован классами P и F от общего родителя и оба класса сохранили реализацию родителя, то конфликт имен разрешается, класс S наследует общий метод М
(4) если метод M наследован классами P и F от общего родителя и оба класса изменили реализацию родителя, то для разрешения конфликта в классе S можно переименовать либо метод М из класса Р, либо метод М из класса F, либо оба метода, создав методы с новыми именами в классе S
Какие утверждения является корректными относительно применения механизма динамического связывания и образца проектирования "Посетитель"?
(1) при динамическом связывании каждый тип знает о применяемых операциях
(2) в образце "Посетитель" каждая операция знает о применяемых типах
(3) в образце "Посетитель" каждый тип знает о применяемых операциях
(4) при динамическом связывании каждая операция знает о применяемых типах
Какие методы определены в классе FUNCTION?
(1) call
(2) last_result
(3) item
(4) entry
Пусть дано лямбда-выражение: math При выполнении альфа преобразования можно:
(1) переменной math дать новое имя math
(2) переменной math дать новое имя math
(3) переменной math дать новое имя math
(4) переменной math дать новое имя math
(5) переменной math дать новое имя math
(6) переменной math дать новое имя math
При проектировании ПО приходится учитывать два разных аспекта проектирования, - разделять "модель" и "облик", "издателей" и "подписчиков". Какие утверждения справедливы относительно взаимодействия этих аспектов?
(1) издатели включают события, которые могут непосредственно изменить модель
(2) включение события не может быть причиной изменения модели
(3) подписчик, обрабатывая событие, может изменить модель
(4) обработка события не может быть причиной изменения модели ПО
В образце МОК (MVC) класс EVENT_TYPE:
(1) не используется
(2) является частью модели
(3) является частью облика
(4) является частью контроллера
Какие утверждения относительно факторов качества ПО являются справедливыми?
(1) как и для автомобилей, стоимость создания каждого экземпляра ПО высока
(2) стоимость разработки программного продукта высока, а стоимость создания каждого экземпляра ПО низка
(3) для большинства факторов качества ПО возможны только субъективные оценки, их численное измерение не представляется возможным
(4) поскольку программные системы индивидуальны, то таковым должен быть и процесс их разработки
Какие утверждения является корректными?
(1) развернутый тип согласован только с самим собой
(2) развернутый тип согласован со всеми типами
(3) если ссылочный класс А является потомком класса В и оба класса не являются универсальными, то тип, определяемый классом А, согласован с типом, определяемым классом В
(4) если ссылочный класс А является потомком класса В и оба класса являются универсальными, то тип, определяемый родовым порождением А [T, U, …] согласован с типом, определяемым родовым порождением В [T, U, …] с теми же самыми родовыми параметрами
Организации, создающие ПО, могут быть сертифицированы. Одна из таких сертификаций, оценивающая уровень зрелости организации, - сертификация CMMI – предполагает 5 уровней зрелости. Для зрелой организации в процессе разработки требуется управлять рисками, начиная с уровня зрелости:
(1) начальный
(2) управляемый
(3) определенный
(4) количественно управляемый
(5) оптимизирующий
Какие утверждения является корректными?
(1) реализация компонента является частью его спецификации
(2) метод класса является эффективным, если задана его реализация
(3) прямым экземпляром типа является объект, создаваемый конструктором типа (оператором создания)
(4) переобъявление метода у потомка всегда связано с изменением реализации метода
Пусть при повторном наследовании класс Р имеет метод М. Пусть у класса Р есть два наследника F и G, которые являются родительскими классами для класса S. В каких ситуациях у класса S будут существовать две версии метода М?
(1) класс Р задал реализацию метода М. Оба наследника наследовали ее без всяких изменений (сохранив имя и реализацию)
(2) класс Р метод М определил как отложенный. Один из наследников F задал реализацию метода, другой оставил метод отложенным
(3) класс Р задал реализацию метода М. Один из наследников F выполнил переопределение, задав собственную реализацию метода, другой оставил реализацию метода родителя
(4) класс Р задал реализацию метода М. Оба наследника выполнили переопределение, задав собственные реализации метода М
Какие утверждения справедливы относительно реализации образца проектирования "Посетитель"?
(1) паттерн "Посетитель" представляет популярный механизм, не имеющий недостатков
(2) недостатком паттерна является тот факт, что он требует от целевых классов наличия общего предка. Это условие может не выполняться, если изменение целевых классов не представляется возможным и предок классов не был заранее спроектирован
(3) недостатком паттерна является тот факт, что он требует внесения изменений в целевые классы при каждом появлении новой операции
(4) образец не задает повторно используемое решение. Он должен заново программироваться при каждом его применении
Какие утверждения является корректными?
(1) операнд агента открыт, если при его определении он задается знаком вопроса
(2) если все операнды агента открыты, то можно указывать знак вопроса для каждого операнда, либо опускать список операндов
(3) если операнд агента открыт, то его значения задаются в методе, связанном с агентом
(4) операнд агента закрыт, если при определении агента значение операнда не задано
(5) операнд агента закрыт, если при определении агента задано значение операнда
Анонимный метод – это метод?
(1) никому не известный
(2) определенный в анонимном классе
(3) без имени, заданный в точке определения агента
(4) который может не быть частью класса, но определен при задании контракта класса
Одним из известных образцов проектирования является образец (pattern), называемый МОК (Модель – Облик – Контроллер) или MVC (Model – View – Controller). Согласно этому образцу:
(1) пользователь думает в терминах модели
(2) пользователь думает в терминах облика
(3) модель обновляет облик
(4) пользователь обновляет облик
(5) контроллер обновляет облик
При подписке на событие выполнялся следующий оператор: my_button.my_click.subscribe(agent my_method) Какие утверждения является корректными?
(1) объект my_button задает контекст события
(2) объект my_button задает событие
(3) объект my_ click задает событие
(4) объект my_ click задает контекст события
(5) объект my_ method задает контекст события
(6) объект my_ method задает обработчик события
Какие факторы процесса разработки оценивают качество механизмов, применяемых для создания ПО?
(1) предсказуемость
(2) измеримость
(3) воспроизводимость
(4) устойчивость
При моделировании транспортной системы Traffic созданы объекты yellow_taxi класса TAXI и объект transport класса VEHICLE. Какие утверждения справедливы по отношению к этим объектам:
(1) эти объекты принадлежат разным классам и не имеют ничего общего
(2) объект yellow_taxi обладает всеми свойствами объекта transport
(3) объект transport обладает всеми свойствами объекта yellow_taxi
(4) возможно присваивание yellow_taxi := transport
(5) возможно присваивание transport := yellow_ taxi
Укажите правильную последовательность этапов в модели водопада:
(1) анализ требований, спецификация, проверка правильности, реализация, развертывание
(2) спецификация, анализ требований, проверка правильности, реализация, развертывание
(3) анализ требований, спецификация, реализация, проверка правильности, развертывание
(4) анализ требований, развертывание, спецификация, проверка правильности, реализация
Проектирование семейства классов начинается с создания класса – прародителя семейства. Как правило, такой класс является отложенным классом. У отложенного класса ряд методов являются отложенными. Укажите причины, по которым на верхних уровнях проектирования разумно создавать отложенные методы?
(1) в целях сокращения размера кода родительского класса
(2) код метода достаточно прост, и его легко реализовать в каждом потомке
(3) все потомки должны иметь метод, отвечающий спецификации, известной на данном уровне проектирования класса. Однако реализация метода, зависит от специфических особенностей каждого потомка и не может быть предложена на этом уровне абстракции
(4) все потомки должны иметь метод, отвечающий спецификации, известной на данном уровне проектирования класса. Однако реализация метода сложна и из-за нехватки времени переложена на потомков
Если у родительского класса есть инвариант, то наследник класса:
(1) обязан не изменять этот инвариант
(2) должен удалить этот инвариант
(3) может заменить инвариант собственным инвариантом
(4) может дополнить инвариант
Универсальность и наследование – два тесно связанных механизма, обеспечивающие мощь ОО проектирования и программирования. Рассмотрим универсальный класс LIST[T] – список, тип элементов которого задается параметром T. Укажите, какие классы могут быть связаны отношением наследования с классом LIST[T]?
(1) LIST[TAXI]
(2) LINKEDLIST[T]
(3) LIST[BUS]
(4) LIST[PERSON]
(5) TWOLINKEDLIST[T]
Какие утверждения справедливы по отношению к записи agent N?
(1) представляет выражение
(2) представляет оператор
(3) в этой записи N – это объект класса N
(4) в этой записи N – это некоторый метод
Композиция функций math и math – это специальная операция над функциями, которая обозначается как math или math. Какие утверждения справедливы по отношению к этой операции?
(1) операция применяется художниками при построении композиции изображаемой картины
(2) это некоторая функция от двух аргументов. Аргументы и результат этой функции являются функциями
(3) область определения функции, представляющей результат композиции, совпадает с областью определения функции f
(4) область определения функции, представляющей результат композиции, совпадает с областью определения функции math
Проектирование, управляемое событиями, - это стиль, определяющий архитектуру проекта. Он широко применяется в тех случаях, когда программа взаимодействует с внешним миром, - в интерактивных приложениях, в программах, управляющих производственными процессами. Какие утверждения справедливы для этого стиля проектирования?
(1) только внешний мир может инициировать появление события
(2) всякое событие, инициированное внешним миром, отображается в программное событие
(3) программные сервисы могут вызываться только в ответ на появление программных событий
(4) программные события могут быть инициированы в процессе работы программы, как реакция на обработку других событий
Какие утверждения справедливы для образца проектирования "Наблюдатель" (паттерн Observer)?
(1) представляет классический, хорошо изученный образец проектирования
(2) не имеет недостатков
(3) может использоваться в языках, где нет агентов, универсальности и кортежей
(4) использует такие возможности ООП, как полиморфизм и динамическое связывание
Инженерия программ – это технические приемы, используемые при разработке и сопровождении программных продуктов, отвечающих определенным стандартам качества. Инженерия программ включает:
(1) теорию программирования
(2) физические теории и теории других естественных наук
(3) технологию программирования
(4) процессы разработки и сопровождения
При рассмотрении наследования используются такие термины как: потомок, наследник, правильный потомок, родитель, предок, правильный предок. Какие утверждения справедливы относительно этих терминов?
(1) класс А является своим правильным потомком
(2) класс А является своим правильным предком
(3) родительский класс можно называть предком
(4) если класс А является правильным потомком класса В, а класс В является правильным потомком класса С, то класс А является правильным потомком класса С
Спиральная модель жизненного цикла кажется более гибкой, чем модель водопада. У нее есть как преимущества, так и недостатки. Какие утверждения справедливы, когда сравниваются эти две модели?
(1) построение прототипа позволяет на более ранних стадиях разработки проекта выявить его недостатки
(2) прототип не является законченным продуктом и потому не может использоваться в качестве версии, поставляемой пользователям
(3) анализ рисков, характерный для модели водопада не выполняется в спиральной модели
(4) анализ рисков, характерный для спиральной модели не выполняется в модели водопада
Какие утверждения справедливы относительно отложенных классов, их методов и объектов?
(1) метод класса является эффективным, если эффективен размер его кода и время выполнения
(2) метод класса является эффективным, если задана его реализация
(3) тип или класс является эффективным, если все его компоненты эффективны
(4) создание объектов отложенного типа невозможно, поскольку у класса нет конструкторов
(5) можно объявлять сущности отложенного типа и благодаря полиморфизму и динамическому связыванию присоединять к ним согласованные по типу объекты
Какой связкой объединятся наследуемый инвариант и инвариант, заданный в классе наследника?
(1) and
(2) or
(3) and then
(4) or else
(5) implies
Пусть задан универсальный класс C[T] и одно из полей этого класса объявлено как x : T. Какие операции допустимы для сущности x?
(1) is_equall
(2) cloned
(3) любые операции, разрешенные для всех типов и определенные в классе ANY – предком всех классов
(4) greater_than
Пусть присваивание x := agent N корректно выполняется в программе на Eiffel . Какие операторы вызова заведомо не корректны?
(1) x.call([y,z])
(2) N.call([y,z])
(3) x(y,z)
(4) N(x,y)
Функции, аргументы которых функциями не являются, назовем функциями первого порядка. Функции, аргументы которых являются функциями, назовем функциями высшего порядка. Функциями порядка k назовем функции, у которых хотя бы один аргумент является функцией порядка k – 1, и у которых нет аргументов более высокого порядка. Какие утверждения справедливы?
(1) в практике программирования используются только функции первого порядка
(2) в практике программирования широко используются функции первого и второго порядка
(3) в практике программирования широко используются функции любого порядка
(4) в лямбда исчислении изучаются только функции первого порядка
(5) в лямбда исчислении изучаются только функции первого и второго порядка
(6) в лямбда исчислении изучаются функции любого порядка
Управление событиями, можно рассматривать как некоторую структуру управления, получившую название "издатели – подписчики". Какие утверждения справедливы относительно этой структуры?
(1) эту структуру можно рассматривать как еще одну управляющую структуру наравне с циклическими структурами и структурами выбора
(2) издатели – элементы ПО – могут включать события
(3) подписчики – другие элементы ПО – могут получать сообщения о событиях и обрабатывать события
(4) каждый издатель обязан знать своих подписчиков
Архитектура образца "Наблюдатель" предполагает проектирование:
(1) одного семейства классов
(2) двух семейств классов
(3) трех семейства классов
(4) четырех семейств классов
В соответствии с классификацией DIAMO на каких этапах выполняется проектирование программного продукта?
(1) описание
(2) управление
(3) функционирование
(4) реализация
(5) оценка
Eiffel Studio позволяет отображать различные облики класса. Плоский облик класса отображает:
(1) только компоненты, введенные в классе
(2) только компоненты, введенные в родительском классе
(3) только компоненты, введенные во всех классах, являющихся правильными предками
(4) все компоненты, введенные как самим классом, так и его предками
В чем особенность кластерной модели жизненного цикла?
(1) создаются прототипы системы в виде отдельных кластеров
(2) эта модель допускает параллельную разработку модулей программного продукта, входящих в разные кластеры
(3) разбиение системы на кластеры ускоряет разработку, но предъявляет более высокие требования к спецификации взаимодействия между кластерами
(4) разбиение на кластеры возможно только в тех случаях, когда модули системы не связаны между собой
(5) кластерная модель в наиболее полной степени соответствует духу объектно-ориентированного проектирования и программирования
Какие утверждения о проектировании системы классов, связанных отношением наследования, следует считать корректными:
(1) на высших уровнях иерархии наследования следует создавать отложенные классы, задающие абстрактные концепции
(2) следует стараться проектировать иерархию, включающую не более двух уровней. На верхнем уровне находится отложенный класс, на следующем уровне его наследники, являющиеся эффективными классами
(3) число уровней в иерархии наследования зависит от специфики задачи. Минимизировать число уровней не следует
(4) "Программы с дырами" позволяют сочетатьповторное использование и адаптивность к конкретным особенностям реализации
При переопределении метода возможно и переопределение контракта. Какие утверждения справедливы при переопределении контракта:
(1) предусловие и постусловие записываются в базисной форме – в предложениях require и ensure
(2) изменяется базисная форма записи предложений require и ensure
(3) если не задавать предусловие и постусловие, то сохраняются условия, заданные родителем
(4) если не задавать предусловие и постусловие, то отменяются условия, заданные родителем
Пусть программист определил классы Т1 и Т2. Какие заголовки классов с ограничением универсальности синтаксически корректны в Eiffel?
(1) class P[R -> T1, NUMERIC]
(2) class P[R -> {T1, NUMERIC}]
(3) class P[R1 -> T1, R2 -> NUMERIC]
(4) class P[R : T1, R2 :T1, T2]
(5) class P[R -> {COMPARABLE, NUMERIC}]
Пусть z переменная и выполнено присваивание z := r. Что справедливо при вызове z.call([x, y])?
(1) в точке вызова всегда известно, какой метод будет вызван
(2) в точке вызова никогда неизвестно, какой метод будет вызван
(3) в точке вызова может быть вызван любой метод
(4) вызываемый метод, связанный с агентом, должен иметь определенную сигнатуру
Какие утверждения справедливы относительно лямбда определения функции:
(1) лямбда определение синтаксически подобно присваиванию. В левой части определения указывается имя переменной функционального типа, в правой – лямбда-выражение. Левую и правую части разделяет знак равенства
(2) в левой части определения указывается имя переменной функционального типа, в правой – арифметическое выражение
(3) лямбда определение синтаксически подобно присваиванию. В левой части определения указывается имя переменной функционального типа, в правой – лямбда-выражение. Левую и правую части разделяет знак присваивания
(4) лямбда определение синтаксически подобно присваиванию. В левой части определения указывается имя переменной любого типа, в правой – лямбда-выражение. Левую и правую части разделяет знак равенства
Какое утверждение несправедливо относительно понятия "событие"?
(1) событие можно рассматривать как операцию, выполняемую элементом ПО
(2) событие несет информацию, доступную другим элементам ПО
(3) информация, связанная с событием, закрыта и недоступна другим элементам ПО
(4) внешние события могут стать причиной возникновения программных событий, рассматриваемых как операции ПО
Архитектура образца "Наблюдатель" предполагает проектирование класса Subscriber (Подписчик), который является родителем соответствующего семейства классов. Какие утверждения справедливы относительно этого класса?
(1) класс задает общие свойства и поведение подписчиков без учета какой-либо специфики конкретного подписчика
(2) класс является эффективным с полностью заданной реализацией
(3) класс является отложенным
(4) класс задает свойства и поведение конкретного подписчика
Инженерный подход к разработке программного продукта предполагает измерение количественных показателей, характеризующих как сам продукт, так и процесс разработки. Какой из показателей наиболее трудно измерить численно?
(1) размер продукта
(2) сложность продукта
(3) время разработки
(4) стоимость разработки
Полиморфизм - одно из важнейших понятий, связанных с наследованием. Какое высказывания справедливы для присваивания?
(1) только ссылочное присваивание может быть полиморфным
(2) только присваивание для значимых (развернутых) типов может быть полиморфным
(3) как ссылочное, так и значимое присваивание может быть полиморфным
(4) полиморфное присваивание предполагает трансформацию значения
Для какой модели разработки ПО характерна практика парного программирования?
(1) водопада
(2) спиральной
(3) кластерной
(4) agile
Какие высказывания справедливы для таких понятий как переопределение и переобъявление методов?
(1) переобъявление более широкое понятие и включает переопределение
(2) переопределение более широкое понятие и включает переобъявление
(3) эти понятия эквивалентны
(4) если выполняется переопределение метода, то переобъявление не происходит
(5) переобъявление означает изменение чего-либо – контракта, сигнатуры, реализации
(6) переопределение метода должно быть явным и сопровождаться ключевым словом redefine
В родительском классе Р задан эффективный метод М с предусловием "Быть пушистым" and "Быть белым". Наследник этого класса Р1 переопределил этот метод, задав соответственно предусловие: require else "Быть белым". Наследник этого класса Р2 переопределил этот метод, задав соответственно предусловие: require else "Быть пушистым". Наследник этого класса Р3 переопределил этот метод, задав соответственно предусловие: require else "Быть натуральным". Объект, передаваемый на вход методу М, обладает свойствами "Быть пушистым" and "Быть натуральным" and "Быть белым". Каково число реализаций метода М, которые могут применяться для обработки этого объекта?
(1) 1
(2) 2
(3) 3
(4) 4
(5) 0
При проектировании класса VECTOR[ELEMENT-> NUMERIC] сам класс был объявлен наследником класса NUMERIC. Какие родовые порождения допустимы в этом случае?
(1) VECTOR[REAL]
(2) VECTOR[VECTOR[REAL]]
(3) VECTOR[PERSON]
(4) VECTOR[INTEGER]
(5) VECTOR[TRAM[REAL]]
В каких ситуациях при итерировании контейнерной структуры применим механизм агентов?
(1) нужно обойти структуру и для каждого элемента выполнить определенную операцию
(2) нужно обойти структуру и для каждого элемента выполнить специфическую операцию, зависящую от элемента
(3) нужно обойти структуру и для каждого элемента, для которого некоторое условие принимает значение true, выполнить определенную операцию
(4) нужно выполнить обход структуры, пока не встретится элемент, для которого некоторое условие принимает значение true. Для каждого пройденного элемента требуется выполнить определенную операцию
Что позволяет карринг при его применении к функции math аргументов?
(1) понизить только на одну единицу число аргументов, превратив исходную функцию в функцию от math аргумента
(2) всегда преобразует исходную функцию в функцию от одного аргумента
(3) преобразовать исходную функцию в функцию от math аргументов
(4) выполнить частичные вычисления, задав значения ряда исходных аргументов, получив в результате функцию от оставшихся аргументов
Какие высказывания справедливы для процесса регистрации подписки?
(1) при регистрации подписчик регистрируется на определенный тип события
(2) при регистрации подписчик указывает метод, который будет вызываться для обработки сообщения о возникшем событии указанного типа
(3) на метод, который подписчик указывает при регистрации, не накладывается никаких ограничений
(4) метод, который подписчик указывает при регистрации, обязан иметь сигнатуру, совпадающую с сигнатурой, заданной типом события
Какие поля и методы имеет класс Publisher?
(1) поле subscribers, задающее список подписчиков
(2) поле publishers, задающее список издателей
(3) метод Subscribe, позволяющий подписать подписчика, заданного аргументом метода
(4) метод Unsubscribe, позволяющий отменить подписку подписчика, заданного аргументом метода
Говоря о качестве ПО, можно анализировать качество с разных точек зрения. Какое качество представляется не столь важным?
(1) текущей версии продукта
(2) будущей, перспективной версии
(3) первоначальной, уже не используемой версии
(4) процесса разработки
Только одно из утверждений относительно полиморфизма и динамического связывания является справедливым. Какое?
(1) метод, описываемый в некотором классе А, может вызывать только методы этого класса
(2) метод, описываемый в некотором классе, может вызывать только методы этого класса и методы, описанные в классах, являющихся предками класса А
(3) метод, описываемый в некотором классе, может вызывать методы этого класса, методы, описанные в классах, являющихся предками класса А, и методы потомков класса А, несмотря на то, что эти потомки еще не созданы в момент создания класса А
(4) если x – объект класса А и М – метод этого класса, то вызов x.M(…) всегда будет вызывать метод М класса А
Успешные системы строятся в интересах клиентов и должны соответствовать их требованиям. Какие утверждения справедливы? В результате анализа требований:
(1) достигается соответствие между пожеланиями клиентов и функционалом системы
(2) создается документ требований, описывающий характеристики системы, которую предстоит построить
(3) создается документ требований, описывающий характеристики программистов, которым предстоит построить систему
(4) создается тест-план, описывающий, как построенная система будет оцениваться
В некоторых языках программирования используется перегрузка методов, когда несколько методов имеют одно и то же имя, но разную сигнатуру. Какие из утверждений являются справедливыми?
(1) в языке Eiffel перегрузка методов не допускается
(2) в языке Eiffel перегрузка методов широко используется
(3) в языках C++, C#, Java перегрузка методов не допускается
(4) в языках C++, C#, Java перегрузка методов широко используется
В классе Р задан эффективный метод М с постусловием "Т > 10". Наследник этого класса Р1 переопределил этот метод, задав соответственно постусловие: ensure then "Т > 20". Класс Р2 - наследник Р1 в свою очередь переопределил этот метод, задав соответственно постусловие: ensure then "Т > 50". Класс Р3 - наследник Р2 в свою очередь переопределил этот метод, задав соответственно постусловие: ensure then "Т > 100". Клиенту требуется вызвать метод, обеспечивающий на выходе истинность условия: "T > 70". Методы каких классов могут гарантировать истинность выполнения этого условия?
(1) Р1
(2) Р2
(3) Р3
(4) Р
Какие утверждения справедливы относительно принципа кастинга (приведения типа)?
(1) приведение типа должно выполняться статически, еще на этапе компиляции
(2) приведение типа должно выполняться динамически, на этапе выполнения
(3) перед приведением типа следует осуществить проверку согласованности фактического типа объекта и ожидаемого типа, к которому объект приводится
(4) механизм кастинга должен быть условным, включая проверку некоторого условия
Механизм агентов с успехом применяется в ряде ситуаций. Какие утверждения справедливы? Можно ли при откатах заменить этот механизм?
(1) нельзя, иначе придется отказаться от возможности отката
(2) можно, если полностью сохранять состояние, предшествующее каждой выполняемой команде и при откатах восстанавливать это состояние
(3) можно, используя механизм наследования, когда создается класс Command и каждый из его наследников задает реализацию, как самой команды, так и команды, отменяющей действие и обеспечивающей возврат к предыдущему состоянию
(4) механизм наследования в этой ситуации не применим
Какие утверждения являются справедливыми относительно связанных и свободных вхождений в выражения?
(1) переменная, перечисленная в сигнатуре лямбда-выражения, является связанной в этом выражении
(2) любое вхождение связанной переменной в лямбда-выражение является связанным вхождением
(3) вхождение переменной math в выражение math является связанным, если оно является связанным вхождением в одном из лямбда подвыражений, являющихся частью выражения math
(4) вхождение переменной math в выражение math является свободным, если оно не является связанным
(5) вхождение переменной math в выражение math может быть как связанным, так и свободным
Пусть подписчик зарегистрировался на тип события "Click" командной кнопки. Пользователь в процессе работы "щелкнул" одну из командных кнопок, являющихся частью пользовательского интерфейса. Какие утверждения справедливы?
(1) всегда будет вызываться метод, указанный в момент регистрации, обрабатывающий возникшее событие
(2) метод, указанный в момент регистрации, будет вызываться только в том случае, если будет истинным условие контекста, заданное в момент регистрации и вычисляемое в момент включения события
(3) для командных кнопок невозможно задать контекст в виде булевского выражения
(4) для командных кнопок можно задать контекст в виде булевского выражения, такого как "курсор установлен на кнопке М"
Какой из методов не входит в интерфейс класса EVENT_TYPE?
(1) Publish
(2) Handle
(3) Subscribe
(4) Unsubscribe
Какие факторы качества ПО относятся к внешним факторам?
(1) адекватность требованиям
(2) переносимость
(3) стоимость разработки
(4) эффективность процесса разработки
(5) выполнение правил стиля программирования
(6) простота обучения
Какие утверждения справедливы?
(1) при вызове x.M(…), где x – полиморфная сущность, будет вызываться метод М из класса, заданного статическим типом x (типом, заданным при объявлении x)
(2) при вызове x.M(…), где x – полиморфная сущность, будет вызываться метод М из класса, заданного динамическим типом x (типом объекта, присоединенного к x в момент вызова)
(3) в Eiffel по умолчанию применяется динамическое связывание
(4) в C++, C#, Java по умолчанию применяется динамическое связывание
При создании документа требований какой прием не применяется при сборе требований?
(1) интервью
(2) семинары и конференции
(3) рекламные объявления
(4) существующая версия системы
(5) конкурирующие системы
Полиморфизм и динамическое связывание позволяет автоматически проводить разбор случаев – при вызове динамически выбирается наиболее подходящий метод. Такой разбор случаев можно проводить и явно, написав соответствующий программный код. Какие утверждения справедливы относительно этих двух подходов?
(1) разбор случаев всегда предпочтительнее наследования, поддерживаемого полиморфизмом
(2) наследование, поддерживаемое полиморфизмом всегда предпочтительнее разбора случаев
(3) наследование, поддерживаемое полиморфизмом чаще всего предпочтительнее разбора случаев
(4) при добавлении нового варианта в схему разбора случаев приходится изменять существующий код, что является отрицательным фактором
(5) при добавлении нового варианта в схему с наследованием приходится добавить новый класс, но не требуется изменять существующий код, что гораздо предпочтительнее
При проектировании программной системы многие классы связываются отношением наследования. Какие утверждения справедливы для наследования?
(1) для каждого класса – библиотечного, предопределенного, создаваемого программистом – существует предопределенный класс, являющийся общим предком
(2) для класса, создаваемого программистом, в предложении наследования inherit необходимо явно указать класс ANY, играющего роль общего предка
(3) для класса, создаваемого программистом, предложение наследования inherit может быть опущено, в этом случае у класса не будет предков
(4) для класса, создаваемого программистом, предложение наследования inherit может быть опущено, в этом случае у класса будет единственный предок – класс ANY
Пусть p – сущность типа F. Динамическим кастингом или приведением типа называется конструкция (S) p, динамически изменяющая в период выполнения тип сущности на тип S. Динамический кастинг опасная операция. В языке Eiffel для безопасного применения динамического кастинга введена конструкция, называемая тестом объекта. Тест объекта – это булевское выражение следующего вида: attached (S) p as t. Выражение получает значение false, если тип объекта, присоединенного к p, не согласован с типом S. Выражение получает значение true, если сущность p присоединена к объекту, согласованному по типу с типом S. В этом случае в качестве побочного эффекта создается локальная переменная t типа S, к которой присоединяется соответствующий объект. Пусть тест объекта появляется как отрицание условия if оператора. Какие утверждения справедливы относительно области определения локальной переменной t?
(1) переменную t можно использовать только в then ветви оператора if
(2) переменную t можно использовать только в else ветви оператора if
(3) переменную t можно использовать как в then, так и в else ветви оператора if
(4) переменную t можно использовать в операторах, следующих за оператором if
Когда выполняется присваивание x := agent r, то переменная x должна принадлежать специальному типу, часто называемому функциональным, поскольку объектами этого типа являются функции и процедуры. В Eiffel этот тип задается классом ROUTINE и тремя его потомками – классами PROCEDURE, FUNCTION, PREDICATE. Какой из этих классов задает агентов, связанных с командами?
(1) ROUTINE
(2) PROCEDURE
(3) FUNCTION
(4) PREDICATE
Имена в подвыражениях лямбда выражения могут конфликтовать. Какие утверждения справедливы относительно устранения возникающей некорректности записи выражения?
(1) если бета-редукция не применима, то устранить причину некорректности невозможно
(2) если бета-редукция не применима, то возможно устранить причину некорректности путем переименования связанных переменных
(3) неприменимость бета-редукции имеет аналогию в программировании – это конфликт имен формальных аргументов метода и полей класса
(4) конфликты имен легко устраняются и в программировании и в лямбда исчислении
При проектировании ПО следует выделять как отдельные элементы "модель" ПО и "облик" ПО. Какие утверждения справедливы относительно понятия "модель"? Модель ПО – это:
(1) физическая модель предметной области, для решения задач которой проектируется ПО
(2) программная модель предметной области, описывающая понятия предметной области и связи между ними, методы решения возникающих задач
(3) графическая модель, иллюстрирующая связи между элементами ПО
(4) та часть ПО, которая отвечает за представление информации при взаимодействии ПО с внешним миром
Пусть в интерфейсе пользователя заданы 5 командных кнопок класса Button и три пункта меню класса Menu. Для всех этих элементов возможно событие Click. Сколько объектов, задающих событие Click, следует создать?
(1) 1
(2) 2
(3) 3
(4) 5
(5) 8
Какой из факторов не относится к факторам, характеризующим процесс разработки?
(1) стоимость разработки
(2) скорость разработки
(3) корректность
(4) встроенное оценивание
(5) эффективность организации взаимодействия в команде
Какие утверждения относительно статического и динамического типа полиморфной сущности являются справедливыми?
(1) статический тип сущности может изменяться в течение выполнения программы
(2) статический тип сущности это тип, используемый при ее объявлении
(3) динамический тип сущности может изменяться в течение выполнения программы
(4) динамический тип сущности это тип, используемый при ее объявлении
(5) в момент присваивания динамический тип сущности задается типом объекта, присоединяемого к сущности
Какие виды тестирования не применяются на практике?
(1) прогрессивное
(2) регрессионное
(3) юнит
(4) сениор
(5) интеграционное
(6) системное
(7) приемочное
Какие утверждения относительно возможности эффективной реализации динамического связывания являются справедливыми?
(1) динамическое связывание, основанное на использовании таблицы методов, позволяет найти нужный метод за время O(n), где n – число методов у объекта, осуществляющего вызов
(2) динамическое связывание, основанное на использовании таблицы методов, позволяет найти нужный метод за константное время O(1)
(3) компилятор Eiffel всегда выполняет динамическое связывание, поскольку оно задает корректную семантику вызова
(4) компилятор Eiffel выполняет статическое связывание в тех ситуациях, когда оно задает корректную семантику вызова
Какие утверждения относительно переименования и переобъявления являются справедливыми?
(1) переименование сохраняет наследуемый компонент, изменяя его имя
(2) переобъявление изменяет наследуемый компонент, сохраняя его имя
(3) если выполняется переименование компонента, то его переобъявление недопустимо
(4) допускается сочетание переименования компонента с его переобъявлением
Какие утверждения, связанные с образцом проектирования "Посетитель", являются справедливыми?
(1) целевыми классами для образца являются классы, в которые необходимо добавить новую операцию
(2) клиентскими классами для образца являются классы, которые применяют новую операцию к целевым объектам
(3) клиентскими классами для образца являются классы, в которые необходимо добавить новую операцию
(4) целевыми классами для образца являются классы, которые применяют новую операцию к целевым объектам
У какого из трех классов PROCEDURE, FUNCTION, PREDICATE три родовых параметра?
(1) ROUTINE
(2) PROCEDURE
(3) FUNCTION
(4) PREDICATE
Зависимые переменные лямбда-выражений, также как и формальные параметры методов в программировании, могут быть переименованы без потери смысла. Операция, выполняющая такое преобразование в лямбда-выражениях, называется альфа – преобразованием. При выполнении этого преобразования зависимой переменной x можно дать:
(1) любое другое имя без всяких ограничений на выбор нового имени
(2) новое имя, например math, при условии, что новая переменная math не является свободной переменной лямбда-выражения
(3) новое имя, например math, при условии, что новая переменная math не является зависимой переменной лямбда-выражения
(4) новое имя, например math, при условии, что новая переменная math не является свободной и не является зависимой переменной лямбда-выражения. Выполнение этого условия необходимо и достаточно для выполнения альфа преобразования
При проектировании ПО приходится учитывать два разных аспекта проектирования, - разделяя "модель" и "облик", "издателей" и "подписчиков". Какие утверждения справедливы относительно взаимодействия этих аспектов?
(1) взаимодействие элементов модели и элементов облика следует сводить к минимуму
(2) взаимодействие элементов модели и элементов облика следует делать как можно максимальным
(3) издатели могут включать события, как из-за изменений модели, так и из-за изменений облика
(4) издатели могут включать события только в результате изменений модели
(5) обработка события может быть причиной изменения, как модели, так и облика ПО
Какие утверждения являются справедливыми относительно списка подписчиков для образца, связанного с классом EVENT_TYPE?
(1) список subscribers теперь не нужен
(2) список subscribers по-прежнему существует и содержит, как и ранее, объекты, задающие подписчиков
(3) список subscribers по-прежнему существует, но теперь он включает агентов, задающих процедуры обработки события
(4) список subscribers объявляется в каждом классе, задающем издателя
(5) список subscribers является компонентом класса EVENT_TYPE
Какие утверждения относительно факторов качества ПО являются справедливыми?
(1) адекватность программного продукта внешним требованиям и корректность продукта – это синонимичные понятия. Корректный продукт всегда адекватен. Справедливо и обратное утверждение
(2) корректный продукт может быть не адекватен
(3) корректный продукт всегда устойчив
(4) устойчивость предусматривает специальные меры реагирования на ситуации, не предусмотренные спецификациями проекта
Какие утверждения являются корректными?
(1) любой динамический тип сущности должен быть согласован с ее статическим типом
(2) наследование означает, что наследник получает компоненты родителя. Экземпляры наследника (объекты) могут быть обработаны таким же способом, что и экземпляры родителя
(3) полиморфизм может применяться как к ссылочным сущностям, так и к развернутым
(4) полиморфизм и динамическое связывание – это эквивалентные понятия
Организации, создающие ПО, могут быть сертифицированы. Одна из таких сертификаций, оценивающая уровень зрелости организации, - сертификация CMMI – предполагает 5 уровней зрелости. Какие из приведенных уровней не входят в сертификацию CMMI?
(1) начальный
(2) управляемый
(3) неуправляемый
(4) определенный
(5) количественно управляемый
(6) качественно управляемый
(7) оптимизирующий
Какие утверждения являются корректными?
(1) спецификацию компонента составляет его контракт и его сигнатура
(2) полиморфизм предполагает, что потомки класса могут изменять реализацию метода, заданную в классе
(3) потомок не может объявить метод отложенным, если задана реализация метода одним из предков
(4) динамическое связывание необходимо для реализации полиморфизма
Какие утверждения о наследовании являются корректными?
(1) при наследовании родительский класс часть своих компонентов завещает одному потомку, а часть другому
(2) при наследовании при появлении нового наследника у родительского класса уже существующие наследники передают часть своих компонентов новому наследнику
(3) наследование называется повторным, если от потомка к предку ведут ровно два пути
(4) наследование называется повторным, если от потомка к предку ведут два или более путей
Какие утверждения являются корректными по отношению к образцу проектирования "Посетитель"?
(1) новая операция добавляется в целевой класс
(2) для новой операции создается специальный класс VISITOR, содержащий реализации операций для существующих типов данных
(3) образец предполагает "треугольник операций". Клиент обращается к целевому классу с требованием выполнить операцию, заданную аргументом. Целевой класс обращается к классу VISITOR за выполнением операции, передавая свой тип, в качестве аргумента
(4) образец предполагает "треугольник операций". Клиент обращается к классу VISITOR за выполнением операции, передавая свой тип, в качестве аргумента, VISITOR класс обращается к целевому классу с требованием выполнить операцию, заданную аргументом
Что обозначает агентное выражение agent g(a, ?, b)?
(1) выражение, в записи которого допущена синтаксическая ошибка
(2) Функцию с тремя аргументами, реализация которой отложена и требует дальнейшего уточнения
(3) функцию с тремя аргументами, имя одного из которых уточняется в момент вызова
(4) функцию с одним аргументом, полученную из функции с тремя аргументами заморозкой первого и третьего аргумента фиксированными значениями a и b
Какие утверждения являются корректными?
(1) теория лямбда исчисления представляет основу понимания агентов
(2) связанные переменные лямбда-выражения не являются произвольными именами
(3) каррингом функции из math аргументов называется специализация (задание значений) math аргументов (math). В результате карринга функция из math аргументов трансформируется в функцию из math аргументов
(4) процесс переименования связанных переменных лямбда-выражения называется бета-редукцией
(5) процесс переименования связанных переменных лямбда-выражения называется альфа-преобразованием
Одним из известных образцов проектирования является образец (pattern), называемый МОК (Модель – Облик – Контроллер) или MVC (Model – View – Controller). Согласно этому образцу:
(1) пользователь взаимодействует с моделью
(2) пользователь взаимодействует с контроллером
(3) контроллер обновляет модель
(4) пользователь обновляет модель
При подписке на событие выполнялся следующий оператор: left_click.subscribe(agent my_method) Какие утверждения является корректными?
(1) объект left_click задает контекст события
(2) объект left_click задает событие
(3) объект my_ method задает событие
(4) объект my_ method задает обработчик события
(5) событие не использует контекст
Какие утверждения являются корректными?
(1) верификация - это проверка того, "делаются ли правильные вещи"
(2) проверка правильности - это проверка того, "делаются ли правильные вещи"
(3) верификация - это проверка того, "делаются ли вещи правильно"
(4) проверка правильности - это проверка того, "делаются ли вещи правильно"