 
{"id":37587,"date":"2015-06-22T12:06:00","date_gmt":"2021-02-10T11:00:12","guid":{"rendered":"https:\/\/www.globallogic.com\/latam\/insights\/blogs\/bpm-y-requerimientos-no-funcionales\/"},"modified":"2025-01-30T11:38:11","modified_gmt":"2025-01-30T11:38:11","slug":"bpm-y-requerimientos-no-funcionales","status":"publish","type":"insightsection","link":"https:\/\/www.globallogic.com\/latam\/insights\/blogs\/bpm-y-requerimientos-no-funcionales\/","title":{"rendered":"BPM y Requerimientos no Funcionales"},"content":{"rendered":"<div class=\"classic_editor_content\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">The increasing demand for service-based architectures (SOA) has led to the development of techniques to model and specify the business rules that govern system behavior. In this sense, when introducing an <\/span><\/span><a href=\"https:\/\/www.globallogic.com\/latam\/insights\/blogs\/soa-governance-la-clave-del-exito\/\" target=\"_blank\" rel=\"noopener\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">SOA<\/span><\/span><\/a><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\"> architecture , a complete and appropriate definition of business processes comes to play a fundamental role. Simply put, a business process can be seen as a well-defined sequence of activities to achieve a particular business objective.<\/span><\/span><\/p>\n<p><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">BPM ( <\/span><\/span><i><a href=\"https:\/\/www.globallogic.com\/latam\/insights\/blogs\/bpm-business-process-management\/\" target=\"_blank\" rel=\"noopener\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Business Process<\/span><\/span><\/a><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\"> Management<\/span><\/span><\/i><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\"> ) has emerged as a technique for modelling and specifying such business processes. Similarly, languages \u200b\u200band tools such as BPMN ( <\/span><\/span><i><a href=\"http:\/\/www.bpmn.org\/\" target=\"_blank\" rel=\"external nofollow\" target=\"_blank\" noreferrer\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Business Process Model and Notation<\/span><\/span><\/a><\/i><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\"> ) and BPEL ( <\/span><\/span><a href=\"http:\/\/www.oracle.com\/technetwork\/middleware\/bpel\/overview\/index.html\" target=\"_blank\" rel=\"external nofollow\" target=\"_blank\" noreferrer\"><i><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Business Process Execution Language<\/span><\/span><\/i><\/a><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\"> ) have established themselves as the most widely used tools for implementing a SOA architecture with well-defined business processes.<\/span><\/span><\/p>\n<p><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">However, a problem has been detected in the software development community related to the specification of non-functional requirements. Requirements such as availability, performance, security or modifiability, whose behaviour is key and defines the success or failure of an SOA architecture, are not correctly specified in BPM. This has the consequence that they are not appropriately added to the specification of business processes, with the consequent threat to an SOA architecture that is guided by these processes.<\/span><\/span><\/p>\n<p><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Different proposals have emerged to alleviate this problem [1,2]. The main aspects of these proposals are described below, the main objective of which is the incorporation of non-functional requirements in the description of business BPM processes in a SOA architecture.<\/span><\/span><\/p>\n<p><strong><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Adding non-functional requirements to BPM<\/span><\/span><\/strong><\/p>\n<p><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">The first proposal incorporates them using the usual BPM mechanisms through a special type of annotations, while the second defines new artifacts for modeling. Each of the proposals is described below.<\/span><\/span><\/p>\n<p><strong><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Non-functional requirements through annotations<\/span><\/span><\/strong><\/p>\n<p style=\"text-align: left;\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">The proposal presented in [1] consists of adding non-functional requirements as annotations to the activities that describe a business process. Such annotations are called \u201cQoS\u201d ( <\/span><\/span><i><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Quality of Service<\/span><\/span><\/i><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\"> ) artifacts. Through them, availability issues can be introduced (for example, an activity that needs to be available all the time), security issues (for example, an activity where data protection and confidentiality are needed), performance issues (specifying the maximum time that an activity can take). The following figure schematizes the proposal, illustrating the specification of a performance requirement.<\/span><\/span><a rel=\"external nofollow\" target=\"_blank\" href=\"http:\/\/club.globallogic.com.ar\/wp-content\/uploads\/2015\/06\/BPM-post2.jpg\"><br \/>\n<\/a><\/p>\n<p style=\"text-align: left;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-8553 size-full\" title=\"bpm tools\" src=\"https:\/\/www.globallogic.com\/latam\/wp-content\/uploads\/sites\/5\/2015\/06\/BPM-post2.jpg\" alt=\"BPM-post2\" width=\"682\" height=\"267\" srcset=\"https:\/\/www.globallogic.com\/latam\/wp-content\/uploads\/sites\/5\/2015\/06\/BPM-post2.jpg 682w, https:\/\/www.globallogic.com\/latam\/wp-content\/uploads\/sites\/5\/2015\/06\/BPM-post2-300x117.jpg 300w\" sizes=\"auto, (max-width: 682px) 100vw, 682px\" \/><\/p>\n<p><i><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Figure: Annotating non-functional requirements as annotations<\/span><\/span><\/i><\/p>\n<p><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Finally, these QoS artifacts are encoded using the WS-Policy standard [3], which allows introducing restrictions to the behavior of services in an XML format. For the example in the figure, the restriction to be introduced would be:<\/span><\/span><\/p>\n<p style=\"text-align: center;\"><strong><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">&lt;Performance max_runtime_minutes=\u00bb15&#8243;\/&gt;.<\/span><\/span><\/strong><\/p>\n<p><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Given this scenario, non-functional requirements can then be implemented in some of the available BPEL tools, such as <\/span><\/span><a rel=\"external nofollow\" target=\"_blank\" href=\"http:\/\/www.oracle.com\/technetwork\/middleware\/bpel\/overview\/index.html\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">these<\/span><\/span><\/a><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\"> , or <\/span><\/span><a rel=\"external nofollow\" target=\"_blank\" href=\"https:\/\/eclipse.org\/bpel\/\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">these others<\/span><\/span><\/a><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\"> . Then, in this simple way, non-functional requirements can be specified in BPM diagrams.<\/span><\/span><\/p>\n<p><strong><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Non-functional requirements with new constructors<\/span><\/span><\/strong><\/p>\n<p><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">The proposal in [2] attacks the problem in a different way. Instead of using annotations, it considers more complex artifacts to give more value to the non-functional requirement. The disadvantage is that a new tool must be obtained to implement and transfer the proposed knowledge for commercial use.<\/span><\/span><\/p>\n<p><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">The technique proposes to accompany the description of a BPM activity with two new terms: <\/span><\/span><b><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Operating Conditions<\/span><\/span><\/b><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\"> , and <\/span><\/span><b><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Control<\/span><\/span><\/b><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\"> . Control conditions declaratively establish the conditions necessary to develop the activity, whether they are security, performance, or any other non-functional requirement. The control part captures the business risks associated with the operating condition, and the business controls to be performed to mitigate the risk. One of the examples presented in [2] addresses the non-functional security requirement within the context of an ATM (but is easily transferable to another domain). The activity of calculating the balance of an account operates under certain <\/span><\/span><b><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">operating<\/span><\/span><\/b><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\"> and <\/span><\/span><b><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">control conditions.<\/span><\/span><\/b><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\"> Control conditions simply establish that data must be handled with confidentiality and integrity, since they are sensitive data. The control part can be detailed with the following table:<\/span><\/span><\/p>\n<div align=\"center\">\n<table border=\"1\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"589\">\n<p style=\"padding-left: 30px;\"><b><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Name<\/span><\/span><\/b><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Security Policies<\/span><\/span><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"589\">\n<p style=\"padding-left: 30px;\"><b><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Description<\/span><\/span><\/b><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Confidentiality and integrity of sensitive data must be maintained during the execution of the business process<\/span><\/span><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"589\">\n<p style=\"padding-left: 30px;\"><b><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Business restrictions<\/span><\/span><\/b><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Client requires 3DES encryption<\/span><\/span><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"589\">\n<p style=\"padding-left: 30px;\"><b><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Risks<\/span><\/span><\/b><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Transmitting data in plain text or with less security exposes the business to a position of non-compliance and liable to lawsuits<\/span><\/span><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"589\">\n<p style=\"padding-left: 30px;\"><b><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Control<\/span><\/span><\/b><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Adopt the requested security strategy. Update the current ATMs. Include it from scratch in the new ones.<\/span><\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p><strong><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Conclusions<\/span><\/span><\/strong><\/p>\n<p><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Two techniques have been presented for adding non-functional requirements to BPM. The first one does not introduce new terms, but is more limited in scope. The second approach is more powerful, but requires new tools to implement the corresponding artifacts. A reasonable approach is to use the simplest option first, and then use the second option if more expressive power is needed.<\/span><\/span><\/p>\n<p><b><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">References<\/span><\/span><\/b><\/p>\n<p><b><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">[1] <\/span><\/span><\/b><a rel=\"external nofollow\" target=\"_blank\" href=\"http:\/\/www.thinkmind.org\/index.php?view=article&amp;articleid=icsea_2011_5_20_10148\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Oliver Charles -Bernhard Hollunder ICSEA 2011: The Sixth International Conference on Software Engineering Advances <\/span><\/span><\/a><i><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">.<\/span><\/span><\/i><\/p>\n<p><b><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">[2] <\/span><\/span><\/b><a rel=\"external nofollow\" target=\"_blank\" href=\"http:\/\/crpit.com\/confpapers\/CRPITV79Pavlovski.pdf\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Christopher J. Pavlovski and Joe Zou. 2008. Non-functional requirements in business process modeling<\/span><\/span><\/a><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\"> . In <\/span><\/span><i><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Proceedings of the fifth Asia-Pacific conference on Conceptual Modeling &#8211; Volume 79<\/span><\/span><\/i><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\"> (APCCM &#8217;08), Annika Hinze and Markus Kirchberg (Eds.), Vol. 79. Australian Computer Society, Inc., Darlinghurst, Australia, Australia, 103- 112.<\/span><\/span><\/p>\n<p><b><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">[3] <\/span><\/span><\/b><a rel=\"external nofollow\" target=\"_blank\" href=\"http:\/\/www.w3.org\/TR\/ws-policy\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">W3C, Web Services Policy 1.5<\/span><\/span><\/a><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\"> (09\/2007) \u2013 Framework, Retrieved April 03, 2011.<\/span><\/span><\/p>\n<p><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Image: Alexandra Cavoulacos (Flickr under CCommons license)<\/span><\/span><\/div>\n","protected":false},"excerpt":{"rendered":"<p>La creciente demanda de arquitecturas basadas en servicios (SOA) ha generado el <\/p>\n","protected":false},"author":12,"featured_media":25647,"parent":0,"menu_order":122,"template":"","insight":[41],"insight-subcats":[],"insight-industry":[779],"insight-services":[],"insight-partners":[],"class_list":["post-37587","insightsection","type-insightsection","status-publish","has-post-thumbnail","hentry","insight-blogs","insight-industry-cross-industry"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.globallogic.com\/latam\/wp-json\/wp\/v2\/insightsection\/37587","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.globallogic.com\/latam\/wp-json\/wp\/v2\/insightsection"}],"about":[{"href":"https:\/\/www.globallogic.com\/latam\/wp-json\/wp\/v2\/types\/insightsection"}],"author":[{"embeddable":true,"href":"https:\/\/www.globallogic.com\/latam\/wp-json\/wp\/v2\/users\/12"}],"version-history":[{"count":2,"href":"https:\/\/www.globallogic.com\/latam\/wp-json\/wp\/v2\/insightsection\/37587\/revisions"}],"predecessor-version":[{"id":101018,"href":"https:\/\/www.globallogic.com\/latam\/wp-json\/wp\/v2\/insightsection\/37587\/revisions\/101018"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.globallogic.com\/latam\/wp-json\/wp\/v2\/media\/25647"}],"wp:attachment":[{"href":"https:\/\/www.globallogic.com\/latam\/wp-json\/wp\/v2\/media?parent=37587"}],"wp:term":[{"taxonomy":"insight","embeddable":true,"href":"https:\/\/www.globallogic.com\/latam\/wp-json\/wp\/v2\/insight?post=37587"},{"taxonomy":"insight-subcats","embeddable":true,"href":"https:\/\/www.globallogic.com\/latam\/wp-json\/wp\/v2\/insight-subcats?post=37587"},{"taxonomy":"insight-industry","embeddable":true,"href":"https:\/\/www.globallogic.com\/latam\/wp-json\/wp\/v2\/insight-industry?post=37587"},{"taxonomy":"insight-services","embeddable":true,"href":"https:\/\/www.globallogic.com\/latam\/wp-json\/wp\/v2\/insight-services?post=37587"},{"taxonomy":"insight-partners","embeddable":true,"href":"https:\/\/www.globallogic.com\/latam\/wp-json\/wp\/v2\/insight-partners?post=37587"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}