<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>https://lib.custis.ru/index.php?action=history&amp;feed=atom&amp;title=Agile_Modeling_with_Mind_Map_and_UML</id>
		<title>Agile Modeling with Mind Map and UML - История изменений</title>
		<link rel="self" type="application/atom+xml" href="https://lib.custis.ru/index.php?action=history&amp;feed=atom&amp;title=Agile_Modeling_with_Mind_Map_and_UML"/>
		<link rel="alternate" type="text/html" href="https://lib.custis.ru/index.php?title=Agile_Modeling_with_Mind_Map_and_UML&amp;action=history"/>
		<updated>2026-05-14T06:07:30Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.26.4</generator>

	<entry>
		<id>https://lib.custis.ru/index.php?title=Agile_Modeling_with_Mind_Map_and_UML&amp;diff=11149&amp;oldid=prev</id>
		<title>BenderBot: 1 версия</title>
		<link rel="alternate" type="text/html" href="https://lib.custis.ru/index.php?title=Agile_Modeling_with_Mind_Map_and_UML&amp;diff=11149&amp;oldid=prev"/>
				<updated>2009-08-20T00:00:26Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;tr style='vertical-align: top;' lang='ru'&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 00:00, 20 августа 2009&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan='2' style='text-align: center;' lang='ru'&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>BenderBot</name></author>	</entry>

	<entry>
		<id>https://lib.custis.ru/index.php?title=Agile_Modeling_with_Mind_Map_and_UML&amp;diff=11148&amp;oldid=prev</id>
		<title>StasFomin: орфография/пунктуация</title>
		<link rel="alternate" type="text/html" href="https://lib.custis.ru/index.php?title=Agile_Modeling_with_Mind_Map_and_UML&amp;diff=11148&amp;oldid=prev"/>
				<updated>2009-08-19T10:59:49Z</updated>
		
		<summary type="html">&lt;p&gt;орфография/пунктуация&lt;/p&gt;
&lt;a href=&quot;https://lib.custis.ru/index.php?title=Agile_Modeling_with_Mind_Map_and_UML&amp;amp;diff=11148&amp;amp;oldid=11123&quot;&gt;Внесённые изменения&lt;/a&gt;</summary>
		<author><name>StasFomin</name></author>	</entry>

	<entry>
		<id>https://lib.custis.ru/index.php?title=Agile_Modeling_with_Mind_Map_and_UML&amp;diff=11123&amp;oldid=prev</id>
		<title>BenderBot: 1 версия</title>
		<link rel="alternate" type="text/html" href="https://lib.custis.ru/index.php?title=Agile_Modeling_with_Mind_Map_and_UML&amp;diff=11123&amp;oldid=prev"/>
				<updated>2009-08-18T00:00:30Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;tr style='vertical-align: top;' lang='ru'&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 00:00, 18 августа 2009&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan='2' style='text-align: center;' lang='ru'&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>BenderBot</name></author>	</entry>

	<entry>
		<id>https://lib.custis.ru/index.php?title=Agile_Modeling_with_Mind_Map_and_UML&amp;diff=11122&amp;oldid=prev</id>
		<title>StasFomin в 18:44, 17 августа 2009</title>
		<link rel="alternate" type="text/html" href="https://lib.custis.ru/index.php?title=Agile_Modeling_with_Mind_Map_and_UML&amp;diff=11122&amp;oldid=prev"/>
				<updated>2009-08-17T18:44:16Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Перевод статьи [http://www.stickyminds.com/sitewide.asp?ObjectId=11861&amp;amp;Function=DETAILBROWSE&amp;amp;ObjectType=ART Agile Modeling with Mind Map and UML].&lt;br /&gt;
&lt;br /&gt;
== Аннотация ==&lt;br /&gt;
&lt;br /&gt;
Сбор требований — или, как говорят в контексте agile-разработки, сбор пользовательских историй (''user stories''), весьма важный и сложный аспект разработки ПО. &lt;br /&gt;
Здесь нет никаких стандартных процессов или нотаций, только понимание, что важнейшие факторы эффективности этой фазы — это коммуникация и всевозможные практики уменьшения формализма и облегчения процесса.&lt;br /&gt;
В этой статье ''Kenji Hiranabe'' предлагает использовать майндмапы, чтобы сфокусироваться на этих основных факторах при исследовании пользовательских требований, чтобы затем формализировать полученную модель на UML.&lt;br /&gt;
&lt;br /&gt;
== Что такое майндмап? ==&lt;br /&gt;
&lt;br /&gt;
Согласно основопологающей книге «The Mind Map Book» от автора методики, Тони Бьюзана (''Tony Buzan''):&lt;br /&gt;
: Майндмапы (''mindmaps'', они же «интеллектуальные карты», «карты памяти», «ментальные карты») — это графическая техника ведения заметок и визуализации идей, используя лучисто-ветвистую (''радиантную'') структуру. При этом из центрального рисунка растут ветви, помеченные ключевыми словами, соответствующие ''Ключевым Упорядочивающим Идеям'', далее рекурсивно ветвятся поддеревья и т.п.&lt;br /&gt;
&lt;br /&gt;
В майндмапах нужно использовать цвета, картинки и схемы, потому что человеческий мозг гораздо лучше приспособлен для распознавания шаблонов и образов, чем чисел и слов.&lt;br /&gt;
&lt;br /&gt;
Роджер Сперри (''Roger Sperry''), нобелевский лауреат в области физиологии, обнаружил, что кора головного мозга подразделяется на два полушария, между которыми ассиметрично распределены функции интеллекта.&lt;br /&gt;
Его исследования показывают, что правая сторона доминирует в восприятии ритма, цветов и размеров,  пространственном ориентировании, целостном восприятии (гештальте), воображении и мечтах;&lt;br /&gt;
в то время как левая сторона сильна в логике и анализе, операциях над словами, числами и последовательностями/списками.   &lt;br /&gt;
&lt;br /&gt;
Благодаря использованию обоих (и левого и правого) полушарий, майндмапы реализуют больший потенциал человеческой памяти, чем обычные, линейные записи. &lt;br /&gt;
Настолько эффективны майндмапы благодаря следующим свойствам:&lt;br /&gt;
;Ориентированность на ключевые слова (''Keyword Orientation''): Основным структурным элементом майндмапов являются не целые предложения, а ключевые слова.&lt;br /&gt;
;Свободные синтаксис и семантика (''Loose Syntax and Semantics''): Наличие произвольной ассоциации — достаточная причина для связи между ключевыми словами.&lt;br /&gt;
;Удобство — легко использовать и быстро рисуются: Можно использовать майндмапы даже в реальном времени, для параллельного стенографирования  разного рода собраний.&lt;br /&gt;
;Высокоуровневый обзор: Майндмап целиком легко окинуть взглядом. &lt;br /&gt;
;«Вспомнить все»: Майндмап пробуждает воспоминания о полном контексте ситуации, фиксируемой в момент его создания.&lt;br /&gt;
;Частичная структурированность (''Semistructured''): Майндмап может иметь некий заданный шаблон, но он также может расти в любых других направлениях (по требованию), например, чтобы оперативно фиксировать результаты устных переговоров в слабоструктурированном общении.&lt;br /&gt;
&lt;br /&gt;
{{note}} Слабоструктурированные данные (''Semistructured data'') — это данные с иерархической структурой, но без заранее определенной схемы. Слабоструктурированные интервью — это когда набор вопросов заранее неизвестен.&lt;br /&gt;
&lt;br /&gt;
[[Image:An example mind map used to plan a project Christmas party.jpg|center|framed|Пример майндмапа «Планирование Рождества»]]&lt;br /&gt;
&lt;br /&gt;
== Чем майндмапы могут быть полезны в разработке ПО? ==&lt;br /&gt;
&lt;br /&gt;
В обзоре ''Chuck Frey'' (см. раздел «Рекомендованное чтение») показано, что три основных бизнес-приложения майндмапов это:&lt;br /&gt;
* «Списки задач» (''To do lists'');&lt;br /&gt;
* «Подготовка презентаций»;&lt;br /&gt;
* «Ведение заметок» (''Note taking'')&lt;br /&gt;
&lt;br /&gt;
Например, использование майндмапов весьма уместно и эффективно в  следующих ситуациях или даже фазах разработки ПО:&lt;br /&gt;
;Планерки и прочие краткие собрания (''Meeting Minutes and Agenda''): — добавляют визуальных эффектов в повестку дня или программу действий. В процессе собрания, можно подключить ноутбук к дополнительному проектору, чтобы оперативно записывать идеи и изменения. Я называют это майндмапом «журнала встречи» (''meeting log'', см. рисунок ниже.). Такой майндмап имеет заранее созданные ветви для «Заключения»/''Conclusion'' и «Списка задач»/''ToDo'', так, что ведущий майндмап медиатор встречи не оставил эти важные пункты пустыми или неясными.&lt;br /&gt;
&lt;br /&gt;
[[Image:Meeting log mind map template.jpg|center|frame|Шаблон майндмапа «журнал собрания».]]&lt;br /&gt;
&lt;br /&gt;
;Презентации: Явная структура майндмапа и удобство целостного обзора всей схемы позволяет аудитории следить за идеей выступающего и не уйти далеко в сторону при обсуждении.&lt;br /&gt;
;Классификация элементов: Практически все действия в разработке ПО требуют той или иной классификации чего-либо. Например, на следующем рисунке двадцать три паттерна проектирования поделены на три категории: «Структура/Structure», «Создание/Creation» и «Поведение/Behavior», а зависимости между шаблонами показаны пунктирными линиями-стрелками.&lt;br /&gt;
&lt;br /&gt;
[[Image:An example of categorization (Design Patterns).jpg|center|frame|Пример классификации (шаблонов проектирования)]]&lt;br /&gt;
&lt;br /&gt;
;Заметки о книге или семинаре: Удобно конспектировать отзыв/аннотацию книги или содержание семинара.&lt;br /&gt;
&lt;br /&gt;
;Ретроспективы: Удобно использовать майндмапы для рефлексии над прошедшей итерацией (или над ходом проекта до выпуска очередной версии), чтобы провести анализ и выбрать направления для улучшения. Такие карты обычно имеют три ключевых ветви «Придерживаться/Keep», «Проблемы/Problem» и «Попробовать/Try» (см. рисунок). Члены команды каких практик из текущих нужно продолжать придерживатся, какие проблемы встретились в последней итерации, и что попробовать для их решения.&lt;br /&gt;
&lt;br /&gt;
[[Image:A mind map of a retrospective meeting using Alistair Cockburn's Keep-Problem-Try technique.png|center|image|Майндмап ретроспективы в соответствии с техникой «Keep/Problem/Try» Алистэра Коуберна ('''''Alistair Cockburn''''')]].&lt;br /&gt;
&lt;br /&gt;
;Заметки по переговорам: Использовать майндмапы для взаимодействий с пользователями (более подробно будет описано в следующих разделах).&lt;br /&gt;
&lt;br /&gt;
== Майндмапы и пользовательские истории ==&lt;br /&gt;
&lt;br /&gt;
Интерактивность — это ключевая ценность ''Agile''.&lt;br /&gt;
''Mike Cohn'' в своей книге «User Story Applied» утверждает, что произошел ключевой сдвиг парадигмы от написания (документации) к общению (обсуждениям).&lt;br /&gt;
В экстремальном программировании (XP, ''eXtreme programing'') используются специальные карты историй (''story cards'') для записи результатов переговоров с пользователем. Ограничение на запись информации только на маленькую карту помогает направить обсуждение с заказчиком в конструктивном направлении. Часто даже такие карты пишут сами заказчики (или их представители), после чего их размещают на специальной стене в комнате разработчиков, как краткое резюме и просто напоминание о проведенном обсуждении. Соответственно, если возникает вопрос по пользовательской истории, нужно взять карту со стены, вспомнить, о чем там речь и обсудить ее снова.&lt;br /&gt;
&lt;br /&gt;
=== Исследование пользовательских требований с помощью майндмапов ===&lt;br /&gt;
&lt;br /&gt;
Пользовательская история — это по сути фрагмент пользовательского требования. &lt;br /&gt;
А я предлагаю использовать майндмапы пользовательских требований, чтобы целостно ухватить не только осколки, но и все пользовательские требования целиком.&lt;br /&gt;
&lt;br /&gt;
С одной стороны майндмап не хуже в «напоминании», чем карта истории, &lt;br /&gt;
с другой — он явно более удобен для высокоуровнего обзора всей ситуации.&lt;br /&gt;
Также майндмап — гибкий контейнер данных, подходящий для конспектирования слабоструктурированных интервью.&lt;br /&gt;
Т.е. интервьювер может использовать заготовленные шаблоны для начала опроса, но&lt;br /&gt;
когда беседа пойдет в неожиданном направлении — может  легко добавить и новую ветвь, чтобы сконцентрироваться на темах, серьезно заинтересовавших опрашиваемого.&lt;br /&gt;
&lt;br /&gt;
[[Image:User-wish mind map template.png|center|frame|Шаблон майндмапа для пользовательских требований]] &lt;br /&gt;
&lt;br /&gt;
Этот рисунок показывает заготовленный шаблон, для фиксации пользовательских требований. &lt;br /&gt;
Т.е. заранее подгтовлены следующие вопросы:&lt;br /&gt;
&lt;br /&gt;
;Кто и почему заинтересован в этой системе? (''Who will be happy because of this system and why?''): Я всегда задаю сначала именно этот вопрос, чтобы выяснить всех вовлеченных лиц и их интересы, текущие проблемы, ситуационный контекст, имеющиеся ожидания. Это одновременно и ключевые факторы успеха и источники риска, стоящие за требованиями к системе.&lt;br /&gt;
;Кто будет использовать систему? (''Who will use the system?''):&lt;br /&gt;
Ответ на этот вопрос определяет пользователей системы, и потенциальных субъектов в сценариях использования (''use case actors'').&lt;br /&gt;
;Когда они должны использовать систему? (''When will they use the system?''):&lt;br /&gt;
Это определяет сценарий использования системы (''system's story or use case candidates'').&lt;br /&gt;
;Какая информация должна вестись в системе? (''What information do you want to manage with the system?''): Здесь определяются основные сущности или объекты в модели предметной области, включая понятийный аппарат и собственно, решаемые проблемы.&lt;br /&gt;
&lt;br /&gt;
А последняя ветвь, «Homework», фиксирует уже не вопрос, а все то, в чем не удалось разобраться в проведенных переговорах.&lt;br /&gt;
&lt;br /&gt;
Например, я использовал этот формат для сбора требований по городской библиотечной системе — опрашивая библиотекаря я параллельно записывал такой майндмап. Более того, я присоединил мой ноутбук к дополнительному проектору и оперативно правил этот майндмап одновременно с собеседованием. А элементы в ветке «Homework», по сути, определяют план следующей встречи. &lt;br /&gt;
Удобство фиксации таких «непредсказуемых» тем и демонстрирует гибкость майндмапов по ведению слабоструктурированных данных.&lt;br /&gt;
&lt;br /&gt;
== Переход от майндмапов в UML ==&lt;br /&gt;
&lt;br /&gt;
После исследования цельной картины пользовательских требований, можно продолжать двумя способами:&lt;br /&gt;
* Собрать пользовательские истории, в духе практик планирования из XP (экстремального программирования).&lt;br /&gt;
* Создать гибкую модель из моделей сценариев использования и модель сущностей предметной области. Для того и другого майндмап пользовательских требований будет прекрасной исходной точкой.&lt;br /&gt;
&lt;br /&gt;
При создании майндмапа пользовательских требований, я добавляю иконки субъектов (''actors''), сценариев и классов, более того, все эти иконки заранее «заготовлены» в шаблонных ветках майндмап-анкеты.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Conversion from a user-wish mind map to domain models.png|center|frame|Переход от майндмапа пользователя к модели предметной области]]&lt;br /&gt;
&lt;br /&gt;
Использование майндмапов в сочетании с UML означает разделение требований на две модели:&lt;br /&gt;
* Cбор требований, когда происходит быстрое выявление обмен туманными идеями и ключевыми высокоуровневыми концепциями. Этот этап можно характеризовать как экстенсивный (divergent), что требует и соответствующего мышления («не упустить ничего») и подходящих инструментов лаконичного конспектирования (т.е. майндмапов).&lt;br /&gt;
* Моделирование на UML, в котором моделируется предметная область и сценарии собранные на первом этапе. И мышление на этом этапе будет другим — интенсивным/конвергентным (convergent).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Converted Domain Models in Usecases and Class diagrams.png|center|frame|Модель предметной области, преобразованная в диаграммы классов и пользовательских сценариев]]&lt;br /&gt;
&lt;br /&gt;
== Заключение ==&lt;br /&gt;
Шаблонные майндмапы представляют прекрасный слабоструктурированный формат для расспросов, включая как структуру обязательных важных вопросов, так и удобство захвата неожиданных тем. Это также помогает исключить ошибки общения и ухватить «мягкую» высокоуровневую структуру пользовательских требований. Также майндмапы помогают вспомнить полный контекст требований на момент их записи.&lt;br /&gt;
Ну, а после сбора идей на майндмапе, уже можно «сеять» ключевые слова — элементы майндмапа, чтобы «вырастить» соответствующие элементы UML-моделей. &lt;br /&gt;
Тут уже можно использовать строгий синтаксис UML, чтобы построить семантически богатую модель предметной области и использовать ее для проектирования приложения.&lt;br /&gt;
&lt;br /&gt;
В Agile-разработке программного обеспечения считается, что одним из ключевых факторов успеха проекта — это коммуникация между всеми его участниками. &lt;br /&gt;
Конечно, существует множество способов передачи и обмена информацией, но ни строгие формальные документы, ни обычные устные переговоры не являются адекватным решением. &lt;br /&gt;
Ничто так не эффективно, как правильный набор лаконичных схем и графов, схватывающих самую суть исследуемой ситуации. &lt;br /&gt;
И тут майндмапы и UML-диаграммы работают весьма хорошо, но каждый в своей собственной области:&lt;br /&gt;
* Майндмапы весьма хороши для сбора туманных и неструктурированных пользовательских тербований и затем частичного их структурирования.&lt;br /&gt;
* UML диаграммы удобно порождать из «стабилизировавшихся» майндмапов, для детальной проработки и дальнейшего стандартного использования в цикле разработке ПО.&lt;br /&gt;
&lt;br /&gt;
[[Image:An illustration of how mind maps and UML work during requirements gathering and modeling.png|center|frame|Синергия майндмапов и UML при сборе требований]]&lt;br /&gt;
&lt;br /&gt;
==Ссылки==&lt;br /&gt;
=== Основы ===&lt;br /&gt;
&lt;br /&gt;
;Tony Buzan «The Mind Map Book»: Собственно «библия» майндмаппинга.&lt;br /&gt;
;Craig Larman «Agile and Iterative Development»: Краткое введение в майндмаппинг как agile-практику для быстрой работы с требованиями. &lt;br /&gt;
;Alistair Cockburn «Agile Software Development»: В частности, там рассказывается об упомянутом в статье подходе «Keep/Problem/Try» к проведению.&lt;br /&gt;
;Scott Ambler «Agile Modeling»: Собственно родоначальник понятия «Agile Modeling».&lt;br /&gt;
;Mike Cohn «User Stories Applied»: Обоснование, что Agile-сбор требований требует сдвига парадигмы от написания к общению.&lt;br /&gt;
;James and Suzanne Robertson «Mastering the Requirements Process»: Кратко обсуждает идею использования майндмапов в процессе сбора требований. &lt;br /&gt;
;Esther Derby and Diana Larsen «Agile Retrospectives»: Источник третьего рисунка-майндмапа.&lt;br /&gt;
&lt;br /&gt;
=== Исследования и приложения ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.mindmapping.typepad.com/ Mind mapping survey results]: Первое крупное исследование майндмаппинга в контексте разработки ПО.&lt;br /&gt;
* [http://www.eric-blue.com/blog/2006/12/mindmapping_and_the_software_d.html  Mind mapping and the software development life cycle]: Подборка ссылок по майндмаппингу в процессе разработки ПО.&lt;br /&gt;
* [http://roots.dnd.no/modules.php?op=modload&amp;amp;name=Downloads&amp;amp;file=index&amp;amp;req=getit&amp;amp;lid=164  Utilizing Mind Maps for Essential Use Case Specification]: Сходства между майндмапами и сценариями.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{replicate-from-custiswiki-to-lib}}&lt;/div&gt;</summary>
		<author><name>StasFomin</name></author>	</entry>

	</feed>