OOAD - объектно-ориентированная парадигма
Краткая история
Объектно-ориентированная парадигма сформировалась из первоначальной концепции нового подхода к программированию, тогда как интерес к методам проектирования и анализа возник гораздо позже.
Первым объектно-ориентированным языком был Simula (Моделирование реальных систем), который был разработан в 1960 году исследователями из Норвежского вычислительного центра.
В 1970 году Алан Кей и его исследовательская группа в Xerox PARK создали персональный компьютер под названием Dynabook и первый чистый объектно-ориентированный язык программирования (OOPL) - Smalltalk для программирования Dynabook.
В 1980-х годах Грэди Буч опубликовал статью под названием «Объектно-ориентированный дизайн», в которой в основном был представлен дизайн для языка программирования Ada. В следующих изданиях он расширил свои идеи до полного объектно-ориентированного метода проектирования.
В 1990-х Коад включил поведенческие идеи в объектно-ориентированные методы.
Другими значительными нововведениями стали методы объектного моделирования (OMT) Джеймса Рамбо и объектно-ориентированная разработка программного обеспечения (OOSE) Ивара Якобсона.
Объектно-ориентированный анализ
Объектно-ориентированный анализ (OOA) - это процедура определения требований к программной инженерии и разработки спецификаций программного обеспечения в терминах объектной модели программной системы, которая состоит из взаимодействующих объектов.
Основное различие между объектно-ориентированным анализом и другими формами анализа состоит в том, что в объектно-ориентированном подходе требования организованы вокруг объектов, которые объединяют как данные, так и функции. Они смоделированы на основе реальных объектов, с которыми взаимодействует система. В традиционных методологиях анализа два аспекта - функции и данные - рассматриваются отдельно.
Грэди Буч определил OOA следующим образом: «Объектно-ориентированный анализ - это метод анализа, который исследует требования с точки зрения классов и объектов, имеющихся в словаре предметной области» .
Основными задачами объектно-ориентированного анализа (OOA) являются:
- Идентификация объектов
- Организация объектов путем создания диаграммы объектной модели
- Определение внутренней структуры объектов или атрибутов объекта
- Определение поведения объектов, т. Е. Действий объекта
- Описание того, как взаимодействуют объекты
Общие модели, используемые в OOA, - это варианты использования и объектные модели.
Объектно-ориентированный дизайн
Объектно-ориентированное проектирование (ООП) включает в себя реализацию концептуальной модели, созданной в ходе объектно-ориентированного анализа. В OOD концепции модели анализа, не зависящие от технологии, отображаются на классы реализации, определяются ограничения и разрабатываются интерфейсы, в результате чего создается модель для области решения, т. Е. Подробное описание того, как должна быть система. построены по бетонным технологиям.
Детали реализации обычно включают в себя -
- Реструктуризация данных класса (при необходимости),
- Реализация методов, т.е. внутренних структур данных и алгоритмов,
- Осуществление контроля, и
- Реализация ассоциаций.
Грэди Буч определил объектно-ориентированный дизайн как «метод проектирования, охватывающий процесс объектно-ориентированной декомпозиции и нотацию для изображения как логических и физических, так и статических и динамических моделей проектируемой системы» .
Объектно-ориентированного программирования
Объектно-ориентированное программирование (ООП) - это парадигма программирования, основанная на объектах (имеющих как данные, так и методы), целью которой является объединение преимуществ модульности и возможности повторного использования. Объекты, которые обычно являются экземплярами классов, используются для взаимодействия друг с другом при разработке приложений и компьютерных программ.
Важными особенностями объектно-ориентированного программирования являются:
- Подход снизу вверх в разработке программ
- Программы, организованные вокруг объектов, сгруппированных в классы
- Сосредоточьтесь на данных с помощью методов для работы с данными объекта
- Взаимодействие между объектами через функции
- Возможность повторного использования дизайна за счет создания новых классов путем добавления функций к существующим классам
Некоторые примеры объектно-ориентированных языков программирования: C ++, Java, Smalltalk, Delphi, C #, Perl, Python, Ruby и PHP.
Грэди Буч определил объектно-ориентированное программирование как «метод реализации, при котором программы организованы в виде кооперативных наборов объектов, каждый из которых представляет собой экземпляр некоторого класса, и все классы которого являются членами иерархии классов, объединенных через отношения наследования. » .