Объектно-ориентированный подход

В объектно-ориентированном подходе основное внимание уделяется фиксации структуры и поведения информационных систем в небольших модулях, которые объединяют как данные, так и процесс. Основная цель объектно-ориентированного проектирования (ООД) - повысить качество и продуктивность системного анализа и проектирования, сделав их более удобными.

На этапе анализа объектно-ориентированные модели используются, чтобы заполнить пробел между проблемой и решением. Он хорошо работает в ситуации, когда системы постоянно проектируются, адаптируются и обслуживаются. Он идентифицирует объекты в проблемной области, классифицируя их с точки зрения данных и поведения.

Модель OO выгодна следующим образом:

  • Это облегчает внесение изменений в систему при невысокой стоимости.

  • Это способствует повторному использованию компонентов.

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

  • Это упрощает проектирование распределенных систем.

Элементы объектно-ориентированной системы

Давайте пройдемся по характеристикам OO System -

  • Objects- Объект - это то, что существует в проблемной области и может быть идентифицировано данными (атрибутом) или поведением. Все материальные объекты (студент, пациент) и некоторые нематериальные объекты (банковский счет) моделируются как объект.

  • Attributes - Они описывают информацию об объекте.

  • Behavior- Он определяет, что объект может делать. Он определяет операцию, выполняемую над объектами.

  • Class- Класс инкапсулирует данные и их поведение. Объекты со схожим значением и назначением, сгруппированные в класс.

  • Methods- Методы определяют поведение класса. Это не что иное, как действие, которое может выполнить объект.

  • Message- Сообщение - это вызов функции или процедуры от одного объекта к другому. Это информация, отправляемая объектам для запуска методов. По сути, сообщение - это вызов функции или процедуры от одного объекта к другому.

Особенности объектно-ориентированной системы

Объектно-ориентированная система имеет несколько замечательных функций, которые обсуждаются ниже.

Инкапсуляция

Инкапсуляция - это процесс сокрытия информации. Это просто объединение процесса и данных в единое целое. Данные объекта скрыты от остальной системы и доступны только через службы класса. Он позволяет улучшать или модифицировать методы, используемые объектами, не затрагивая другие части системы.

Абстракция

Это процесс выбора или выбора необходимого метода и атрибутов для определения объекта. Он фокусируется на основных характеристиках объекта с точки зрения пользователя.

Отношения

Все классы в системе связаны друг с другом. Объекты не существуют изолированно, они существуют во взаимосвязи с другими объектами.

Есть три типа объектных отношений -

  • Aggregation - Он указывает на отношения между целым и его частями.

  • Association - В этом случае два класса связаны или связаны каким-либо образом, например, один класс работает с другим для выполнения задачи или один класс действует на другой класс.

  • Generalization- Дочерний класс основан на родительском классе. Это указывает на то, что два класса похожи, но имеют некоторые различия.

Наследование

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

Полиморфизм и динамическое связывание

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

В полиморфной операции операция может выполняться по-разному для разных классов объектов. Это позволяет нам управлять объектами разных классов, зная только их общие свойства.

Структурированный подход против Объектно-ориентированный подход

В следующей таблице объясняется, чем объектно-ориентированный подход отличается от традиционного структурного подхода.

Структурированный подход Объектно-ориентированный подход
Он работает с подходом сверху вниз. Он работает с подходом снизу вверх.
Программа разделена на ряд подмодулей или функций. Программа организована по количеству классов и объектов.
Используется вызов функции. Используется передача сообщений.
Повторное использование программного обеспечения невозможно. Возможно повторное использование.
Программирование структурированного дизайна обычно длится до конца. Программирование объектно-ориентированного дизайна выполняется одновременно с другими этапами.
Структурированный дизайн больше подходит для офшоринга. Подходит для собственной разработки.
Он показывает четкий переход от дизайна к реализации. Не очень понятный переход от дизайна к реализации.
Он подходит для систем реального времени, встроенных систем и проектов, где объекты не являются наиболее полезным уровнем абстракции. Он подходит для большинства бизнес-приложений и проектов разработки игр, которые предполагается настраивать или расширять.
Диаграмма DFD и ER моделирует данные. Диаграмма классов, диаграмма последовательности, диаграмма диаграммы состояний и варианты использования - все это вносит свой вклад.
В этом случае проектами можно легко управлять благодаря четко определенным этапам. При таком подходе проектами может быть сложно управлять из-за неопределенных переходов между фазами.

Единый язык моделирования (UML)

UML - это визуальный язык, который позволяет моделировать процессы, программное обеспечение и системы для выражения дизайна системной архитектуры. Это стандартный язык для проектирования и документирования системы объектно-ориентированным способом, который позволяет техническим архитекторам общаться с разработчиком.

Он определяется как набор спецификаций, создаваемых и распространяемых Object Management Group. UML является расширяемым и масштабируемым.

Цель UML - предоставить общий словарь объектно-ориентированных терминов и методов построения диаграмм, достаточно богатый для моделирования любого проекта разработки систем от анализа до реализации.

UML состоит из -

  • Diagrams - Это графические изображения процесса, системы или какой-то ее части.

  • Notations - Он состоит из элементов, которые работают вместе в схеме, например, соединителей, символов, примечаний и т. Д.

Пример обозначения UML для класса

Схема экземпляров-нотация UML

Операции, выполняемые над объектами

С объектами выполняются следующие операции -

  • Constructor/Destructor- Создание новых экземпляров класса и удаление существующих экземпляров класса. Например, добавление нового сотрудника.

  • Query- Доступ к состоянию без изменения значения, не имеет побочных эффектов. Например, поиск адреса конкретного сотрудника.

  • Update - Изменяет значение одного или нескольких атрибутов и влияет на состояние объекта. Например, изменение адреса сотрудника.

Использование UML

UML весьма полезен для следующих целей -

  • Моделирование бизнес-процесса
  • Описание архитектуры системы
  • Отображение структуры приложения
  • Регистрация поведения системы
  • Моделирование структуры данных
  • Создание подробных спецификаций системы
  • Наброски идей
  • Генерация программного кода

Статические модели

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

  • Они используются для определения имен классов, атрибутов, методов, сигнатур и пакетов.

  • Диаграммы UML, представляющие статическую модель, включают диаграмму классов, диаграмму объектов и диаграмму вариантов использования.

Динамические модели

Динамические модели показывают поведенческие характеристики системы, т. Е. То, как система ведет себя в ответ на внешние события.

  • Динамические модели определяют необходимый объект и то, как они работают вместе, с помощью методов и сообщений.

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

  • Диаграммы UML представляют динамическую модель, включая диаграмму последовательности, диаграмму связи, диаграмму состояний, диаграмму активности.

Жизненный цикл разработки объектно-ориентированной системы

Он состоит из трех макросов -

  • Объектно-ориентированный анализ (OOA)
  • Объектно-ориентированный дизайн (ООД)
  • Объектно-ориентированная реализация (OOI)

Деятельность по разработке объектно-ориентированных систем

Разработка объектно-ориентированных систем включает следующие этапы:

  • Объектно-ориентированный анализ
  • Объектно-ориентированный дизайн
  • Prototyping
  • Implementation
  • Пошаговое тестирование

Объектно-ориентированный анализ

Этот этап касается определения системных требований и понимания системных требований для создания use-case model. Вариант использования - это сценарий, описывающий взаимодействие между пользователем и компьютерной системой. Эта модель представляет потребности пользователя или взгляд пользователя на систему.

Он также включает в себя определение классов и их отношений с другими классами в проблемной области, составляющими приложение.

Объектно-ориентированный дизайн

Целью этого этапа является разработка и уточнение классов, атрибутов, методов и структур, которые определяются на этапе анализа, пользовательского интерфейса и доступа к данным. На этом этапе также определяются и определяются дополнительные классы или объекты, которые поддерживают реализацию требования.

Прототипирование

Прототипирование позволяет полностью понять, насколько легко или сложно будет реализовать некоторые функции системы.

Это также может дать пользователям возможность прокомментировать удобство использования и полезность дизайна. Он может дополнительно определить вариант использования и значительно упростить моделирование вариантов использования.

Реализация

Он использует либо компонентную разработку (CBD), либо быструю разработку приложений (RAD).

Компонентная разработка (CBD)

CODD - это индустриальный подход к процессу разработки программного обеспечения с использованием различных технологий, таких как инструменты CASE. Разработка приложений переходит от индивидуальной разработки к сборке готовых, предварительно протестированных и повторно используемых программных компонентов, которые взаимодействуют друг с другом. Разработчик CBD может собрать компоненты для построения полной программной системы.

Быстрая разработка приложений (RAD)

RAD - это набор инструментов и методов, которые можно использовать для создания приложения быстрее, чем это обычно возможно с помощью традиционных методов. Он не заменяет SDLC, а дополняет его, поскольку он больше ориентирован на описание процесса и может идеально сочетаться с объектно-ориентированным подходом.

Его задача - быстро построить приложение и постепенно реализовать дизайн требований пользователя с помощью таких инструментов, как Visual Basic, Power Builder и т. Д.

Инкрементальное тестирование

Разработка программного обеспечения и вся его деятельность, включая тестирование, - это итеративный процесс. Следовательно, это может оказаться дорогостоящим делом, если мы будем ждать, чтобы протестировать продукт только после его полной разработки. Здесь появляется инкрементное тестирование, когда продукт тестируется на различных этапах его разработки.