- •1. Системная и системная программная инженерия.
- •2. Программная инженерия.
- •3. Программная система. Причины сложности программных систем.
- •4. Качество программных систем. Метрики качества.
- •5. Управление качеством. Методы оценки качества процесса и продукта разработки.
- •6. Управление проектом.
- •7. Управление персоналом.
- •9. Понятие технологии разработки пс. Цели проектирования.
- •10. Классический жизненный цикл пс и разработки пс.
- •11-12. Модели жизненного цикла пс.
- •14-16. Парадигмы программирования.
- •15. Понятие объектно-ориентированного проектирования и программирования.
- •17. Понятие объектной модели. Базовые принципы.
- •Абстрагирование
- •19. Инкапсуляция.
- •20. Наследование.
- •21. Полиморфизм. Виды полиморфизма
- •22. Наследование как механизм реализации полиморфизма, создания иерархий классов. Типы наследования.
- •23. Классы. Базовые, производные, полиморфные, абстрактные, виртуаль-ные. Примеры.
- •24. Принципы раннего и позднего связывания.
- •25. Использование языка uml для спецификации
- •26. Описание иерархий классов диаграммами uml.
- •27. Классы-шаблоны. Описание в uml.
21. Полиморфизм. Виды полиморфизма
Полиморфизм – это принцип ООП, который позволяет использовать один интерфейс и разные алгоритмы. Целью полиморфизма, применительно к ООП, является использование одного имени для задания разных действий. Выполнение действия будет определяться типом данных.
Виды полиморфизма:
- статический (определяется во время компиляции). Перегрузка функций, методов, операторов и т.д.
- динамический (определяется во время выполнения). Содержит виртуальные функции и методы.
22. Наследование как механизм реализации полиморфизма, создания иерархий классов. Типы наследования.
Наследование – механизм ООП, посредством которого новые классы создаются на базе существующих. Эти классы наследуют свойства и поведение базовых классов и могут приобрести новые. Это позволяет уменьшить объем программы и время на ее разработку. Полиморфизм позволяет нам писать программы для обработки большого разнообразия логически связанных классов. Наследование и полиморфизм представляют собой эффективные методики для разработки сложных программ.
Типы наследования: прямое и косвенное, простое и множественное.
23. Классы. Базовые, производные, полиморфные, абстрактные, виртуаль-ные. Примеры.
Класс – особый тип данных, в котором описываются и атрибуты данных и действия, выполняемые над атрибутами.
Базовый класс – класс, члены которого наследуются.
Производный класс – класс, который наследует чужие члены.
Полиморфный класс – класс, содержащий виртуальные методы.
Абстрактный класс – класс, содержащий чисто виртуальные методы.
Виртуальный класс — класс, который при множественном наследовании не включается в классы-потомки, а заменяется ссылкой в них, во избежание дублирования.
24. Принципы раннего и позднего связывания.
Связывание — это процедура установки связи между идентификатором, используемым коде программы, и его физическим объектом (в общем случае любым программным компонентом: переменной, процедурой, модулем, приложением и т. д.)
Ранее связывание — установка таких связей до начала выполнения программы. Обычно под этим понимается связывание в процессе компиляции исходных модулей и компоновки исполняемого модуля из объектных.
Позднее связывание — установка связей в процессе выполнения программы. Речь идет обычно либо о динамических связях (когда только в ходе работы приложения определяется какие объекты будут нужны) либо о формировании таких объектов во время работы.
25. Использование языка uml для спецификации
Имя_класса |
Атрибуты класса |
Операции над атрибутами |
Роль класса |
26. Описание иерархий классов диаграммами uml.
Отношения классов через . И показать разные отношения: прямое, косвенное, множественное.
27. Классы-шаблоны. Описание в uml.
Шабло́н класса — средство языка C++, предназначенное для кодирования обобщённых алгоритмов классов, без привязки к некоторым параметрам (например, типам данных, размерам буферов, значениям по умолчанию).
Синтаксис:
template <class или typename T>
class NAME_CLASS
{ … };
…
NAME_CLASS <int> B; //Вызов
UML: