Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЭИС(готово).doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
9.84 Mб
Скачать

28. Основные понятия ооп

  • объект

  • класс

  • атрибут

  • операция

  • интерфейс (полиморфизм)

  • компонент

  • пакет

  • подсистема

  • связи

Класс

множество объектов, связанных общностью свойств, поведения, связей и семантики. Класс инкапсулирует (объединяет) в себе данные (атрибуты) и поведение (операции)

Класс - множество объектов. Класс является абстрактным определением объекта и служит в качестве шаблона для создания объектов

Объект - экземпляр (instance) класса

Атрибут

поименованное свойство класса, определяющее диапазон допустимых значений, которые могут принимать экземпляры данного свойства

Операция

реализация услуги, которую можно запросить у любого объекта данного класса

Операции отражают поведение объекта

Операция-запрос не изменяет состояния объекта. Операция-команда может изменить состояние объекта

Результат операции зависит от текущего состояния объекта

Полиморфизм

способность скрывать множество различных реализаций под единственным общим интерфейсом

Интерфейс

совокупность операций, определяющих набор услуг класса или компонента Принцип: инкапсуляция

Компонент

относительно независимая и замещаемая часть системы, выполняющая четко определенную функцию в контексте заданной архитектуры

Компонент представляет собой физическую реализацию проектной абстракции и может быть:

  • компонентом исходного кода: .h, .cpp-файлы, скрипты, ...

  • компонентом времени выполнения (run time): DLL, OCX, ActiveX, Java Beans, ...

  • исполняемым компонентом: .exe

Принцип: инкапсуляция

Компонент

обеспечивает физическую реализацию набора интерфейсов

Компонентная разработка (component-based development) представляет собой создание программных систем, состоящих из компонентов (не путать с объектно-ориентированным программированием (ООП)

ООП - способ создания программных компонентов, базирующихся на объектах

Компонентная разработка - технология, позволяющая объединять объектные компоненты в систему

Пакет

  • Общий механизм для организации элементов в группы

  • Элемент модели, который может включать другие элементы. Каждый элемент модели может входить только в один пакет

  • Является:

    • средством организации модели в процессе разработки, повышения ее управляемости и читаемости

    • единицей управления конфигурацией

Принцип: модульность

Подсистема

  • Комбинация пакета (может включать другие элементы модели) и класса (обладает поведением)

  • Реализует один или более интерфейсов, определяющих ее поведение

  • Используется для представления компонента в процессе проектирования

Связи

  • Ассоциация - отражает семантические (структурные) связи между объектами различных классов

  • Ассоциация - соединение классов без выделенного направления (двунаправленное)

    • Изображается линией, соединяющей классы

  • Агрегация - более сильный тип связи между целым объектом и его частями

    • Агрегация изображается линией между классами с ромбом на стороне целого объекта

    • Агрегация - связь «целое-часть»

    • Композиция - связь «целое-часть» (части не существуют без целого, целое отвечает за создание и уничтожение частей)

    • Зависимость - связь между двумя элементами модели, при которой изменения в спецификации одного элемента могут повлечь за собой изменения в другом элементе

    • Зависимость - слабая форма связи между клиентом и сервером (клиент зависит от сервера и не имеет знаний о сервере)

    • Зависимость изображается пунктирной линией, направленной от клиента к серверу

    • Мощность (multiplicity) показывает, как много объектов участвует в связи

    • Мощность - это число объектов одного класса, связанных с ОДНИМ объектом другого класса

    • Для каждой связи ассоциации и агрегации существуют два указателя мощности - по одному на каждом конце связи

    • Хотя отношения ассоциации и агрегации двунаправленные по умолчанию, часто накладываются ограничения на направление навигации (только в одном направлении)

    • Если введено ограничение по направлению, то добавляется стрелка на конце связи

    • Обобщение - связь «тип-подтип» - реализует механизм наследования (inheritance)

    • Наследование - построение новых классов на основе существующих с возможностью добавления или переопределения свойств (атрибутов) и поведения (операций)

    • Наследование - это отношение между суперклассом и его подклассами

    • Два пути определения наследования:

    • Обобщение

    • Специализация

    • Общие атрибуты, операции и/или отношения отображаются на верхнем уровне иерархии

    • Реализация - семантическая связь между двумя классификаторами (один из классификаторов является контрактом, который другой обязуется выполнять)