Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Este lli:ro at:e ser Ó:!\AEl.to, a mT1s tar:cbr ai la 121.tina fe:ia sella'.h. Sl retax:i. n mis alli! de la fedla de varimiemo, lo h:lc2 ac:ree- cbr: a las rrul.ta3 g.e fija el de M o 11 t e r r e y reglatelto. O,Ml'USE,"Í:ÁDODEM.UICO Fecha de devolución r R ~ ~ ' .. ' , l 1' 1'1Ai l.. \,.• ... _. 1 h:-·t: .. , , .\:·r i Fecha de entrega ' \~, sq~ 13 MAR 2003 INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY de Monterrey CAMPl'S ClER:\AVACA Utilización del DFDD y Redes de Petri para la especificación y simulación de Sistemas de Comercio Electrónico . Israel Sánchez Ramos Sometido al Programa de Graduados en Informática y Computación en cumplimiento parcial con los requerimientos para obtener el grado de: Maestría en Administración de las Tecnologías de Información Asesor Dr. Juan Frausto Salís Cuernavaca, Morelos Enero 2003 . / Utilización del DFDD y Redes de Petri para la especificación y simulación de Sistemas de Comercio Electrónico Presentada por: ISRAEL SÁNCHEZ RAMOS Aprobada por: rausto Solís Profesor Investiga r ITESM Campus Cuemavaca í\sesor de Tesis Dr. Francisco José Ca argo Saotacruz Director de lnfonnática ITESM Campus Estado de México Revisor de Tesis rbaro Ferro Castro Profesor de Ciencias Computacionales ITESM Campus Ciudad de México Revisor de Tesis A Dios, que me ha dado más de lo que merezco. A mis Padres, quienes han hecho de mi todo lo que soy y a quienes debo todo ... A ti Maki que eres lo mejor que me ha pasado, gracias por todo lo que me has permitido vivir a tu lado ... TE AMO A Alfredo, Fernando, Héctor y Arturo a quienes considero familia, gracias por mantenerme con los pies en la tie"a y por enseñarme el verdadero significado de la palabra "amigo" ... Los quiero y extraño, espero que la vida no nos pueda separar. A mi hermana Miriam, para quien he tratado de ser un buen ejemplo y pocas veces lo logro ... A Antonio y Arturo Sánchez, que son lo más parecido a un hermano que la vida me ha dado ... A Rau/, Gise/y, Ismael, Ne/son, Melissa y Mayra, quienes me han soportado este último año y medio ... A Nancy, quien siempre me ha brindado su apoyo a pesar de la distancia ... Al Dr. Frausto quien nunca me negó su apoyo desde el momento en que lo conocí... A todos los que he conocido a lo largo de mi vida estudiantil y que me han hecho una mejor persona, que por razones de espacio no me es posible mencionarlos ... A todos Uds. GRACIAS ... g<@iltllndo el mtl/ll/ffi de eAtd ~, Je haee h ~ (',MI, h 1(U} wdamá, e«:ÍÁI,(}, • • H El comercio electrónico aprovecha la tecnología de Internet para llevar a cabo el intercambio de bienes y servicios; y con el crecimiento exponencial que ha sufrido el uso de la World Wide Web las transacciones en línea se han convertido en algo necesario para que las empresas sean competitivas en el nuevo milenio. El problema que se tiene es que por ser una tecnología de reciente creación la Ingeniería de Software existente ofrece diversas metodologías para especificar sistemas de comercio electrónico, pero ninguna totalmente adecuada. Una buena especificación de un sistema de comercio electrónico, como de cualquier otro tipo de sistema, es primordial porque de no contar con ella se pueden generar gastos innecesarios al momento de dar mantenimiento al sistema y/o durante el proceso de desarrollo, con la obvia consecuencia de pérdida de tiempo y dinero. El modelo desarrollado a lo largo de éste trabajo, nombrado como CPN-DFDD, sirve para especificar sistemas de comercio electrónico de manera que la relación costo/beneficio sea la más adecuada, pues se utiliza el Diagrama de Flujo de Datos Distribuido para modelar una vista general del sistema, mientras que con Redes de Petri de Color se modelan las partes criticas del sistema. Además de esto, aprovechando las facilidades que brindan las herramientas computacionales de las Redes de Petri, se simulan las partes del sistema modeladas con CPN, ya que si bien simular en la práctica nunca puede ser suficiente para probar la exactitud de un sistema, si es una de las mejores aproximaciones que se pueden tener. Capítulo 1: Introducción .................................•..................................... 1 1.1 Antecedentes .................................................................................................... 2 1.2 Planteamiento del problema ........................................................................... 3 1.3 Objetivos de la tesis ....................................................................................... 4 1.4 Alcances y limitaciones ................................................................................... 4 1.5 Estvuctura de la tesis ..................................................................................... 5 Capítulo 2: Sistemas de comercio electrónico ...................................... 7 2.1 El comercio electrónico .................................................................................. 8 La evolución del comercio electrónico La tienda virtual 2.2 Las empresas y el comercio electrónico ...................................................... 12 Implicaciones estratégicas del comercio electrónico El diseño de sistemas de comercio electrónico El comercio electrónico y la Ingeniería de Software 2.3 Sistemas de comercio electrónico ............................................................... 14 El comportamiento de los Sistemas de Comercio Electrónico • Implicaciones del comportamiento de los sistemas de comercio electrónico Capítulo 3: Métodos de especificación para comercio electrónico ••••• 17 3.1 El proceso de Ingeniería de Software ......................................................... 18 Análisis de requerimientos: el primer paso Modelado Modelación de paradigmas Especificación 3.2 Métodos de especificación ............................................................................ 24 [)eficiencias de los métodos informales ,Por qué usar los métodos formales? El problema con el Comercio Electrónico Concepto de ·sistema• 3.3 Diagramas de Flujo de Datos ........................................................................ 28 Creación de modelos con t>Ft>'s Análisis del método 3.4 Diagramas de Flujo de Datos Distribuido ................................................... 30 Análisis del método 3.5 Lenguaje Lotos ................................................................................................ 31 Especificación de sistemas con Lotos Proceso de diseño de sistemas con Lotos Análisis del método 3.6 Lenguaje de Modelado Unificado (UML) ..................................................... 33 Modelación de la parte dinámica del sistema Análisis del método 3.7 Redes de Petri ................................................................................................. 36 Definición Modelado de Sistemas con Redes de Petri Ventajas y beneficios de utilizar Redes de Petri Diferencia de las Redes de Petri y los demás métodos al modelar el comportamiento dinámico 3.8 Elección de un método para modelar sistemas de e-commerce ............... 40 Capítulo 4: Diagrama de Flujo de Datos Distribuido .......................... 43 4.1 Diagrama de Flujo de Datos ........................................................................... 44 Definición Elementos notacionales del DFD Niveles del DFD La ambigüedad en el DFD Normas sintácticas del DFD Convenciones para la denominación de componentes de un DFD Reglas de construcción del DFD Ventajas y desventajas del DFD 4.2 Diagrama de Flujo de Datos eXtendido ....................................................... 52 Reglas de construcción del DFDX 4.3 Diagrama de Flujo de Datos Distribuido ..................................................... 55 Lógica Temporal de Allen Ejemplos de especificaciones con DFDD Ejemplos de Aplicacióndel Algoritmo de Propagación Reglas de construcción de los DFDD Capítulo 5: Redes de Petri .................................................................... 63 5.1 Red de Petri ...................................................................................................... 64 Estructura de una red de Petri Representación gráfica Marcas de las Redes de Petri Ejecución de una Red de Petri Ejemplo del comportamiento de una Red de Petri Tipos de ejecuciones con Redes de Petri 5.2 Redes de Petri de Color ................................................................................. 72 Redes de Petri de Color y Redes Blanco y Negro El conjunto Color Partes de una CPN ~, '.~·· ~--;¡¡;¡;¡¡;;;¡¡;¡;¡¡;;;¡¡;¡;¡¡;;;¡¡;¡;¡¡;;;¡¡;¡;¡¡;;;¡¡;¡;¡¡;;;¡¡;¡;¡¡;;;¡¡;¡;¡¡;;;¡¡;¡;¡¡;;;¡¡;¡;¡¡;;;¡¡;¡;¡¡;;;¡¡;¡;¡¡;;¡¡¡¡;¡¡;;¡¡;¡;¡¡;;;¡¡;¡;¡¡;;;¡¡;¡;¡¡;;;¡¡;¡;¡¡;;;¡¡;¡;¡¡;;;¡¡;¡;¡¡;;;¡¡;¡;¡¡;;;¡¡;¡;¡¡;;;¡¡;¡;¡¡;;.l.nd_i_ce Representación gráfica de las CPN Definición Formal de las CPN Ejecución de las CPN Recomendaciones para modelar sistemas con CPN Recomendaciones para graficar Modelos de Redes de Petri Capítulo 6; Especificación del caso base con DFDD ............................ 83 6.1 Tienda virtual ................................................................................................... 84 6.2 Introducción a la especificación del caso base .......................................... 84 Alcance del sistema 6.3 Descripción del sistema ................................................................................. 86 Interfaces de hardware Interfaces de software Características del usuario Limitaciones 6.4 Requerimientos de funcionamiento del caso base ...................................... 89 Desple.gar menú Buscar/Navegar a través de los artículos El proceso ºSistema de procesamiento de pedidos• Consultar Estado de pedido Agregar Registros del Cliente Realizar compra Proceso Cobros Procesamiento del pedido 6.5 Conclusiones acerca de la especificación con DFDD ................................. 100 Capítulo 7: Especificación de las partes criticas del caso base con CPN .... 102 7.1 Introducción ..................................................................................................... 103 7.2 Vista General de la especificación con CPN ................................................ 103 7.3 El punto de partida ......................................................................................... 106 7.4 Solicitar Estado de Pedido ............................................................................ 107 7.5 Ingresar datos de compra y búsqueda de cliente ...................................... 107 7.6 Consulta de existencias en inventario .......................................................... 109 7.7 Solicitud de autorizacion de crédito al Banco ............................................ 110 7.8 I\Jegación de crédito ....................................................................................... 111 7.9 Procesamiento final del pedido ..................................................................... 112 7.10 Conclusiones acerca de la especificación con CPN ................................... 114 Capítulo 8: Design/CPN y simulación de las partes criticas del caso base .115 8.1 Introducción ..................................................................................................... 116 8.2 Design/CPN ...................................................................................................... 116 Interfaz principal de Design/CPN Tipos de objetos en Design/CPN Representación gráfica Restricciones de sintaxis 8.3 Menús de Design/CPN .................................................................................... 119 8.4 Lenguaje CPN ML ............................................................................................ 121 Declaración del conjunto color Funciones Variables Constantes Verificación de sintaxis 8.5 La herramienta de simulación de Design/CPN ............................................ 125 Relación entre el editor y el simulador Tipos de simulaciones 8.6 El proceso de simulación como ventaja competitiva en la especificación de software ............................................................................................................ 126 • Ventajas Desventajas 8.7 Consideraciones para simular las partes críticas del caso base .............. 128 8.8 Simulación del Sistema de Procesamiento de Pedidos .............................. 129 Ejemplo de simulación de un paso seleccionado arbitrariamente Capítulo 9: Conclusiones y trabajo futuro ........................................... 134 9.1 Conclusiones ...................................................................................................... 135 9.2 Trabajo Futuro ................................................................................................ 136 Bibliografia ............................................................................................ 137 Apéndice A-Tabla de Transitividad de Allen .................................... 141 Apéndice B - Multiconjuntos ............................................................... 143 Lista de Figuras ..................................................................................... 147 ' • .. ·~¡ J;¿ "La Ingeniería de Software no ofrece una metodología especialmente diseñada para sistemas de comercio electrónico ya que es una tecnología de reciente creación ... " $. _ -----------------------------------------------· __ r r_, t,_~a_d_u_cc-io_· n 1.1 ANTECEDENTES El comercio electrónico aprovecha la tecnología de Internet para llevar a cabo el intercambio de bienes y servicios; y con el crecimiento exponencial que ha sufrido el uso de la Worl~ Wide Web las transacciones en línea se han convertido en algo necesario para que las empresas sean competitivas en el nuevo milenio. El problema que se tiene es que por ser una tecnología de reciente creación la Ingeniería de Software existente ofrece diversas metodologías para especificar sistemas de comercio electrónico, pero ninguna totalmente adecuada. Una buena especificación de un sistema de comercio electrónico, como de cualquier otro tipo de sistema, es primordial porque de no contar con ella se pueden generar gastos innecesarios al momento de dar mantenimiento al sistema y/o durante el proceso de desarrollo, con la obvia consecuencia de pérdida de tiempo y dinero. Las 'Redes de Petri han destacado como una manera simple y poderosa para especificar sistemas, pues al estar enfocadas tanto a estados como a acciones, el usuario puede determinar libremente si en un momento determinado se enfoca en especial a alguno de ellos. Otra herramienta adecuada para la especificación de requerimientos es el DFDD (Diagrama de Flujo de Datos Distribuido) debido a la facilidad de uso y a la intuitividad intrínseca que presenta. Gracias a estas características fue elegido como base para realizar la fusión entre las características formales e informales, esto es, aprovechar las características de los lenguajes formales para dejar a un lado la ambigüedad, pero sin dejar de tener la sencillez de comprensión y comunicación de los lenguajes informales [Torres01]. La simulación es otra parte esencial del desarrollo de sistemas, pues con ella se pueden anticipar errores en tiempo de ejecución y probar los sistemas en un medio controlado para medir su respuesta a ciertas situaciones que se pudieran presentar; ...• -¡:, o ~~: 1. Introducción ~¡ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡. ahorrándose con esto los costos excesivos que pudieragenerar un mal sistema una vez que se ha implantado. 1.2 PLANTEÁMIENTO DEL PROBLEMA Los sistemas de comercio electrónico muestran una serie de características que requieren un modelado o representación especial, las principales son [Torres01]: ) Son sistemas altamente interactivos y sujetos a las decisiones de elección del usuario. ) Son sistemas donde la duración de los procesos se da en intervalos y no como puntos fijos de tiempo. Estos aspectos temporales pueden variar desde la certeza de las relaciones entre los procesos, hasta la · incertidumbre del orden de ocurrencia de eventos y la duración de los mismos. ) Son sistemas altamente concurrentes. Aunado a esto, los sistemas de comercio electrónico son un área de reciente creación y aún no existe suficiente investigación en éste campo, lo que provoca que no exista una metodología que se ajuste de manera adecuada a los sistemas basados en Internet. Con todo esto surge la problemática de encontrar un método eficiente para especificar sistemas de comercio electrónico, pues se necesitan especificar procesos donde se involucre el tiempo, manejar una gran cantidad de estos procesos ejecutándose concurrentemente y además de ser un método sencillo de entender. Para conseguir estas características tan especiales se requiere de la combinación de diversos métodos existentes; por un lado se tienen las Redes de Petri Coloreadas que son especialmente útiles para especificar sistemas concurrentes; mientras que por otra parte se tiene a los Diagramas de Flujo de Datos que por su sencillez de -.. • ¡¡¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡1¡¡¡¡¡¡. -I n-t-ro-d-u-cc-io¡¡¡¡¡' n comprensión y la intuitividad de su uso han sido muy utilizados para especificar sistemas computacionales, sin embargo, resulta muy tediosa su aplicación cuando se especifican sistemas complejos, como son los que conllevan concurrencia. 1.3 OBJETIVOS DE LA TESIS Los objetivos que pretende alcanzar la elaboración de esta tesis dada la problemática planteada son: 1. Desarrollar un modelo de especificación para sistemas de comercio electrónico utilizando Redes de Petri de Color y Diagramas de Flujo de Datos Distribuido. 2. Especificar con el modelo desarrollado un caso de estudio de un sistema de comercio electrónico, identificar sus partes críticas y modelarlas con Redes de Petri de Color. 1.4 ALCANCES Y LIMITACIONES 1.4.1 Alcances ) Analizar distintos métodos de especificación para comercio electrónico y mostrar sus principales ventajas y desventajas. > Mostrar las características principales de los Diagramas de Flujo de Datos Distribuido. > Mostrar las características principales de las Redes de Petri de Color. ) Mostrar las características principales del programa Design/CPN y del lenguaje CPN-ML. '• :, f ~·¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡1¡¡¡¡. -l n-t-ro-d-u-cc-,o-· n ) Simular con Redes de Petri las partes críticas identificadas del caso base y verificar si la ejecución es adecuada. ) Encontrar una manera correcta de realizar especificaciones de requerimientos formales haciendo uso de Redes de Petri de Color y Di,agramas de Flujo de Datos en sistemas de comercio electrónico. 1.4.2 Limitaciones ) No se desarrollará un asistente computacional para el modelo de especificación desarrollado, de manera que su implantación será manual. ) Se utilizará el lenguaje CPN-ML para representar y simular las partes del modelo de especificación desarrolladas con Redes de Petri. 1.5 ESTRUCTURA DE LA TESIS Los primeros cinco capítulos podrían ubicarse como el marco teórico de la tesis. En el Capítulo 2 se describen las características que hacen de los Sistemas de Comercio Electrónico tan difíciles de especificar y el por qué la mayoría de las empresas desean implementarlos. El Capítulo 3 ubica a la especificación y el modelado dentro del proceso de Ingeniería de Software, además de que se realiza un análisis de diversos métodos de especificación de sistemas mostrando las ventajas y desventajas de cada uno. Los Capítulos 4 y 5 muestran las características principales del Diagrama de Flujo de Datos Distribuido y las Redes de Petri respectivamente. En el Capítulo 6 se especifica el caso base utilizando el Diagrama de Flujo de Datos Distribuido y se identifican las partes críticas del sistema que se especificarán con Redes de Petri de Color a lo largo del Capítulo 7. ·., ,i ________ ¡;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡l _. r_n_tr_o_d u_c_c,¡¡¡¡¡¡¡·ón En el Capítulo 8 se hace una breve descripción del programa Design/CPN versión 2.0 que se utiliza para simular la ejecución de Redes de Petri, además de que se muestran los resultados de simular las partes críticas del caso base. El Capítulo 9 presenta las conclusiones que se obtuvieron y el trabajo futuro que se puede g~erar a partir de ésta tesis. El Apéndice A muestra la Tabla de Transitividad de Allen, necesaria para el análisis de consistencia temporal del DFDD. El Apéndice B lista las principales características y propiedades de los multiconjuntos, sin los cuales no es posible entender las Redes de Petri. Al final del presente trabajo se muestra la bibliografía consultada para realizar esta tesis. 6 "El comercio electrónico es un potente químico socioeconómico que reacciona con cualquier cosa que lo toca" - Raví Ka/a/cota. 8 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ... ¡¡¡¡¡¡1 ·-5-' s-t-er.-:-. '-ª-s -'J-e -C-º-m-e-rc-1 o¡¡¡¡¡¡¡¡¡¡El-e-ct-ro-' n-ic_o 2.1 EL COMERCIO ELECTRÓNICO* Internet ha resultado ser el fenómeno social y económico más importante a partir de la segunda mitad de la década de los 90's. Dentro de los mercados financieros abundan historias de éxitos fenomenales de inversiones realizadas en un solo día, nadamás porque una empresa anexó.coma su modelo comercial; se han dado casos de compañías cuyas acciones duplicaron su valor en un día cuando se anunció que se iba a crear su división de Internet [CohanOO]. Son muchos los factores que han influido para que se den dichos fenómenos, dentro de éstos destaca el hecho de que actualmente alrededor de 300 millones de personas en todo el mundo hacen uso de Internet, lo cual demuestra el enorme potencial que esta red ha alcanzado [Pérez01]. Int~rnet tiene muchos usos pero sin lugar a dudas el que más destaca es el comercio electrónico o e-commerce (definido como el intercambio de bienes y servicios a través de Internet) cuyo crecimiento ha sido exponencial, principalmente porque permite a las empresas ser más eficientes y más flexibles en sus operaciones internas, trabajar más estrechamente con sus suministradores, dar mejor respuesta a las necesidades y expectativas de sus clientes debido a que es un canal de comunicación de dos vías, pero sobre todo: se tiene acceso a un mercado global [Avalos01] [CohanOO]. Es tanto el impacto del comercio electrónico que Ravi Kalakota lo define como ·un potente químico socioeconómico que reacciona con cualquier cosa que lo toca•[Kalakota01]. El comercio electrónico incorpora •todas las transacciones de valor que involucren la transferencia de información, productos, servicios o pagos por medio de redes electrónicas• [CohanOO]. El comercio electrónico se refiere generalmentea todas las formas de transacciones relacionadas con las actividades comerciales (hacer • En el presente trabajo se utiliza ·comercio electrónico• y ·e-commerce" como sinónimos. 2 . .5,stemas de Comercio Electrónico cíli.-t: 1fYJ9· ¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ negocios electrónicamente), incluyendo organizaciones e individuos, que están basadas en el proceso y transmisión de datos digitalizados, como son texto, sonido e imagen". Esto involucra muchas actividades diversas, dentro de las que destacan: negociación electrónica de bienes y servicios, envío de componentes digitales en línea, transferencia electrónica de fondos, negociación de segmentos electrónicos, conocimientos de embarque electrónicos, acciones comerciales, diseño e ingeniería cooperativa, fuentes en línea, compras, mercadeo directo al consumidor y servicio de post-venta. 2.1.1 La evolución del comercio electrónico La forma de hacer negocios de forma virtual está cambiando a los negocios físicos y tangibles a los que el cliente y empresa estaban acostumbrados hace unos años, pues. las empresas ven a los negocios en línea como una oportunidad -para destacar, obteniendo así mayor presencia en el mercado y por lo tanto mayores ganancias económicas [Avalos01]. La perspectiva de hacer negocios de manera virtual también entusiasma a los medios de comunicación y a los políticos. Por un lado el comercio electrónico despierta tal interés en los medios de información que los reportajes sobre el tema aparecen en los noticiarios y dentro de las primeras planas todos los días. Por su parte los políticos consideran que el comercio electrónico es una manera de generar empleos y probables ingresos fiscales (esto porque el e-commerce estimula el crecimiento de la economía, al tiempo que mantiene la inflación en niveles bajos) [CohanOO]. Pero a pesar del nivel alcanzado actualmente por el comercio electrónico su impacto ha ocurrido en fases [Kalakota01]. En su primera fase (1994-1997), el e- commerce estaba a punto de despegar: asegurándose de que todos tuvieran un sitio Web, encontrando la demanda para cada compañía (grande o pequeña) y haciendo que éstas tuvieran al menos ·algo" en Internet. Las personas no estaban seguras de qué estaban haciendo, pero sabían que debían tener una presencia en línea. $¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡;¡;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡;¡;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡2¡¡¡¡¡¡.¡¡¡¡¡¡S¡¡¡¡¡¡,s¡¡¡¡¡¡t¡¡¡¡¡¡em¡¡¡¡¡¡¡¡a¡¡¡¡¡¡s -d-e -C-º-m-e-rc-,o¡¡¡¡¡¡¡¡El-e-ct-ro-· n-ic_o La segunda fase (1997-2000) del comercio electrónico fue acerca de las ªtransaccionesH (comprar y vender sobre medios digitales). El enfoque de esta fase fue en los flujos y ganancias totales, por ejemplo: el hacer coincidir a compradores y vendedores que nunca se hubieran encontrado en el pasado. Algunas veces se trató sólo de realizar transacciones que se hubieran podido hacer a través del comercio tradicional (por órdenes de compra en papel) y decir que ese negocio se hizo en Internet, aunque el significado de ese cambio haya sido casi trivial. En esta fase los anuncios eran acerca de obtener un mayor flujo a toda costa. Hoy en día el comercio electrónico está entrando en su tercera fase (2000-l?) con un enfoque en cómo Internet puede impactar la rentabilidad, y dicha rentabilidad no es acerca de incrementar las ganancias brutas sino de incrementar los márgenes totales. Algunos autores llaman a esta fase ·e-business" e incluye todas las aplicaciones y procesos que permiten a una empresa brindar una transacción comercial. Así el com~rcio electrónico se ha convertido en una estrategia total que redefine los viejos modelos de negocios (con la suma de la tecnología) para maximizar el valor del cliente y las ganancias. 2.1.2 La tienda virtual El comercio electrónico es un término genérico para describir la manera en que las organizaciones negocian electrónicamente. Usa un grupo de tecnologías para comunicarse con clientes u otras compañías, para llevar a cabo investigación o búsqueda de información o para conducir transacciones mercantiles. En todo caso el Internet es el más conocido de ellos, otros incluyen intranets, intercambio electrónico de datos y tarjetas inteligentes. Para ubicar al comercio electrónico se debe primero ubicar a los tres componentes del mercado: agentes, productos y procesos; dichos elementos pueden ser físicos o virtuales dentro de ésta modalidad de intercambio de bienes. Las ocho combinaciones posibles de agentes físicos o virtuales, productos y procesos, permiten ,,, ., ~t' 8 ;¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡2¡¡¡¡¡¡. -5-,s-t-em¡¡¡¡¡¡¡¡¡¡¡as¡¡¡¡¡¡¡¡¡¡¡d¡¡¡¡¡¡e¡¡¡¡¡¡C¡¡¡¡¡¡o¡¡¡¡¡¡m¡¡¡¡¡¡e¡¡¡¡¡¡rc-'-º-E-/e-c-tr-ó-n,;;.·co la identificación de áreas de comercio tradicional, así como áreas principales donde todos los tipos de servicios y procesos comerciales tienen el potencial de convertirse en productos digitales intercambiados en una red digital. En la Tabla 2.1 se muestran éstas posibles combinaciones. El tipo de comercio electrónico que más ha proliferado entre las empresas (y sobre el cual se enfocará el presente trabajo) es el que incluye agentes físicos que venden un producto de manera virtual o digital, lo que normalmente es conocido como ªtienda virtuales• y se clasifica como B2C (Business to consumer) [Kalakota01]. Este canal de venta ofrece virtualmente todo tipo de productos, desde libros, discos compactos, artículos de oficina, boletos de avión, etc. AGENTE ompradores, (c V int endedores, ermediarios) Físico Físico Físico Físico Digital Digital Digital Digital ' ! i i ! 1 i ' i 1 ! i i 1 1 1 1 1 1 1 ' i ! PRODUCTO PROCESO i EJEMPLO DE TIPO DE (bienes (interacción intercambiados) entre agentes) 1 COMERCIO 1 Físico 1 Físico 1 Comercio tradicional Físico 1 Digital 1 Ventas en línea para productos 1 físicos (Tiendas virtuales) Digital 1 Físico I Venta de productos digitales en stock . 1 Digital 1 Digital 1 Venta en línea y despacho de 1 productos digitales Físico 1 Físico 1 Piso de intercambio de bienes 1 ! Piso de intercambio de stock Digital Físico 1 1 ! 1 l Físico Digital 1 Oferta en línea de productos físicos 1 Principio de comercio electrónico: Digital Digital intercambio de productos digitales en una base electrónica con 1 interacciones electrónicas. Tabla 2.1 - Componentes físicos y digitales del comercio 11 ·• -'"' t - ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡2¡¡¡¡¡¡¡. -5-' s-te-m-ª-s-"'-deiiiiiiiiiiiC-om-, -er-c-,o-E-1-ec-t-ro-· n-ic-o Dentro del B2C una transacción típica de comercio electrónico abarca tres pasos generales [CohanOO]: 1. Una persona utiliza el Web para recopilar información que le ayude a decidir qué producto o servicio comprar. 2. La persona transmite por Web la información de pago (usualmente el número de su tarjeta de crédito) al vendedor. 3. El vendedor procesa la información de pago y entrega el producto o servicio al cliente. Cabe mencionar que el comercio electrónico tiene un valor agregado no siempre visible, que beneficia tanto a las empresas como a los consumidores. Por un lado las tiendas virtuales proporcionan a los clientes un vasto mundode información, la cual permite comparar precios, productos y/o servicios. Por su parte las empresas por cada transacción realizada pueden convertir la información en conocimiento, pues obtienen datos importantes como el perfil del cliente y sus preferencias de compra, lo que les puede ayudar a mejorar sus relaciones con los compradores (CRM) [AvalosOl]. Dentro de la modalidad de B2C, se encuentran los negocios puramente virtuales de las llamadas empresas .COM, es decir las compañías que nacieron en Internet y no tienen presencia física en el mundo real (por ejemplo Amazon). Además existen negocios reales que crean sitios Web como otro punto de venta. 2.2 LAS EMPRESAS Y EL COMERCIO ELECTRÓNICO Ante todas las ventajas competitivas que el comercio electrónico puede brindar a la organización, las empresas no pueden rezagarse y se han dedicado a la implantación de sistemas de e-commerce como parte integral de su estrategia; sin embargo, el que la implementación de dichos sistemas llegue a un término exitoso no es cosa fácil pues son muchos los factores involucrados. 12 2. Sistemas de Comercio Electrónico ~,.~if.i ~~ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡;¡¡¡ Contrario a lo que se pudiera pensar, el desarrollo y utilización de las aplicaciones de Internet se ha ganado la reputación de ser rápido y no atado a los sistemas y las metodologías. Desafortunadamente, como las herramientas y los requerimientos impuestos en dichos sistemas de comercio electrónico se han vuelto más complejos, el alcance del proyecto y el presupuesto se han disparado dramáticamente. Las necesidades de un sitio de comercio electrónico cruza múltiples límites departamentales (de ventas a marketing, a legal, a entregas, a manejo del producto y finanzas) y todos esos grupos necesitan ser partícipes en el proyecto de e- commerce [Ayers02]. 2.2.1 Implicaciones estratégicas del comercio electrónico Desde el punto de vista estratégico se debe tomar en cuenta que una idea de negocio como es el comercio electrónico, respaldada por el uso imaginativo de la tecnología,· solamente funcionará si se tienen las herramientas y una infraestructura para operarlas. La introducción al comercio electrónico necesita de nuevas herramientas y con toda probabilidad, alternativas para el modo de hacer negocios. La organización necesita estar segura de que puede realizar los cambios con éxito a los nuevos canales de ventas y también que su administración y capacidad de producción pueden responder a tiempo a las demandas de un canal electrónico de ventas [Avalos01]. 2.2.2 El diseño de sistemas de comercio electrónico Diseñar las aplicaciones que van a ·dar la cara" al cliente en vez de diseñar aplicaciones internas sigue siendo nuevo para la mayoría de las organizaciones. No sólo la interfaz necesita ser funcional, también se necesita que sea visualmente atractiva. El cliente virtual, ya sea 828 o 82C, sólo visitará repetidamente el sitio Web por un número limitado de razones [Ayers02]: ¡.i. El cliente virtual ahorra tiempo 13 2. Sistemas de Comercio Electrónico ~, ... ;, .;.·;· ~ <· ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ " . ,. El cliente virtual ahorra dinero ) Los productos y servicios sólo están disponibles vía Web. ) Comparación de compras. Un reporte reciente del ªUSA TodaY- menciona que el 60% de las transacciones de compra son abandonadas antes de presionar el botón de compra. Las principales razones citadas incluyen: precio incorrecto, falta de ofertas especiales, no existen preguntas de servicio al cliente y en general: incertidumbre. Duramente esto es el estándar que acarrean los errores de software (bugs) y las tecnologías que ofrecen un lento desempeño [Ayers02]. 2.2.3 El comercio electrónico y la Ingeniería de Software Aunado a todo lo anterior, los sistemas de comercio electrónico presentan un comportamjento muy especial que la Ingeniería de Software no ha podido cubrir totalmente. En la siguiente sección se muestra una descripción de dicha comportamiento. 2.3 SISTEMAS DE COMERCIO ELECTRÓNICO Los sistemas de comercio electrónico muestran una serie de características que requieren una especificación y un modelado o representación ªespecial• por ser sistemas altamente interactivos, concurrentes y sujetos a las decisiones de elección del usuario. En otras palabras, son sistemas donde la duración de los procesos se da en intervalos y no como puntos fijos de tiempo (y además, varios usuarios pueden encontrarse ejecutando el mismo proceso). Estos aspectos temporales pueden variar desde la certeza de las relaciones entre los procesos, hasta la incertidumbre del orden de ocurrencia de eventos y la duración de los mismos [TorresOl]. ,~ s· ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡2¡¡¡¡. -S-i s-t e¡¡¡¡m¡¡¡¡a¡¡¡¡s¡¡¡¡d¡¡¡¡e¡¡¡¡¡¡¡C¡¡¡¡o m-, -e r-c-1 o-E-1-ec-t-ro-· n-i e-o Aunado a todo lo mencionado anteriormente, al ser el comercio electrónico una tecnología de reciente creación la Ingeniería de Software existente no ofrece un método de especificación creado solamente para sistemas de este tipo, tan sólo se tienen diversas aproximaciones pero no destacándose una en particular, ninguna que compense la relación costo/beneficio. Este punto es crítico, pues una buena especificación de un sistema de comercio electrónico, como de cualquier otro software, es primordial porque si no se realiza de manera adecuada se pueden generar gastos innecesarios al momento de la implantación o durante el mantenimiento al sistema, dándose incluso casos extremos en los que se debe desechar todo el trabajo avanzado con la obvia consecuencia de pérdida de tiempo y dinero. 2.3.1 El comportamiento de los Sistemas de comercio electrónico [TorresOt] En sistemas de comercio electrónico a los usuarios les toma diferentes lapsos de tiempo ejecutar alguna actividad, sin que el sistema lo pueda controlar o determinar. Para un sistema de e-commerce no es posible conocer o definir cuánto tiempo durará comprando un usuario determinado y cuanto tiempo otro, cada uno tiene necesidades diferentes y en base a esa necesidad o hábitos de interactuar con el sistema será la forma en que el cliente se mueva dentro de él C-navegue•), por tal motivo, no es posible especificarla como un punto fijo de tiempo. Tampoco se puede especificar cuánto tiempo le tomará al sistema responder sobre una actividad o acción que ha ejecutado el usuario, esto porque se encuentra inmerso en una red sujeta a características físicas (como el tipo de hardware del equipo que se utiliza), características de transmisión (tráfico de red, velocidad de la red), etc. generando con ello una imprecisión en la especificación temporal de los sistemas. i .' ~¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡2 •. _s_¡s_te_m_a_s_d_e_C_o_m_,e_~_ci_o_E_/e_ct_r_ón_ic¡¡¡¡¡¡o 2.3.2 Implicaciones del comportamiento de los sistemas de comercio electrónico Ante el funcionamiento en base a eventos y reacciones del usuario de los sistemas de comercio electrónico, son pocos los métodos de especificación que permiten denotar éste comportamiento y la mayoría de ellos no resultan ser adecuados para la mayoría de las organizaciones debido al alto costo que representa el capacitara los ingenieros de software en el difícil uso de dichos métodos. En el siguiente capítulo se analizan varios métodos de especificación que soportan el diseño de sistemas de comercio electrónico, de manera que se pueda encontrar el más adecuado con respecto al costo/beneficio. 16 lil . . __ .. ~de~~ cgMJle/}'eÚJ Y5~teo "Ante el funcionamiento en base a eventos y reacciones del usuario de los sistemas de comercio electrónico, son pocos lo métodos de especificación que permiten denotar éste tipo de comportamiento ... " 8¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡3¡¡¡¡¡. -"'-' e-· to¡¡¡¡¡d¡¡¡¡¡o¡¡¡¡¡s¡¡¡¡¡d¡¡¡¡¡e¡¡¡¡¡e¡¡¡¡¡sp-e-c-1 fi-c ª-c-1 º-n-p-ª-r-a -co¡¡¡¡¡m¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡e r-º-º-e-1 e-c-tr¡¡¡¡¡ó¡¡¡¡¡m¡¡¡¡¡¡¡¡¡co 3.1 EL PROCESO DE INGENIERÍA DE SOF1WARE El papel global del software en un sistema para una empresa es identificado durante la fase del análisis, pero es necesario considerar una visión lo más profunda posible del papel de dicho software para poder comprender los requerimientos específicos que deben ser considerados en la construcción de un sistema de alta calidad. El análisis es importante porque si no se realiza de manera adecuada es posible que se cree una solución ªelegante• que resuelva incorrectamente el problema. El resultado de éste mal análisis es tiempo y dinero perdido, tal vez frustración personal y seguramente un cliente descontento y quizás perdido [Pressman02]. El análisis y la especificación de los requerimientos a simple vista parece una tarea relativamente sencilla, sin embargo en este caso las apariencias engañan. 3.1.1 Análisis de requerimientos: el primer paso El análisis de los requerimientos es una tarea de la ingeniería de software que cubre el hueco entre la definición del software a nivel sistema y el diseño del software. El análisis de requerimientos permite al ingeniero de sistemas especificar las características operacionales del software (función, datos y rendimientos), indica la interfaz del software con otros elementos del sistema y establece las restricciones que debe cumplir el software. El análisis de requerimientos del software puede dividirse en cinco áreas de esfuerzo [Pressman02]: 1. Reconocimiento del problema 2. Evaluación y síntesis 3. Modelado 4. Especificación 5. Revisión IS ~· ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡J¡¡¡¡., ._rv_,_é c_c_d_o s_· _; ,=, ___ =_s r:_· ~_e_: fi_, c_ac_,_º n_. _P_ª_r a_c._·-o_m_" e_r_c,_· o_e_l e_c_tr_o_· n_i c_o Ingeniería de sistemas de Figura 3.1 El análisis como puente entre la ingeniería y el diseño de software [Pressman021 . La evaluación del problema y la síntesis de solución son el · área principal de esfuerzo en el análisis, pero antes de que los requerimientos puedan ser analizados, modelados o especificados deben ser recogidos a través de un proceso de obtención. La técnica de obtención de requerimientos más usada es llevar a cabo una reunión o entrevista preliminar, donde el cliente debe dejar en claro lo que desea del sistema a desarrollar, y el analista debe tratar de reunir toda la información posible que pueda llegar a requerir del cliente. El gran problema de esta etapa es que los clientes y los ingenieros de software a menudo tienen una mentalidad inconsciente de ·nosotros y ellos•, así que en vez de trabajar como un equipo para identificar y refinar los requerimientos, cada uno trata de definir su •territorio• y la comunicación que se obtiene con este obstáculo no es la adecuada, resultando en un análisis inconcluso o tal vez hasta inadecuado. Esta deficiencia en la comunicación debe ser resuelta, pues de no ser así las pérdidas de tiempo y dinero pueden resultar estratosféricas, pues entre más se tarde dentro del proceso de ingeniería de software en identificar un problema o tal vez un ... ... , $¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡3¡¡¡¡. _M_é_to_d_o_s _d_e _e_sp_e_c_1 fi_c_ac_1 º-· n¡¡¡¡¡¡¡¡¡¡.oa_r_a_c_o_m_e_rc_¡ o¡¡¡¡¡¡¡¡¡¡et_e_ct_ro_· n_i e-o mal análisis, las pérdidas crecerán casi exponencialmente, como se puede notar en la Tabla 3.1. ETAPA COSTO DE REPARACIÓN Requerimientos 1-2 Diseño 5 Codificación 10 Pruebas de Módulo 20 Pruebas de Sistema 50 • Mantenimiento 100 -200 ,, Tabla 3.1 Costo de reparación de un mal análisis dentro del proceso de software Las recomendaciones que da [Pressman02] para una buena ingeniería de requerimientos son las siguientes: ) Entender el problema antes de empezar a crear el modelo de análisis ) Registrar el origen y la razón de cada requerimiento ) Usar múltiples planteamientos de requerimientos ) Dar prioridad a los requerimientos. ) Trabajar para eliminar la ambigüedad. 3.1.2 Modelado Los modelos se crean para entender mejor la entidad que se va a construir, cuando la entidad es algo físico se puede construir un modelo idéntico en forma pero a una escala más pequeña. Sin embargo, cuando la entidad que se va a construir es software, el modelo debe tener una forma diferente, y ésta es una de las áreas críticas de la ingeniería de software, pues el modelo debe de ser capaz de modelar la información que transforma el software, las funciones (y subfunciones) que permiten ' :, D, . S'¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡J¡¡¡¡¡. -'..,'-¿ t-º-d-o s¡¡¡¡¡¡¡¡dP---es¡¡¡¡¡p¡¡¡¡¡e¡¡¡¡¡e,¡¡¡¡¡· ft-cª-c-: º-n-, º-ª-r-a -e-o m-·-e-rc-1 º-e-1-ec-t-ro-· n-1 e-o que ocurran las transformaciones y el comportamiento del sistema cuando ocurren estas transformaciones. El segundo y tercer pr1nc1p1os operativos del análisis requieren de la construcción de modelos, que se pueden dividir en modelos de función y modelos de comportamiento [Pressman02]: ~ Modelos funcionales: El software transforma la información y para hacerlo debe realizar al menos tres funciones genéricas: entrada, procesamiento y salida. Cuando se crean modelos funcionales de una aplicación, el ingeniero de software se concentra en funciones específicas del problema. ~ Modelos de comportamiento: La mayoría del software responde a los acontecimientos del mundo exterior, ésta característica estímulo-respuesta forma la base del modelo del comportamiento. Los modelos creados dentro del análisis de requerimientos desempeñan papeles muy importantes, entre los que se encuentran [Pressman02]: ~ El modelo ayuda al analista a entender la información, la función y el comportamiento del sistema, haciendo por tanto más fácil y sistemática la tarea de análisis de requerimientos. ~ El modelo se convierte en el punto de mira para la revisión y por tanto la clave para determinar si se ha completado, su consistencia y la precisión de la especificación. ~ El modelo se convierte en el fundamento para el diseño, proporcionando al diseñador una representación esencial del software que pueda trasladarse al contexto de la implementación. 21 .. 1J' lf ;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡J¡¡¡¡¡. -',.,'-é-to-d-O'.:>---deiiiiiiiiiie-sp-e-c_, fi_ca_c_: o_n_; ·-ºª_r_a_c_o_rr_. e_rc_:o¡¡¡¡¡¡¡¡¡¡e,_·e-ct-ro_· n-ic-o 3.1.3 Modelación de Paradigmas [Meta93] Con el propósito de crear el modelo de un sistema se necesitan varias maneras de representar los componentes de los que consiste. Estas representaciones no necesitan tener una similitud detallada a los componentes de un sistema real, lo que se necesita es un· conjunto de abstracciones que permitan capturar la esencia de cualquier sistema que se desee modelar. Este conjunto de abstracciones es frecuentemente llamado Modelador de Paradigmas. No existe un Modelador de Paradigmas que sea el más eficiente en todoslo casos. La elección del paradigma a usar depende en la naturaleza del sistema modelado y en el objetivo del modelo. Para los sistemas como el clima por ejemplo, donde no hay un flujo de información y sólo hay una sucesión de estados, se usan los sistemas de ecuaciones diferenciales parciales. Para modelar objetos físicos, como por ejemplo los componentes de una máquina, los mejores métodos son CAD/CAM. Con frecuencia, los humanos diseñan sistemas que realizan labores complejas distribuidas en espacio y tiempo y que enwelven un flujo discreto de objetos y/o información. Los sistemas sociales donde vive la gente también son de ésta naturaleza. Sistemas como éstos pueden ser mejorados modelándolos. Cuando se quiere modelar únicamente la estructura de un sistema el modelo de paradigma de más utilidad es el estático. Cuando se quiere modelar la estructura y el comportamiento de un sistema, entonces el modelo más necesario es el dinámico. 3.1.4 Especificación Una de las principales afirmaciones que se pueden hacer dentro de la etapa de definición de requerimientos de la Ingeniería de Software es la de que el modo de especificación tiene mucho que ver con la calidad de la solución. A lo largo de los años los ingenieros de software se han visto forzados a trabajar con especificaciones incompletas, inconsistentes o engañosas provocando con esto confusión, y como ..,.., ú, ~,¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡;¡]¡¡¡¡;¡. -'"'-é-to-d-o s-· -d ,::,----=s-p-e-c.-· fr-cª-c-: º-n-p-ª-,-,-ª -c-om¡¡¡¡¡¡¡¡e¡¡¡¡;¡rc-' º-e-1-ec-t-ro-· n-i e-o resultado de esto la calidad, el alcance y la fecha de entrega son los que sufren las consecuencias [Pressman02]. La especificación, independientemente de cómo se realice, puede verse como un proceso de representación. Los requerimientos se representan de manera que como fin último lleven· al éxito de la implementación del software. En el libro de Pressman se proponen los siguientes principios de especificación [Pressman02]: 1. Separar la funcionalidad de la implementación 2. Desarrollar un modelo del comportamiento deseado de un sistema que comprenda datos y las respuestas funcionales de un sistema a varios estímulos del entorno. 3. Establecer el contexto en que opera el software especificando la manera en la que otros componentes del sistema interactúan con él. 4. Definir el entorno en que va a operar el sistema. 5. Crear un modelo intuitivo en vez de un diseño o modelo de implementación. 6. Reconocer que • ta especificación debe ser tolerante a un posible crecimiento si no es completa~ Una especificación es siempre un modelo (una abstracción) de alguna situación real o prevista que normalmente suele ser compleja. De ahí que será incompleta y existirá a muchos niveles de detalle. 7. Establecer el contenido y la estructura de una especificación de manera que acepte cambios. El software puede especificarse de varias maneras; sin embargo, para que los requerimientos se puedan mostrar en papel o en un medio electrónico, es útil seguir estas directrices [Pressman02]: ~ El formato de la representación y el contenido deben estar relacionados con el problema . ., ' __ , $, ¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡J¡¡¡¡¡. '-'Vf-é t-º-d-osiiiiiiiiiiideiiiiiiiiiii.=s-p-e-c.-· t:_cª-c-,·º-n-1--na-r-a -e-o m¡¡¡¡¡¡¡¡¡¡¡e r-c-' º-e-1-ec-t-ro-· n-ic-o >- La información contenida dentro de la especificación debe estar escalonada. >- Los diagramas y otras formas de notación deben restringirse en número y ser consistentes en su empleo. ) · Las representaciones deben permitir revisiones. Mucho se ha investigado acerca del mejor método de especificación y lo que se ha podido descubrir es que la elección está basada en las preferencias individuales de los ingenieros de software (esta familiaridad es resultado de la disposición espacial, formas fácilmente reconocibles o el grado de formalidad), siendo esto un obstáculo para la calidad, pues no siempre el método de preferencia es el más adecuado para un sistema determinado. Es así como la elección de un método de especificación debe estar fundamentada de acuerdo a lo que se requiera representar, pero también debe de tener la suficiente facilidad de aprendizaje de manera que no se obtenga un presupuesto demasiado alto. Este balance resulta bastante difícil de obtener, sobre todo al momento de especificar sistemas complejos (como es el caso del comercio electrónico, que cuenta con operaciones concurrentes). 3.2 MÉTODOS DE ESPECIFICACIÓN Los métodos de especificación pueden dividirse en dos grandes tipos: los métodos formales y los métodos informales; este espectro de formalidad va unido al grado de rigor matemático que se aplica durante los métodos de análisis y diseño. Las propiedades que se desean de una especificación formal (carencia de ambigüedad, consistencia y completitud) son los objetivos de todos los métodos de especificación (formales e informales); sin embargo, la utilización de métodos ..,, ··>.,{· o:;¡;;¡¡¡¡;;;¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡. ]. ,"fétodos de espeoficaCJón para comeroo electrónico formales da lugar a una probabilidad mucho mayor de alcanzar estos objetivos ideales. Pero a pesar de las ventajas obvias que brinda el uso de los métodos formales a la ingeniería de software su aplicación está muy discutida, pues mientras sus impulsores afirman que puede revolucionar el desarrollo del software sus detractores piensan que resultan imposiblemente difíciles. Lo cierto es que en sistemas críticos como son los de seguridad, un fallo puede pagarse muy caro (pues en estos sistemas una falla de computadora puede resultar en pérdidas humanas), por eso en estas situaciones es esencial descubrir los errores antes de poner en operación la computadora. Los métodos formales reducen drásticamente los errores de especificación y en consecuencia son la base del software de calidad. [Pressman98] define los métodos formales de la siguiente forma: Los métodos formales que se utilizan para desarrollar sistemas de computadoras son técnicas de base matemática para describir las propiedades · del sistema. Estos métodos formales proporcionan marcos de referencia en el seno de los cuales las personas pueden especificar, desarrollar y verificar los sistemas de manera sistemática, en lugar de hacerlo ad hoc. Se dice que un método es formal si posee una base matemática estable, que normalmente vendrá dada por un lenguaje formal de especificación. Esta base proporciona una forma de definir de manera precisa nociones tales como la consistencia y la completitud y, lo que resulta mucho más relevante, la especificación, la implementación y la correccion. 3.2.1 Deficiencias de los métodos informales Los métodos informales para el análisis y diseño de sistemas hacen un amplio uso del lenguaje natural y de toda una gama de notaciones gráficas. Aún cuando la aplicación cuidadosa de los métodos de análisis y diseño junto con una revisión detallada puede llevar a un software de calidad, la torpeza en la aplicación de estos métodos puede crear toda una gama de problemas. La especificación informal de un sistema puede contener las siguientes deficiencias [Pressman98]: ..., - "\ .. 4C,l' . -·, :i,.- 3. ;vfétodos de espeoficac;én para comercio electrónico 'S"'·· ... ,. .. F ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡.) Contradicciones: conjuntos de sentencias que se pueden interpretar de formas opuestas. ) Ambigüedades: sentencias que se pueden interpretar de muchas maneras ) · Vaguedades y sentencias incompletas: se dan porque alcanzar un nivel de precisión de forma consistente es una tarea casi imposible ) Niveles mezclados de abstracción: se producen cuando sentencias abstractas se mezclan aleatoriamente con sentencias que se encuentran en un nivel muy inferior. Todos estos problemas se producen de manera frecuente y cada uno de ellos representa una deficiencia potencial en los métodos convencionales o informales. 3.2.2 ¿Po,;- qué usar los métodos formales? Si se desea tener un software de calidad lo cierto es que se debe adoptar el uso de los métodos formales (a pesar de su costo), pues aunque un error del sistema no cueste vidas humanas si puede costar horas-hombre o pérdidas económicas para la empresa, pues una mala especificación de software resulta en un mal sistema y por lo tanto en dinero mal invertido. Sin embargo, adoptar un método formal no resulta fácil pues resulta caro para la empresa, pero si se ve esto como una inversión para obtener software de calidad y como una forma para eliminar las ambigüedades y de obtener un mayor rigor en las primeras fases del proceso de ingeniería de software, el gasto se justifica y seguramente resultará en un mayor retorno de la inversión, pues de no usarlos, tal vez se tenga que revisar la especificación en múltiples ocasiones, haciendo que los costos se disparen y que la fecha de entrega se retrase. Por estas razones es necesario encontrar el balance ideal: un método de especificación formal que resulte fácil de aprender (con lo que la capacitación del .... _() •t ;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡3¡¡¡¡¡¡. '-'"'-é e-· º-d-o s¡¡¡¡¡¡¡¡¡¡.Je¡¡¡¡¡¡¡¡¡¡es-p-e-c.-f:-ca-c-1 º-· n-, P-ª-r-a -c-om-, -er-c-1 º-e-1-ec-t-ra-· n-ic-o <;Jf! personal resultará barata), pero que a la vez tenga el poder necesario para especificar el sistema de manera correcta. 3.2.3 El problema con el Comercio Electrónico , Los sistemas de comercio electrónico son sistemas altamente concurrentes, es decir, se ejecutan una serie de procesos al mismo tiempo (y frecuentemente con un grado elevado de comunicación entre estos procesos). El principal problema de las especificaciones formales e informales es que algunas de ellas no tienen las funciones para especificar este tipo de sistemas, y a pesar de que se han realizado muchos esfuerzos para modificar algunas notaciones para acompañar la concurrencia, no se ha logrado mucho éxito ya que no se diseñaron realmente con esta idea. Sin embargo algunos métodos de especificación si se diseñaron especialmente para trata_r los sistemas concurrentes, pero algunos son bastante difíciles de comprender y en consecuencia implican costos elevados para la empresa, por lo que debe obtenerse un balance una vez más. Para encontrar éste punto de equilibrio en las siguientes secciones del presente capítulo se analizarán diferentes métodos de especificación, indicando sus ventajas y desventajas de cada uno, pero antes, para poder entender los métodos de especificación de manera correcta, primero es necesario entender el concepto de sistema. 3.2.4 Concepto de "Sistema" La idea fundamental en un sistema es que se compone de módulos que interactúan entre sí, los cuales pueden ser considerados por sí mismos un sistema y se podría estudiar su comportamiento por separado y de esta manera aislarlos, pero siempre teniendo en cuenta la interacción que guardan con los otros módulos. Ahora que si se desea conocer en qué condiciones se encuentran los módulos, es como si se detuviera al sistema en el tiempo, las condiciones internas de los módulos determinarían el estado en el que se encuentran, para esto se entiende que un sistema ..,.., - I 3. 1'-'~to1_ic:; Je ~s¡:;eoficaoón para comerco electrónico es un arreglo dinámico que en el transcurso del tiempo tiene variaciones y no permanece estático. El estado de un módulo con frecuencia depende de su historia, es decir de las acciones dadas en un tiempo anterior. Aquí saltan a la vista dos conceptos importantes: acciones y estados; las acciones conducen a un estado determinado del módulo en el tiempo, las acciones de un módulo en un sistema pueden ocurrir simultáneamente con las acciones de otros módulos, dado que ellos interactúan entre sí, es necesario sincronizar los eventos. Esto puede resultar en que las condiciones de un módulo en el tiempo necesitan como entradas las salidas de otro, el cual necesita más tiempo para generar las salidas, es entonces cuando se piensa en paralelismo y concurrencia. Existen dos conceptos más que deben ser tomados en cuenta al momento de analizar los sistemas: eventos y condiciones; los eventos son las acciones que se dan en el sistema y llevan a un estado, se puede describir un estado como un conjunto de condiciones (a menudo es útil representar dichas condiciones por medio de predicados). Para que cierto evento ocurra es necesario que ciertas condiciones se cumplan, estas son llamadas pre-condiciones del evento, la ocurrencia del evento puede llevar a otras condiciones y es entonces cuando se dan las post-condiciones. 3.3 DIAGRAMAS DE FLUJO DE DATOS Los diagramas de flujo de datos (DFD) son una herramienta de especificación que permite representar el sistema como una red de procesos funcionales conectados unos con otros. El DFD es una de las herramientas de modelado más utilizada, particularmente para sistemas en los cuales las funciones son de principal importancia y más complejas que los datos que manipula el sistema. $¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡;3¡¡¡¡¡¡. -~-' é-t º-d-o-s -d-e -·-=-SP¡¡¡¡¡¡e¡¡¡¡¡¡o¡¡¡¡¡¡fi¡¡¡¡¡¡ca¡¡¡¡¡¡c¡¡¡¡¡¡, º-· n-p-a-ra¡¡¡¡¡¡¡¡¡¡;co¡¡¡¡¡¡m¡¡¡¡¡¡e¡¡¡¡¡¡r¡¡¡¡¡¡o¡¡¡¡¡¡o -e-1 e-c-tr-ón-i-co Esta es una herramienta gráfica que describe el flujo de los datos a través del sistema. El diagrama muestra la transformación de datos de entrada en datos de salida por medio de los procesos. En general, los Diagramas de Flujo de datos muestran: ) De dónde vienen y hacia dónde van los datos cuando salen del sistema (Entidades Externas) ) Cuáles son los datos que llegan y salen (Flujo de Datos) ) Dónde se almacenan los datos (Depósito de Datos) ) Qué procesos transforman los datos ) Las interacciones entre depósitos de datos y procesos. 3.3.1 Creación de modelos con DFD's ) Todos los componentes del gráfico participan en la actividad que se está modelando, por lo tanto, en el DFD, cada uno de sus componentes debe estar conectado por lo menos con otro componente. ) Cada proceso produce la información que el sistema necesita, por lo tanto, en el DFD, cada proceso debe usar, al menos, un flujo de datos de entrada y producir, al menos, un flujo de salida. ) El modelo del proceso identifica la fuente de todos los datos utiliz.ados en el sistema, por lo tanto, cada elemento de datos en un flujo de salida debe corresponder o derivarse de un elemento de datos de uno de los flujos de entrada del proceso. ) Cada flujo de datos soporta, al menos, una actividad del sistema, por lo tanto, en el DFD, cada flujo de datos, desde o hacia un almacenamiento de datos o una entidad externa, debe conectarse a un proceso. J. r·,rercdos t}e 2speoficaoón para comeroo electrómco •.. : ..... ·/; ~~-.;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 3.3.2 Análisis del método El Diagrama deFlujo de Datos es un método que ha estado presente en la ingeniería de software desde sus inicios, y si ha permanecido vigente es gracias a su facilidad de uso y a su manejo casi intuitivo. Sin embargo, esto tiene su costo, pues al ser un método d,e especificación informal está sujeto a ambigüedades (ver sección 4.1) que pueden resultar en una mala especificación de software; aunado a esto, no permiten ver el comportamiento dinámico del sistema. 3.4 DIAGRAMA DE FLUJO DE DATOS DISTRIBUIDO La facilidad que brindan los diagramas de flujo de datos no puede pasar desapercibida, así que con la finalidad de dar una base formal al DFD se crea el Diagrama de Flujo de Datos Distribuido (DFDD ), el cual permite eliminar las ambigüedades que se tienen con el DFD. El Diagrama de Flujo de Datos Distribuido es un método formal ligero que permite la especificación de sistemas concurrentes, presentando el mismo aspecto que un método informal, por lo que no pierde las ventajas de aceptabilidad y bajo costo de utilización. A grandes rasgos, éste método lo que hace es proporcionar a cada proceso del DFD con una relación temporal que permite ubicar su ejecución en el tiempo con respecto de los demás procesos (relaciones como befare, after, meets, etc.); dichas relaciones son tomadas de la lógica temporal de Allen {[Allen83]). Además a cada arco del DFDD se le asocia un símbolo que permite representar si el dato es necesario o deseable para la ejecución de un proceso; por último, si un proceso tiene como entradas varios arcos éstos se pueden agrupar en conjuntos de AND y OR. ~·--iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii.J-. -M-ét_o_d_osiiiiiiiiiiiiiiidP ___ es_p_e_o_'fi-ca_c_io-·n_p_a_r_a_c_om¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡er_c_,o_e_1_ec_t_ro_'n_ic_o 3.4.1 Análisis del método Este método es ideal para especificaciones de sistemas concurrentes, por lo cual lo hace ideal para modelar sistemas de Comercio electrónico. La lógica temporal de Allen es relativamente fácil de aprender y de aplicar en comparación con otros métodos; sin em.bargo, éste método cuenta con la gran desventaja de que no es posible observar el comportamiento dinámico del sistema. 3.5 LENGUAJE LOTOS LOTOS es un lenguaje de especificación formal desarrollado por ISO. En LOTOS un sistema se especifica mediante el ordenamiento temporal de las acciones que constituyen su comportamiento observable externamente. LOTOS tiene dos componentes fundamentales: },>, Comportamiento e interacciones entre procesos (incluye elementos que fueron introducidos en otras álgebras de procesos). },>, Descripción de estructuras de datos y expresiones de valor ( esta parte de LOTOS está basada en la teoría formal de tipos abstractos de datos). 3.5.1 Especificación de sistemas con LOTOS El punto de partida de LOTOS es que un sistema puede especificarse mediante la definición de una relación temporal entre las interacciones que constituyen el comportamiento observable del mismo. LOTOS especifica un sistema mediante la composición de un conjunto de procesos capaces de realizar acciones internas o de interactuar con otros procesos que forman su entorno. Los procesos se comunican entre sí a través de puertas que comunican a dichos procesos con otros procesos. Un proceso puede comunicarse, a :, . J 1"1étodos ,je -:SD-=C1ficac:cn pan comerc:s c=f.-:ct.--.-jn,co través de una puerta, con uno o más procesos simultáneamente, de forma que la comunicación es, en general, n-aria. De esta forma, LOTOS sirve muy bien para la especificación de sistemas distribuidos o sistemas concurrentes, para lo que aporta además toda su capacidad formal a la hora de probar, mediante el paso automatizado de pruebas, que el sistema es correcto. 3.5.2 Proceso de diseño de sistemas con LOTOS LOTOS facilita el proceso de diseño mediante refinamientos sucesivos. Es decir, el sistema se construye de forma incremental como una secuencia de pasos dirigida a obtener un producto final que satisfaga los requerimientos expresados inicialmente por el usuario o cliente. Un refinamiento supone una decisión de diseño, la selección de una de las posibles soluciones que satisfacen los requerimientos del usuario. En este proceso de diseño, es importante disponer de un mecanismo que permita asegurar que los efectos de una transformación sobre la especificación original son únicamente los deseados. A este respecto, en el dominio operacional de LOTOS es posible relacionar especificaciones mediante distintos tipos de equivalencias o preórdenes. El tipo de equivalencia o preorden elegido dependerá del tipo de transformación que se aplique. Otra posibilidad es demostrar la corrección de la transformación asegurando que el programa transformado satisface ciertas propiedades. La lógica temporal proporciona un buen formalismo para la especificación de las propiedades de un sistema, lo que la hace adecuada para este propósito. Con lógica temporal un sistema queda completamente especificado al conocer el conjunto de propiedades (fórmulas de dicha lógica) que satisface. ' .., ·'- ::,, 3. Métodos de especificación para comemo electrónico 3.5.3 Análisis del método Al ser un método formal algebraico el lenguaje Lotos es extremadamente difícil de usar y requiere de sólidos conocimientos matemáticos y de lógica, por lo que la capacitación en el uso de dicho lenguaje resultará además de tediosa, costosa para la empresa. Comb ventaja innegable tiene que es un método que una vez que se domina, no da lugar a ambigüedades y sirve muy bien para la especificación de sistemas distribuidos o sistemas concurrentes, permitiendo probar la ªcorrectividad• del sistema mediante pruebas automáticas. 3.6 LENGUAJE DE MODELADO UNIFICADO (UML) El • Unified Modelling Languagé' o más conocido como UML es un lenguaje de modelado 'visual utilizado para especificar, visualizar, construir y documentar artefactos de un sistema de software. Captura decisiones y conocimiento sobre los sistemas que se deben construir; ayuda a entender, diseñar, hojear, configurar, mantener y desarrollar la información sobre tales sistemas. Está pensado para su empleo con todos los métodos de desarrollo, etapas del ciclo de vida, dominios de la aplicación y medios. UML incluye conceptos semánticos, notación y pr1nc1p1os generales. Tiene partes estáticas, dinámicas, de entorno y organizativas. La especificación de UML no define un proceso estándar pero está pensado para ser útil en un proceso de desarrollo iterativo. UML capta la información sobre la estructura estática y el comportamiento dinámico de un sistema. Un sistema se modela como una colección de objetos discretos que interactúan para realizar un trabajo que finalmente beneficia a un usuario externo. La estructura estática define los tipos de objetos importantes para un sistema y para su implementación, así como las relaciones entre los objetos. El ~ ' ·'-' s¡¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡;;;¡¡¡¡¡¡¡¡¡¡;;;¡¡¡¡¡¡¡¡¡¡;;;¡¡¡¡¡¡¡¡¡¡;;;¡¡¡¡¡¡¡¡¡¡;;;¡¡¡¡¡¡¡¡¡¡;;;¡¡¡¡¡¡¡¡¡¡;;;¡¡¡¡¡¡¡¡¡¡;;;¡¡¡¡¡¡¡¡¡¡;;;¡¡¡¡¡¡¡¡]¡¡¡¡¡¡. iiiiii,..,,iiiiiieiiiiiir.:;¡¡¡¡¡¡d¡¡¡¡¡¡c¡¡¡¡¡¡s iiiiiidiiiiiieiiiiiieiiiiiispiiiiiieiiiiiiciiiiii;fiiiiiiiciiiiiiaciiiiiiioiiiiii' n-·-ºª-riiiiiiaiiiiiiciiiiiioiiiiiimiiiiiieiiiiiirc¡¡¡¡¡¡,o¡¡¡¡¡¡¡¡;;;¡¡e/iiiiiieiiiiiictiiiiiiroiiiiii· niiiiiiic_o comportamiento dinámico define la historia de los objetos en el tiempo y la comunicación entre objetos para cumplir sus objetivos. El modelar un sistema desde varios puntos de vista, separados pero relacionados, permite entenderlo para diferentes propósitos. 3.6.1 Modelación de la parte dinámica del sistema Para modelar el comportamiento dinámico del sistema con UML se utilizan 3 componentes: la vista de actividades, la vista de la máquina de estados y la vista de interacciones. La vistade la máquina de estados describe el comportamiento dinámico de los objetos, en un cierto plazo, modelando los ciclos de vida de los objetos de cada clase. Cada objeto se trata como una entidad aislada que se comunica con el resto del mundo detectando eventos y respondiendo a ellos. Los eventos representan las clases de cambios que un objeto puede detectar: la recepción de llamadas o señales explícitas desde un objeto a otro, un cambio en ciertos valores, o el paso del tiempo. Cualquier cosa que pueda afectar a un objeto se puede caracterizar como evento, los sucesos del mundo real se modelan como señales del mundo exterior al sistema [UMLOO]. Un grafo de actividades es una forma especial de máquina de estados, prevista para modelar cómputos y flujo de trabajos. Los estados del grafo de actividades representan los estados de ejecución del cómputo, no los estados de un objeto ordinario. Normalmente, un grafo de actividades asume que los cómputos proceden sin interrupciones externas por evento. Un grafo de actividades contiene estados de actividad. Un estado de actividad representa la ejecución de una sentencia en un procedimiento, o el funcionamiento de una actividad en un flujo de trabajo. En lugar de esperar un evento, como en un estado de espera normal, un estado de actividad espera la terminación de su cómputo. Cuando la actividad termina, entonces la ejecución procede al siguiente estado de actividad dentro del grafo. Una transición de terminación es activada en un diagrama de actividades cuando se completa la actividad 3. Métodos de espeC/ficaoón para comercio electrónico •. ('. ~!;/# ,¡;;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡. precedente. Los estados de actividad no tienen generalmente transiciones con eventos explícitos, pero pueden ser abortados en estados que los incluyen. Un grafo de actividades puede también contener estados de acción, que son similares a los estados de actividad, excepto en que son atómicos y no permiten transiciones mientras están activos [UMLOO]. Los objetos obran recíprocamente para implementar comportamiento, ésta interacción se puede describir de dos maneras complementarias, una de ellas se centra en los objetos individuales (diagrama de secuencia) y la otra en una colección de objetos cooperantes (diagrama de colaboración) [UMLOO]. Una máquina de estados es una vista estrecha y profunda del comportamiento, una vista de reduccionista que mira a cada objeto individualmente. Una especificación de la máquina de estados es exacta y conduce inmediatamente al código. Sin embargo, puede ser difícil entender el funcionamiento total de un sistema, debido a que una . máquina de estados se centra en un solo objeto a la vez, y se deben combinar los efectos de muchas máquinas de estados para determinar el comportamiento de todo el sistema. La vista de interacción proporciona una visión más integral del comportamiento de un sistema de objetos. Esta vista es modelada por colaboraciones [UMLOO]. 3.6.2 Análisis del método UML se ha convertido rápidamente en una notación estándar para el modelado de sistemas, esto porque abarca todos los aspectos de implementación, es orientado a objetos, es relativamente fácil de aprender y sobre todo: toma en cuenta a los casos de uso del negocio. En cuanto a la dinámica del sistema, UML soporta su especificación pero no hay manera de comprobarla pues el método no cuenta con simulación. 3. Métodos de especificaCión para comerC10 electrónico ~s· .. -··{ p _, .;¡¡¡¡¡¡¡¡;¡.;¡¡¡¡¡¡¡¡;¡.;¡¡¡¡¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡. t ;, 3.7 REDES DE PETRI Las redes de Petri representan una alternativa para modelar sistemas, sus características hacen que para algunos problemas las redes de Petri funcionen de una manera natural. Las PN como usualmente se conocen a las redes de Petri (Petri Net) fueron inventadas por el alemán Karl Adam Petri en 1962 y presentadas en su tesis doctoral •Kommunikation mit automaten" (Comunicación con autómatas), donde establece los fundamentos para el desarrollo teórico de los conceptos básicos de las PN. Las PN son consideradas como una herramienta para el estudio de los sistemas, con su ayuda se puede modelar el comportamiento y la estructura de un sistema y llevar el modelo a condiciones límite, que en un sistema real son difíciles de lograr o muy costosas. Comparadas con otros modelos de comportamiento dinámico gráficos, como los diagramas de las máquinas de estados finitos, las PN ofrecen una forma de expresar procesos que requieren sincronía. Y quizás lo más importante es que las PN pueden ser analizadas de manera formal y obtener información del comportamiento dinámico del sistema modelado. Una de las principales razones del éxito de las Redes de Petri es el hecho de que simultáneamente se trabaja con tres elementos: teoría, herramientas y uso práctico. Esto se puede apreciar en la Figura 3.2. 3.7.1 Definición RED DE PETRI: Una técnica formal, gráfica y ejecutable para la especificación y análisis de sistemas concurrentes y dinámicos de eventos discretos, que en épocas recientes se ha establecido como un estándar. FORMAL: La técnica está matemáticamente bien definida. Muchas propiedades estáticas y dinámicas de una Red de Petri (y por lo * ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡.J¡¡¡¡.., ·-rv-,e-· t-º-d-o s¡¡¡¡¡¡¡¡¡¡¡1P---e-sp-e-c-1 fi-' c-ac-1-0 niiiiiiiiiiip-ª,-,-ª-c-º-m-e-r-c.-10-e-l e-c-tr-º-· n-i'-º tanto de un sistema especificado utilizando ésta técnica) pueden ser matemáticamente demostradas. HERRAMIENTAS • Edición • Simulación • Verificación TEORIA • Modelos • Conceptos básicos • Métodos de verificación USO PRÁCTICO • Especificación • Investigación • Verificación • Implementación Figura 3.2 Elementos que contribuyen al éxito de las redes de Petri GRAFICA: La técnica pertenece a un área de clasificación de las matemáticas llamada •Teoría de Grafos", lo que hace que una red de Petri pueda ser representada tanto gráfica como matemáticamente. La habilidad de visualizar estructuras y comportamientos de una red de Petri promueve el entendimiento del sistema modelado. Las herramientas de software existentes soportan la construcción gráfica y la visualización. EJECUTABLE: Una red de Petri puede ser ejecutada y el comportamiento dinámico será observado gráficamente. Las herramientas de software que existen permiten una ejecución automática. ,- ·' ... '-', (f. ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡..¡¡¡¡;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡J_. rv_r_é t_o_d_o s¡¡¡¡¡¡¡d e¡¡¡¡¡¡¡es_p_e_o_r;_c a_c_, º-· n_p_a_r_a _c_o m __ e_rc_, o_e_i_e c_t_ra_· n_i e-o ESPECIFICACION: Los requerimientos del sistema expresados y verificados (por análisis formal) usando la técnica constituyen un sistema formal de especificación. ANALISIS: La especificación del sistema es a menudo un proceso iterativo con requerimientos que inicialmente son pobremente sobreentendidos o mal definidos. Una especificación en la forma de un modelo de red de Petri puede ser formalmente analizado contra los requerimientos estáticos y dinámicos del sistema. La retroalimentación visual del gráfico de la red de Petri en cada iteración de la especificación incrementa el entendimiento de los requerimientos, resalta los errores en el modelo (o algunas veces los requerimientos) y resulta en una rápida convergencia en una especificación matemáticamente correcta y consistente. Las herramientas
Compartir