-
-
-
-
URL copied!
La creciente demanda de arquitecturas basadas en servicios (SOA) ha generado el desarrollo de técnicas para modelar y especificar las reglas de negocio que dirigen el comportamiento del sistema. En este sentido, al introducir una arquitectura SOA, una definición completa y apropiada de los procesos de negocio, pasa a jugar un rol fundamental. En pocas palabras, un proceso de negocio puede ser visto como una secuencia bien definida de actividades para lograr un objetivo de negocio en particular.
BPM (Business Process Management) se ha destacado como técnica para modelar y especificar dichos procesos de negocio. De manera similar, lenguajes y herramientas como BPMN (Business Process Model and Notation) y BPEL (Business Process Execution Language) se han impuesto a la hora de llevar adelante una arquitectura SOA con procesos de negocio bien definidos.
Sin embargo, desde la comunidad inmersa en el desarrollo de software se ha detectado un problema relacionado con la especificación de requerimientos no funcionales. Tales requerimientos como disponibilidad, performance, seguridad o modificabilidad, cuyo comportamiento es clave y define el éxito o fracaso de una arquitectura SOA, no son correctamente especificados en BPM. Esto tiene como consecuencia que no son agregados de manera apropiada en la especificación de los procesos de negocio, con la consecuente amenaza para una arquitectura SOA que esté guiada por dichos procesos.
Diferentes propuestas han surgido para aliviar este problema [1,2]. A continuación se describen los principales aspectos de las mismas, cuyo principal objetivo es la incorporación de requerimientos no funcionales en la descripción de procesos BPM de negocio en una arquitectura SOA.
Agregando requerimientos no funcionales a BPM
La primera de las propuestas los incorpora utilizando los mecanismos usuales de BPM a través de un tipo especial de anotaciones, mientras que la segunda define artefactos nuevos para su modelado. A continuación se describen cada una de las propuestas.
Requerimientos no funcionales a través de anotaciones
La propuesta presentada en [1] consiste en agregar los requerimientos no funcionales como anotaciones a las actividades que describen un proceso de negocio. Tales anotaciones se denominan “Artefactos QoS” (Quality of Service). A través de las mismas se pueden introducir cuestiones de disponibilidad (por ejemplo, una actividad que necesite estar disponible todo el tiempo), de seguridad (por ejemplo, una actividad donde se necesite protección y confidencialidad de datos), de performance (especificar el tiempo máximo que puede llevar una actividad). La siguiente figura esquematiza la propuesta, ilustrando la especificación de un requerimiento de performance.
Figura: Anotando requerimientos no funcionales como anotaciones
Finalmente, estos artefactos QoS son codificados utilizando el estándar WS-Policy [3], que permite introducir restricciones al comportamiento de los servicios en un formato XML. Para el ejemplo de la figura la restricción a introducir sería:
<Performance max_runtime_minutes="15"/>.
Dado este panorama los requerimientos no funcionales pueden implementarse luego en algunas de las herramientas BPEL disponibles, comoestas, oestas otras. Luego, de esta manera sencilla pueden especificarse requerimientos no funcionales a los diagramas BPM.
Requerimientos no funcionales con nuevos constructores
La propuesta en [2] ataca el problema de manera diferente. En vez de utilizar anotaciones, considera artefactos más complejos para darle más valor al requerimiento no funcional. La desventaja es que se debe conseguir una nueva herramienta que implemente y traslade los conocimientos propuestos para su utilización comercial.
La técnica propone acompañar la descripción de una actividad BPM con dos nuevos términos: Condiciones de Operación, y Control. Las condiciones de control establecen de manera declarativa las condiciones necesarias para desarrollar la actividad, ya sean de seguridad, performance, o cualquier otro requerimiento no funcional. La parte de control captura los riesgos de negocio asociados con la condición de operación, y los controles de negocio a realizar para mitigar el riesgo. Uno de los ejemplos presentados en [2] ataca el requerimiento no funcional de seguridad dentro del contexto de un cajero automático (pero es trasladable fácilmente a otro dominio). La actividad de calcular el saldo de una cuenta opera bajos ciertas condiciones de operación y control. Las condiciones de control simplemente establecen simplemente que deben manejarse datos con confidencialidad e integridad, ya que se tratan de datos sensibles. La parte de control puede detallarse con la siguiente tabla:
Nombre Políticas de seguridad |
Descripción Deben mantenerse la confidencialidad e integridad de datos sensibles durante la ejecución del proceso de negocio |
Restricciones de negocio El cliente exige la encripción 3DES |
Riesgos Transmitir los datos planos o con menor seguridad expone al negocio en un lugar de no cumplimento y plausible de sufrir demandas |
Control Adoptar la estrategia de seguridad solicitada. Actualizar los cajeros actuales. Incluirla desde cero en los nuevos |
Conclusiones
Se han presentado dos técnicas para agregar requerimientos no funcionales a BPM. La primera, no introduce nuevos términos, pero tiene un alcance más limitado. El segundo enfoque es más poderoso, pero requiere de nuevas herramientas que implementen los artefactos correspondientes. Un enfoque razonable consiste de utilizar primero la opción más simple, y en el caso de necesitar mayor poder expresivo volcarse a la segunda opción.
Referencias
[2]Christopher J. Pavlovski and Joe Zou. 2008. Non-functional requirements in business process modeling. In Proceedings of the fifth Asia-Pacific conference on Conceptual Modelling - Volume 79 (APCCM '08), Annika Hinze and Markus Kirchberg (Eds.), Vol. 79. Australian Computer Society, Inc., Darlinghurst, Australia, Australia, 103-112.
[3]W3C, Web Services Policy 1.5 (09/2007) – Framework, Retrieved April 03, 2011.
Imagen: Alexandra Cavoulacos (Flickr bajo licencia CCommons)
Top Insights
Escribiendo User Stories en Agile
AutomotiveCommunicationsConsumer and RetailFinancial ServicesHealthcareManufacturing and IndustrialMediaTechnologyWhat is TM Forum Frameworx and how to...
UncategorizedAutomotiveCommunicationsConsumer and RetailFinancial ServicesHealthcareManufacturing and IndustrialMediaTechnologyImpact Mapping en Metodologías ágiles
AutomotiveCommunicationsConsumer and RetailFinancial ServicesHealthcareManufacturing and IndustrialMediaTechnologyTop Authors
Blog Categories
Trabajemos juntos
Contenido Relacionado
5 razones por las que tu proyecto necesita un Business Analyst
Contar con un Business Analyst (BA) en tu equipo no solo te ayudará a delegar tareas más operativas, sino que también potenciará al equipo de desarrollo y contribuirá significativamente al éxito de tu proyecto de desarrollo de software.
Conocer más
7 claves para ser un miembro de un equipo efectivo
Un gran desarrollador necesita trabajar tanto en sus habilidades técnicas como en sus habilidades blandas, ya que estas forman la base para cualquier profesional que quiera ser una pieza efectiva e inspirar un cambio positivo en su equipo y organización. He recopilado una serie de recomendaciones que considero básicas y de vital importancia para trabajar … Continue reading BPM y Requerimientos no Funcionales →
Conocer más
Share this page:
-
-
-
-
URL copied!