Особенности объектно-ориентированного подхода
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

 

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

В основе его лежат понятия «объект», «класс», «инкапсуляция» и «полиморфизм». В реальном мире, а точнее в интересующей разработчика предметной области, в качестве объектов могут рассматриваться конкретные предметы, а также абстрактные или реальные сущности. Например, объектами могут быть: покупатель; фирма, производящая определенные товары; банк; заказ на поставку. Объект обладает индивидуальностью и поведением, имеет атрибуты, значения которых определяют его состояние. Так, конкретный покупатель, делая заказ, может оказаться в состоянии, когда денег на его счете не хватает для оплаты, а его «поведение» в этом случае заключается в обращении в банк за кредитом.

Каждый объект является представителем некоторого класса однотипных объектов. Класс определяет общие свойства для всех его объектов. К таким свойствам относятся:

- состав и структура данных, описывающих атрибуты класса и соответствующих объектов;

- совокупность методов – процедур, определяющих взаимодей-ствие объектов этого класса с внешней средой.

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

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

Наследование – возможность создавать из классов новые классы по принципу «от общего к частному». Наследование позволяет новым классам при сохранении всех свойств классов-родителей (называемых в дальнейшем суперклассами) добавлять свои черты, отражающие их индивидуальность. С точки зрения программиста новый класс должен содержать только коды и данные для новых или изменяющихся методов. Сообщения, обработка которых не обеспечивается собственными методами класса, передаются суперклассу. Наследование позволяет создавать иерархию классов и является эффективным средством внесения изменений и дополнений в программные системы.

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

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

При таком подходе сложная система описывается наиболее естественным образом.

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

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

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

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

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

 

Дата: 2019-03-06, просмотров: 205.