Объектно-ориентированое проектирование программ
Рассматриваемый метод, как отмечалось выше, использует объектную декомпозицию. При этом статическая структура системы описывается в терминах объектов и связей между ними, а поведение системы - в терминах обмена сообщениями между объектами. Каждый объект обладает своим собственным поведением, моделирующим поведение объекта реального мира.
Объект обладает состоянием, поведением и индивидуальностью. Структура и поведение схожих объектов определяют общий для них класс. Термин «экземпляр класса» и «объект» являются эквивалентными. Состояние объекта характеризуется перечнем всех его возможных (статических) свойств и текущими значениями (динамическими) каждого из этих свойств. Поведение определяет воздействие объекта на другие. Индивидуальность — это свойство объекта, отличающее его от всех других объектов.
Разработка структуры программного обеспечения при объектном подходе
Большинство классов можно отнести к определенному типу, который применительно к данному подходу называют стереотипом, например:
• классы-сущности (классы предметной области);
• граничные (интерфейсные) классы;
• управляющие классы;
• исключения и т. д. (рис. 4.13).
а) б) в) г)
Рис. 4.13. Условные обозначения стереотипов классов: а - класс-сущность;
б - граничный класс, в - управляющий класс, г - явное указание стереотипа.
Классы-сущности используют для представления сущностей реального мира или внутренних элементов системы, например структур данных. Как правило, они не зависят от окружения, и их используют в различных приложениях. Для описания классов-сущностей применяют диаграммы вариантов использования, концептуальную модель и диаграммы деятельности, которые будут рассмотрены позднее. Полученный таким образом список классов-кандидатов фильтруют, удаляя слова, не относящиеся к предметной области, языковые выражения и т. п. Среди оставшихся отбирают классы-кандидаты, объекты которых обладают как состоянием, так и поведением.
Граничные классы обеспечивают взаимодействие между действующими лицами и внутренними элементами системы. К этому типу относят как классы, реализующие пользовательские интерфейсы, так и классы, обеспечивающие интерфейс с аппаратными средствами или программными системами. Их выявляют в результате изучения пары «действующее лицо - вариант использования».
Управляющие классы служат для моделирования последовательного поведения, заложенного в один или несколько вариантов использования.
Если количество классов-кандидатов и других ресурсов велико, то их принято объединять в группы — пакеты. Пакетом при объектном подходе называют совокупность описаний классов и других программных ресурсов, в том числе и самих пакетов. В один пакет обычно собирают классы и другие ресурсы общего назначения.
Диаграмма пакетов показывает, из каких частей состоит проектируемая программная система, и как эти части связаны друг с другом.
Связь между пакетами фиксируют, если изменения в одном пакете могут повлечь за собой изменения в другом. Она определяется внешними связями классов и других ресурсов, объединенных в пакет. Возможны различные виды зависимости классов, например:
• объекты одного класса посылают сообщения объектам другого;
• объекты одного класса обращаются к компонентам объектов другого;
• объекты одного класса используют объекты другого в списке параметров методов (процедур и функций) и т. п.
Самыми лучшими технологическими характеристиками отличается вариант, при котором каждый пакет включает интерфейс, содержащий описание всех ресурсов данного пакета, а взаимодействие пакетов осуществляется только через этот интерфейс. Изменения реализации ресурсов пакета в этом случае не затрагивает других пакетов. Только изменения в интерфейсе могут потребовать изменения пакетов, использующих ресурсы данного пакета.
Пакеты, с которыми связаны все пакеты программной системы, называют глобальными. Интерфейсы таких пакетов необходимо проектировать особенно тщательно, так как изменения в них потребуют проверки всех пакетов разрабатываемой системы.
После определения основных пакетов разрабатываемого программного обеспечения переходят к детальному проектированию классов, входящих в каждый из них. Классы-кандидаты, которые предположительно должны войти в конкретный пакет, показывают на диаграмме классов этапа проектирования и уточняют отношения между объектами указанных классов.
Большинство существующих методов объектно-ориентированного анализа и проектирования включает в себя как язык моделирования, так и описание процесса моделирования. Наибольшее распространение получил язык UML (Unified Modeling Language), который будет рассмотрен позднее.
Дата добавления: 2017-02-13; просмотров: 2158;