- •Проектирование информационных систем
- •Диаграммы последовательностей системы
- •Пример диаграммы последовательностей
- •Системные события и прецеденты
- •Системные события и границы системы
- •Имена системных событий и операций
- •Отображение текста из описания прецедента
- •Вопрос 2. Модель прецедентов: детализация с помощью описания операций
- •Разделы описания
- •Постусловия
- •Обсуждение: постусловия описания операции enterItem
- •Создание и удаление экземпляра
- •Модификация атрибута
- •Формирование и разрыв ассоциации
- •Составление описания
- •Советы по составлению описаний системных операций
- •Пример pos-системы тт: описания
- •Изменение модели предметной области
- •Вопрос 3. Принципы создания модели предметной области
- •Имена и модели: стратегия построения карт
- •Типичная ошибка при выделении концептуальных классов
- •Необходимость спецификаций или описание концептуальных классов
- •Когда требуются понятия-спецификации
- •Пример: модель предметной области pos-системы тт
- •Концептуальные классы
- •Модели предметной области и декомпозиция
- •Концептуальные классы предметной области торговли
- •Идентификация концептуальных классов
- •Стратегии идентификации концептуальных классов
- •Использование списка категорий концептуальных классов
- •Определение концептуальных классов с помощью выявления существительных
- •Кандидатуры на роль концептуальных классов для предметной области торговли
- •Пример рассуждения: включать ли понятие "товарный чек" в модель
Составление описания
Чтобы составить описания для каждого прецедента, выполните следующие действия.
Определите системные операции из диаграмм последовательностей.
Составьте описание для сложных системных операций, результаты которых с очевидностью не следуют из описания прецедента.
При описании постусловий используйте следующие категории:
создание и удаление экземпляра;
модификация атрибута;
формирование и разрыв ассоциаций.
Советы по составлению описаний системных операций
Постусловия целесообразно описывать в декларативной форме, желательно с использованием глаголов пассивного залога в прошедшем времени, чтобы подчеркнуть факт изменения состояний, а не способ реализации, как, например, показано ниже.
Создан экземпляр SalesLineItem (лучше).
Создание экземпляра SalesLineItem (хуже).
Необходимо установить отношения между существующими и вновь создаваемыми объектами путем формирования ассоциаций. Например, при выполнении операции enterItemнедостаточно просто создать новый экземпляр записи о покупке товара SalesLineItem. После выполнения операции этот экземпляр должен быть связан с текущей продажейSale. Поэтому одним из постусловий этой операции является следующее.
Вновь созданный экземпляр SalesLineItem связан с объектом Sale(формирование ассоциации).
Пример pos-системы тт: описания
Системные операции для прецедента оформление продажи Описание операции
ОП 1: makeNewSale
Операция
|
makeNewSale()
|
Ссылки
|
Прецеденты: Оформление продажи
|
Предусловия
|
Отсутствуют
|
Постусловия
|
|
Обратите внимание на нечеткое описание последнего постусловия. В реальном проекте все эти постусловия настолько очевидны и следуют из описания прецедентов, что создавать описание системной операции makeNewSale не имеет смысла.
Напомним один из основных принципов RUP: стремитесь к максимальной простоте и избегайте использования артефактов, которые не добавляют новых знаний.
ОП 2: enterItem
Операция
|
enterItem (itemID: itemID, quantity: integer )
|
Ссылки
|
Прецеденты: Оформление продажи
|
Предусловия
|
Инициирована продажа |
Постусловия
|
Инициализированы атрибуты экземпляра s.
|
ОП 3: endSale
Операция
|
endSale() |
Ссылки
|
Прецеденты: Оформление продажи
|
Предусловия
|
Инициирована продажа |
Постусловия
|
|
ОП 4: makePayment
Операция
|
makePayment (amount: Money) |
Ссылки
|
Прецеденты: Оформление продажи
|
Предусловия
|
Инициирована продажа |
Постусловия
|
|