Вы знаете, Вседофени,
Описал варианты использования. 2 штуки =). Второй ВИ дался с трудом. И чувствую что здесь опять что-то не так.
Меня смущает то, что в ВИ "Редактирование существующего фоторобота" всё построено на "Если". То есть, если ничего из основного потока не выполнится, то ничего и не произойдёт. Мой преподаватель скажет, что он бесполезный =), мне кажется...
Это вообще нормально. Не так легко научиться писать сразу и быстро отличные и правильные ВИ. Потому как определить, что такое отличные и правильные, вряд ли полностью возможно.
Однако есть определенные признаки, которые дают определенный путь к совершенству.
Один из этих признаков следующий. Вариант использования - это ПРОТОКОЛ взаимодействия. Протокол - это ЛИНЕЙНЫЙ список действий. Вариант использования если точнее совокупность таких протоколов, ведущих к успешному ИЛИ неуспешному исходу.
. Так вот успешный обычно называют ОСНОВНЫМ, ГЛАВНЫМ, ТИПИЧНЫМ, НАИБОЛЕЕ ЧАСТЫМ - выбирайте что ближе.
А в таком потоке ну не должно быть, если должна быть прямая линия действий. Все ЕСЛИ - это альтернативные потоки.
Впрочем тут можно найти компромисс (
РЕКОМЕНДАЦИИ ПО НАПИСАНИЮ СПЕЦИФИКАЦИЙ ВАРИАНТОВ ИСПОЛЬЗОВАНИЯ)
Тут есть правда и еще одна тонкость, возможно в вашем случае, ВИ не самая удачная форма представления требований к программе.
Создание нового фоторобота
Краткое описание:
Создание нового фоторобота для последующего использования – редактирования, сохранения и т.д.
Мне трудно представить себе криминалиста, который в надежде, что ему в будущем придется "редактирования, сохранения и т.д", он создает в течение рабочего дня новый фоторобот. Да и не фоторобот - это это скорее некая заготовка.
Поймите, ВИ это нечто, что делает 1 человек, в 1 месте, в за сеанс (ну условно) англичане говорят coherent, т.е. нечто неразрывно связанное и имеющее смысл только вместе. ТО что у вас как описание ВИ записано - это лишь шаг.
Действующее лицо:
Пользователь системы.
Очень безликое ДЛ, оно мало дает какой-либо информации
Предусловия:
Нет.
я думаю предусловием является криминалистический инцидент, при котором требуется установить личность преступника или неизвестного человека по описанию свидетелей или знакомых
Основной поток:
1. Пользователь выбирает пункт меню «Файл - Новый».
Это реализация, в ВИ не должны присутствовать элементы интерфейса, т.к. они явно или неявно задают ограничения на реализацию проекта.
2. Система производит очистку холста для фоторобота.
в вашей голове сидит явно некое конкретное поведение уже существующей системы и вы его тут воспроизводите, а это не так.
3. Пока фоторобот не состоит из основных частей лица (причёска, глаза, уши, нос, губы, подбородок)
3.1 Пользователь выбирает пункт меню с надписью соответствующей части лица (причёска, глаза, уши, нос, губы, подбородок и т.д.).
3.2 Система отображает множество вариантов выбранной части лица.
3.3 Пользователь выбирает (нажатием кнопкой мыши) один из представленных вариантов части лица.
3.4 Система размещает на холсте указанную часть лица.
Все это нужно отобразить Пользователь выбирает из библиотеки части лица, Система отображает результат выбора
4. Пользователь выбирает пункт меню «Файл - Сохранить».
5. Система отображает диалоговое окно «Сохранить как».
6. Пользователь указывает имя файла и тип файла (Изображение (*.bmp) или Файл системы «Фоторобот»(*.phr)). И нажимает на кнопку «Сохранить».
7. Система сохраняет файл фоторобота в указанное место в указанном формате.
Пользователь сохраняет полученный фоторобот, указывая имя и формат сохранения. Система сохраняет фоторобот в указаном виде.
Постусловия:
1. На холсте отображён фоторобот.
2. Система произвела сохранение фоторобота в файл.
Это можно оставить. Хотя слово холст может быть несколько неясным
З.Ы. Под стандартным классом я имел ввиду стандартные классы среды разработки, такие как TForm, TButton, TImage. Они для меня как чёрные ящики, я не знаю всех методов, которые они имеют. Но как я понял не обязательно отображать на диаграмме классов всех методов и атрибутов класса?
Естественно.