Новые книги

Если вы читаете эту книгу, значит вы подумываете о том, как бы поставить и попробовать Ubuntu. Наверняка, вы не захотите сразу отказываться от Windows и поставите Ubuntu, как вторую ОС (операционную систему).

Возможно, вы как и я долго метались от дистрибутива к дистрибутиву и решали, какой же установить. Уверяю вас, вы сделали правильный выбор. Данная книга проведёт небольшую, но базовую экскурсию на тему установки и настройки.

Я уверен, что вы найдёте эту книгу интересной для себя. Если у вас возникают какие-либо вопросы, я могу осветить их в новой версии этой книги. С радостью выслушаю критику, пожелания и вопросы. Для связи со мной использовать почту [email protected]. Для получение бесплатных консультаций или ответов на ваши вопросы используйте контакты, полученные после подписки на рассылку http://ubuntubook.ru.

С уважением,

Дмитрий Котенок.
Impact Mapping – практическое пособие по картам влияния, простому, но очень эффективному методу разработки программного обеспечения. Он помогает еще на стадии стратегического планирования организовать сотрудничество различных специалистов и в результате создавать эффективные программные продукты.

Определение зависимостей

2.3.3. Определение зависимостей

Следуя рекомендациям п. 2.2.3, выделяем явные и неявные глагольные обороты из предварительной постановки задачи и рассматриваем их как имена возможных зависимостей. Из постановки задачи о банковской сети (см. п. 1.3) можно извлечь следующие обороты:

Глагольные обороты (явные и неявные):
Банковская сеть включает кассиров и ATM'ы
Консорциум распределяет результаты проводок по ATM
Банк владеет компьютером банка
Компьютер банка поддерживает счета
Банк владеет кассовыми терминалами
Кассовый терминал взаимодействует с компьютером банка
Кассир вводит проводку над счетом
ATM'ы взаимодействуют с центральным компьютером во время проводки
Центральный компьютер взаимодействует с компьютером банка
ATM принимает карточку
ATM общается с пользователем
ATM выдает наличные деньги
ATM печатает квитанции
Система регулирует коллективный доступ
Банк предоставляет программное обеспечение
Консорциум состоит из банков
Консорциум владеет центральным компьютером
Система обеспечивает протоколирование
Система обеспечивает безопасность
Клиенты имеют карточки
Карточка обеспечивает доступ к счету
В банке служат кассиры

Затем исключаем ненужные или неправильные зависимости, используя критерии, сформулированные в п. 2.2.3:

  • зависимости между исключенными классами: исключаются следующие зависимости: Банковская сеть включает кассиров и ATM'ы (класс банковская_сеть исключен), ATM печатает квитанции (класс квитанция исключен), ATM выдает наличные деньги (класс деньги исключен), Система обеспечивает протоколирование проводок (класс служба_ведения_записей исключен), Система обеспечивает безопасность ведения счетов (класс служба_безопасности исключен), Банки предоставляют программное обеспечение (класс программное_обеспечение исключен);
  • нерелевантные зависимости и зависимости, связанные с реализацией: зависимость "Система регулирует коллективный доступ" исключается как связанная с реализацией;
  • действия описываются такими зависимостями как "ATM принимает карточку" и "ATM общается с пользователем"; мы исключаем эти зависимости;
  • тренарные зависимости: зависимость "Кассир вводит проводку над счетом" раскладывается на две бинарные зависимости "Кассир вводит проводку" и "Проводка относится к счету". Зависимость "ATM'ы взаимодействуют с центральным компьютером во время проводки" раскладывается на "ATM'ы взаимодействуют с центральным компьютером" и "Проводка начинается с ATM";
  • производные зависимости: зависимость "Консорциум распределяет ATM'ы" является следствием зависимостей "Консорциум владеет центральным компьютером" и "ATM'ы взаимодействуют с центральным компьютером".

Удалив избыточные зависимости, получим следующий список зависимостей:
Банк владеет компьютером банка
Компьютер банка поддерживает счета
Банк владеет кассовыми терминалами
Кассовый терминал взаимодействует с компьютером банка
Кассир вводит проводку
Проводка относится к счету
ATM'ы взаимодействуют с центральным компьютером
Проводка начинается с ATM
Центральный компьютер взаимодействует с компьютером банка
Консорциум состоит из банков
Консорциум владеет центральным компьютером
Клиенты имеют карточки
Карточка обеспечивает доступ к счету
В банке служат кассиры

Уточним семантику оставшихся зависимостей следующим образом:

  • переименуем неверно названные зависимости, чтобы смысл их стал более понятен; так зависимость Компьютер_банка поддерживает счета удобнее заменить зависимостью Банк держит счета.
  • имена ролей можно не использовать, так как они ясны из имен классов, участвующих в зависимости, как например, для зависимости ATM'ы взаимодействуют с центральным компьютером;
  • неучтенные зависимости: Проводка начинается с кассового_терминала, Клиенты имеют счета, Проводка регистрируется карточкой следует добавить в модель.

После уточнения зависимостей можно составить исходную версию объектной диаграммы. Для рассматриваемой задачи она будет иметь вид, представленный на рисунке 2.37.

Рис. 2.37. Первая версия объектной диаграммы для банковской сети

Назад | Содержание | Вперед