http://lib.custis.ru/index.php?title=%D0%91%D0%BB%D0%BE%D0%B3:%D0%9C%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0_%D0%A6%D0%B5%D0%BF%D0%BA%D0%BE%D0%B2%D0%B0/2013-10-23:_SECR._%D0%9C%D0%B0%D1%81%D1%82%D0%B5%D1%80-%D0%BA%D0%BB%D0%B0%D1%81%D1%81_%D0%98%D0%B2%D0%B0%D1%80%D0%B0_%D0%AF%D0%BA%D0%BE%D0%B1%D1%81%D0%BE%D0%BD%D0%B0_Use-Case_2.0&feed=atom&action=historyБлог:Максима Цепкова/2013-10-23: SECR. Мастер-класс Ивара Якобсона Use-Case 2.0 - История изменений2024-03-29T00:52:06ZИстория изменений этой страницы в викиMediaWiki 1.26.4http://lib.custis.ru/index.php?title=%D0%91%D0%BB%D0%BE%D0%B3:%D0%9C%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0_%D0%A6%D0%B5%D0%BF%D0%BA%D0%BE%D0%B2%D0%B0/2013-10-23:_SECR._%D0%9C%D0%B0%D1%81%D1%82%D0%B5%D1%80-%D0%BA%D0%BB%D0%B0%D1%81%D1%81_%D0%98%D0%B2%D0%B0%D1%80%D0%B0_%D0%AF%D0%BA%D0%BE%D0%B1%D1%81%D0%BE%D0%BD%D0%B0_Use-Case_2.0&diff=42883&oldid=prevVladMarkov в 08:42, 29 октября 20132013-10-29T08:42:08Z<p></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='ru'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Предыдущая</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Версия 08:42, 29 октября 2013</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l5" >Строка 5:</td>
<td colspan="2" class="diff-lineno">Строка 5:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>И это была не просто лекция, в которую иногда превращаются мастер-классы от мэтров. Был интерактив и практическая работа над заданиями в группах. Да, местами было повторение известных практик, знакомых большинству присутствующих, например, оценки, а местами достаточно сложные и интересные вещи были даны пунктиром из-за недостатка времени, но мастер-класс в целом я бы оценил высоко. Было последовательно показано применение Use Case при работе с требованиями.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>И это была не просто лекция, в которую иногда превращаются мастер-классы от мэтров. Был интерактив и практическая работа над заданиями в группах. Да, местами было повторение известных практик, знакомых большинству присутствующих, например, оценки, а местами достаточно сложные и интересные вещи были даны пунктиром из-за недостатка времени, но мастер-класс в целом я бы оценил высоко. Было последовательно показано применение Use Case при работе с требованиями.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Существенно новой для меня была конструкция Use Case Slice, деление Use Case в процессе работы. Суть в следующем. У нас есть цельный Use Case со всеми альтернативными сценариями. Естественным образом мы их <del class="diffchange diffchange-inline">приоритезируем</del>, выделяя важные и примерно относя к релизам. Для этого можно использовать технику MoSCoW: Must/Should/Could/Want. Но вот когда мы говорим, что Use Case — must, это вовсе не означает, что таковыми являются все его сценарии. Мы делим Use Case на пакеты сценариев, кусочки, которые и называются slice. Они должны быть некоторым образом закончены, должна быть возможность их поименовать, их реализация должна давать некоторое business value и быть относительно независимой. И далее планирование релизов и итераций идет уже в терминах slice, которые <del class="diffchange diffchange-inline">приоритезируются </del>и реализуются по отдельности. Естественно, с учетом зависимости, и в первый slice идет base flow, с учетом minimum viable value.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Существенно новой для меня была конструкция Use Case Slice, деление Use Case в процессе работы. Суть в следующем. У нас есть цельный Use Case со всеми альтернативными сценариями. Естественным образом мы их <ins class="diffchange diffchange-inline">приоритизируем</ins>, выделяя важные и примерно относя к релизам. Для этого можно использовать технику MoSCoW: Must/Should/Could/Want. Но вот когда мы говорим, что Use Case — must, это вовсе не означает, что таковыми являются все его сценарии. Мы делим Use Case на пакеты сценариев, кусочки, которые и называются slice. Они должны быть некоторым образом закончены, должна быть возможность их поименовать, их реализация должна давать некоторое business value и быть относительно независимой. И далее планирование релизов и итераций идет уже в терминах slice, которые <ins class="diffchange diffchange-inline">приоритизируются </ins>и реализуются по отдельности. Естественно, с учетом зависимости, и в первый slice идет base flow, с учетом minimum viable value.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Но при этом Use Case сохраняется, он обладает целостностью более высокого порядка. А разработчики, проектируя реализацию (design), знают о других кусочках Use Case, которые надо будет сделать в будущем и учитывают их. Важно, что хотя декомпозиции на slice в конечном итоге подвергаются все Use Case, она выполняется по мере необходимости, а не изначально.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Но при этом Use Case сохраняется, он обладает целостностью более высокого порядка. А разработчики, проектируя реализацию (design), знают о других кусочках Use Case, которые надо будет сделать в будущем и учитывают их. Важно, что хотя декомпозиции на slice в конечном итоге подвергаются все Use Case, она выполняется по мере необходимости, а не изначально.</div></td></tr>
</table>VladMarkovhttp://lib.custis.ru/index.php?title=%D0%91%D0%BB%D0%BE%D0%B3:%D0%9C%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0_%D0%A6%D0%B5%D0%BF%D0%BA%D0%BE%D0%B2%D0%B0/2013-10-23:_SECR._%D0%9C%D0%B0%D1%81%D1%82%D0%B5%D1%80-%D0%BA%D0%BB%D0%B0%D1%81%D1%81_%D0%98%D0%B2%D0%B0%D1%80%D0%B0_%D0%AF%D0%BA%D0%BE%D0%B1%D1%81%D0%BE%D0%BD%D0%B0_Use-Case_2.0&diff=42876&oldid=prevVladMarkov в 17:33, 24 октября 20132013-10-24T17:33:54Z<p></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='ru'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Предыдущая</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Версия 17:33, 24 октября 2013</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1" >Строка 1:</td>
<td colspan="2" class="diff-lineno">Строка 1:</td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Очень понравился [http://2013.secr.ru/lang/ru/courses/use-case-2-0-the-lightness-of-user-stories-with-the-power-of-modeling мастер-класс Use-Case 2.0], который проводили Ивар Якобсон (Ivar Jakobson) и Иэн Спенс (Ian Spence) в рамках SECR-2013. Ивар и Иэн рассказывали о развитии механизма Use Case, <del class="diffchange diffchange-inline">который </del>он прошел за более, чем 25 лет истории (первая <del class="diffchange diffchange-inline">идея — </del>1987), и <del class="diffchange diffchange-inline">который расширил </del>его применение в разных направлениях так, что он по-прежнему адекватен современным потребностям разработки.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Очень понравился [http://2013.secr.ru/lang/ru/courses/use-case-2-0-the-lightness-of-user-stories-with-the-power-of-modeling мастер-класс Use-Case 2.0], который проводили Ивар Якобсон (Ivar Jakobson) и Иэн Спенс (Ian Spence) в рамках SECR-2013. Ивар и Иэн рассказывали о развитии механизма Use Case, <ins class="diffchange diffchange-inline">которое </ins>он прошел за более, чем 25 лет истории (первая <ins class="diffchange diffchange-inline">идея — </ins>1987), и <ins class="diffchange diffchange-inline">расширившее </ins>его применение в разных направлениях так, что он по-прежнему адекватен современным потребностям разработки.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* Scaling Up with use cases. From small team to large <del class="diffchange diffchange-inline">progect</del>.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* Scaling Up with use cases. From small team to large <ins class="diffchange diffchange-inline">project</ins>.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* Scaling <del class="diffchange diffchange-inline">out — </del>not only req, also analysis, design, UX and so on.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* Scaling <ins class="diffchange diffchange-inline">out — </ins>not only req, also analysis, design, UX and so on.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* Zoom <del class="diffchange diffchange-inline">in — </del>focused on essential, show big picture.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* Zoom <ins class="diffchange diffchange-inline">in — </ins>focused on essential, show big picture.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>И это была не просто лекция, в которую иногда превращаются мастер-классы от мэтров. Был интерактив и практическая работа над заданиями в группах. Да, местами было повторение известных практик, знакомых большинству присутствующих, например, оценки, а местами достаточно сложные и интересные вещи были даны пунктиром из-за недостатка времени, но мастер-класс в целом я бы оценил высоко. Было последовательно показано применение <del class="diffchange diffchange-inline">use case </del>при работе с требованиями.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>И это была не просто лекция, в которую иногда превращаются мастер-классы от мэтров. Был интерактив и практическая работа над заданиями в группах. Да, местами было повторение известных практик, знакомых большинству присутствующих, например, оценки, а местами достаточно сложные и интересные вещи были даны пунктиром из-за недостатка времени, но мастер-класс в целом я бы оценил высоко. Было последовательно показано применение <ins class="diffchange diffchange-inline">Use Case </ins>при работе с требованиями.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Существенно новой для меня была конструкция <del class="diffchange diffchange-inline">use case slice</del>, деление <del class="diffchange diffchange-inline">use case </del>в процессе работы. Суть в следующем. У нас есть цельный <del class="diffchange diffchange-inline">use case </del>со всеми альтернативными сценариями. Естественным образом мы <del class="diffchange diffchange-inline">из приоритизируем</del>, выделяя важные и примерно относя к релизам. Для этого можно использовать технику MoSCoW: Must/Should/Could/Want. Но вот когда мы говорим, что <del class="diffchange diffchange-inline">use case — </del>must, это вовсе не означает, что таковыми являются все его сценарии. Мы делим <del class="diffchange diffchange-inline">use case </del>на пакеты сценариев, кусочки, которые и называются slice. Они должны быть некоторым образом закончены, <del class="diffchange diffchange-inline">их должно </del>быть <del class="diffchange diffchange-inline">можно </del>поименовать, их реализация должна давать некоторое business value и быть относительно независимой. И далее планирование релизов и итераций идет уже в терминах slice, которые <del class="diffchange diffchange-inline">приоритизируются </del>и реализуются по<del class="diffchange diffchange-inline">-</del>отдельности. Естественно, с учетом зависимости, и в первый slice идет base flow, с учетом minimum viable value.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Существенно новой для меня была конструкция <ins class="diffchange diffchange-inline">Use Case Slice</ins>, деление <ins class="diffchange diffchange-inline">Use Case </ins>в процессе работы. Суть в следующем. У нас есть цельный <ins class="diffchange diffchange-inline">Use Case </ins>со всеми альтернативными сценариями. Естественным образом мы <ins class="diffchange diffchange-inline">их приоритезируем</ins>, выделяя важные и примерно относя к релизам. Для этого можно использовать технику MoSCoW: Must/Should/Could/Want. Но вот когда мы говорим, что <ins class="diffchange diffchange-inline">Use Case — </ins>must, это вовсе не означает, что таковыми являются все его сценарии. Мы делим <ins class="diffchange diffchange-inline">Use Case </ins>на пакеты сценариев, кусочки, которые и называются slice. Они должны быть некоторым образом закончены, <ins class="diffchange diffchange-inline">должна </ins>быть <ins class="diffchange diffchange-inline">возможность их </ins>поименовать, их реализация должна давать некоторое business value и быть относительно независимой. И далее планирование релизов и итераций идет уже в терминах slice, которые <ins class="diffchange diffchange-inline">приоритезируются </ins>и реализуются по отдельности. Естественно, с учетом зависимости, и в первый slice идет base flow, с учетом minimum viable value.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Но при этом <del class="diffchange diffchange-inline">use case </del>сохраняется, он обладает целостностью более высокого порядка. А разработчики, проектируя реализацию (design), знают о других кусочках <del class="diffchange diffchange-inline">use case</del>, которые надо будет сделать в будущем и учитывают их. Важно, что хотя декомпозиции на slice в конечном итоге подвергаются все <del class="diffchange diffchange-inline">use case</del>, она выполняется по мере необходимости, а не изначально.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Но при этом <ins class="diffchange diffchange-inline">Use Case </ins>сохраняется, он обладает целостностью более высокого порядка. А разработчики, проектируя реализацию (design), знают о других кусочках <ins class="diffchange diffchange-inline">Use Case</ins>, которые надо будет сделать в будущем и учитывают их. Важно, что хотя декомпозиции на slice в конечном итоге подвергаются все <ins class="diffchange diffchange-inline">Use Case</ins>, она выполняется по мере необходимости, а не изначально.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Вообще этот принцип детализации по <del class="diffchange diffchange-inline">необходимости — он </del>применяется очень активно. И не только к декомпозиции <del class="diffchange diffchange-inline">use case</del>, но и к различным артефактам, например, описанию <del class="diffchange diffchange-inline">use case </del>и связанных с ним историй. И не в форме благих пожеланий к постепенной детализации, а через определение трех-четырех уровней детализации с формальными критериями<del class="diffchange diffchange-inline">, </del>и рекомендациями, для каких целей какие из них предназначены<del class="diffchange diffchange-inline">, </del>и на каких этапах появляются. При этом они не должны быть одинаковы по проекту, потому что <del class="diffchange diffchange-inline">use case </del>и другие объекты имеют различную важность и сложность, и детализация должна быть им соразмерна.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Вообще этот принцип детализации по <ins class="diffchange diffchange-inline">необходимости </ins>применяется очень активно. И не только к декомпозиции <ins class="diffchange diffchange-inline">Use Case</ins>, но и к различным артефактам, например, описанию <ins class="diffchange diffchange-inline">Use Case </ins>и связанных с ним историй. И не в форме благих пожеланий к постепенной детализации, а через определение трех-четырех уровней детализации с формальными критериями и рекомендациями, для каких целей какие из них предназначены и на каких этапах появляются. При этом они не должны быть одинаковы по проекту, потому что <ins class="diffchange diffchange-inline">Use Case </ins>и другие объекты имеют различную важность и сложность, и детализация должна быть им соразмерна.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>В частности, была показана матрица техник для уровней описания <del class="diffchange diffchange-inline">use case </del>в зависимости от критичности (относительно неверной работы) и частоты использования. Ожидаемо, что для критичных <del class="diffchange diffchange-inline">use case </del>надо гораздо детальнее определять <del class="diffchange diffchange-inline">test case</del>. А вот описание самого кейса больше зависит частоты использования: для ежедневных эффективнее краткое описание с активной коммуникацией, а вот для редко используемых, например, связанных с концом года, нужны подробные описания.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>В частности, была показана матрица техник для уровней описания <ins class="diffchange diffchange-inline">Use Case </ins>в зависимости от критичности (относительно неверной работы) и частоты использования. Ожидаемо, что для критичных <ins class="diffchange diffchange-inline">Use Case </ins>надо гораздо детальнее определять <ins class="diffchange diffchange-inline">Test Case</ins>. А вот описание самого кейса больше зависит частоты использования: для ежедневных эффективнее краткое описание с активной коммуникацией, а вот для редко используемых, например, связанных с концом года, нужны подробные описания.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Помимо декомпозиции <del class="diffchange diffchange-inline">use case </del>на slice были рассказаны следующие техники.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Помимо декомпозиции <ins class="diffchange diffchange-inline">Use Case </ins>на slice были рассказаны следующие техники.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* Преобразование <del class="diffchange diffchange-inline">use case slice </del>в <del class="diffchange diffchange-inline">test case</del>, которыми каждый slice снабжается<del class="diffchange diffchange-inline">, </del>и которые также могут иметь разный уровень детализации. Кстати, base flow может быть разложен на два или более slice, отличающихся именно <del class="diffchange diffchange-inline">test case</del>: сначала делаем реализацию для единичных хороших данных, а <del class="diffchange diffchange-inline">потом — </del>наращиваем вариативность и мощность.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* Преобразование <ins class="diffchange diffchange-inline">Use Case Slice </ins>в <ins class="diffchange diffchange-inline">Test Case</ins>, которыми каждый slice снабжается и которые также могут иметь разный уровень детализации. Кстати, base flow может быть разложен на два или более slice, отличающихся именно <ins class="diffchange diffchange-inline">Test Case</ins>: сначала делаем реализацию для единичных хороших данных, а <ins class="diffchange diffchange-inline">потом — </ins>наращиваем вариативность и мощность.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* Преобразование нефункциональных требований в <del class="diffchange diffchange-inline">use case spice </del>со своими <del class="diffchange diffchange-inline">test case</del>. При этом выбором <del class="diffchange diffchange-inline">use case</del>, в которых это появится, заодно определяется область применения таких требований. Это можно делать не только с производительностью и масштабируемостью, но и с удобством использования (<del class="diffchange diffchange-inline">test case — </del>5 человек без обращения к помощи выполнили задание не более чем за…)</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* Преобразование нефункциональных требований в <ins class="diffchange diffchange-inline">Use Case Slice </ins>со своими <ins class="diffchange diffchange-inline">Test Case</ins>. При этом выбором <ins class="diffchange diffchange-inline">Use Case</ins>, в которых это появится, заодно определяется область применения таких требований. Это можно делать не только с производительностью и масштабируемостью, но и с удобством использования (<ins class="diffchange diffchange-inline">Test Case — </ins>5 человек без обращения к помощи выполнили задание не более чем за…)<ins class="diffchange diffchange-inline">.</ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* Использование <del class="diffchange diffchange-inline">use case </del>для больших компонентных систем, преобразование больших <del class="diffchange diffchange-inline">use case </del>в соответствии с декомпозицией на <del class="diffchange diffchange-inline">use case </del>для отдельных систем</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* Использование <ins class="diffchange diffchange-inline">Use Case </ins>для больших компонентных систем, преобразование больших <ins class="diffchange diffchange-inline">Use Case </ins>в соответствии с декомпозицией на <ins class="diffchange diffchange-inline">Use Case </ins>для отдельных систем<ins class="diffchange diffchange-inline">.</ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* Использование <del class="diffchange diffchange-inline">use case </del>для требований на инфраструктурные аспекты кода, такие как аудит, лог изменений или безопасность.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* Использование <ins class="diffchange diffchange-inline">Use Case </ins>для требований на инфраструктурные аспекты кода, такие как аудит, лог изменений или безопасность.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>А еще мастер-класс был элегантной демонстрацией Essence, разработанного SEMAT. Не в виде отдельных слайдов, а как практическое использование. <del class="diffchange diffchange-inline">Понятия — use case</del>, <del class="diffchange diffchange-inline">use case slice</del>, <del class="diffchange diffchange-inline">story — </del>были представлены как альфы, для них описаны состояния, и уровни детализации для артефактов. Например, <del class="diffchange diffchange-inline">use case </del>имеет состояния goal established &rarr; story structure understood &rarr; simplest story fulfilled &rarr; sugnificant story fulfilled &rarr; all stories fullfiled; а <del class="diffchange diffchange-inline">use case slice — </del>состояния scored &rarr; prepared &rarr; analyzed &rarr; implemented &rarr; verified, и для некоторых приводились checklist перехода. А уровни детализации применяемые для историй и <del class="diffchange diffchange-inline">описаний — sketch — </del>base <del class="diffchange diffchange-inline">essential — enhansed — expanded — </del>future expanded<del class="diffchange diffchange-inline">, </del>с раскрытием каждого уровня и областями применения.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>А еще мастер-класс был элегантной демонстрацией Essence, разработанного SEMAT. Не в виде отдельных слайдов, а как практическое использование. <ins class="diffchange diffchange-inline">Понятия — Use Case</ins>, <ins class="diffchange diffchange-inline">Use Case Slice</ins>, <ins class="diffchange diffchange-inline">Story — </ins>были представлены как альфы, для них описаны состояния, и уровни детализации для артефактов. Например, <ins class="diffchange diffchange-inline">Use Case </ins>имеет состояния goal established &rarr; story structure understood &rarr; simplest story fulfilled &rarr; sugnificant story fulfilled &rarr; all stories fullfiled; а <ins class="diffchange diffchange-inline">Use Case Slice — </ins>состояния scored &rarr; prepared &rarr; analyzed &rarr; implemented &rarr; verified, и для некоторых приводились checklist перехода. А уровни детализации<ins class="diffchange diffchange-inline">, </ins>применяемые для историй и <ins class="diffchange diffchange-inline">описаний, — sketch — </ins>base <ins class="diffchange diffchange-inline">essential — enhansed — expanded — </ins>future expanded <ins class="diffchange diffchange-inline">— </ins>с раскрытием каждого уровня и областями применения.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>На этом я кончаю рассказ. Надо отметить, что на сайте Ивара доступна для скачивания после регистрации книга [http://www.ivarjacobson.com/Use_Case2.0_ebook/ Use-Case 2.0] с материалами мастер-класса.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>На этом я кончаю рассказ. Надо отметить, что на сайте Ивара доступна для скачивания после регистрации книга [http://www.ivarjacobson.com/Use_Case2.0_ebook/ Use-Case 2.0] с материалами мастер-класса.</div></td></tr>
</table>VladMarkovhttp://lib.custis.ru/index.php?title=%D0%91%D0%BB%D0%BE%D0%B3:%D0%9C%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0_%D0%A6%D0%B5%D0%BF%D0%BA%D0%BE%D0%B2%D0%B0/2013-10-23:_SECR._%D0%9C%D0%B0%D1%81%D1%82%D0%B5%D1%80-%D0%BA%D0%BB%D0%B0%D1%81%D1%81_%D0%98%D0%B2%D0%B0%D1%80%D0%B0_%D0%AF%D0%BA%D0%BE%D0%B1%D1%81%D0%BE%D0%BD%D0%B0_Use-Case_2.0&diff=42875&oldid=prevMaksTsepkov в 08:28, 24 октября 20132013-10-24T08:28:08Z<p></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='ru'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Предыдущая</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Версия 08:28, 24 октября 2013</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l5" >Строка 5:</td>
<td colspan="2" class="diff-lineno">Строка 5:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>И это была не просто лекция, в которую иногда превращаются мастер-классы от мэтров. Был интерактив и практическая работа над заданиями в группах. Да, местами было повторение известных практик, знакомых большинству присутствующих, например, оценки, а местами достаточно сложные и интересные вещи были даны пунктиром из-за недостатка времени, но мастер-класс в целом я бы оценил высоко. Было последовательно показано применение use case при работе с требованиями.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>И это была не просто лекция, в которую иногда превращаются мастер-классы от мэтров. Был интерактив и практическая работа над заданиями в группах. Да, местами было повторение известных практик, знакомых большинству присутствующих, например, оценки, а местами достаточно сложные и интересные вещи были даны пунктиром из-за недостатка времени, но мастер-класс в целом я бы оценил высоко. Было последовательно показано применение use case при работе с требованиями.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Существенно новой для меня была конструкция use case <del class="diffchange diffchange-inline">spice</del>, деление use case в процессе работы. Суть в следующем. У нас есть цельный use case со всеми альтернативными сценариями. Естественным образом мы из приоритизируем, выделяя важные и примерно относя к релизам. Для этого можно использовать технику MoSCoW: Must/Should/Could/Want. Но вот когда мы говорим, что use case — must, это вовсе не означает, что таковыми являются все его сценарии. Мы делим use case на пакеты сценариев, кусочки, которые и называются <del class="diffchange diffchange-inline">spice</del>. Они должны быть некоторым образом закончены, их должно быть можно поименовать, их реализация должна давать некоторое business value и быть относительно независимой. И далее планирование релизов и итераций идет уже в терминах <del class="diffchange diffchange-inline">spice</del>, которые приоритизируются и реализуются по-отдельности. Естественно, с учетом зависимости, и в первый <del class="diffchange diffchange-inline">spice </del>идет base flow, с учетом minimum viable value.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Существенно новой для меня была конструкция use case <ins class="diffchange diffchange-inline">slice</ins>, деление use case в процессе работы. Суть в следующем. У нас есть цельный use case со всеми альтернативными сценариями. Естественным образом мы из приоритизируем, выделяя важные и примерно относя к релизам. Для этого можно использовать технику MoSCoW: Must/Should/Could/Want. Но вот когда мы говорим, что use case — must, это вовсе не означает, что таковыми являются все его сценарии. Мы делим use case на пакеты сценариев, кусочки, которые и называются <ins class="diffchange diffchange-inline">slice</ins>. Они должны быть некоторым образом закончены, их должно быть можно поименовать, их реализация должна давать некоторое business value и быть относительно независимой. И далее планирование релизов и итераций идет уже в терминах <ins class="diffchange diffchange-inline">slice</ins>, которые приоритизируются и реализуются по-отдельности. Естественно, с учетом зависимости, и в первый <ins class="diffchange diffchange-inline">slice </ins>идет base flow, с учетом minimum viable value.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Но при этом use case сохраняется, он обладает целостностью более высокого порядка. А разработчики, проектируя реализацию (design), знают о других кусочках use case, которые надо будет сделать в будущем и учитывают их. Важно, что хотя декомпозиции на <del class="diffchange diffchange-inline">spice </del>в конечном итоге подвергаются все use case, она выполняется по мере необходимости, а не изначально.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Но при этом use case сохраняется, он обладает целостностью более высокого порядка. А разработчики, проектируя реализацию (design), знают о других кусочках use case, которые надо будет сделать в будущем и учитывают их. Важно, что хотя декомпозиции на <ins class="diffchange diffchange-inline">slice </ins>в конечном итоге подвергаются все use case, она выполняется по мере необходимости, а не изначально.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Вообще этот принцип детализации по необходимости — он применяется очень активно. И не только к декомпозиции use case, но и к различным артефактам, например, описанию use case и связанных с ним историй. И не в форме благих пожеланий к постепенной детализации, а через определение трех-четырех уровней детализации с формальными критериями, и рекомендациями, для каких целей какие из них предназначены, и на каких этапах появляются. При этом они не должны быть одинаковы по проекту, потому что use case и другие объекты имеют различную важность и сложность, и детализация должна быть им соразмерна.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Вообще этот принцип детализации по необходимости — он применяется очень активно. И не только к декомпозиции use case, но и к различным артефактам, например, описанию use case и связанных с ним историй. И не в форме благих пожеланий к постепенной детализации, а через определение трех-четырех уровней детализации с формальными критериями, и рекомендациями, для каких целей какие из них предназначены, и на каких этапах появляются. При этом они не должны быть одинаковы по проекту, потому что use case и другие объекты имеют различную важность и сложность, и детализация должна быть им соразмерна.</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l13" >Строка 13:</td>
<td colspan="2" class="diff-lineno">Строка 13:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>В частности, была показана матрица техник для уровней описания use case в зависимости от критичности (относительно неверной работы) и частоты использования. Ожидаемо, что для критичных use case надо гораздо детальнее определять test case. А вот описание самого кейса больше зависит частоты использования: для ежедневных эффективнее краткое описание с активной коммуникацией, а вот для редко используемых, например, связанных с концом года, нужны подробные описания.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>В частности, была показана матрица техник для уровней описания use case в зависимости от критичности (относительно неверной работы) и частоты использования. Ожидаемо, что для критичных use case надо гораздо детальнее определять test case. А вот описание самого кейса больше зависит частоты использования: для ежедневных эффективнее краткое описание с активной коммуникацией, а вот для редко используемых, например, связанных с концом года, нужны подробные описания.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Помимо декомпозиции use case на <del class="diffchange diffchange-inline">spice </del>были рассказаны следующие техники.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Помимо декомпозиции use case на <ins class="diffchange diffchange-inline">slice </ins>были рассказаны следующие техники.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* Преобразование use case <del class="diffchange diffchange-inline">spice </del>в test case, которыми каждый <del class="diffchange diffchange-inline">spice </del>снабжается, и которые также могут иметь разный уровень детализации. Кстати, base flow может быть разложен на два или более <del class="diffchange diffchange-inline">spice</del>, отличающихся именно test case: сначала делаем реализацию для единичных хороших данных, а потом — наращиваем вариативность и мощность.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* Преобразование use case <ins class="diffchange diffchange-inline">slice </ins>в test case, которыми каждый <ins class="diffchange diffchange-inline">slice </ins>снабжается, и которые также могут иметь разный уровень детализации. Кстати, base flow может быть разложен на два или более <ins class="diffchange diffchange-inline">slice</ins>, отличающихся именно test case: сначала делаем реализацию для единичных хороших данных, а потом — наращиваем вариативность и мощность.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* Преобразование нефункциональных требований в use case spice со своими test case. При этом выбором use case, в которых это появится, заодно определяется область применения таких требований. Это можно делать не только с производительностью и масштабируемостью, но и с удобством использования (test case — 5 человек без обращения к помощи выполнили задание не более чем за…)</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* Преобразование нефункциональных требований в use case spice со своими test case. При этом выбором use case, в которых это появится, заодно определяется область применения таких требований. Это можно делать не только с производительностью и масштабируемостью, но и с удобством использования (test case — 5 человек без обращения к помощи выполнили задание не более чем за…)</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* Использование use case для больших компонентных систем, преобразование больших use case в соответствии с декомпозицией на use case для отдельных систем</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* Использование use case для больших компонентных систем, преобразование больших use case в соответствии с декомпозицией на use case для отдельных систем</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* Использование use case для требований на инфраструктурные аспекты кода, такие как аудит, лог изменений или безопасность.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* Использование use case для требований на инфраструктурные аспекты кода, такие как аудит, лог изменений или безопасность.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>А еще мастер-класс был элегантной демонстрацией Essence, разработанного SEMAT. Не в виде отдельных слайдов, а как практическое использование. Понятия — use case, use case <del class="diffchange diffchange-inline">spice</del>, story — были представлены как альфы, для них описаны состояния, и уровни детализации для артефактов. Например, use case имеет состояния goal established &rarr; story structure understood &rarr; simplest story fulfilled &rarr; sugnificant story fulfilled &rarr; all stories fullfiled; а use case <del class="diffchange diffchange-inline">spice — </del>состояния scored &rarr; prepared &rarr; analyzed &rarr; implemented &rarr; verified, и для некоторых приводились checklist перехода. А уровни детализации применяемые для историй и описаний — sketch — base essential — enhansed — expanded — future expanded, с раскрытием каждого уровня и областями применения.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>А еще мастер-класс был элегантной демонстрацией Essence, разработанного SEMAT. Не в виде отдельных слайдов, а как практическое использование. Понятия — use case, use case <ins class="diffchange diffchange-inline">slice</ins>, story — были представлены как альфы, для них описаны состояния, и уровни детализации для артефактов. Например, use case имеет состояния goal established &rarr; story structure understood &rarr; simplest story fulfilled &rarr; sugnificant story fulfilled &rarr; all stories fullfiled; а use case <ins class="diffchange diffchange-inline">slice — </ins>состояния scored &rarr; prepared &rarr; analyzed &rarr; implemented &rarr; verified, и для некоторых приводились checklist перехода. А уровни детализации применяемые для историй и описаний — sketch — base essential — enhansed — expanded — future expanded, с раскрытием каждого уровня и областями применения.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>На этом я кончаю рассказ. Надо отметить, что на сайте Ивара доступна для скачивания после регистрации книга [http://www.ivarjacobson.com/Use_Case2.0_ebook/ Use-Case 2.0] с материалами мастер-класса.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>На этом я кончаю рассказ. Надо отметить, что на сайте Ивара доступна для скачивания после регистрации книга [http://www.ivarjacobson.com/Use_Case2.0_ebook/ Use-Case 2.0] с материалами мастер-класса.</div></td></tr>
</table>MaksTsepkovhttp://lib.custis.ru/index.php?title=%D0%91%D0%BB%D0%BE%D0%B3:%D0%9C%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0_%D0%A6%D0%B5%D0%BF%D0%BA%D0%BE%D0%B2%D0%B0/2013-10-23:_SECR._%D0%9C%D0%B0%D1%81%D1%82%D0%B5%D1%80-%D0%BA%D0%BB%D0%B0%D1%81%D1%81_%D0%98%D0%B2%D0%B0%D1%80%D0%B0_%D0%AF%D0%BA%D0%BE%D0%B1%D1%81%D0%BE%D0%BD%D0%B0_Use-Case_2.0&diff=42873&oldid=prevMaksTsepkov в 22:10, 23 октября 20132013-10-23T22:10:59Z<p></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='ru'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Предыдущая</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Версия 22:10, 23 октября 2013</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1" >Строка 1:</td>
<td colspan="2" class="diff-lineno">Строка 1:</td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Очень понравился [http://2013.secr.ru/lang/ru/courses/use-case-2-0-the-lightness-of-user-stories-with-the-power-of-modeling мастер-класс Use-Case 2.0], который проводили Ивар Якобсон (Ivar Jakobson) и Иэн Спенс (Ian Spence) в рамках SECR-2013. Ивар и Иэн рассказывали о развитии механизма Use Case, который он прошел за более, чем 25 лет истории (первая <del class="diffchange diffchange-inline">идея - </del>1987), и который расширил его применение в разных направлениях так, что он по-прежнему адекватен современным потребностям разработки.  </div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Очень понравился [http://2013.secr.ru/lang/ru/courses/use-case-2-0-the-lightness-of-user-stories-with-the-power-of-modeling мастер-класс Use-Case 2.0], который проводили Ивар Якобсон (Ivar Jakobson) и Иэн Спенс (Ian Spence) в рамках SECR-2013. Ивар и Иэн рассказывали о развитии механизма Use Case, который он прошел за более, чем 25 лет истории (первая <ins class="diffchange diffchange-inline">идея — </ins>1987), и который расширил его применение в разных направлениях так, что он по-прежнему адекватен современным потребностям разработки.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* Scaling Up with use cases. From small team to large progect.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* Scaling Up with use cases. From small team to large progect.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* Scaling <del class="diffchange diffchange-inline">out - </del>not only req, also analysis, design, UX and so on.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* Scaling <ins class="diffchange diffchange-inline">out — </ins>not only req, also analysis, design, UX and so on.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* Zoom <del class="diffchange diffchange-inline">in - </del>focused on essential, show big picture.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* Zoom <ins class="diffchange diffchange-inline">in — </ins>focused on essential, show big picture.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>И это была не просто лекция, в которую иногда превращаются мастер-классы от мэтров. Был интерактив и практическая работа над заданиями в группах. Да, местами было повторение известных практик, знакомых большинству присутствующих, например, оценки, а местами достаточно сложные и интересные вещи были даны пунктиром из-за недостатка времени, но мастер-класс в целом я бы оценил высоко. Было последовательно показано применение use case при работе с требованиями.  </div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>И это была не просто лекция, в которую иногда превращаются мастер-классы от мэтров. Был интерактив и практическая работа над заданиями в группах. Да, местами было повторение известных практик, знакомых большинству присутствующих, например, оценки, а местами достаточно сложные и интересные вещи были даны пунктиром из-за недостатка времени, но мастер-класс в целом я бы оценил высоко. Было последовательно показано применение use case при работе с требованиями.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Существенно новой для меня была конструкция use case spice, деление use case в процессе работы. Суть в следующем. У нас есть цельный use case со всеми альтернативными сценариями. Естественным образом мы из приоритизируем, выделяя важные и примерно относя к релизам. Для этого можно использовать технику MoSCoW: Must/Should/Could/Want. Но вот когда мы говорим, что use <del class="diffchange diffchange-inline">case - </del>must, это вовсе не означает, что таковыми являются все его сценарии. Мы делим use case на пакеты сценариев, кусочки, которые и называются spice. Они должны быть некоторым образом закончены, их должно быть можно поименовать, их реализация должна давать некоторое business value и быть относительно независимой. И далее планирование релизов и итераций идет уже в терминах spice, которые приоритизируются и реализуются по-отдельности. Естественно, с учетом зависимости, и в первый spice идет base flow, с учетом minimum viable value.  </div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Существенно новой для меня была конструкция use case spice, деление use case в процессе работы. Суть в следующем. У нас есть цельный use case со всеми альтернативными сценариями. Естественным образом мы из приоритизируем, выделяя важные и примерно относя к релизам. Для этого можно использовать технику MoSCoW: Must/Should/Could/Want. Но вот когда мы говорим, что use <ins class="diffchange diffchange-inline">case — </ins>must, это вовсе не означает, что таковыми являются все его сценарии. Мы делим use case на пакеты сценариев, кусочки, которые и называются spice. Они должны быть некоторым образом закончены, их должно быть можно поименовать, их реализация должна давать некоторое business value и быть относительно независимой. И далее планирование релизов и итераций идет уже в терминах spice, которые приоритизируются и реализуются по-отдельности. Естественно, с учетом зависимости, и в первый spice идет base flow, с учетом minimum viable value.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Но при этом use case сохраняется, он обладает целостностью более высокого порядка. А разработчики, проектируя реализацию (design), знают о других кусочках use case, которые надо будет сделать в будущем и учитывают их. Важно, что хотя декомпозиции на spice в конечном итоге подвергаются все use case, она выполняется по мере необходимости, а не изначально.  </div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Но при этом use case сохраняется, он обладает целостностью более высокого порядка. А разработчики, проектируя реализацию (design), знают о других кусочках use case, которые надо будет сделать в будущем и учитывают их. Важно, что хотя декомпозиции на spice в конечном итоге подвергаются все use case, она выполняется по мере необходимости, а не изначально.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Вообще этот принцип детализации по <del class="diffchange diffchange-inline">необходимости - </del>он применяется очень активно. И не только к декомпозиции use case, но и к различным артефактам, например, описанию use case и связанных с ним историй. И не в форме благих пожеланий к постепенной детализации, а через определение трех-четырех уровней детализации с формальными критериями, и рекомендациями, для каких целей какие из них предназначены, и на каких этапах появляются. При этом они не должны быть одинаковы по проекту, потому что use case и другие объекты имеют различную важность и сложность, и детализация должна быть им соразмерна.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Вообще этот принцип детализации по <ins class="diffchange diffchange-inline">необходимости — </ins>он применяется очень активно. И не только к декомпозиции use case, но и к различным артефактам, например, описанию use case и связанных с ним историй. И не в форме благих пожеланий к постепенной детализации, а через определение трех-четырех уровней детализации с формальными критериями, и рекомендациями, для каких целей какие из них предназначены, и на каких этапах появляются. При этом они не должны быть одинаковы по проекту, потому что use case и другие объекты имеют различную важность и сложность, и детализация должна быть им соразмерна.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>В частности, была показана матрица техник для уровней описания use case в зависимости от критичности (относительно неверной работы) и частоты использования. Ожидаемо, что для критичных use case надо гораздо детальнее определять test case. А вот описание самого кейса больше зависит частоты использования: для ежедневных эффективнее краткое описание с активной коммуникацией, а вот для редко используемых, например, связанных с концом года, нужны подробные описания. <del class="diffchange diffchange-inline">  </del></div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>В частности, была показана матрица техник для уровней описания use case в зависимости от критичности (относительно неверной работы) и частоты использования. Ожидаемо, что для критичных use case надо гораздо детальнее определять test case. А вот описание самого кейса больше зависит частоты использования: для ежедневных эффективнее краткое описание с активной коммуникацией, а вот для редко используемых, например, связанных с концом года, нужны подробные описания.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Помимо декомпозиции use case на spice были рассказаны следующие техники.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Помимо декомпозиции use case на spice были рассказаны следующие техники.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* Преобразование use case spice в test case, которыми каждый spice снабжается, и которые также могут иметь разный уровень детализации. Кстати, base flow может быть разложен на два или более spice, отличающихся именно test case: сначала делаем реализацию для единичных хороших данных, а <del class="diffchange diffchange-inline">потом - </del>наращиваем вариативность и мощность.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* Преобразование use case spice в test case, которыми каждый spice снабжается, и которые также могут иметь разный уровень детализации. Кстати, base flow может быть разложен на два или более spice, отличающихся именно test case: сначала делаем реализацию для единичных хороших данных, а <ins class="diffchange diffchange-inline">потом — </ins>наращиваем вариативность и мощность.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* Преобразование нефункциональных требований в use case spice со своими test case. При этом выбором use case, в которых это появится, заодно определяется область применения таких требований. Это можно делать не только с производительностью и масштабируемостью, но и с удобством использования (test <del class="diffchange diffchange-inline">case - </del>5 человек без обращения к помощи выполнили задание не более чем <del class="diffchange diffchange-inline">за...</del>)</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* Преобразование нефункциональных требований в use case spice со своими test case. При этом выбором use case, в которых это появится, заодно определяется область применения таких требований. Это можно делать не только с производительностью и масштабируемостью, но и с удобством использования (test <ins class="diffchange diffchange-inline">case — </ins>5 человек без обращения к помощи выполнили задание не более чем <ins class="diffchange diffchange-inline">за…</ins>)</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* Использование use case для больших компонентных систем, преобразование больших use case в соответствии с декомпозицией на use case для отдельных систем</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* Использование use case для больших компонентных систем, преобразование больших use case в соответствии с декомпозицией на use case для отдельных систем</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* Использование use case для требований на инфраструктурные аспекты кода, такие как аудит, лог изменений или безопасность.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* Использование use case для требований на инфраструктурные аспекты кода, такие как аудит, лог изменений или безопасность.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>А еще мастер-класс был элегантной демонстрацией Essence, разработанного SEMAT. Не в виде отдельных слайдов, а как практическое использование. <del class="diffchange diffchange-inline">Понятия - </del>use case, use case spice, <del class="diffchange diffchange-inline">story - </del>были представлены как альфы, для них описаны состояния, и уровни детализации для артефактов. Например, use case имеет состояния goal established &rarr; story structure understood &rarr; simplest story fulfilled &rarr; sugnificant story fulfilled &rarr; all stories fullfiled; а use case <del class="diffchange diffchange-inline">spice - </del>состояния scored &rarr; prepared &rarr; analyzed &rarr; implemented &rarr; verified, и для некоторых приводились checklist перехода. А уровни детализации применяемые для историй и <del class="diffchange diffchange-inline">описаний - sketch - </del>base <del class="diffchange diffchange-inline">essential - enhansed - expanded - </del>future expanded, с раскрытием каждого уровня и областями применения.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>А еще мастер-класс был элегантной демонстрацией Essence, разработанного SEMAT. Не в виде отдельных слайдов, а как практическое использование. <ins class="diffchange diffchange-inline">Понятия — </ins>use case, use case spice, <ins class="diffchange diffchange-inline">story — </ins>были представлены как альфы, для них описаны состояния, и уровни детализации для артефактов. Например, use case имеет состояния goal established &rarr; story structure understood &rarr; simplest story fulfilled &rarr; sugnificant story fulfilled &rarr; all stories fullfiled; а use case <ins class="diffchange diffchange-inline">spice — </ins>состояния scored &rarr; prepared &rarr; analyzed &rarr; implemented &rarr; verified, и для некоторых приводились checklist перехода. А уровни детализации применяемые для историй и <ins class="diffchange diffchange-inline">описаний — sketch — </ins>base <ins class="diffchange diffchange-inline">essential — enhansed — expanded — </ins>future expanded, с раскрытием каждого уровня и областями применения.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>На этом я кончаю рассказ. Надо отметить, что на сайте Ивара доступна для скачивания после регистрации книга [http://www.ivarjacobson.com/Use_Case2.0_ebook/ Use-Case 2.0] с материалами мастер-класса. <del class="diffchange diffchange-inline">  </del></div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>На этом я кончаю рассказ. Надо отметить, что на сайте Ивара доступна для скачивания после регистрации книга [http://www.ivarjacobson.com/Use_Case2.0_ebook/ Use-Case 2.0] с материалами мастер-класса.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>{{wl-publish: 2013-10-24 01:<del class="diffchange diffchange-inline">34</del>:<del class="diffchange diffchange-inline">04 </del>+0400 | MaksTsepkov }}</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>{{wl-publish: 2013-10-24 01:<ins class="diffchange diffchange-inline">30</ins>:<ins class="diffchange diffchange-inline">28 </ins>+0400 | MaksTsepkov }}</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> </div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">{{replicate-from-custiswiki-to-lib}}</ins>[[Категория:<ins class="diffchange diffchange-inline">SECR-2013</ins>]]</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>[[Категория:<del class="diffchange diffchange-inline">Конференции</del>]]</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div></div></td></tr>
</table>MaksTsepkovhttp://lib.custis.ru/index.php?title=%D0%91%D0%BB%D0%BE%D0%B3:%D0%9C%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0_%D0%A6%D0%B5%D0%BF%D0%BA%D0%BE%D0%B2%D0%B0/2013-10-23:_SECR._%D0%9C%D0%B0%D1%81%D1%82%D0%B5%D1%80-%D0%BA%D0%BB%D0%B0%D1%81%D1%81_%D0%98%D0%B2%D0%B0%D1%80%D0%B0_%D0%AF%D0%BA%D0%BE%D0%B1%D1%81%D0%BE%D0%BD%D0%B0_Use-Case_2.0&diff=42864&oldid=prevMaksTsepkov: Новая страница: «Очень понравился [http://2013.secr.ru/lang/ru/courses/use-case-2-0-the-lightness-of-user-stories-with-the-power-of-modeling мастер-класс…»2013-10-23T21:34:04Z<p>Новая страница: «Очень понравился [http://2013.secr.ru/lang/ru/courses/use-case-2-0-the-lightness-of-user-stories-with-the-power-of-modeling мастер-класс…»</p>
<p><b>Новая страница</b></p><div>Очень понравился [http://2013.secr.ru/lang/ru/courses/use-case-2-0-the-lightness-of-user-stories-with-the-power-of-modeling мастер-класс Use-Case 2.0], который проводили Ивар Якобсон (Ivar Jakobson) и Иэн Спенс (Ian Spence) в рамках SECR-2013. Ивар и Иэн рассказывали о развитии механизма Use Case, который он прошел за более, чем 25 лет истории (первая идея - 1987), и который расширил его применение в разных направлениях так, что он по-прежнему адекватен современным потребностям разработки. <br />
* Scaling Up with use cases. From small team to large progect.<br />
* Scaling out - not only req, also analysis, design, UX and so on.<br />
* Zoom in - focused on essential, show big picture.<br />
И это была не просто лекция, в которую иногда превращаются мастер-классы от мэтров. Был интерактив и практическая работа над заданиями в группах. Да, местами было повторение известных практик, знакомых большинству присутствующих, например, оценки, а местами достаточно сложные и интересные вещи были даны пунктиром из-за недостатка времени, но мастер-класс в целом я бы оценил высоко. Было последовательно показано применение use case при работе с требованиями. <br />
<br />
Существенно новой для меня была конструкция use case spice, деление use case в процессе работы. Суть в следующем. У нас есть цельный use case со всеми альтернативными сценариями. Естественным образом мы из приоритизируем, выделяя важные и примерно относя к релизам. Для этого можно использовать технику MoSCoW: Must/Should/Could/Want. Но вот когда мы говорим, что use case - must, это вовсе не означает, что таковыми являются все его сценарии. Мы делим use case на пакеты сценариев, кусочки, которые и называются spice. Они должны быть некоторым образом закончены, их должно быть можно поименовать, их реализация должна давать некоторое business value и быть относительно независимой. И далее планирование релизов и итераций идет уже в терминах spice, которые приоритизируются и реализуются по-отдельности. Естественно, с учетом зависимости, и в первый spice идет base flow, с учетом minimum viable value. <br />
<br />
Но при этом use case сохраняется, он обладает целостностью более высокого порядка. А разработчики, проектируя реализацию (design), знают о других кусочках use case, которые надо будет сделать в будущем и учитывают их. Важно, что хотя декомпозиции на spice в конечном итоге подвергаются все use case, она выполняется по мере необходимости, а не изначально. <br />
<br />
Вообще этот принцип детализации по необходимости - он применяется очень активно. И не только к декомпозиции use case, но и к различным артефактам, например, описанию use case и связанных с ним историй. И не в форме благих пожеланий к постепенной детализации, а через определение трех-четырех уровней детализации с формальными критериями, и рекомендациями, для каких целей какие из них предназначены, и на каких этапах появляются. При этом они не должны быть одинаковы по проекту, потому что use case и другие объекты имеют различную важность и сложность, и детализация должна быть им соразмерна.<br />
<br />
В частности, была показана матрица техник для уровней описания use case в зависимости от критичности (относительно неверной работы) и частоты использования. Ожидаемо, что для критичных use case надо гораздо детальнее определять test case. А вот описание самого кейса больше зависит частоты использования: для ежедневных эффективнее краткое описание с активной коммуникацией, а вот для редко используемых, например, связанных с концом года, нужны подробные описания. <br />
<br />
Помимо декомпозиции use case на spice были рассказаны следующие техники.<br />
* Преобразование use case spice в test case, которыми каждый spice снабжается, и которые также могут иметь разный уровень детализации. Кстати, base flow может быть разложен на два или более spice, отличающихся именно test case: сначала делаем реализацию для единичных хороших данных, а потом - наращиваем вариативность и мощность.<br />
* Преобразование нефункциональных требований в use case spice со своими test case. При этом выбором use case, в которых это появится, заодно определяется область применения таких требований. Это можно делать не только с производительностью и масштабируемостью, но и с удобством использования (test case - 5 человек без обращения к помощи выполнили задание не более чем за...)<br />
* Использование use case для больших компонентных систем, преобразование больших use case в соответствии с декомпозицией на use case для отдельных систем<br />
* Использование use case для требований на инфраструктурные аспекты кода, такие как аудит, лог изменений или безопасность.<br />
<br />
А еще мастер-класс был элегантной демонстрацией Essence, разработанного SEMAT. Не в виде отдельных слайдов, а как практическое использование. Понятия - use case, use case spice, story - были представлены как альфы, для них описаны состояния, и уровни детализации для артефактов. Например, use case имеет состояния goal established &rarr; story structure understood &rarr; simplest story fulfilled &rarr; sugnificant story fulfilled &rarr; all stories fullfiled; а use case spice - состояния scored &rarr; prepared &rarr; analyzed &rarr; implemented &rarr; verified, и для некоторых приводились checklist перехода. А уровни детализации применяемые для историй и описаний - sketch - base essential - enhansed - expanded - future expanded, с раскрытием каждого уровня и областями применения.<br />
<br />
На этом я кончаю рассказ. Надо отметить, что на сайте Ивара доступна для скачивания после регистрации книга [http://www.ivarjacobson.com/Use_Case2.0_ebook/ Use-Case 2.0] с материалами мастер-класса. <br />
<br />
{{wl-publish: 2013-10-24 01:34:04 +0400 | MaksTsepkov }}<br />
<br />
[[Категория:Конференции]]</div>MaksTsepkov