mdd:patterns

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
mdd:patterns [2016/12/25 15:52] aliakseisemchankaumdd:patterns [2026/08/29 07:59] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +====== A Pattern Language for Use Cases Specification ======
  
 +
 +Alberto Rodrigues da Silva, Dušan Savić, Siniša Vlajić, Ilija Antović, Saša Lazarević, Vojislav Stanojević, and Miloš Milić. 2015. A pattern language for use cases specification. In Proceedings of the 20th European Conference on Pattern Languages of Programs (EuroPLoP '15). ACM, New York, NY, USA, , Article 8 , 18 pages. DOI: http://dx.doi.org/10.1145/2855321.2855330 
 +
 +====== Введение ======
 + 
 +В контексте этой статьи нам будет нужно несколько специальных понятий.
 +Начнем с понятия "паттерн". Согласно Александру Кристоферу, "Паттерн описывает проблему, которая возникает 
 +снова и  снова в производстве, а также описывает решение этой проблемы, которое
 +можно применять в любом из этих случаях, не тратя времени на повторное его 
 +придумывание ". Также, согласно ему же, паттерн -- "одновременно явление окружающего мира и правило, которое дает нам представление, как его произвести, а также, когда нам следует сделать это. Это одновременно процесс и предмет; одновременно определение действующего предмета  и определение процесса, который его произведет." Схожее определение можно найти и у Коплина: "Паттерн - способ для создания предмета, но это также и [во многих отношениях] и сам предмет"
 +
 +На текущий момент повсеместно используются техники из книги "Дизайн паттернов: элементы переиспользуемого объектно-ориентированного обеспечения." Дизайн паттернов считается стандартным решением, которое может быть применено множество раз в различных задачах и ситуациях. К тому же, они дают большую гибкость в разработке.
 +
 +Анализ требований -- это часть разработки обеспечения, которая обычно включает две части: спецификация и обработка требований и менеджмент требований. Не обнаруженные вовремя шибки, допущенные при анализе требований, могут быть крайне дорогостоящими.
 +
 +Также, мы введем термин "паттерн требований" -- его можно определить, как "инструкцию для написания определенного вида требований", или "переиспользуемый фреймворке (основанный на опыте), который задает качество требования за минимальное необходимое время"
 +
 +Есть разные способы представления паттернов требований. В общем и целом, они следуют следующему шаблону: название; автор; задача, которую он решает; контекст, в котором он используется; описание последствий применения; само решение; применимость, показывающая, когда и где паттерн может быть применен; классификация; ссылки на известные применения; примеры применения; а также ссылки на схожие паттерны;
 +
 +В этой статье мы будем следовать упрощенному шаблону описания паттернов: название паттерна; контекст использования; решаемая задача; само решение; примеры применения; последствия применения; родственные поттерны; известные применения;
 +
 +====== Основная часть: ======
 +
 +Согласно исследованиям Пола, есть два класса программных интенсивных систем: 
 +
 +1)// информационные системы//, которые собирают, хранят, меняют, передают и обрабатывают информацию; и
 +
 +2) //встроенные информационные системы//, где программное обеспечение явяляется частью системы и сильно связано c аппаратным обеспечением.  
 +
 +Накатани в [38] показал, что бизнес-приложения, или информационные системы чаще всего оперируют с такими категориями, как //хранение//, //воспроизведение//, //обновление// и //удаление// информации. Согласно исследованию, этих категорий хватает для описания 53 сценариев использования из 58. 
 +
 +Таким образом, представляется логичным изобрести язык, решающий именно эти "простые" задачи, чтобы избежать многократного самоповторения для решения однотипных задач.
 +
 +Предлагаемый язык паттернов применим к спецификации пользовательских требований информационной системы и состоит из нескольких правил:
 +
 +(P1) //Define Use Case Types//
 +
 +(P2) //Keep Use Case Consistent with the Domain Model//
 +
 +(P3) //Define Use Case with Different Scenario and Interaction Block Types//
 +
 +(P4) //Define Use Case with Different Action Types// 
 +
 +
 +Желательно использовать эти паттерны совместно. В простых ситуациях допустимо ограничиться первыми двумя: (P1) Define Use Case Types и (P2) Keep Use Case Consistent with the Domain Model. В более сложных ситуациях следует придерживаться следующей диаграммы:
 +
 +
 +{{ :mdd:деаграма_патернаф.png |}}
 +
 + Приведем подробное описание некоторых из этих паттернов:
 +
 +**Define Use Case Types Pattern:**
 +
 +**Контекст**: Вы -- анализатор требований, бизнес-аналитик или даже разработчик и у вас постоянно возникает задача спецификаций требований к информационной системе. Вы хотите адаптировать технику юзкейзов для спецификации пользовательских требований. Вы видите, что спецификация разных информационных систем использует одинаковый контекст. Этот паттерн подходит, если цель этих юзкейзов -- получить доступ к информации, что очень часто случается в информационных системах. 
 +**
 +Задача**: Вы всегда находитесь в затруднении со спецификацией и организацией ваших юзкейзов. После спецификации нескольких юзкейзов вы понимаете, что они очень похожи. В это же время, вы не знаете, как правильно их сформулировать их и переиспользовать результат работы. Появляется несколько закономерных вопросов: возможно ли категоризировать эти юзкейзы? Какие наиболее общие типы? Как сделать юзкейзы переиспользуемыми? Возможно ли сделать шаблоны, в которые уложатся все юзкейзы?
 +
 +**Решение**: Сперва следует определить предопределенный набор типов юзкейзов. Большая часть этих юзкейзов может быть классифицирована или как entity-create, entity-search, entity-view, entity-update или entity-delete, или какая-то их комбинация вроде entity-manage. Мы можем определить и другие типы использования, такие как entity-browse, entity-report, entity-dashboard, entity-import, entity-export, entity-sync и другие. 
 +
 +**Пример**: на изображении показано, как каждому юзкейзу сопоставлен соотвествующий тип. 
 +
 +{{ :mdd:первый_паттерн.png |}}
 +
 +**Последствия**: Как результат, все юзкейзы приобретут четкую и ясную классификацию по типа. Это первый шаг для того, чтобы быть уверенными в консистентности юзкейза и модели и создать затем интерактивные блоки.
 +
 +**Похожие паттерны**: Object Manager и Keep Use Case Consistent with the Domain Model.
 +
 +**Известные примеры использования:** SilabMDD, языки XIS и XIS-Mobile.
 +
 +**Keep Use Case Consistent with the Domain Model Pattern**
 +
 +**Контекст**: Юзкейзы используются для идентификации и спецификации функциональных требований. С другой стороны, предметная область представляет фундамент для понимания основной проблемы и ясного понимания главных концепций изучаемой системы. Следвательно, это хорошая практика, когда мы определяем предметную область для лучшей поддержки системных требований спецификации. 
 +
 +**Задача:** Юзкейз содержит как структурные элементы, так и элементы поведения. Структура юзкейзов не отделена от поведения; они пересекаются в юзкейз-процессах,  используют пре- и пост-условия. Юзкейз-процессы определяеют поведения юзкейзов и в то же время прячут свою структуру. Проблема заключается в четком определении консистентности и учитывании всех юзкейзов,  определенных с разной степенью детальности. 
 +
 +**Решение:** Чтобы убедиться в консистентности между юзкейзами и предметной областью, каждая часть юзкейза должна быть связана с сущностями, определенными в предметной области. Каждый юзкейзд должен быть связан ровно с одной предметной сущностью, то есть, поведение строго определено через эту сущность из предметной области. Это значит, что все сущности, на которые ссылается какой-либо юзкейз должны быть связаны с ним. Вообще говоря, все, что специфицированы в юзкейзах, должно следовать этим правилам. 
 +
 +**Пример :** на изображении можно видеть юзкейзную модель, где каждый юзкейз категоризован соответствующим типом и соотнесен с соотвествующей сущностью из предметной области. 
 +
 +{{ :mdd:второй_паттерн.png |}}
 +
 +**Следствие:** как результат применения данного паттерна мы сохраняем коинсистентность между юзкейзами и привлеченной предметной областью. Также, этот паттерн приводит к тому, что получившиеся юзкейзы становятся более тщательно определенными. и могут быть быть использованы в различных контекстах. 
 +
 +====== Заключение ======
 +
 +
 +Чтобы создать спецификации к информационной системе, обладающие высоким качеством, надо постоянно проверять их на консистентность, полноту и правильность. Проверка требований, основанных на сценариях использования, написанная на обычном языке -- очень сложная задача. Написание юзкейзов может быть усовершенствовано различными техниками и паттернами, например теми, что описаны в этой статье. 
 +
 +Здесь мы предлагаем несколько взаимодополняющих паттернов, которые позволяют удерживать консистентность сценариев использования и предметной области. Первый шаг к тому, чтобы сделать юзкейзы переиспользуемыми -- это определение типов (create, view, update, delete, search) или определить абстрактные классы на мета-уровне абстракции. 
 +
 +Спецификации и язык, изложенные в этой сатье, уже поддержаны некоторыми инструментами, которые можно найти в сообществе.  
 +
 +
 +====== Ссылки ======
 +
 +
 +1] CHRISTOPHER, A., ISHIKAWA, S., SILVERSTEIN, M., JACOBSON, M., FIKSDAHL-KING, I., ANGEL, S., A Pattern
 +Language. Oxford University Press, New York, 1977.
 +
 +[2] GAMMA, E., HELM,R., JOHNSON, R., VLISSIDES,J., Design Patterns : Elements of Reusable Object Oriented Software,
 +Addison Wesley Professional, 1994.
 +
 +[3] COPLIEN, J., Software Patterns, SIGS, 1996.
 +
 +[4] BUSCHMANN F, MEUNIER R, ROHNERT H, SOMMERLAD P & STAL M., Pattern Oriented Software Architecture: A
 +System of Patterns, John Wiley & Sons, 1996.
 +
 +[5] POHL, K., Requirements Engineering - Fundamentals, Principles, and Techniques. Springer, 2010.
 +
 +[6] MAHENDRA, P., & GHAZARIAN, A., Patterns in the Requirements Engineering: A Survey and Analysis Study, 2014.
 +
 +[7] WITHALL, S. Software Requirements Patterns. Microsoft Press, 2007.
 +
 +[8] CHENG, B., ATLEE, J. Research Directions in Requirements Engineering, Future of Software Engineering (FOSE '07), pp.
 +285 – 303, 2007.
 +
 +[9] TOVAL, J.A., NICOLÁS, J., MOROS, B., GARCIA. F., Requirements Reuse for Improving Information Systems Security: A
 +Practitioner's Approach, Requirements Engineering, 6(4), pp.205-219, 2002.
 +
 +[10]WAHONO, R. S. , CHENG, J., Extensible Requirements Patterns of Web Application for Efficient Web Application
 +Development, International Symposium on Cyber Worlds (CW), 2002.
 +
 +[11]ROBERTSON, S., Requirements Patterns Via Events/Use Cases. PLoP, 1996.
 +
 +[12]DURÁN, A., BERNÁRDEZ, B., RUÍZ, A., TORO, M., A Requirements Elicitation Approach Based in Templates and
 +Patterns, 1999.
 +
 +[13]MOROS, B., VICENTE, C., TOVAL, A., Metamodeling Variability to Enable Requirements Reuse, EMMSAD, 2008.
 +
 +[14]J. YANG, L. LIU, Modeling Requirements Patterns with a Goal and PF Integrated Analysis Approach, COMPSAC, 2008.
 +
 +[15]FRANCH,X., PALOMARES,C., QUER,C., RENAULT,S., LAZZER, F., A Metamodel for Software Requirement Patterns,
 +REFSQ 2010: 85-90, 2010.
 +
 +[16]ADOLPH, S., BRAMBLE, P., COCKBURN, A., POLS, A., Patterns for Effective Use Cases. Addison Wesley, 2002.
 +
 +[17]OVERGAARD, G., PALMKVIST, K., Use Cases: Patterns and Blueprints. Addison Wesley, 2005.
 +
 +[18]LANGLANDS, M., Inside The Oval: Use-Case Content Patterns, Technical report, Planet Project, 2010. Accessed on 2015.
 +http://planetproject.wikidot.com/use-case-content-patterns
 +
 +[19]CHUNG, L., SUPAKKUL, S. 2006.“Capturing and reusing functional and non-functional requirements knowledge: A goal-
 +object pattern approach”, IEEE International Conference on Information Reuse and Integration (IRI).
 +
 +[20]ISSA, A. A. , AL-ALI, A. 2010“Use Case Patterns Driven Requirements Engineering”, International Conference on
 +Computer Research and Development (ICCRD)
 +
 +[21]CHUNG, L., PAECH,B., ZHAO,L., LIU, L., SUPAKKUL.S. 2012., RePa Requirements Pattern Template, International
 +Workshop on Requirements Patterns (RePa‘12)
 +
 +[22] STAHL, T., VOLTER, M., Model-Driven Software Development, Wiley, 2005.
 +
 +[23] SELIC, B., Personal reflections on automation, programming culture, and model-based software engineering. Automated
 +Software Engineering, 15(3-4): 379-391, 2008.
 +
 +[24] SILVA, A.R., Model-Driven Engineering: A Survey Supported by a Unified Conceptual Model, in Computer Languages,
 +Systems & Structures, Elsevier (to be published), 2015.
 +
 +[25]SILVA, A.R., VIDEIRA, C., SARAIVA, J., FERREIRA, D., SILVA, R., The ProjectIT-Studio, an integrated environment for
 +the development of information systems, In Proc. of the 2nd Int. Conference of Innovative Views of .NET Technologies
 +(IVNET’06), SBC and Microsoft, 2006.
 +
 +[26]SILVA, A. R., SARAIVA, J., FERREIRA, D., SILVA, R., VIDEIRA, C., Integration of RE and MDE Paradigms: The
 +ProjectIT Approach and Tools, IET Software, IET, 2007.
 +
 +[27]FERREIRA, D., SILVA, A.R., A Controlled Natural Language Approach for Integrating Requirements and Model-Driven
 +Engineering, ICSEA, 2009.
 +
 +[28]SILVA, A.R., SARAIVA, J., SILVA, R., MARTINS, C., XIS – UML Profile for eXtreme Modeling Interactive Systems, in
 +Proceedings of MOMPES'2007, IEEE Computer Society, 2007.
 +
 +[29]RIBEIRO, A., SILVA, A.R., XIS-Mobile: A DSL for Mobile Applications, Proceedings of the 29th Annual ACM Symposium
 +on Applied Computing (SAC), 2014.
 +
 +[30]RIBEIRO, A., SILVA, A.R., Evaluation of XIS-Mobile, a Domain Specific Language for Mobile Application Development,
 +Journal of Software Engineering and Applications, 7(11), pp. 906-919, Oct. 2014.
 +
 +[31]SAVIĆ, D., VLAJIĆ, S., LAZAREVIĆ, S., ANTOVIĆ, I., STANOJEVIĆ, V., MILIĆ, M., SILVA, A. R., SilabMDD: A Use
 +Case Model Driven Approach, ICIST 2015 5th International Conference on Information Society and Technology, 2015.
 +
 +[32]KOSTMOD4.0 http://rapporter.ffi.no/rapporter/2009/01002.pdf, accessed in January, 2013
 +
 +[33]SAVIĆ, D., SILVA, A. R., VLAJIĆ, S., LAZAREVIĆ, S., ANTOVIĆ, I., STANOJEVIĆ, V., MILIĆ, M., Use Case Specification
 +at Different Abstraction Level, Proceedings of QUATIC’2012 Conference, IEEE Computer Society, 2012.
 +
 +[34]FERREIRA, D., SILVA, A.R., RSLingo: An information extraction approach toward formal requirements specifications,
 +Proceedings of MoDRE’2012, IEEE Computer Society, 2012.
 +
 +[35]FERREIRA, D., SILVA, A.R., RSL-PL: A Linguistic Pattern Language for Documenting Software Requirements, in
 +Proceedings of RePa’13, IEEE Computer Society, 2013.
 +
 +[36]FERREIRA, D., SILVA, A.R., RSL-IL: An Interlingua for Formally Documenting Requirements, in Proceedings of MoDRE,
 +in the 21st IEEE International Requirements Engineering Conference (RE'2013), IEEE Computer Society, 2013.
 +
 +[37]JACOBSON I. ET AL. Object-Oriented Software Engineering: A Use-Case Driven Approach, Addison-Wesley1992.
 +[38]NAKATANI, T., URAI, T., OHMURA, S., TAMAI, T., A requirements description meta-model for use cases, Eighth Asia-
 +Pacific Software Engineering Conf. (APSEC’01), 2001.
 +
 +[39]VERELST, J., SILVA, A.R., MANNAERT, H., FERREIRA, D., HUYSMANS, Identifying Combinatorial Effects in
 +Requirements Engineering. In Proceedings of Third Enterprise Engineering Working Conference (EEWC 2013), Advances in
 +Enterprise Engineering, LNBIP, May 2013, Springer.
 +
 +[40]SILVA, A.R., VERELST, J., MANNAERT, H., FERREIRA, D., HUYSMANS, P., Towards a System Requirements
 +Specification Template that Minimizes Combinatorial Effects, Proceedings of QUATIC’2014 Conference, IEEE Computer
 +Society, 2014.
 +
 +[41]CARAMUJO, J., SILVA, A.R., Analyzing Privacy Policies based on a Privacy-Aware Profile: the Facebook and LinkedIn
 +case studies, Proceedings of IEEE CBI'2015, IEEE, 2015.
 +
 +[42]THE STANDISH GROUP, Chaos Summary 2009 Report, The 10 Laws of Caos, 2009.
 +
 +[43]Eveleens, L., Verhoef, C., The Rise and Fall of the Chaos Report Figures, IEEE Software, Jan/Feb, 2010.
 +
 +[44]CRUZ, A.M., A Pattern Language for Use Case Modeling, Proceedings of MODELSWARD 2014, INSTICC Press, 2014.