[за вопрос в комментарии о том, как рисовать диаграмму классов]
Диаграммы классов, вероятно, чаще всего используются для отображения отношений в проблемной области.Отношения фиксируют правила из домена (например, «Каждый заказ состоит из одной или нескольких строк заказа» / «Каждая строка заказа является частью ровно одного заказа»).
В вашем случае классы охватывают слои архитектуры.Следовательно, отношения захватывают архитектурные правила, а не правила домена.Я не склонен использовать диаграммы классов для этой цели, но принцип тот же.Для каждой пары классов вам нужно спросить:
- Как бы вы описали отношения между классами?
- Какое количество элементов?
НапримерВозьми сервлет и клиент.Как бы вы описали отношения?Вероятно что-то вроде:
- описание: клиент вызывает сервлет / сервлет вызывается клиентом
- кардинальностью: для каждого данного экземпляра клиента,сколько сервлетов может с ним разговаривать?Вероятно, один или несколько.Точно так же, от скольких клиентов один экземпляр сервлета может получать запросы?Опять же, вероятно, один или несколько (будет зависеть от вашего дизайна)
Предполагая, что вышеприведенное верно для вашего дизайна, у вас будет что-то вроде следующего (извинения за форматирование, yuml.me, похоже, непоместите текст аккуратно):
![client-server class diagram example](https://i.stack.imgur.com/GjUjO.png)
Тот же подход применяется для остальных классов.Сначала спросите, как бы вы описали отношения как предложение, а затем выясните кардинальность.Например, возьмите обработчик запроса сервлета: как бы вы это описали?Я не очень знаком с шаблонами Java EE, но предположил бы, что сервлет делегирует обработчику запросов.Таким образом, фраза отношения будет выглядеть примерно так: «сервлет делегирует запрос обработчику запроса».И так далее до класса ejb и т. Д.
hth.