Создание проекта. Анализ прецедентов. Реализация прецедентов. Уточненное описание прецедента, страница 6

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

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

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

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

В языке UML пакет изображается значком папки. Пакет может содержать модельные элементы, такие как классы и интерфейсы. Пакеты могут быть вложенными.

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

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

Зависимость между пакетами отображается на диаграмме в виде пунктирной стрелки, ведущей от зависимого пакета к тому, от которого он зависит. Целесообразно, чтобы все стрелки зависимости на диаграмме были направлены в одну и ту же сторону (например, сверху вниз, слева направо и т.д.). Это помогает проследить цепочки зависимостей.

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

Диаграммы зависимостей пакетов для системы HomeDirect приводятся в главе 16.

Резюме

Анализ прецедентов дает начальное, обобщенное представление о взаимодействии внутренних элементов системы при выполнении функциональных требований и об их статических отношениях. Это основная работа при создании проекта.

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

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

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