Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УП Теория систем и системный анализ.docx
Скачиваний:
338
Добавлен:
14.02.2016
Размер:
6 Mб
Скачать

Логическое представление

Логическое представление, концентрируется на том, как система будет реализовывать поведение, описанное в вариантах использования (прецедентах). Оно дает подробную картину составных частей системы и описывает взаимодействие этих частей. С помощью логического представления разработчики смогут сконструировать детальный проект создаваемой системы.

Логическое представление содержит [82]:

  • Классы.

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

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

  • Диаграммы состояний.

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

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

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

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

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

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