Введение
В программном обеспечении и системной инженерии фраза "use case" – это полисемия с двумя значениями: сценарий использования программного обеспечения; часто употребляется во множественном числе для обозначения ситуаций, в которых программное обеспечение может быть полезно. Потенциальный сценарий, в котором система получает внешний запрос (например, ввод пользователя) и реагирует на него. Данная статья посвящена второму значению. (Более подробную информацию о первом значении можно найти, например, в статье о персоне пользователя). "Use case" – это перечень действий или шагов, обычно описывающих взаимодействие между действующим лицом (известным в языке унифицированного моделирования (UML) как актор) и системой для достижения определенной цели. Действующим лицом может быть человек или другая внешняя система. В системной инженерии "use case" используются на более высоком уровне, чем в разработке программного обеспечения, часто представляя собой миссии или цели заинтересованных сторон. Детальные требования затем могут быть зафиксированы в языке моделирования систем (SysML) или оформлены в виде договорных обязательств.
In software and systems engineering, the phrase use case is a polyseme with two senses:
A usage scenario for a piece of software; often used in the plural to suggest situations where a piece of software may be useful. A potential scenario in which a system receives an external request (such as user input) and responds to it. This article discusses the latter sense. (For more on the other sense, see for example user persona). A use case is a list of actions or event steps typically defining the interactions between a role (known in the Unified Modeling Language (UML) as an actor) and a system to achieve a goal. The actor can be a human or another external system. In systems engineering, use cases are used at a higher level than within software engineering, often representing missions or stakeholder goals. The detailed requirements may then be captured in the Systems Modeling Language (SysML) or as contractual statements.
История
В 1987 году Ивар Якобсон представил первую статью о вариантах использования на конференции OOPSLA'87. Он описал, как эта техника использовалась в Ericsson для сбора и спецификации требований к системе с использованием текстовых, структурных и визуальных методов моделирования для проведения объектно-ориентированного анализа и проектирования. Первоначально он использовал термины сценарии использования и вариант использования – последний является прямым переводом его шведского термина användningsfall – но обнаружил, что ни один из этих терминов не звучал естественно на английском языке, и в конечном итоге он остановился на варианте использования. В 1992 году он стал соавтором книги «Объектно-ориентированная инженерия программного обеспечения: подход, основанный на вариантах использования», которая заложила основу метода инженерии систем OOSE и помогла популяризировать варианты использования для сбора функциональных требований, особенно в разработке программного обеспечения. В 1994 году он опубликовал книгу о вариантах использования и объектно-ориентированных методах, применяемых к бизнес-моделям и реинжинирингу бизнес-процессов. В то же время, Грейди Буч и Джеймс Рэмбо работали над объединением своих методов объектно-ориентированного анализа и проектирования, метода Буча и Метода моделирования объектов (OMT) соответственно. В 1995 году к ним присоединился Ивар Якобсон, и вместе они создали Унифицированный язык моделирования (UML), который включает моделирование вариантов использования. UML был стандартизирован Объектной управляющей группой (OMG) в 1997 году. Якобсон, Буч и Рэмбо также работали над усовершенствованием процесса разработки программного обеспечения Objectory. В результате в 1999 году был опубликован Унифицированный процесс, который продвигал подход, основанный на вариантах использования. С тех пор многие авторы внесли свой вклад в развитие техники, в частности: Ларри Константин разработал в 1995 году, в контексте проектирования, ориентированного на пользователя, так называемые «существенные варианты использования», которые направлены на описание намерений пользователя, а не последовательности действий или сценариев, которые могут ограничивать или искажать дизайн пользовательского интерфейса; Алистер Кокберн опубликовал в 2000 году практику, ориентированную на цели, в использовании вариантов использования, основанную на текстовых описаниях и табличных спецификациях; Курт Биттнер и Ян Спенс разработали в 2002 году передовые методы анализа функциональных требований с использованием вариантов использования; Дин Леффингвелл и Дон Видриг предложили применить варианты использования к управлению изменениями и коммуникационной деятельности заинтересованных сторон; Гуннар Овергаард предложил в 2004 году расширить принципы шаблонов проектирования для вариантов использования. В 2011 году Якобсон опубликовал вместе с Яном Спенсом и Куртом Биттнером электронную книгу Use Case 2.0, чтобы адаптировать технику к гибкой методологии, обогатив ее инкрементальными «срезами» вариантов использования и продвигая ее использование на протяжении всего жизненного цикла разработки после представления обновленного подхода на ежегодной конференции IIBA.
Шаблоны
Существует множество способов описания сценария использования в тексте – от краткого описания, неформального изложения, структуры до полностью детализированного и т.д. – и используются различные шаблоны. Распространенной практикой в индустрии является написание сценариев использования на основе шаблонов, разработанных различными поставщиками или экспертами, для получения качественных функциональных требований к системе.
Стиль Кокберна
Шаблон, предложенный Алистером Кокберном в его книге «Написание эффективных сценариев использования», стал одним из самых распространенных стилей оформления сценариев использования.
Неформальная
Кокберн признает, что проектам не всегда нужны детальные "полноценные" варианты использования. Он описывает упрощенный вариант использования со следующими полями: Он описывает "распространенный стиль использования" следующим образом:
Мартин Фаулер утверждал: Акторы всегда являются заинтересованными лицами, но не все заинтересованные лица – акторы, поскольку они могут "никогда не взаимодействовать напрямую с системой, даже если они имеют право интересоваться ее поведением". Заинтересованное лицо может играть как активную, так и пассивную роль: например, потребитель является одновременно "покупателем на массовом рынке" (не взаимодействующим с системой) и пользователем (актором, активно взаимодействующим с приобретенным продуктом). В свою очередь, пользователь является одновременно "обычным оператором" (актором, использующим систему по назначению) и "функциональным выгодоприобретателем" (заинтересованным лицом, получающим выгоду от использования системы).
Визуальное моделирование
Примеры использования – это не только тексты, но и диаграммы, если это необходимо. В Унифицированном языке моделирования (UML) отношения между примерами использования и акторами отображаются на диаграммах вариантов использования, изначально основанных на объектной нотации Ивара Якобсона. SysML использует ту же нотацию на уровне системных блоков. Кроме того, для визуализации примеров использования могут быть использованы и другие поведенческие диаграммы UML, такие как диаграммы деятельности, диаграммы последовательностей, диаграммы взаимодействий и диаграммы состояний. В частности, диаграмма последовательностей системы (SSD) – это диаграмма последовательностей, часто используемая для отображения взаимодействий между внешними акторами и проектируемой системой (SuD), обычно для визуализации конкретного сценария примера использования. Анализ примеров использования обычно начинается с построения диаграмм вариантов использования. Для гибкой разработки модель требований, состоящая из множества диаграмм UML, отображающих примеры использования, а также некоторых текстовых описаний, заметок или кратких описаний примеров использования, будет достаточно лёгкой и подходящей для небольших или простых проектов. В качестве хорошего дополнения к текстовым описаниям примеров использования, визуальные диаграммы также являются эффективными средствами, способствующими лучшему пониманию, коммуникации и проектированию сложных поведенческих требований системы.