Сюжетное моделирование
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Сюжетное моделирование [1] [2] [3] — это метод объектно-ориентированного моделирования . [4] [5] Другие формы объектно-ориентированного моделирования сосредоточены на диаграммах классов . Диаграммы классов описывают статическую структуру программы, т.е. строительные блоки программы и то, как они связаны друг с другом. Диаграммы классов также моделируют структуры данных, но с акцентом на довольно абстрактные понятия, такие как типы и особенности типов.
Вместо абстрактных статических структур моделирование на основе историй фокусируется на конкретных примерах сценариев. [6] и о том, как выполняются шаги примеров сценариев могут быть представлены в виде диаграмм объектов и того, как эти диаграммы объектов развиваются во время выполнения сценария.
Подход к разработке программного обеспечения
[ редактировать ]Моделирование на основе историй предлагает следующий подход к разработке программного обеспечения:
- Текстовые сценарии . Для функции, которую вы хотите реализовать, разработайте текстовое описание сценария для наиболее распространенного случая. Рассматривайте только один пример за раз. Старайтесь использовать конкретные термины и отдельные имена вместо общих терминов и, например, названий ролей:
- Сценарий Го-Голландского барбекю
- Начало: в это воскресенье Питер, Путри и Пэн встречаются в парке, чтобы устроить барбекю по-голландски. Для ведения учета они используют приложение Group Account.
- Шаг 1: Питер приносит мясо за 12 долларов. Питер добавляет этот элемент в приложение групповой учетной записи.
- Шаг 2: Путри приносит салат за 9 долларов. Питер тоже добавляет этот предмет. Приложение показывает, что на данный момент средняя доля составляет 7 долларов и что Пэн все еще должен принести эти 7 долларов, в то время как Питер получает 5 долларов, а Путри — 2 доллара.
- Шаг 3: ...
- Макеты графического . Чтобы проиллюстрировать пользовательского интерфейса графический интерфейс пользователя (GUI) для желаемой функции, вы можете добавить в свой сценарий несколько каркасных моделей или макетов графического пользовательского интерфейса:
- Сценарий Го-Голландского барбекю
- Начало: в это воскресенье Питер, Путри и Пэн встречаются в парке, чтобы устроить барбекю по-голландски. Для ведения учета они используют приложение Group Account.
- Шаг 1: Питер приносит мясо за 12 долларов. Питер добавляет этот элемент в приложение групповой учетной записи.
- Шаг 2: Путри приносит салат за 9 долларов. Питер тоже добавляет этот предмет. Приложение показывает, что на данный момент средняя доля составляет 7 долларов и что Пэну еще нужно принести эти 7 долларов, в то время как Питер получает 5 долларов, а Путри — 2 доллара:
- Шаг 3: ...
- Раскадровка : Далее вы думаете о том, как определенная ситуация, то есть определенный шаг сценария, может быть представлена на компьютере с помощью структуры объектов времени выполнения. Это делается путем добавления объектных диаграмм в сценарий . В моделировании на основе истории сценарий с объектными диаграммами также называется раскадровкой.
- Сценарий Го-Голландского барбекю
- Начало: в это воскресенье Питер, Путри и Пэн встречаются в парке, чтобы устроить барбекю по-голландски. Для ведения учета они используют приложение Group Account.
- Шаг 1: Питер приносит мясо за 12 долларов. Питер добавляет этот элемент в приложение групповой учетной записи.
- Шаг 2: Путри приносит салат за 9 долларов. Питер тоже добавляет этот предмет. Приложение показывает, что на данный момент средняя доля составляет 7 долларов и что Пэну еще нужно принести эти 7 долларов, в то время как Питер получает 5 долларов, а Путри — 2 доллара:
- Шаг 3: ...
- Вывод диаграммы классов . Теперь довольно просто получить диаграмму классов из диаграмм объектов, используемых в раскадровках.
Обратите внимание: диаграмма классов служит общей ссылкой для всех диаграмм объектов. Это гарантирует, что в целом используются одни и те же типы и атрибуты. Используя инструмент UML , вы можете создать первую реализацию на основе этой диаграммы классов. - Разработка алгоритма . На данный момент вы смоделировали и реализовали структуры объектов, которые развернуты в вашем приложении. Теперь вам нужно добавить поведение, то есть алгоритмы и тела методов. Программирование поведения приложения — сложная задача. Чтобы облегчить это, вам следует сначала описать поведение в псевдокода нотации . Вы можете сделать это, например, с помощью объектной игры. Например, чтобы обновить атрибуты saldo всех людей, вы смотрите на нашу структуру объекта и с точки зрения объекта GroupAccount делаете следующее:
- Обновите сальдо всех лиц:
- посетить каждый предмет
- для каждого предмета прибавьте значение к общей стоимости и прибавьте 1 к количеству предметов.
- вычислите среднюю долю каждого человека, разделив общую стоимость на количество человек
- посетить каждого человека
- для каждого человека сброс сальдо
- для каждого человека посетите каждый товар, купленный этим человеком
- для каждого предмета добавьте значение к сальдо текущего человека
- за каждого человека вычесть долю из сальдо
- Реализация поведения : как только вы уточните псевдокод вашего алгоритма до уровня операций над объектными структурами, вы легко сможете получить исходный код, который выполняет те же операции в реализации вашей объектной модели.
- Тестирование . Наконец, сценарии можно использовать для создания автоматических тестов JUnit . Псевдокод теста для нашего примера может выглядеть так:
- Тестовое обновление сальдо всех лиц:
- создать объект групповой учетной записи
- добавьте объект-человек с именем Питер, объект-человек с именем Путри и объект-человек с именем Пэн в объект групповой учетной записи
- добавьте объект товара с покупателем Питером, описанием «Мясо» и стоимостью 12 долларов США в объект группового аккаунта.
- добавьте объект товара с покупателем Putri, описанием Salad и стоимостью 9 долларов США в объект групповой учетной записи.
- метод вызова обновляет данные всех лиц в объекте групповой учетной записи
- убедитесь, что сальдо объекта Питера составляет 5 долларов.
- убедитесь, что сальдо объекта Putri составляет 2 доллара
- убедитесь, что сальдо объекта Питера составляет -7 долларов.
- убедитесь, что сумма всех сальдо равна 0 долларам
- Такие автоматические тесты гарантируют, что в рассматриваемой ситуации реализация поведения действительно выполняет то, что указано в раскадровке. Хотя эти тесты довольно просты и могут не выявить все виды ошибок, они очень полезны для документирования желаемого поведения и использования новых функций, и эти тесты гарантируют, что соответствующая функциональность не будет потеряна из-за будущих изменений.
Краткое содержание
[ редактировать ]Моделирование на основе историй доказало свою эффективность при сотрудничестве с неспециалистами в сфере ИТ. [7] Людям из других областей обычно трудно описать свои потребности в общих терминах (т. е. классах) и общих правилах (псевдокоде). Точно так же у обычных людей возникают проблемы с пониманием псевдокода или с оценкой того, правильно ли удовлетворены их потребности или нет. Однако эти люди очень хорошо знают свое дело, и с помощью конкретных примеров и сценариев обычным людям очень легко выявить проблемные случаи и судить, были ли их потребности решены должным образом.
Моделирование, основанное на историях, получило развитие с момента своего создания в 1997 году. В 2013 году оно используется для преподавания, например, в Кассельском университете, Падерборнском университете, Тартуском университете, Антверпенском университете, Назарбаевском университете Астаны, Институте Хассо Платнера в Потсдаме, Университете Виктории, ...
См. также
[ редактировать ]- Гибкое моделирование
- Граница управления объектом
- Гибкая разработка программного обеспечения
- Карточка классовой ответственности и сотрудничества
- Объектно-ориентированный анализ и проектирование
- Объектно-ориентированное моделирование
- Разработка через тестирование
- Единый язык моделирования
Ссылки
[ редактировать ]- ^ Норбисрат, Ульрих; Цюндорф, Альберт; Джубе, Рубен (2013). Моделирование, основанное на сюжете . п. 333. ИСБН 9781483949253 .
- ^ Цюндорф, Альберт; Шюрр, А.; Винтер, Эй Джей (1999). «Моделирование, основанное на сюжете». Университет Падерборна . Технический отчет (тр-ри-99-211).
- ^ Дитхельм, Ира; Гейгер, Л.; Цюндорф, А. (январь 2004 г.). «Систематическое моделирование на основе историй: практический пример». Третий международный семинар по сценариям и государственным машинам : 65–70.
- ^ ван Горп, Питер (2008). «Оценка методологии моделирования на основе историй: от башен к моделям». Технический отчет Университета Антверпена .
- ^ Эйкхофф, Кристоф; Гейгер, Н.; Хан, М.; Цюндорф, А. (2012). «Разработка корпоративных веб-приложений с использованием подхода моделирования на основе историй» . Современные тенденции в веб-инженерии . ЛНКС. 7059 (7059): 196–210. дои : 10.1007/978-3-642-27997-3_21 . ISBN 978-3-642-27996-6 .
- ^ Райзер, Дж.; Глинц, М. (2000). «Повышение качества требований с помощью сценариев». Материалы Второго Всемирного конгресса по качеству программного обеспечения. Иокогама : 55–60.
- ^ Цюндорф, Альберт; Леохольд, Дж.; Мюллер, Д.; Геммерих, Р.; Рекорд, К.; Шнайдер, К.; Земмельрот, С. (2006). «Использование объектных сценариев для анализа требований – отчет об опыте». Modellierung 2006 : 269–278.