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



Авторы специализируются на тестах по любым дисциплинам! Средний балл по тестам 4,6.
 
Любые вопросы по дистанционному обучению. Тесты, письменные работы, сессия под ключ.
 
Известный интернет сайт, помощь по любым учебным вопросам - от теста до дипломной работы. Личный менеджер.
 
Крупная биржа студенческих работ. Закажи напрямую у преподавателя. Низкие цены, стена заказов.
 

Говоря о качестве ПО, можно анализировать качество с разных точек зрения. Какое качество представляется не столь важным?

  • процесса разработки
  • текущей версии продукта
  • будущей, перспективной версии
  • (Правильный ответ) первоначальной, уже не используемой версии

Укажите правильную последовательность этапов в модели водопада:

  • анализ требований, спецификация, проверка правильности, реализация, развертывание
  • анализ требований, развертывание, спецификация, проверка правильности, реализация
  • спецификация, анализ требований, проверка правильности, реализация, развертывание
  • (Правильный ответ) анализ требований, спецификация, реализация, проверка правильности, развертывание

Контракты играют важную роль при проектировании. Какие утверждения справедливы для контрактов в процессе наследования?

  • (Правильный ответ) контракты следует задавать на как можно высоком уровне абстракции
  • при переопределении реализации метода наследником контракт метода также переопределяется
  • контракты нельзя задать на верхнем уровне абстракции. Они тесно связаны с реализацией
  • (Правильный ответ) при переопределении реализации метода наследником контракт метода сохраняется

Если в родительском классе есть отложенный метод, то наследник класса обязан?

  • оставить этот метод отложенным
  • задать реализацию отложенного метода
  • (Правильный ответ) задать реализацию либо оставить метод отложенным
  • в случае задания реализации создать новый отложенный метод

При проектировании ПО приходится учитывать два разных аспекта проектирования, — разделяя «модель» и «облик», «издателей» и «подписчиков». Какие утверждения справедливы относительно взаимодействия этих аспектов?

  • включение события не может быть причиной изменения облика
  • (Правильный ответ) подписчик, обрабатывая событие, может изменить облик
  • (Правильный ответ) издатели включают события, которые могут непосредственно изменить облик
  • обработка события не может быть причиной изменения облика ПО

Зависимые переменные лямбда-выражений, также как и формальные параметры методов в программировании, могут быть переименованы без потери смысла. Операция, выполняющая такое преобразование в лямбда-выражениях, называется альфа – преобразованием. При выполнении этого преобразования зависимой переменной x можно дать:

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

Какие поля и методы имеет класс Subscriber?

  • (Правильный ответ) метод Subscribe, позволяющий подписаться у издателя, заданного аргументом метода
  • (Правильный ответ) метод Unsubscribe, позволяющий отменить подписку у издателя, заданного аргументом метода
  • поле subscribers, задающее список подписчиков
  • поле publishers, задающее список издателей

Что происходит с контрактами при наследовании. Укажите корректные утверждения?

  • контракты родительского класса наследуются и не могут быть изменены
  • в отличие от компонент класса контракты родительского класса не наследуются
  • (Правильный ответ) контракты родительского класса наследуются, должны выполняться потомком, но потомок может включить в контракт дополнительные обязательства
  • контракты родительского класса наследуются, но часть контракта может быть отменена

Образец «Наблюдатель» имеет серьезные недостатки. Поэтому в таких языках, как Eiffel, где есть такие средства как агенты и кортежи, можно использовать при работе с событиями другой образец, основанный на классе EVENT_TYPE. Какие утверждения справедливы для этого класса?

  • класс играет роль класса Subscriber, но для публикации необходим еще один класс – аналог класса Publisher
  • класс играет роль класса Publisher, но для подписки необходим еще один класс – аналог класса Subscriber
  • (Правильный ответ) это единственный класс, лежащий в основе нового образца
  • (Правильный ответ) методы класса позволяют осуществлять как публикацию сообщения, так и подписку на событие, а также отмену подписки

Какие факторы качества ПО относятся к долговременным факторам?

  • (Правильный ответ) переносимость
  • стоимость разработки
  • выполнение правил стиля программирования
  • эффективность процесса разработки
  • простота обучения
  • адекватность требованиям

Управление событиями, можно рассматривать как некоторую структуру управления, получившую название «издатели – подписчики». Какие утверждения справедливы относительно этой структуры?

  • (Правильный ответ) элемент ПО (класс), являющийся издателем (одного события), может одновременно быть подписчиком (другого события)
  • элемент ПО (класс), являющийся издателем, не может быть подписчиком
  • элемент ПО (класс), являющийся подписчиком, не может быть издателем
  • (Правильный ответ) издатель не обязан знать своих подписчиков

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

  • время разработки
  • стоимость разработки
  • (Правильный ответ) сложность продукта
  • размер продукта

При переопределении метода возможно и переопределение контракта. Какие утверждения справедливы при переопределении контракта:

  • (Правильный ответ) изменяется базисная форма записи предложений require и ensure
  • если не задавать предусловие и постусловие, то отменяются условия, заданные родителем
  • (Правильный ответ) если не задавать предусловие и постусловие, то сохраняются условия, заданные родителем
  • предусловие и постусловие записываются в базисной форме – в предложениях require и ensure

Для объектно-ориентированного стиля разработки ПО наиболее подходит модель:

  • любая
  • (Правильный ответ) кластерная
  • спиральная
  • водопада

При моделировании 7-и уровневой классификации Линнея создан объект prima класса «Примат«. (В классификации Линнея это уровень – отряд. Согласно Линнею, к приматам относятся люди, обезьяны, летучие мыши, ленивцы). Какие утверждения справедливы по отношению к этому объекту?

  • если создан объект homo класса «Человек Разумный«, то возможно присваивание: homo := prima
  • (Правильный ответ) он описывает некоторые свойства прикладных математиков
  • (Правильный ответ) если создан объект homo класса «Человек Разумный«, то возможно присваивание: prima := homo
  • он полностью описывает все свойства приматов — прикладных математиков

При проектировании ПО следует выделять как отдельные элементы «модель» ПО и «облик» ПО. Какие утверждения справедливы относительно понятия «модель»? Модель ПО – это:

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

Из 15 сформулированных свойств хороших требований, какое из свойств не входит в этот список?

  • полнота
  • понятность
  • прослеживаемость
  • (Правильный ответ) вычислимость
  • обоснованность

При проектировании ПО следует выделять как отдельные элементы «модель» ПО и «облик» ПО. Какие утверждения справедливы относительно понятия «модель»? Облик ПО – это:

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

Когда выполняется присваивание x := agent r, то переменная x должна принадлежать специальному типу, часто называемому функциональным, поскольку объектами этого типа являются функции и процедуры. В Eiffel этот тип задается классом ROUTINE и тремя его потомками – классами PROCEDURE, FUNCTION, PREDICATE. Какой из этих классов задает агентов, связанных с командами?

  • FUNCTION
  • ROUTINE
  • PREDICATE
  • (Правильный ответ) PROCEDURE

Какие утверждения справедливы относительно лямбда определения функции:

  • лямбда определение синтаксически подобно присваиванию. В левой части определения указывается имя переменной любого типа, в правой – лямбда-выражение. Левую и правую части разделяет знак равенства
  • лямбда определение синтаксически подобно присваиванию. В левой части определения указывается имя переменной функционального типа, в правой – лямбда-выражение. Левую и правую части разделяет знак присваивания
  • (Правильный ответ) лямбда определение синтаксически подобно присваиванию. В левой части определения указывается имя переменной функционального типа, в правой – лямбда-выражение. Левую и правую части разделяет знак равенства
  • в левой части определения указывается имя переменной функционального типа, в правой – арифметическое выражение

Какие утверждения является корректными?

  • (Правильный ответ) прямым экземпляром типа является объект, создаваемый конструктором типа (оператором создания)
  • (Правильный ответ) метод класса является эффективным, если задана его реализация
  • реализация компонента является частью его спецификации
  • переобъявление метода у потомка всегда связано с изменением реализации метода

В каких ситуациях при итерировании контейнерной структуры применим механизм агентов?

  • (Правильный ответ) нужно выполнить обход структуры, пока не встретится элемент, для которого некоторое условие принимает значение true. Для каждого пройденного элемента требуется выполнить определенную операцию
  • (Правильный ответ) нужно обойти структуру и для каждого элемента, для которого некоторое условие принимает значение true, выполнить определенную операцию
  • (Правильный ответ) нужно обойти структуру и для каждого элемента выполнить определенную операцию
  • нужно обойти структуру и для каждого элемента выполнить специфическую операцию, зависящую от элемента

Что справедливо для методологии Agile – гибкой разработки ПО?

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

Какое утверждение несправедливо относительно понятия «событие»?

  • событие несет информацию, доступную другим элементам ПО
  • внешние события могут стать причиной возникновения программных событий, рассматриваемых как операции ПО
  • (Правильный ответ) информация, связанная с событием, закрыта и недоступна другим элементам ПО
  • событие можно рассматривать как операцию, выполняемую элементом ПО

Какие факторы процесса разработки оценивают качество механизмов, применяемых для создания ПО?

  • (Правильный ответ) измеримость
  • устойчивость
  • (Правильный ответ) воспроизводимость
  • (Правильный ответ) предсказуемость

Что обозначает агентное выражение agent g(a, ?, b)?

  • Функцию с тремя аргументами, реализация которой отложена и требует дальнейшего уточнения
  • выражение, в записи которого допущена синтаксическая ошибка
  • (Правильный ответ) функцию с одним аргументом, полученную из функции с тремя аргументами заморозкой первого и третьего аргумента фиксированными значениями a и b
  • функцию с тремя аргументами, имя одного из которых уточняется в момент вызова

Что происходит, когда подписчик получает уведомление о событии

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

Манифестный агент – это агент:

  • (Правильный ответ) связанный с анонимным методом, который задается непосредственно в точке определения агента
  • связанный с методом класса
  • связанный с методом, для которого задан манифест
  • выходящий на манифестации

Какие свойства справедливы для образца проектирования?

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

Переопределение наследником метода, заданного родителем, должно делаться явно с использованием специального ключевого слова: redefine. Какие утверждения справедливы по отношению к этому термину?

  • включение имени метода в предложение redefine означает существование двух экземпляров метода с одним и тем же именем, но с разными реализациями (задание перегрузки метода)
  • (Правильный ответ) имена всех переопределяемых методов должны быть заданы в предложении redefine в inherit части класса, задающей наследование
  • ключевое слов redefine должно сопровождать объявление каждого метода
  • (Правильный ответ) включение имени метода в предложение redefine означает отсутствие перегрузки метода, поскольку после переопределения метод с таким именем существует в единственном экземпляре

Ограничение универсальности класса C[T] означает:

  • сужение числа операций для сущностей, тип которых задается родовым параметром T
  • (Правильный ответ) расширение числа операций для сущностей, тип которых задается параметром T
  • (Правильный ответ) расширение возможностей класса C
  • ограничение возможностей класса C

Какие утверждения справедливы относительно класса EVENT_TYPE, задающего описание типа события?

  • класс не является универсальным и имеет один аргумент типа ANY
  • (Правильный ответ) класс является универсальным и имеет один аргумент типа ARGUMENTS->TUPLE с ограничением наследования, требующим, чтобы аргументы представляли кортеж
  • класс является универсальным и имеет один аргумент типа ARGUMENTS
  • класс является универсальным и имеет один аргумент типа ANY

Какие утверждения справедливы для понятия «сигнатура события»?

  • сигнатура события принципиально отличается от сигнатуры методов ПО
  • сигнатура есть только у некоторых событий
  • (Правильный ответ) сигнатура события эквивалентна сигнатуре методов и состоит из указания имен аргументов события и связанных с ними типов
  • (Правильный ответ) каждое событие имеет сигнатуру

Отложенные классы характерны для верхних уровней проектирования программных систем. Некоторые методы отложенного класса носят название «программы с дырами». Какие это методы?

  • метод, в котором часть исполняемого кода отсутствует и заменена псевдокодом
  • (Правильный ответ) эффективный метод с заданной реализацией, но код которого вызывает отложенные методы, не имеющие реализации
  • метод, в котором отсутствует реализация
  • метод, в коде которого мыши прогрызли дыры

Какие факторы можно не учитывать, когда речь идет об инженерии программ?

  • коммуникации в команде разработчиков
  • процесс разработки программного проекта
  • требования к программному проекту
  • этику программирования
  • (Правильный ответ) хобби членов команды

Какие утверждения являются справедливыми относительно списка подписчиков для образца, связанного с классом EVENT_TYPE?

  • список subscribers по-прежнему существует и содержит, как и ранее, объекты, задающие подписчиков
  • (Правильный ответ) список subscribers является компонентом класса EVENT_TYPE
  • (Правильный ответ) список subscribers по-прежнему существует, но теперь он включает агентов, задающих процедуры обработки события
  • список subscribers объявляется в каждом классе, задающем издателя
  • список subscribers теперь не нужен

Какой связкой объединятся наследуемый инвариант и инвариант, заданный в классе наследника?

  • implies
  • (Правильный ответ) and then
  • and
  • or else
  • or

Полиморфизм и динамическое связывание позволяет автоматически проводить разбор случаев – при вызове динамически выбирается наиболее подходящий метод. Такой разбор случаев можно проводить и явно, написав соответствующий программный код. Какие утверждения справедливы относительно этих двух подходов?

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

Пусть проектируется класс MATRIX[ELEMENT], задающий матрицу, тип элементов которой задается параметром класса. Операции класса предполагают возможность выполнения арифметических операций, как над элементами матрицы, так и над самими матрицами. Какие утверждения справедливы в этом случае?

  • (Правильный ответ) необходимо задать ограничение на параметр ELEMENT, сделав его потомком класса NUMERIC
  • (Правильный ответ) необходимо и достаточно, чтобы класс MATRIX был потомком класса NUMERIC, а также ограничить параметр ELEMENT, сделав его потомком класса NUMERIC
  • достаточно задать ограничение на параметр ELEMENT, сделав его потомком класса NUMERIC
  • (Правильный ответ) необходимо, чтобы класс MATRIX был потомком класса NUMERIC

Какие утверждения справедливы?

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

При рассмотрении наследования используются такие термины как: потомок, наследник, правильный потомок, родитель, предок, правильный предок. Какие утверждения справедливы относительно этих терминов?

  • (Правильный ответ) родительский класс можно называть предком
  • класс А является своим правильным предком
  • (Правильный ответ) если класс А является правильным потомком класса В, а класс В является правильным потомком класса С, то класс А является правильным потомком класса С
  • класс А является своим правильным потомком

Управление событиями, можно рассматривать как некоторую структуру управления, получившую название «издатели – подписчики». Какие утверждения справедливы относительно этой структуры?

  • (Правильный ответ) подписчики – другие элементы ПО – могут получать сообщения о событиях и обрабатывать события
  • (Правильный ответ) эту структуру можно рассматривать как еще одну управляющую структуру наравне с циклическими структурами и структурами выбора
  • каждый издатель обязан знать своих подписчиков
  • (Правильный ответ) издатели – элементы ПО – могут включать события

Пусть наследник класса переопределил метод М родителя, задав например реализацию отложенного метода М. В контракте метода М у родителя задано постусловие Р, которое должно выполняться при вызове М. Какие утверждения справедливы относительно постусловия РР метода М в классе наследника?

  • (Правильный ответ) наследник может сохранить постусловие метода (РР = Р)
  • (Правильный ответ) наследник может усилить постусловие метода (РР => Р and not(PP = P))
  • наследник может ослабить постусловие метода (Р => PР and not(PP = P))
  • наследник обязан сохранить постусловие метода (РР = Р)

Какие утверждения справедливы относительно отложенных классов, их методов и объектов?

  • метод класса является эффективным, если эффективен размер его кода и время выполнения
  • (Правильный ответ) можно объявлять сущности отложенного типа и благодаря полиморфизму и динамическому связыванию присоединять к ним согласованные по типу объекты
  • (Правильный ответ) метод класса является эффективным, если задана его реализация
  • (Правильный ответ) тип или класс является эффективным, если все его компоненты эффективны
  • (Правильный ответ) создание объектов отложенного типа невозможно, поскольку у класса нет конструкторов

Пусть заданы классы P, F, M, S, D, где P – родитель классов F и M, класс F – родитель S, а M – родитель D. Пусть созданы объекты этих классов – op, of, om, os, od. Какие утверждения являются несправедливыми?

  • (Правильный ответ) присваивание op := os недопустимо
  • (Правильный ответ) присваивание op := os допустимо. В результате присваивания статический и динамический тип op задан классом S
  • присваивание op := os допустимо. В результате присваивания статический тип op задан классом P, а динамический тип – классом S
  • (Правильный ответ) допустимы взаимные присваивания всех заданных объектов

Что можно делать с агентами?

  • (Правильный ответ) задать определение агента, связав агент с методом
  • создать агента, используя конструктор класса агента
  • задать реализацию метода call
  • (Правильный ответ) вызвать метод call, который в свою очередь вызовет метод агента

Архитектура образца «Наблюдатель» предполагает проектирование класса Subscriber (Подписчик), который является родителем соответствующего семейства классов. Какие утверждения справедливы относительно этого класса?

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

Ограничение универсальности класса C[T1, T2, …TK] означает

  • (Правильный ответ) увеличение числа возможных операций для тех сущностей, на типы которых наложены ограничения
  • уменьшение числа возможных операций для тех сущностей, на типы которых наложены ограничения
  • уменьшение числа родовых параметров TJ
  • (Правильный ответ) наложение ограничений на один или несколько родовых параметров универсального класса TJ

Какие утверждения справедливы для отложенного класса и его объектов?

  • (Правильный ответ) невозможно создать объект отложенного класса, используя конструктор класса
  • для отложенного класса обязательно задание конструктора без аргументов
  • (Правильный ответ) у отложенного класса нет конструкторов (операторов создания) объектов класса
  • (Правильный ответ) объекты отложенного класса можно объявлять и присоединять к ним потомков отложенного класса

При проектировании класса VECTOR[ELEMENT-> NUMERIC] сам класс был объявлен наследником класса NUMERIC. Какие родовые порождения допустимы в этом случае?

  • (Правильный ответ) VECTOR[REAL]
  • VECTOR[PERSON]
  • (Правильный ответ) VECTOR[INTEGER]
  • VECTOR[TRAM[REAL]]
  • (Правильный ответ) VECTOR[VECTOR[REAL]]

Какие выражения синтаксически корректны в Eiffel?

  • (Правильный ответ) agent James_Bond
  • agent 007
  • agent Iren & agent John
  • (Правильный ответ) agent x

При рассмотрении наследования используются такие термины как: потомок, наследник, правильный потомок, родитель, предок, правильный