Вопросы к экзамену по дисциплине «Технология объектного программирования»
гр. А
1. Объектно-ориентированный (ОО) подход к программированию. Особенности ОО подхода к программированию в сравнении с функциональным подходом. Достоинства и недостатки ООП.
2. Идея ООП. Принципы ОО представления программных систем.
3. Объекты. Общая характеристика объектов. Виды отношений между объектами.
4. Классы. Общая характеристика классов. Виды отношений между классами.
5. Ассоциации классов. Наследование. Полиморфизм. Конкретизация. Принцип Чёрча и гипотеза Ворфа
6. Платформа. NET. Основные понятия: платформа, .NET Framework, CLS, CLR, управляемый код, управляемые данные, FCL, .NET-приложение, MSIL, метаданные, исполняемый модуль (его элементы), сборка, декларация сборки, GAC, CTS,
7. Схема выполнения .NET-приложения в среде CLR. Особенности приложения идеологии. NET для проектирования и реализации ОО программ.
8. Универсальная система типизации (UTS). Веб-сервесы в. NET.
9. ЯП C#. Основные понятия ОО подхода: объекты, классы, свойства, методы. Пример описания классов и манипулирования их элементами.
10. ЯП C#. Статические и динамические поля объекта. Особенности использования методов, пример.
11. Теория типов и типизация в. NET. Классификация систем типизации в ЯП. Иерархия типов в. NET.
12. Особенности реализации ссылочных типов и типов-значений в ЯП C#. Иерархия типов в С#.
13. Понятие пространства имен, значение, описание, основные свойства. Пример. Применение механизма ликвидации коллизии обозначений типов в пространствах имен
14. Концепция наследования и ее реализация в языке C#. Отношение частичного порядка, его свойства. Фреймовая нотация Руссопулоса и диаграммы Хассе.
15. Концепция инкапсуляции и ее реализация в языке C#. Реализация механизма сокрытия информации посредством концепции инкапсуляции.
16. Концепция полиморфизма и ее реализация в языке C#. Основные механизмы для реализации концепции полиморфизма. Пример.
17. Виртуальные методы и абстрактные классы. Преимущества полиморфизма. Особенности абстрактных классов и методов, пример.
18. Расширенные возможности полиморфизма в языке C#. Описатель override, механизм "запечатанных" (sealed) классов.
19. Реализация динамического связывания, сокрытия данных, сложного динамического связывания, пример.
20. Механизм методов с приоритетами, ограничения, пример.
21. Механизм интерфейсов. Реализация множественного наследования, требования, пример.
22. Интерфейсы в языке C#, понятие, назначение, описание в программе.
23. Событийно управляемое программирование в. NET. Обработка событий (понятие события, описание). Широковещательные события. Пример управления событиями посредством делегата.
24. Исключительные ситуации, обработка исключений, пример. Наследование классов исключений.
25. Компонентное программирование в .NET.
26. Семейства. Определение, использование семейств. Индексаторы.
27. Потоки. Типы потоков. Классы. NET для работы с потоками
28. Перегрузка операторов. Примеры. Явное и неявное преобразования типов.
29. Усложненное преобразования типов. Упаковка и распаковка. Операторы is и as.
30. Глубокое копирование. Пример.
31. Делегаты. Определение типа делегата. Применение. Свойства делегатов.
32. Групповое преобразование делегируемых методов. Пример.
33. Применение методов экземпляра в качестве делегатов. Пример.
34. Делегаты. Групповая адресация. Пример.
35. Свойства делегатов: ковариантность и контравариантность. Пример.
36. Анонимные методы. Пример.
37. Лямбда – исчисление. Лямбда – выражения. Одиночные и блочные лямбда-выражения. пример.
38. Объектно-ориентированное тестирование. Изменения в последовательности и содержании этапов по сравнению с процедурным тестированием.
39. Расширение области применения ОО тестирования. Критерии тестирования моделей.
40. Изменение методики при ОО тестировании. Особенности тестирования ОО «модулей». Тестирование ОО интеграции. ОО тестирование правильности.
41. Проектирование О тестовых вариантов. Инкапсуляция, полиморфизм, наследование.
42. Тестирование содержания классов. Стохастическое тестирование класса.
43. Тестирование содержания классов. Тестирование разбиений на уровне классов.
44. Способы тестирование взаимодействия классов.
45. Предваряющее тестирование и рефакторинг при экстремальной разработке.
к. т.н., доцент //


