Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛабРаб № 5!.doc
Скачиваний:
7
Добавлен:
18.08.2019
Размер:
593.92 Кб
Скачать

Составление описания

Чтобы составить описания для каждого прецедента, выполните следующие действия.

  1. Определите системные операции из диаграмм последовательностей.

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

  3. При описании постусловий используйте следующие категории:

    • создание и удаление экземпляра;

    • модификация атрибута;

    • формирование и разрыв ассоциаций.

Советы по составлению описаний системных операций

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

    • Создан экземпляр SalesLineItem (лучше).

    • Создание экземпляра SalesLineItem (хуже).

    • Необходимо установить отношения между существующими и вновь созда­ваемыми объектами путем формирования ассоциаций. Например, при вы­полнении операции enterItem недостаточно просто создать новый экземп­ляр записи о покупке товара SalesLineItem. После выполнения операции этот экземпляр должен быть связан с текущей продажей Sale. Поэтому од­ним из постусловий этой операции является следующее.

    • Вновь созданный экземпляр SalesLineItem связан с объектом Sale (формирование ассоциации).

Пример pos-системы тт: описания

Системные операции для прецедента оформление продажи Описание операции

ОП 1: makeNewSale

Операция

makeNewSale()

Ссылки

Прецеденты: Оформление продажи

Предусловия

Отсутствуют

Постусловия

  • Создан экземпляр s объекта Sale (создание экземпляра);

  • Экземпляр Sale связан с объектом Register (формирование ассоциации);

  • Инициализированы атрибуты экземпляра s.

Обратите внимание на нечеткое описание последнего постусловия. В реальном проекте все эти постусловия настолько очевидны и следуют из описания прецедентов, что создавать описание системной операции makeNewSale не имеет смысла.

Напомним один из основных принципов RUP: стремитесь к максимальной про­стоте и избегайте использования артефактов, которые не добавляют новых знаний.

ОП 2: enterItem

Операция

enterItem (itemID: itemID, quantity: integer )

Ссылки

Прецеденты: Оформление продажи

Предусловия

Инициирована продажа

Постусловия

  • Создан экземпляр sli класса SalesLineItem (создание экземпляра);

  • Экземпляр sli связан с текущим экземпляром класса Sale (формирование ассоциации);

  • Атрибуту sli.quantity присвоено значение quantity (модификация атрибута);

  • Экземпляр sli связан с классом ProductSpecification на основе соответствия идентификатора товара itemID (формирование ассоциации).

Инициализированы атрибуты экземпляра s.

ОП 3: endSale

Операция

endSale()

Ссылки

Прецеденты: Оформление продажи

Предусловия

Инициирована продажа

Постусловия

  • Атрибут Sale.iscomplete принял значение true (модификация атрибута).

ОП 4: makePayment

Операция

makePayment (amount: Money)

Ссылки

Прецеденты: Оформление продажи

Предусловия

Инициирована продажа

Постусловия

  • Создан экземпляр p класса Payment (создание экземпляра);

  • Атрибут p.amountTendered принял значение amount (модификация атрибута);

  • Экземпляр p связан с текущим экземпляром класса Sale (формирование ассоциации);

  • Текущий экземпляр Sale связан с экземпляром класса Store для его добавления в журнал регистрации продаж (формирование ассоциации).