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



Наиболее полезным является правило

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

Разница между принципом и банальностью

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

Эксперт в ОО-области должен обладать следующими качествами

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

Граф переходов, описывающий многопанельную систему, характеризуется

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

Многопанельная система является хорошим примером «образца» программирования поскольку

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

В данной главе под многопанельной системой понимается интерактивная система, в которой?

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

Подходящими примерами многопанельных систем являются системы

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

Для списка истории нужно

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

Отметьте истинные высказывания

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

Отметьте истинные высказывания

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

Операция повтора

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

Какой из классов, описывающих графический мир (например карту) не связан с внешним миром?

  • WORLD
  • WINDOW
  • (Правильный ответ) DEVICE
  • FIGURE

Метод «подчеркивания существительных» в документе требований

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

Поиск классов

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

Отметьте истинные высказывания

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

Возможными признаками для отбраковки классов являются

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

Использование сценариев

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

Функция имеет абстрактный побочный эффект, если?

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

Отметьте истинные высказывания

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

Отметьте истинные высказывания

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

Отметьте истинные высказывания

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

Пусть классу В нужны специфические свойства классов C, D, …E. Техника описателей предполагает, что взаимодействие организуется следующим образом

  • класс В становится наследником класса A, потомками которого являются классы C, D, …E
  • класс В становится клиентом классов C, D, …E
  • (Правильный ответ) класс В становится клиентом класса A, потомками которого являются классы C, D, …E
  • класс В становится наследником классов C, D, …E

Отметьте истинные высказывания

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

Отметьте истинные высказывания

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

Отметьте истинные высказывания

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

Отметьте истинные высказывания

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

Правила стиля

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

Правила для расстановки точек с запятой. Предлагаемый стиль отдает препочтение

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

Объектная технология анализа характеризуется следующим

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

Для экспертов в проблемной области, менеджеров, будущих пользователей спецификация, чтобы быть понятной

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

Отметьте истинные высказывания

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

Объектно-ориентированный анализ

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

Требования к процессу анализа и поддерживающей нотации

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

Цели анализа

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

Модель водопада при разработке ПО

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

Отметьте истинные высказывания

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

Бесшовность ОО-процесса разработки ПО

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

Этап обобщения может содержать следующие действия

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

Достоинства стратегии «пройди начальный тренинг дважды»

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

ОО-учебный план может концентрироваться вокруг создания библиотек общецелевого назначения. Это позволяет

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

Какие правила корректности сепаратности справедливы?

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

В рассматриваемом контексте процессор — это?

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

Сепаратный объект

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

Отметьте истинные высказывания

  • (Правильный ответ) ОО-разработку можно применять совместно с реляционными БД, имея в виду простое соответствие: классы – отношения, объекты – кортежи
  • (Правильный ответ) свойствами БД являются запросы, блокировки и транзакции
  • (Правильный ответ) при обнаружении рассогласования объекта он может быть «преобразован на лету», оставаясь неизменным в базе данных
  • при эволюции схемы изменяются все классы системы

При эволюции схемы возникают следующие проблемы

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

Сохраняемость объектов поддерживается

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

Отметьте истинные высказывания

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

Хороший конструктор интерфейса должен позволять

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

Двухуровневая структура конструктора приложений необходима при создании конструктора

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

Командные кнопки, списки и другие элементы управления — это?

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

При двухуровневой структуре конструктора приложений

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

Конструктор приложения – это?

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

Пакет языка Ada допускает

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

Интерфейс пакета языка Ada содержит

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

Задача языка Ada

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

Механизм исключений языка Ada

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

К инкапсулирующим языкам относят языки

  • Pascal
  • (Правильный ответ) Modula
  • (Правильный ответ) Ada
  • C

Тело пакета языка Ada содержит

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

Отметьте истинные высказывания

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

К «живым» необъектным языкам первого поколения относятся языки

  • (Правильный ответ) Cobol
  • (Правильный ответ) Fortran
  • (Правильный ответ) C
  • Algol

Первым языком ОО-программирования был язык?

  • Smalltalk
  • Algol
  • (Правильный ответ) Simula
  • C++

Сообщения в языке Smalltalk могут быть?

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

Язык Objective-C

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

Язык Eiffel

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

Заключительная оптимизация – финализация подразумевает?

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

Инструментарий высокого уровня включает?

  • Melt – систему для заморозки компонентов
  • (Правильный ответ) Case – средство анализа и проектирования, обеспечивающее возможность рассмотрения системы на высоком уровне абстракции с привлечением графических представлений
  • Ace – инструментарий руководителя проекта
  • (Правильный ответ) Build — интерактивный генератор приложений, основанный на модели Контекст-Событие-Команда-Состояние

Предлагаемые правила стиля включают

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

Класс «состояние» характеризуется следующими операциями

  • (Правильный ответ) обработать (запрос пользователя)
  • (Правильный ответ) отобразить (панель, соответствующую состоянию)
  • перейти (в новое состояние)
  • (Правильный ответ) выполнить (состояние)

Компонент класса, представляющий запрос

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

ОО-подход представляет реальную основу системного анализа. В этом заслуга следующего инструментария

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

Язык Fortran

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

Производители компиляторов предпочитают использовать язык С из-за таких его свойств, как?

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

Дескриптор класса — это?

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

Отметьте истинные высказывания

  • динамическое связывание в языке Simula запрещено
  • (Правильный ответ) сборка мусора в окружении С++ обычно отсутствует
  • (Правильный ответ) интерактивная техника — окна, значки, соединение текста и графики, выпадающие контекстные меню, использование мыши, браузеры, инспекторы и ОО-отладчики восходят корнями к окружению Smalltalk
  • (Правильный ответ) сопрограмма прерывает своё собственное выполнение и предлагает продолжить выполнение (resume) другой сопрограмме в ее последней точке прерывания; прерванная сопрограмма позже может продолжиться сама

Отметьте истинные высказывания

  • (Правильный ответ) ОО-системы лучше приспособлены к повторному использованию и расширяемости
  • (Правильный ответ) функциональный подход полностью соответствует стилю проектирования «сверху-вниз»
  • главный вопрос при проектировании системы — это «что она делает?»
  • (Пра
Узнать сколько стоит решение этого задания
(ответ в течение 5 мин.)
X