Лекция № 12. Объектный подход. Проектирование программного обеспечения

Содержание лекции: объектно-ориентированное программирование; объекты, создание и их использование; язык описания разработки UML.

Цель лекции: ознакомиться с основными понятиями объектного программирования, особенностями создания программного продукта при объектном подходе.

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

Объект - это некоторая структура, соответствующая объекту реального мира, его поведению. Каждый объект имеет состояние, обладает четко определенным поведением и уникальной идентичностью. Совокупность атрибутов (свойств) и их значений характеризует объект. Объекты, описываемые одинаковыми наборами атрибутов, объединяются в классы. Данные класса называются полями, процедуры и функции — методами. Все экземпляры одного класса (объекты, порожденные от одного класса) имеют один и тот же набор свойств и общее поведение, то есть одинаково реагируют на одинаковые сообщения. Каждый объект имеет определенное время жизни. В процессе выполнения программы или функционирования реальной системы, могут создаваться новые объекты и уничтожаться уже существующие. Поскольку объект - это динамическая структура, переменная-объект содержит не данные, а ссылку на данные объекта. Поэтому программист должен позаботиться о выделении памяти для этих данных. Выделение памяти при создании объекта осуществляется при помощи специального метода класса – конструктора (constructor), а освобождение памяти при его уничтожении - при помощи деструктора (destructor).

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

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

а) уменьшение сложности программного обеспечения;

б) повышение надежности программного обеспечения;

в) обеспечение возможности модификации отдельных компонентов программного обеспечения без изменения остальных его компонентов;

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

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

Спорить о достоинствах и недостатках этих методов и моделей можно было бесконечно. Эта ситуация получила название «войны методов». Конец «войне методов» положило появление в 1995 г. первой версии языка UML (Unified Modeling Language - унифицированный язык моделиро­вания), который был создан ведущими специалистами в этой области (Гради Бучем, Иваром Якобсоном и Джеймсом Рамбо) и в настоящее время фактически признан стандартным средством описания проектов, создаваемых с использованием объектно-ориентированного подхода [11].

Спецификация разрабатываемого программного обеспечения при ис­пользовании UML объединяет несколько моделей [12]: использования, логичес­кую, реализации, процессов и развертывания (рисунок 12.1).

Рисунок 12.1 - Полная спецификация разрабатываемого программного обеспечения при объектном подходе (UML)

Логическая модель описывает ключевые абстракции ПО (классы, интерфейсы), т. е. средства, обеспечивающие требуемую функциональность. Модель реализации определяет реальную организацию программных модулей в среде разработки. Модель использования представляет собой описание функциональности программного продукта с точки зрения пользователя. Модель процессов отображает организацию вычислений и оперирует по­нятиями «процессы» и «нити». Она позволяет оценить производительность, масштабируемость и надежность программного обеспечения. И, наконец, модель развертывания показывает особенности размещения программных компонентов на конкретном оборудовании.

Каждая из указанных моделей характеризует определен­ный аспект проектируемой системы, а все вместе они составляют относи­тельно полную модель разрабатываемого программного продукта. Всего UML предлагает девять дополняющих друг друга диаграмм, вхо­дящих в различные модели:

а) диаграммы вариантов использования (показывают основные функции системы для каждого типа пользо­вателей);

б) диаграммы классов (контекстные, описания интерфей­сов и реализации - демонстрируют отношения классов между собой);

в) диаграммы пакетов (демонстрируют связи набо­ров классов, объединенных в пакеты, между собой);

г) диаграммы последовательностей действий (отображают упорядоченное по времени взаимодействие объектов в процессе выполнения варианта использования);

д) диаграммы кооперации (предоставляют ту же информацию, что и диаграммы последовательности действий, но в форме, позволяющей лучше представить ответственности классов в целом);

е) диаграммы деятельностей (представляют собой схему потоков управления для решения некоторой задачи по отдельным дей­ствиям, допускают наличие параллельных и/или альтернативных действий);

ж) диаграммы состояний объектов (показывают со­стояния объекта и условия переходов из одного состояния в другое);

з) диаграммы компонентов (показывают из каких программных компонентов состоит программное обеспечение и как эти ком­поненты связаны между собой);

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

Дополнениями к диаграммам служат формализованные и неформализо­ванные текстовые описания, комментарии и словари. При построении этих и других диаграмм используют унифицированную систему обозначений. UML и предлагаемая теми же авторами методика Rational Unified Process поддерживаются пакетом Rational Rose фирмы Rational Software Corporation. Ряд диаграмм UML можно построить также средствами про­граммы Microsoft Visual Modeler и других CASE -средств.

Дополнительную информацию по теме можно получить в [1, 11, 12, 13].



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: