Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТРПО. лекции.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
504.32 Кб
Скачать

18. Философия ооп

Есть программы, которые практически нельзя разрешить без ООП.

Что дает философия ООП?

  1. Оперировать терминами реального языка (моделирование)

  2. Формировать требования, менять их, сопровождать

  3. Удобный способ решения прикладных задач

  4. Управление программы через данные

  5. (следует из 1-4) Снижение издержек, удовлетворение потребностей

19. Экстремальное программирование (xp)

Экстремальное программирование – вид технологии разработки ПО, который обычно применяется для коммерческих проектов с целью ускорения разработки и достижения высокого качества.

Основные идеи XP:

  1. Планирование

    1. User Story (формирование карточек): функции простым и понятным языком описываются на отдельных карточках, карточки разбиваются по приоритетам

    2. Планируется релиз (готовы основные функции ПО)

    3. Измерение скорости проекта

      1. Количество строк кода

      2. Количество реализованных функциональностей

      3. User Story

    4. Использование итерацией

      1. Максимальный квант времени между вехами – 2-3 недели

      2. Каждая итерация начинается с собрания по планированию

    5. Смена выполняемых задач разработчиком

    6. Ежедневное собрание стоя

  2. Дизайн (идет параллельно с кодированием)

    1. Простота

    2. Метафора системы – простая и понятная концепция, которая, во-первых, определяет терминологию, во-вторых, должно быть понимание того, что является основным качеством программного продукта

    3. Карточки User Story используются для разработки дизайна

    4. Своевременное наращивание дизайна

    5. Постоянный рефакторинг (пересмотр кода и выбрасывание ненужного кода)

  3. Кодирование

    1. Заказчик – участник процесса

    2. Код соответствует стандарту

    3. Код создается парой программистов

    4. Частая интеграция кода: каждую неделю должен собираться релиз

    5. Коллективное владение кодом

    6. Оптимизация кода (пот0м)

  4. Тестирование

    1. Каждый кусок кода должен иметь свой тест (юнит), который полностью проверяет его функциональность

    2. Тест разрабатывается до тестируемого модуля

    3. Любой модуль должен иметь тесты, покрывающие всю функциональность

    4. Если дефект найден, то тесты специально корректируются так, чтобы подобные дефекты в дальнейшем проверялись (каждый дефект приводит к пересмотру тестов)

    5. Дефекты публикуются

20. Введение в com

COM Component Object Model

Основная концепция: разделение двоичного кода

Приложение

EXE

Библиотека

EXE, DLL

Вопросы совместимости ложатся на разработчиков компиляторов, а не на разработчиков приложений.

Основные понятия:

  • Интерфейс – группа функций

  • Кокласс (COM Object Class) поддерживает интерфейс (реализует его)

  • Сервер COM – двоичный файл, содержащий реализацию одного или нескольких классов

  • Регистрация: сервер должен быть зарегистрирован в системе

  • GUID (Global Unique Identifier) – 126-битное число, идентифицирующее объекты, коклассы

  • HRESULT: используется для возврата значения (тип: doubleword)

  • Библиотека COM – часть ОС, позволяет приложениям работать с COM-объектами

Интерфейс IUnknown:

  • Метод AddRef – инкремент счетчика ссылок

  • Метод Release – декремент счетчика ссылок

  • Метод QueryInterface – запрос другого интерфейса

Требования к строкам

  • Юникод

  • BSTR – динамические строки

  • Освобождает выделенную строку клиент

Создание COM-объектов:

HRESULT CoCreateInstance (

REFCLSID rclsid; // ссылка на класс ID

IUnknown pUnkOuter; // задание внешнего объекта

DWORD dwClsContext; // набор флагов

REFID nid; // ID интерфейса

LPVOID ppv); // адрес указателя (ссылки) на интерфейс

Освобождение: IUnknown Release

Последовательность работы с одним интерфейсом:

  • Функция CoInitialize инициализирует работу с COM-объектами

  • CoCreateInstance

  • Вызов метода COM

  • Освободить интерфейс

  • CoUnitialize

Задачи COM:

  • Объекты на языках высокого уровня

  • Более производительная работа с кодом на языках высокого уровня

Знать на экзамене:

  • Технология COM позволяет использовать чужой бинарный код без компиляции. Технология от Microsoft

  • У каждого COM-объекта есть уникальный ID. Пока он не зарегистрирован в реестре – он мёртв

  • COM-объект может подменяться новым (более совершенным).