
- •1. Признаки сложных систем. Сложность, присущая программному обеспечению.
- •2. Компоненты объектно-ориентированного подхода.
- •3. Объекты и классы с точки зрения объектно-ориентированного проектирования.
- •4. Модели и диаграммы, используемые в объектно-ориентированном подходе.
- •5. Техника отладки.
- •6. Работа с многофайловыми проектами. Использование включаемых файлов.
- •9. Простое наследование. Контроль доступа к атрибутам класса.
- •10. Виртуальные функции (вф) и абстрактные классы.
- •11. Множественное и виртуальное наследование.Множественное наследование
- •12 Перегрузка операций
- •13. Шаблоны функций, макросы, inline-функции.
- •14. Шаблоны классов.
- •15. Обработка исключительных ситуаций, структурная обработка исключений.
- •16. Пространства имён. Кратко о механизме пространства имен
- •Зачем нужен механизм пространства имен?
- •Имитация средствами языка Си
- •Правило составления имени
- •Недостатки
- •17 Строки и потоки.
- •18.Стандартная библиотека: Контейнеры
- •19 Реализация устойчивости объектов средствами mfc.
- •20. Структура Windows-приложения WinApi
- •21. Структура Windows-приложения, использующего библиотеку mfc
- •Документы и их представление
- •22. Обработка сообщений
- •23. Контекст устройства
- •24.Объекты gdi
- •25.Использование контекста отображения в памяти.
- •26.Режимы отображения.
- •27.Работа с меню. Обработка сообщений.
- •28.Работа с диалогами. Обработка сообщений.
- •29. Работа с полями ввода и кнопками.
- •30. Работа со списками и выпадающими списками. Работа со списком
- •Работа с комбинированном списком
- •Инициализация
- •Операции со строками
- •31. Классы CimageList и CtreeCtrl. Класс cImageList
- •Изменение содержимого списка
- •32. Классы CimageList и ClistCtrl. Класс cImageList
- •Изменение содержимого списка
- •Создание просмотра списка
- •Работа со столбцами
- •Функции для работы со списком в целом
- •Рабочие области просмотра списка
- •Поиск и сортировка записей
- •33. Классы CprogressCtrl, cRichEdit Ctrl, CsliderCtrl, cSpinButton Ctrl.
- •34. Классы cPropertySheet и cPropertyPage.
- •35. Передача информации в диалог и обратно.
- •36. Работа со стандартными диалогами.
- •37.Обработка сообщений от клавиатуры и мыши(wm_char,wm_keYxxx,wm_xButtoNxxx,
- •38 Таймеры, использование времени простоя программы и локального цикла обработки сообщений.
- •39. Библиотеки динамической компоновки. Явная и неявная загрузка dll.
- •Согласование экспортируемых элементов с импортируемыми
1. Признаки сложных систем. Сложность, присущая программному обеспечению.
Основные признаки сложных систем:
Может быть представлена в виде иерархии.
Выбор низшего уровня абстракции (т е элементарных объектов) произволен и определяется наблюдателем.
Внутриэлементные связи сильнее межэлементных.
Иерархические типы систем обычно состоят из немногих типов подсистем, которые лишь комбинируются по-разному.
Работающая сложная система – развитие простой работающей системы.
4 характеристики сложности програ200ммного обеспечения:
Сложность реальной стоящей задачи (непонимание разработчика и заказчика)
Сложность управления процессом разработки.
Избыточная гибкость, присущая программному обеспечению (проблемы со стандартизацией).
Сложность описания поведения больших программных систем (дискретных систем).
2. Компоненты объектно-ориентированного подхода.
Объектно-ориентированный подход – это методология программирования и проектирования, основанная на представлении программ в виде объектов, каждый из которых является реализацией класса. Классы образуют иерархию. ОО подход направлен на борьбу со сложным программным обеспечением.
В Объектно-ориентированном подходе выделяют:
Анализ – построение модели реального мира.
Проектирование – на основе модели реального мира строится модель программы.
Составные части объектного подхода:
(Всего 7 частей, 4 главные)
1. Абстрагирование – упрощенное описание системы, при кот одни св-ва и детали выделяются (объединяются), а другие опускаются. Существует так называемый принцип наименьшего удивления – абстракция должна охватывать не больше и не меньше системы, должна охватывать всё поведение объекта. При абстрагировании поведение объектов рассматривается как контракт (клиент-сервер).
Полный порядок операций и их выполнение – протокол.
Абстракция – представление об объекте в кот мы включаем только те св-ва, кот считаем нужным, или по-другому – существенные хар-ки объектов.
При выполнении контракта должно всегда выполняться некоторое логическое условие – вариант. Значение логического условия неизменно – инвариантность. Сущ-ет предусловие (вариант перед началом операции) и постусловие (после начала операции). Инвариант позволяет доказать работу программы.
2. Инкапсуляция – процесс отделения друг от друга элементов объектов, отвечающих его уровню и поведению. Инкапсуляция снижает общую сложность. С её помощью разделяются контракт и реализация.
3. Модульность – разложение системы на сильно-связанные внутри модуля и слабо-связанные между собой модули.
4. Иерархия – упорядочивание абстракций по уровням для классов и структур или для объектов.
2 способа разбиения иерархии:
Is – a - для объектов
Part-of – для классов и структур
5. Типизация – способ защиты от использования объектов одного класса вместо другого. Бывает сильная (Pascal) и сильная (C) или статическая и динамическая.
6. Параллелизм – св-во характеризующее активный объект (отдельный поток управления).
7. Сохраняемость – способность объекта существовать во времени и в пространстве, перемещаясь из его адресного пространства.