Page 158

Как моделировать альтернативные потоки?

В предыдущей статье я предложил некоторые рекомендации по написанию спецификации вариантов использования. Статья вызвала бурные дискуссии на форуме. Среди прочих поднимался вопрос о том, что считать альтернативными потоками и как их записывать. Действительно, что мы считаем альтернативными потоками? Если существует альтернатива чему-либо, то, очевидно, существует что-то, что мы считаем главным или исходным по отношению к ней...

Обобщение действующих лиц

Обобщение действующих лиц (actors) обеспечивает возможность вынести поведение, общее для двух и более действующих лиц, в действующее лицо-родителя

  • ДЛ-родитель является более обобщенным, чем его потомки, а ДЛ-потомки — более специализированными, чем их родитель
  • Дочернее ДЛ везде может заменять ДЛ-родителя — это принцип замещаемости
  • ДЛ-родитель обычно абстрактный — он определяет абстрактную роль
  • Дочерние ДЛ конкретны — они определяют конкретные роли
  • Обощение ДЛ может упрощать диаграммы вариантов использования

Рассмотрим простой, но достаточно показательный пример...

Рекомендации по написанию спецификаций вариантов использования

UML не определяет единых правил для создания спецификации вариантов использования или прецедентов (кому, что нравится). Однако существует ряд шаблонов, которыми Вы можете воспользоваться. Шаблон от Алистера Коберна. Шаблон от Карла Вигерса. Шаблон от RUP. Шаблон от ICONIX. Шаблон от OpenUP...

Сурова Ирина

BugIrraМесто проживания: Москва

Роль в сообществе: веду FAQ по продуктам Sparx. 

Специализация: Моделирование, Методологии производства ПО. Системный анализ. И обучение всему этому.

Текущее место работы: Лаборатория Касперского

Должность: Системный аналитик

Стаж в ИТ:10 лет. 

Стаж работы Аналитиком: постоянно выполняю работы по анализу ПО и описанию/построению процессов разработки последние 4 года...

Григораш Виталий

 Место проживания: Санкт-Петербург. 

Роль в сообществе: Oрганизатор семинаров, идеолог журнала Analyze IT.

Специализация: Системный анализ, планирование и управление требованиями.

Текущее место работы: EPAM Systems 

Должность: Старший бизнес-аналитик

Стаж в ИТ: Более 4 лет.

Стаж работы Аналитиком: Более 3 лет

Жизненный путь: Будучи студентом занимался научной деятельностью по направлению «Робастные системы автоматического управления» за что получил «Диплом  первой степени за высокие достижения в научно исследовательской работе»...

Галиаскаров Эдуард Геннадьевич

Галиаскаров Эдуард ГеннадьевичМесто проживания: Иваново.

Роль в сообществе: соадминистратор uml2.ru.

Специализация: ИТ-образование. Тестирование ПО. Системный анализ. Наука.

Текущее место работы: Ивановский государственный химико-технологический универсистет, кафедра информационных технологий, ЗАО НПО "Консультант", департамент информационных систем

Должность: доцент, руководитель учебного центра.

Стаж в ИТ: с 2000 года...

Столяров Дмитрий Олегович

 Место проживания: Москва

Роль в сообществе: Участник сообщества

Специализация: Системный анализ

Текущее место работы: Raiffeisen Bank Russia

Должность: Senior Officer

Стаж в ИТ: Более 10 лет.

Стаж Аналитиком: Более 5 лет.

Жизненный путь: Окончил Тверской Государственный Университет по направлению «Прикладная математика и информатика», затем Международный Университет Природы Общества и Человека «Дубна» по направлению «Системный анализ проектно-технологических решений»...

Емельянов Леонид Юрьевич

Место проживания: Москва.

Роль в сообществе: Участник сообщества.

Специализация: Системный анализ.

Текущее место работы: SITRONICS Telecom Solutions

Должность: бизнес-аналитик.

Стаж в ИТ: Более 5 лет.

Стаж Аналитиком: Более 3 лет.

Жизненный путь: В университете устроился в CNET Channel, дорос до аналитика, реализовывал проекты Products selector и memory selector...

Байкин Александр Сергеевич

 Место проживания: Москва.

Роль в сообществе: Отвечаю за внешние связи, Отец-основатель uml2.ru.

Специализация: Сбор, Анализ и Управление Требованиями. Стратегический Анализ.

Текущее место работы: ГК "Мототелеком"

Должность: Руководитель отдела разработки, тестирования и документирования.

Стаж в ИТ: Более 10 лет.

Стаж Аналитиком: Более 6 лет...

Как указать направление чтения в имени ассоциации?

Хорошо известно, что имя ассоциации не является обязательным атрибутом и используется для наглядности и передачи некоторого контекста. Имена ассоциации часто используют при построении концептуальных моделей классов для передачи смысла отношения между двумя сущностями.

Обычно по умолчанию приняты правила чтения имен ассоциации в соответствии с направлениями чтения в естественном языке...

Можно ли в репозитории ЕА хранить не ссылки на файлы, а сами файлы Word, Excel и т.д.?

Файл RTF-формата можно присоединить к конкретному элементу модели, выбрав команду контекстного меню элемента Add LinkedDocument. Для одного элемента может быть только один LinkedDocument.

Файлы других форматов, например Excelевые, ЕА хранить не умеет.

 ..

Как избавиться от кракозябриков вместо русского языка при создании RTF-отчетов?

Обычно кракозябры пропадают, если выставить правильно Codepage.

В версии 7.1 — формирование rtf-доки — закладка Codepage, там Language=1049 Russian, Codepage=855 Cyrillic, Charset=204 Russian

В версии 6.5 — формирование rtf-доки, дальше где-то по кнопочке Options, или как-то так, но добавить надо все те же настройки...

Как в ЕА изобразить параллельное композитное состояние?

Если открыть UML Help EA: Contents-> The UML Dictionary -> UML Elements -> Basic Elements -> State -> Composite State, на рисунке мы видим параллельное композитное состояние Install Software.

Для того, чтобы изобразить Составное состояние с «горизонтальной пунктирной прямой», которая разделяла бы потоки вложенных состояний на отдельные области, надо сделать следующее:

  • Рисуем элемент State.
..

Рекомендации по формулировке требований

Типичное требование

<Тип пользователя> должен иметь возможность <описание возможности>

Требование с ограничениямими и условиями

<Тип пользователя> должен иметь возможность <описание возможности> с <показатель производительности> от <момент отсчета>, находясь в <условия эксплуатации>

Оператор должен иметь возможность произвести выстрел в течение 3 секунд с момента обнаружения цели радаром, находясь в сложных морских условиях.

..

Как отобразить в Note какой-либо элемент?

В ЕА есть такая фишка как привязка Note(заметка) к внутренним элементам.

В частности в примере самого ЕА, есть заметки на многих диаграммах, в которых отображается текст — например, есть такой ВИ Закрыть аккаунт(счет), в нем есть сценарии — и описаны 4 потока событий...

Особенности импорта классов и экземпляров классов

Есть Package1 содержащий Class1
Есть Package2 содержащий Instance :Class1

Теперь создадим копию Package1:
Экспортируем Package1 в файл XMI и обратно импортируем, установив флажок Strip GUID's.
Получаем Package3 содержащий самостоятельную копию Class1

Беда в том, что при этом меняется Instance :Class1
Если раньше это был Instance :Package1.Class1,..

Как перенести из 1 файла модели в другой справочники (например, шаблоны отчетов)?

Разные справочники (Reference data) хранятся в репозитарии отдельно от диаграмм и элементов моделей и при импорте/экспорте пакетов модели не переносятся.

Для экспорта необходимо выбрать пункт меню Tools-Export Reference data-и из списка выбрать нужный справочник (например, для шаблонов встроенных документов — LinkedDocumentTemplate), ввести имя файла и т.д. ..

Как получить групповой доступ к репозитарию EA?

Для группового доступа рецепт такой: корпоративная лицензия + сетевая база данных. Если с лицензией все гуд, то можно не заморачиваться, а выложить файлик eap на сеть в общедоступное место и всем его открывать — это получится групповой доступ к Access-файлу. Но если в районе 10 человек работает, лучше заморочиться на MS SQL или Oracle...