Сюжетное моделирование - Story-driven modeling

Сюжетное моделирование[1][2][3] является объектно-ориентированное моделирование техника.[4][5] Другие формы объектно-ориентированного моделирования сосредоточены на диаграммы классов. Диаграммы классов описывают статическую структуру программы, то есть строительные блоки программы и то, как они соотносятся друг с другом. Диаграммы классов также моделируют структуры данных, но с акцентом на довольно абстрактные концепции, такие как типы и особенности типов.

Вместо абстрактных статических структур моделирование на основе историй фокусируется на конкретных примерах сценариев.[6] и как шаги примерных сценариев могут быть представлены как схемы объектов и как эти объектные диаграммы развиваются во время выполнения сценария.

Подход к разработке программного обеспечения

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

  1. Текстовые сценарии: Для функции, которую вы хотите реализовать, разработайте текстовое описание сценария для наиболее распространенного случая. Смотрите только по одному примеру за раз. Попробуйте использовать конкретные термины и отдельные имена вместо общих терминов, например имена ролей:
    Сценарий го-голландского барбекю
    • Начало: В это воскресенье Питер, Путри и Пэн встречаются в парке на голландском барбекю. Они используют приложение Group Account для ведения бухгалтерского учета.
    • Шаг 1: Питер приносит мясо за 12 долларов. Питер добавляет этот элемент в приложение групповой учетной записи.
    • Шаг 2: Путри приносит салат за 9 долларов. Питер тоже добавляет этот предмет. Приложение показывает, что к настоящему времени средняя доля составляет 7 долларов, и что Пэн все еще должен принести эти 7 долларов, в то время как Питер получает 5 долларов, а Путри - 2 доллара.
    • Шаг 3: ...
  2. Макеты GUI: Чтобы проиллюстрировать графический интерфейс пользователя (GUI) для желаемой функции, вы можете добавить несколько каркасных моделей или макетов GUI в свой сценарий:
    Сценарий го-голландского барбекю
    • Начало: В это воскресенье Питер, Путри и Пэн встречаются в парке на голландском барбекю. Они используют приложение Group Account для ведения бухгалтерского учета.
    • Шаг 1: Питер приносит мясо за 12 долларов. Питер добавляет этот элемент в приложение групповой учетной записи.
    • Шаг 2: Путри приносит салат за 9 долларов. Питер тоже добавляет этот предмет. Приложение показывает, что к настоящему времени средняя доля составляет 7 долларов и что Пэн все еще должен принести эти 7 долларов, в то время как Питер получает 5 долларов, а Путри - 2 доллара:
      Википедия
    • Шаг 3: ...
  3. Раскадровка: Затем вы думаете о том, как определенная ситуация, то есть определенный шаг сценария, может быть представлена ​​на компьютере структурой объекта времени выполнения. Это делается путем добавления схемы объектов к сценарию. В моделировании на основе сюжета сценарий с диаграммами объектов также называется раскадровкой.
    Сценарий го-голландского барбекю
    • Начало: В это воскресенье Питер, Путри и Пэн встречаются в парке на голландском барбекю. Они используют приложение Group Account для ведения бухгалтерского учета.
    • Шаг 1: Питер приносит мясо за 12 долларов. Питер добавляет этот элемент в приложение групповой учетной записи.
    • Шаг 2: Путри приносит салат за 9 долларов. Питер тоже добавляет этот предмет. Приложение показывает, что к настоящему времени средняя доля составляет 7 долларов и что Пэн все еще должен принести эти 7 долларов, в то время как Питер получает 5 долларов, а Путри - 2 доллара:
      ВикипедияСхема объектов, моделирующая голландский барбекю
    • Шаг 3: ...
  4. Вывод диаграммы классов: Теперь довольно просто получить диаграмма классов из объектных диаграмм, используемых в раскадровках.
    Диаграмма классов для голландского барбекю
    Обратите внимание: диаграмма классов служит общим справочником для всех диаграмм объектов. Это гарантирует, что в целом используются одни и те же типы и атрибуты. Используя UML инструмент, вы можете создать первую реализацию из этой диаграммы классов.
  5. Разработка алгоритма: Пока вы смоделировали и реализовали те структуры объектов, которые развернуты в вашем приложении. Теперь вам нужно добавить поведение, то есть алгоритмы и тела методов. Программирование поведения приложения - сложная задача. Чтобы облегчить это, вы должны сначала обрисовать поведение в псевдокод обозначение. Вы можете сделать это, например с предметной игрой. Например, чтобы обновить атрибуты saldo всех людей, вы смотрите на нашу структуру объекта и с точки зрения объекта GroupAccount вы делаете следующее:
    Обновите сальдо всех лиц:
    • посетить каждый предмет
      • для каждого элемента добавьте значение к общей стоимости и добавьте 1 к количеству элементов
    • вычислить среднюю долю каждого человека, разделив общую стоимость на количество людей
    • посетить каждого человека
      • для каждого человека сбросить сальдо
      • для каждого человека посетить каждый товар, купленный этим человеком
        • для каждого элемента добавить значение сальдо текущего человека
      • для каждого человека вычесть долю из сальдо
  6. Реализация поведения: Как только вы доработаете свой алгоритм псевдокод вплоть до уровня операций с объектными структурами несложно получить исходный код, который выполняет те же операции в реализации вашей объектной модели.
  7. Тестирование: Наконец, сценарии могут использоваться для получения автоматического JUnit тесты. Псевдокод теста для нашего примера может выглядеть так:
    Тестовое обновление сальдо всех лиц:
    • создать объект групповой учетной записи
    • добавить объект person с именем Peter и объект person с именем Putri и объект person с именем Peng к объекту группового аккаунта
    • добавить объект item с покупателем Peter, описанием Meat и стоимостью 12 долларов в объект группового аккаунта
    • добавить объект item с покупателем Putri, описанием Salad и стоимостью 9 долларов в объект группового аккаунта
    • метод вызова обновить сальдо всех лиц в объекте групповой учетной записи
    • убедитесь, что сальдо объекта Питер составляет 5 долларов
    • убедитесь, что сальдо объекта Путри составляет 2 доллара
    • убедитесь, что сальдо объекта Питер - 7 долларов
    • убедитесь, что сумма всех салдо составляет 0 долларов
Такие автоматические тесты гарантируют, что в рассматриваемой ситуации реализация поведения действительно выполняет то, что указано в раскадровке. Хотя эти тесты довольно просты и могут не выявлять все виды ошибок, эти тесты очень полезны для документирования желаемого поведения и использования новых функций, и эти тесты гарантируют, что соответствующие функции не будут потеряны из-за будущих изменений.

Резюме

Сюжетное моделирование очень хорошо работает при сотрудничестве с не ИТ-экспертами.[7] Людям из других областей обычно трудно описать свои потребности в общих терминах (например, классы) и общих правилах (псевдокод). Точно так же нормальным людям сложно понять псевдокод или судить, удовлетворены ли их потребности должным образом или нет. Однако эти люди очень хорошо знают свое дело, и с помощью конкретных примеров и сценариев нормальным людям очень легко обнаружить проблемные случаи и судить, были ли должным образом учтены их потребности.

Моделирование, основанное на сюжете, развилось с момента его появления в 1997 году. В 2013 году оно используется для обучения, например, в Кассельском университете, Падерборнском университете, Тартуском университете, Антверпенском университете, Назарбаев Университете Астаны, Потсдамском институте Хассо Платнера, Университете Виктории, ...

Смотрите также

Рекомендации

  1. ^ Норбисрат, Ульрих; Цюндорф, Альберт; Джубе, Рубен (2013). Сюжетное моделирование. Amazon Createspace. п. 333. ISBN  9781483949253.
  2. ^ Цюндорф, Альберт; Schürr, A .; Уинтер, А. Дж. (1999). «Моделирование на основе сюжета». Университет Падерборна. Технический отчет (tr-ri-99-211).
  3. ^ Дитхельм, Ира; Гейгер, Л .; Цюндорф, А. (январь 2004 г.). «Систематическое моделирование, управляемое историей: тематическое исследование». Третий международный семинар по сценариям и государственным машинам: 65–70.
  4. ^ ван Горп, Питер (2008). «Оценка методологии сюжетного моделирования: от башен к моделям». Технический отчет Антверпенского университета.
  5. ^ Айкхофф, Кристоф; Гейгер, Н .; Hahn, M .; Цюндорф, А. (2012). «Разработка корпоративных веб-приложений с использованием подхода моделирования на основе историй». Современные тенденции в веб-инженерии. LNCS (7059): 196–210.
  6. ^ Ryser, J .; Глинц, М. (2000). «Повышение качества требований с помощью сценариев». Материалы Второго Всемирного конгресса по качеству программного обеспечения. Иокогама: 55–60.
  7. ^ Цюндорф, Альберт; Leohold, J .; Müller, D .; Gemmerich, R .; Рекорд, С .; Schneider, C .; Семмельрот, С. (2006). «Использование объектных сценариев для анализа требований - отчет об опыте работы». Modellierung 2006: 269–278.