Экзаменационные билеты
.docЭКЗАМЕНАЦИОННЫЕ ВОПРОСЫ
по дисциплине
"ОБЪЕКТНО-ОРИЕНТИРОВАННЫЕ ТЕХНОЛОГИИ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ"
-
Уровни языков программирования. Семантика и интерпретация языка программирования. Семантические уровни программной системы. Основные источники, предпосылки и составные элементы объектного подхода к разработке программ. Принципы объектного подхода - абстрагирование, ограничение доступа, модульность, иерархия, типизация, параллелизм и устойчивость.
-
Жизненный цикл программного обеспечения. Модели жизненного цикла. Программное обеспечение поддержки жизненного цикла. Классификация CASE. Понятия методологии, метода, нотации и средства CASE. Уровень развития технологии разработки программного обеспечения, СММ.
-
Репозиторий и артефакты процесса разработки. Возвратное проектирование. Реинжиниринг.
-
Рефакторинг, цели, правила применения. Каталог рефакторингов, классификация, примеры применения.
-
Шаблоны проектирования, цели, правила применения. Каталог шаблонов проектирования, классификация, примеры применения создающих, структурных и поведенческих шаблонов. Архитектурные шаблоны
-
Rational Unified Process. Модель жизненного цикла. Рабочие процессы и работы. Работники. Артефакты. Планирование и контроль хода выполнения проекта.
-
Общая характеристика этапов анализа, проектирования и реализации программного обеспечения. Сравнение существующих методологий и САSE.
-
Структурный подход к разработке программного обеспечения. Основные виды диаграмм. Методология OMT, основные отличия от UML.
-
Методика Шлеера-Меллора. Информационное моделирование, модели состояний и процессов.
-
UML. Элементы моделей, основные отношения. Механизмы расширения UML.
-
Основные диаграммы UML. Статический и динамический виды.
-
Архитектура и стиль программной реализации. Идентификаторы и управление видимостью. Явное управление видимостью, пространства имен.
-
Стиль реализации класса. Ссылки. Локальные и вложенные классы. Контроль доступа. Функции-члены и функции-друзья. Совместное использование. Статические члены. Конструкторы, деструкторы, особые операции класса.
-
Иерархии классов. Структура объекта при разных видах наследования. Неоднозначности и проблемы с повторным вызовом методов. "Подклеенные" классы. Полные объекты конечных производных классов. Таблицы виртуальных функций. Варианты динамического определения типа объекта.
-
Шаблоны. Раздельная компиляция. Наследование шаблонов. Выбор алгоритма через параметр шаблона. Специализация шаблонов. Шаблоны как параметры шаблонов.
-
Обработка исключительных ситуаций. Особые случаи при обработке исключительных ситуаций. Исключительные ситуации и потребление ресурсов.
-
Контроль семантической корректности программ. Предусловия, постусловия, правила вывода, инварианты циклов. Подтверждения, инварианты объектов, сигналы.
-
Типы классов: конкретный, абстрактный, узловой, интерфейсный. Множественные и насыщенные интерфейсы. Фабрики классов. Сериализация. Дескриптор и представление.
-
Библиотеки контейнерных классов. Библиотеки интрузивных и неинтрузивных контейнеров. Стандартная библиотека шаблонов и ее особенности. STL-контейнеры, адаптеры контейнеров, итераторы, алгоритмы, аллокаторы, функциональные объекты, адаптеры функциональных объектов.
-
Численные методы. Численный массив, срез, композитор, маска, косвенный массив. Обобщенные численные алгоритмы.
ТЕМЫ ПРАКТИЧЕСКИХ ЗАДАНИЙ
-
Бизнес моделирование и планирование проекта по индивидуальному заданию.
-
Объектно-ориентированный анализ и проектирование на UML с использованием шаблонов проектирования.
-
Улучшение стиля программной реализации на основе рефакторингов.
-
Программирование контейнерных классов.
-
Проектирование контроля аномального поведения программ, контрактное программирование.