egor, помоему получилось все нормально. Поскольку вы описываете задачи пользователя, то вполне нормально изложили их.
Конечно, можно сказать, что скорее всего не все возможности вы указали. Но Вы выделили главные.
Я бы, конечно, сделал несколько иначе.
Попробуйте уловить мои рассуждения.
Итак, что мы имеем.
Пользователь
1. Написать новое письмо
2. Получить почту
3. Ответить на письмо
4. Переслать письмо
5. Переадресовать письмо
6. Удалить (вероятно письмо)
К каждому ВИ следует поставить вопрос: А зачем?
Внимательно отвечая, можно прийти к таким более общим задачам как:
В1. Написать письмо
В2. Ответить на письмо
В3. Переслать письмо
В4. Удалить письмо
В1 Подразумевает создание либо нового письма либо ответа
В2 Подразумевает набор действий, среди которых вызывается В1 и 2
B3 Подразумевает выполнение 2 (который может быть расширен еще Прочитать письмо). Ваши 4 и 5 как мы видим аналогичны
При этом B4 может входить в общий вариант Управлять письмами, куда могут быть включены и Получить письмо и Прочитать письмо и Переадресовать письмо и Переместить письмо и Пометить письмо
Естественно все это можно рассматривать совершенно отдельно либо как экземпляр сценария базового ВИ.
Поэтому лучше для начала описать все, что хотел бы иметь пользователь от Вашего почтового клиента. Ведь фактически это и будут функции системы или свойства системы. Сюда могут быть включены и вопросы администрирования почтового клиента: создание ящика, формирование и настройка последнего, вклчение и отключение всяких свойств. Но... Вы стремитесь в начале выделить самое главное (Вам это практически удалось), далее анализируете, что следует делать вначале, а что можно реализовать позже. То что Вы выделили главным (а это 10-20% Ваших ВИ), описываете подробно и детально. Именно описываете. Диаграмма ВИ - это простой контекст, содержание задач пользователя в самомо общем виде, без излишних деталей.
Когда часть ВИ будет детально описана (базовый поток, альтернативные потоки, расширения и исключения) будет понятно как структурировать ДВИ, если это вообще потребуется.
Однако в любом случае нужно четко определится с целью проекта и потребностями пользователей. Хотя как я понимаю задача чисто учебная. Тгда скурпулезная точность не нужна. Достаточно лишь перечислить наиболее важные ВИ.
Далее по каждому ВИ можно сделать модель классов-участников ВИ, так называемую реализацию ВИ.
Обычно она делается по принципу MVC (модель предстваление управляющий класс)
Т.е. В данном контексте например для ВИ Получить почту, это может быть:
Актор - Форма получения почты - КонтролерПолучитьПочту - Письмо и возможно Папка входящих
Совокупность всех диаграмок классов дасть общую модель классов системы на концептуальном уровне
Диаграммы состояний будете делать для классов, которые действительно меняют состояния: например Письмо (Получено, Прочитано, Удалено). Либо для состояния какого-то управляющего класса.
Можно конечно отсановиться на общем концептуальном уровне и определить модель классов предметной области, модель состояний для нужных классов, модель взаимодействий объектов