Загрузка...

Кафедра ВКСС. Вопросы по дисциплине «Технология программирования».


1. Определение понятий технология и методология программирова-
ния. Цель курса. Характеристики качества ПО.
2. Сложность ПО и ее причины. Признаки сложной системы. Каноническая форма сложной системы. Декомпозиция как способ снижения сложности.
3. Поколения языков програмирования — усиление абстракции.
Компоненты объектного подхода: абстрагирование, ограничение доступа, модульность, иерархия.
4. Жизненный цикл разработки ПО. Этапы разработки с использованием объектно-ориентированного подхода: анализ, проектирование, эволюция, модификация.
5. Управление проектом при объектно-ориентированном подходе: оценка прогресса разработки, контроль качества, инструментарий.
Достоинства и недостатки объектно-ориентированного подхода.
6. Новые возможности С++ : ограничители комментариев, прототипы функций, операция расширения области видимости, объявления в операторах, перегрузка функций.
7. Новые возможности С++: значения формальных параметров по умолчанию, ссылки и параметры ссылки, спецификаторы: inline, const, enum. Операции new, delete.
8. Инкапсуляция, абстрактные типы данных, классы. Функции-члены класса, открытая и закрытая части класса. Ссылка на себя (this).
9. Привилегированные функции (функции-друзья). Прблема побитового копировния.
10. Конструкторы, деструкторы. Объекты: автоиатические, статические, в свободной памяти, как члены другого класса. Инициализация: статических членов класса, членов абстрактных типов.
11.Основные принципы перегрузки операций; обозначения перегруженных операций. Бинарная и унарные перегруженные операции.
Выполнение перегруженных операций для аргументов абстрактных типов.
12. Перегрузка операций: преобразования для работы с различными типами; преобразования с использованием конструкторов; операция преобразования — X::operator(T).
13. Проблемы присваивания и инициализации для классов.
Использование неименованных констант в классах.
14. Операторы: индексирования — [] -, вызова функции — () -.
Сравнительная характеристика использования функций-членов и функций-друзей для перегруженных операций.
15. Производные классы: порождение, функции-члены класса, видимость.
16. Производные классы: указатели, наследование, конструкторы и деструкторы.
17. Производные классы: поля типа и виртуальные функции. Вир-
туальные деструкторы.
18. Шаблоны, контейнеры — понятия, определения. Принципы
построения одного из видов контейнеров — связного списка.
19. Построение параметризованного класса списка с двойными связями. Функции добавления, удаления, поиска объекта. Отображение списка. Пример использования.
20. Стандартная библиотека шаблонов -STL. Компоненты STL. Заголовочные файлы. Итераторы.
21. Стандартная библиотека шаблонов STL: функции и предикаты, объекты — функции.
22. Стандартная библиотека шаблонов STL: стандартные контейнеры; отображение (map, multymap) как пример стандартного контейнера; понятие о стандартных алгоритмах.
23. Объектно-ориентированный анализ (ООА): определение, этапы разработки; схема доменов, проектная матрица. Объекты в ООА — определение, категории, описание.
24. Атрибуты объектов в объектно-ориентированном анализе: определение, виды представления, классификация, описание. Правила атрибутов.
25. Связи в информационном моделировании и их описание. Подтипы и супертипы.
26. Жизненные циклы и диаграммы переходов в состояния (ДПС).
Определение, пример ДПС. Компоненты ДПС: состояния, события.
27. Диаграмма переходов в состояния. Определение, нотация. Компоненты ДПС: действия, переходы, таймеры. Анализ отказов. Рабочие продукты модели состояний.
28. Модель взаимодействия объектов (МВО): назначение, пример графического изображения. Схемы взаимодействий: типы событий, схемы верхнего и нижнего управления. Канал управления.
29. Модели процессов: назначение, пример построения, ис-
пользуемая нотация; порядок выполнения процессов.
30. Диаграмма потоков данных действий: система обозначений. Многократное использование процессов. Определение процессов: аксессоры, генераторы событий, преобразования, проверки. Таблица процессов состояний. Модель доступа к объектам. Рабочие продукты
модели процессов.
31. Домены: определения, типы. Общая схема преобразования
объектно-ориентированного анализа в объектно-ориентированное
проектирование. Программные компоненты, соответствующие выбранной архитектуре.
32. Объектно-ориентированное проектирование. Механизм архитектуры конечного автомата. Классы: ПЕРЕХОД, КОНЕЧНАЯ МОДЕЛЬ
СОСТОЯНИЙ, АКТИВНЫЙ ЭКЗЕМПЛЯР. Теория операции: прохождение конечного автомата, инициализация.
33. Объектно-ориентированное проектирование. Создание прикладного активного класса: имя класса, компоненты экземляра, аксессоры, тейкеры событий, инициализаторы, конструкторы, действия. Схема построения основной программы; внешние события, поток управления.
34. Общая характеристика C++ Builder: основные инструменты интегрированной среды, компоненты. Свойства, методы и события.
35. C++ Builder. Дополнительные возможности языка С++: объявления свойств, обработчиков событий, автоматизированных свойств и
методов; быстрый вызов функций, пространство имен.
36. C++ Builder. Дополнительные возможности языка C++: явные объявления, непостоянные объявления, идентификация типов RTTI (Run-Time Type Identification).

Загрузка...