Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООТ 2011 3(6) Практикум 03 .doc
Скачиваний:
32
Добавлен:
12.04.2015
Размер:
621.57 Кб
Скачать

Различные уровни абстракции

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

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

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

Рисунок 1.7 - Диаграмма последовательностей на высоком уровне абстракции

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

Рисунок 1.8 - Взаимодействие на более низком уровне абстракции

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

Сложные представления

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

Моделирование сложных представлений осуществляется следующим образом:

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

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

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

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

Советы

При разработке диаграмм руководствуйтесь следующими правилами:

  • помните, что цель создания диаграмм на языке UML - не рисование красивых картинок, а визуализация, специфицирование, конструирование и документирование. Диаграммы - это только одно из средств, помогающих привести разработку программной системы к успешному завершению;

  • не все диаграммы необходимо сохранять. Иногда стоит создавать их "на лету" и использовать для анализа системы по мере ее построения. Многие диаграммы такого рода можно будет выбросить после того, как они выполнят свое назначение;

  • избегайте избыточных диаграмм, они только загромождают модель;

  • каждая диаграмма должна содержать только необходимые для ее целей детали. Лишняя информация отвлечет внимание читателя от более важных элементов модели;

  • старайтесь не делать диаграммы слишком краткими, если только не хотите представить что-либо на очень высоком уровне абстракции.

  • чрезмерное упрощение может скрыть детали, важные для понимания модели;

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

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

  • у каждой диаграммы должно быть осмысленное имя, ясно отражающее ее назначение;

  • организуйте диаграммы, группируя их в пакеты в соответствии с представлением;

  • не обременяйте себя форматированием диаграммы - используйте для этого соответствующие инструменты.

Хорошо структурированная диаграмма обладает следующими свойствами:

  • заостряет внимание на одном аспекте некоторого представления системы;

  • содержит только элементы, существенные для понимания этого аспекта;

  • содержит детали, соответствующие выбранному уровню абстракции (не обременена деталями, без которых можно обойтись);

  • не настолько лаконична, чтобы ввести читателя в заблуждение относительно важных аспектов семантики.

Изображая диаграмму, воспользуйтесь нижеприведенными рекомендациями:

  • дайте диаграмме имя, соответствующее ее назначению;

  • расположите элементы так, чтобы свести к минимуму число пересечений;

  • пространственно организуйте элементы так, чтобы семантически близкие сущности располагались на диаграмме рядом;

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

Самостоятельная работа.

  1. Создайте документ Word с отчетом:

ООТ 2014 3(5) Практикум 03 ФИО

  1. Поместите в документе ответы на вопросы:

  1. Что такое диаграмма?

  2. Назовите основные виды диаграмм и поясните назначение каждой из них.

  3. По рисунку 1.1 определите для класса «Стиральная машина» его атрибуты (свойства) и методы (операции).

  4. Что такое изоморфность диаграмм?

  5. Почему при выполнении диаграмм для разрабатываемой модели могут использоваться идентичные диаграммы (например, диаграмма кооперации и диаграмма последовательностей)?