Вопросы для подготовки к итоговой форме контроля

1. Исторический и социальный контекст программирования. Программа как формализованное описание процесса обработки данных. Неконструктивность понятия правильной программы. Надежность программного средства.

2. Технология программирования как технология разработки надежных программных средств. Технология программирования и информатизация общества. Надежность программного средства.

3. Модульное программирование. Основные принципы модульного программирования и раздельной компиляции. Понятие программного модуля. Характеристики программного модуля. Методы разработки структуры программы.

4. Объектный подход в программировании. Основные принципы объектно-ориентированной технологии программирования. Концепции ООП: инкапсуляция, полиморфизм, наследование.

5. Классы и объекты. Создание и применение классов. Свойства и методы классов. Определение и вызов функций. Конструкторы и деструкторы. Объекты классов.

6. Перегрузка функций и операторов. Основные принципы перегрузки функций. Перегрузка конструкторов. Создание и использование конструкторов копирования.

7. Назначение ссылок. Перегрузка операторов: операторные функции, перегрузка бинарных операторов и операторов отношения, перегрузка унарных операторов. Использование дружественных операторов-функций.

8. Наследование. Основные сведения о базовых и производных классах. Защищенные члены класса. Конструкторы и деструкторы в производных классах.

9. Иерархия классов. Множественное наследование. Виртуальные базовые классы. Виртуальные функции и динамический полиморфизм.

10. Иерархия классов. Проектирование иерархии классов. Навигация по иерархии классов. Указатели на члены базовых и производных классов.

11. Шаблоны. Понятие шаблона. Шаблоны функций. Специализация шаблонов функций. Шаблоны классов.

12. Обработка исключительных ситуаций. Разработка приложений для работы в ОС Windows. Интерфейс прикладного программирования Windows API. Структура приложения Windows.

13. Обеспечение качества программного средства. Критерии качества программного средства. Обеспечение легкости применения ПК. Обеспечение эффективности ПК. Обеспечение сопровождаемости ПК. Обеспечение мобильности.

14. Тестирование и отладка ПК. Принципы и виды отладки программного средства. Автономная отладка. Комплексная отладка программного средства.

15. Классификация и развитие языков программирования. Интерпретаторы. Компиляторы. Виды языков и история их развития. Классификация языков программирования. Выбор языка программирования.

16. Методология программирования. Ядра методологий. Топологическая специфика методологий. Реализационная специфика методологий. Происхождение методологий. Единственно-языковый интерфейс.

17. Технологии программирования. Введение в технологии программирования. Классификация технологических подходов. Классические технологические процессы. Стандартные технологические процессы. Технологии коллективной разработки.

18. Классификация и основные особенности современных инструментальных средств. Понятие, назначение и составные элементы систем программирования. Классификация систем программирования. Общее и специальное программное обеспечение.

19. Управление проектами. Инструментальные средства управления проектами. Системы управления проектами. Организационные средства. Средства оценки качества.

20. Анализ требований. Описание С-требований. Методологии и инструментальные средства для С-требований. Типы D-требований. Организация D-требований.

21. Инструментальные средства реализации программных средств. Трансляторы. Компиляторы. Системы генерации трансляторов. Системы анализа корректности программного кода. Интерпретаторы. Декомпиляторы. Системы управления компиляцией и построением программ.

22. Универсальные инструментальные средства. Инструменты работы с текстом. Системы документирования. Системы разработки интерфейсов. Системы управления базами данных. Системы упралвения базами знаний и экспертные системы. Электронные библиотеки и инструментарий интернета.

23. Тестирование и отладка программных средств. Введение в процесс тестирования программных средств. Тестовые мониторы. Средства отслеживания текстового покрытия. Средства динамического построения профиля программы. Системы построения срезов программы. Отладчики. Системы отслеживания проблем.

24. Сопровождение программных средств. Виды работ по сопровождению. Методы сопровождения. Управление сопровождением. Инструментальные средства ввода в действие и сопровождения программных средств.

25. Особенности программирования задач реального времени. Моделирование систем реального времени. Программное обеспечение систем реального времени.