-
8/18/2019 Tendencias de la Ingeniería de Software - Impacto en las TIC
1/98
Tendencias de laIngeniería de Software
Impacto en las Tecnologías de Información y Comunicación
Jezreel Mejia Miranda Mirna A. Muñoz Mata Alma Y. Quiñonez Carrillo Hugo A. Mitre Hernández José A. Mora Soto
-
8/18/2019 Tendencias de la Ingeniería de Software - Impacto en las TIC
2/98
Tendencias en la Ingeniería de Software
Impacto en las Tecnologías de Información y Comunicación
Editado por:
Publicado por:
Jezreel Mejia Miranda Mirna A. Muñoz Mata Alma Y. Quiñonez Carrillo Hugo A. Mitre Hernández José A. Mora Soto
-
8/18/2019 Tendencias de la Ingeniería de Software - Impacto en las TIC
3/98
Tendencias en la Ingenieria del Software.
Impacto en las Tecnologias de Información y Comunicación
D.R. © Primera edición, 2016
D.R. © Centro de Investigación en Matemáticas, A.C.
Jalisco s/n, Valenciana
C.P. 36240, Guanajuato, Gto., MéxicoApdo. Postal 402http://www.cimat.mx
El cuidado de la edición estuvo a cargo de Jezreel Mejia Miranda, Mirna A. Muñoz Mata, Alma Y. Quiñonez Carrillo,Hugo A. Mitre Hernández y José A. Mora Soto.
ISBN: 978-607-96212-6-1
Este libro no puede ser reproducido total ni parcialmente, por ningún medio electrónico o de otro tipo, sin autorizaciónescrita del editor.
This book may not be reproduced, whole or in part, by any means, whitout written permission from the publisher.
Impreso y hecho en México.
Printed and Made in Mexico.
.
http://www.cimat.mx/http://www.cimat.mx/http://www.cimat.mx/
-
8/18/2019 Tendencias de la Ingeniería de Software - Impacto en las TIC
4/98
Agradecemos su apoyo para la realización del presente libro.
-
8/18/2019 Tendencias de la Ingeniería de Software - Impacto en las TIC
5/98
Prólogo de la serie
Este libro está dedicado a la publicación de los trabajos de investigación con aplicaciones reales y de actualidad,los cuales están relacionados a las tendencias en la Ingenieria del Software aplicados a las Tecnologias de
Información y Comunicación.
-
8/18/2019 Tendencias de la Ingeniería de Software - Impacto en las TIC
6/98
Prólogo:
La Ingeniería de Software (IS) permite el establecimiento y uso de principios de ingeniería robustos, orientadosa obtener productos y servicios de software de alta calidad, económico, fiable, eficiente y que satisfaga las
necesidades del usuario. Por lo tanto, la IS se ha convertido sin duda una área indispensable para el desarrollode productos y servicios orientados en las Tecnologias de Informacion y Comunicación (TICs) ya que éstas sehan convertido en un motor que mueve a la sociedad en todos sus sectores.
En este contexto, los trabajos publicados en este libro abordan temas relacionados a: la definición y validaciónde requerimientos de sistemas basada en herramientas y bajo el esquema de patrones; Aspectos euristicos parael mejoramiento de herramientas desarrolladas bajo componentes; Método de validación de software con baseen el modelo CMMI; Desarrollo de software para un entorno universitario y de la utilización de nuevoscomponentes como la Graph API de Facebook para la difusión de información. Asimismo, se presenta unmodelo para la integración de las MiPymes, Sociedad y Gobierno a través del uso de las TICs. Además, en elcontexto de la educación se presenta un sistema de detección de emociones para la recomendación de recursoseducativos y un modelo para implementar un sistema de gestión del conocimiento en la educación Dual. En elárea de seguridad de las TICs se presenta una propuesta de contenido y controles de seguridad para un sitio web de un CSIRT. Para el sector Salud se presenta una solución alternativa para el uso de TICs
específicamente en la endoscopia y finalmente, se presenta una trabajo en progreso acerca del establecimientodel estado del arte sobre marcos de trabajo, métodos y metodologías para evaluar la implementación demetodologías agules en Pymes.
Los trabajos publicados en este libro abordan nuevos enfoques o áreas de interés mencionados anteriormente,presentando investigaciones que abarcan tanto el entorno académico como el industrial, y que permitendimensionar los retos a los cuales la IS se enfrenta actualmente.
Editores:
Jezreel Mejia
Mirna MuñozAlma Y. Quiñonez Carrillo
Hugo A. Mitre Hernández
José A. Mora Soto
-
8/18/2019 Tendencias de la Ingeniería de Software - Impacto en las TIC
7/98
Comité Científico
Adriana Peña Perez-Negron Universidad de Guadalajara México
Alejandro Rodríguez Gonzalez Universidad Politecnica de Madrid España
Alma Maria Gómez Rodriguéz Universidad de Vigo España
Alvaro Rocha Universidade de Coimbra PortugalAngel Jordan Carnegie Mellon University Estados Unidos
Antoni Lluis Mesquida Calafat Universidad de las Islas Baleares España
Antonia Mas Pichaco Universidad de las Islas Baleares España
Antonio Pereira Instituto Politécnico de Leiria Portugal
Antonio de Amescua Seco Universidad Carlos III de Madrid España
Arturo Méndez Penín Universidad de Vigo España
Carla Pacheco Universidad Tecnológica de la Mixteca, Oaxaca México
Carlos Lara López CIMAT Unidad Zacatecas México
Diego Martín de Andrés Universidad Carlos III de Madrid España
Edrisi Muñoz Mata CIMAT Unidad Zacatecas, México México
Edwin León Cardenal CIMAT Unidad Zacatecas México
Elisabet Cápon Swiss Federal Institute of Technology, Zürich(ETHZ)
Suiza
Enrique Barreiro Alonso Universidad de Vigo España
Fernando Moreina Universidade Portucalense Portugal
Francisco Ortín Soler Universidad de Oviedo España
Giner Alor Hernandez Instituto Tecnológico de Orizaba México
Gloria P. Gasca Hurtado Universidad de Medellin Colombia
Gonzalo Cuevas Agustín Universidad Politécnica de Madrid España
Gonzalo R. Luzardo Morocho Escuela Superior Politécnica del Litoral Ecuador
Gustavo Illescas Universidad Nacional del Centro de la Provincia deBuenos Aires
Argentina
Henrique Mamede Universidade Aberta de Lisboa Portugal
Hugo Arnoldo Mitre CIMAT Unidad Zacatecas, México México
Ivan A. Garcia Pacheco Universidad Tecnológica de la Mixteca, Oaxaca México
Jaime A. Guzmán Luna Universidad Nacional de Colombia Colombia
Javier García Guzman Universidad Carlos III de Madrid EspañaJoao Barroso Universidad Tras-os-Montes e Alto Douro Portugal
Jörg Thomaschewski Universidad de Vigo -Hochschule Emden-Leer España
Jose A. Calvo Manzano Villalon Universidad Politécnica de Madrid España
Jose A. Mora Soto CIMAT Unidad Zacatecas México
Jose Antonio Cerrada Somolinos Universidad Nacional de Educación a Distancia España
Jose Baltasar García Perez-
Schofield Universidad de Vigo España
Juan Carlos Gonzáles Moreno Universidad de Vigo España
Juan Manuel Cueva Lovelle Universidad de Vigo España
Leandro Rodríguez Linares Universidad de Vigo España
Leandro Rodríguez Linares Universidad de Vigo España
Luis Casillas CUCEI de la Universidad de Guadalajara México
Luis Fernández Sanz Universidad de Alcalá España
Luis Borges Goveia Universidad Fernando Pessoa Portugal
Luis J. Dominguez Pérez CIMAT Unidad Zacatecas México
Magdalena Arcilla Cobián Universidad Nacional de Educación a Distancia España
Manuel Pérez Cota Universidad de Vigo España
María José Lado Touriño Universidad de Vigo España
María Y. Hernández Pérez Instituto de Investigaciones Eléctricas México
Marion Lepmets Regulated Software Research Centre, DundalkInstitute of Technology, Ireland
Estonia
Omar S. Gómez Escuela Superior Politécnica de Chimborazo Ecuador
Paul Clarke Dundalk Institute of Technology Irlanda
Perla Velasco-Elizondo Universidad Autonoma de Zacatecas (UAZ) México
Rafael Valencia García Universidad de Murcia España
-
8/18/2019 Tendencias de la Ingeniería de Software - Impacto en las TIC
8/98
Ramiro Goncalves Universidad Tras-os Montes Portugal
Raúl Aguilar Vera Universidad Autónoma de Yucatán México
Ricardo Colomo Palacios Østfold University College Noruega
Rory O´Connor Dublin City University Irlanda
Santiago Mataloaga Universidad ORT Uruguay Uruguay
Sodel Vázquez Reyes Universidad Autonoma de Zacatecas (UAZ) México
Sulema Torres Ramos CUCEI de la Universidad de Guadalajara México
Tomas San Feliu Gilabert Universidad Politécnica de Madrid España
Ulises Juárez Martínez Instituto Tecnológico de Orizaba México
Ulrik brandes Universidad de Konstanz, Alemania
Valentine Casey Dundalk Institute of Technology Irlanda
Vianca Vega Universidad Católica del Norte Chile
Victor Saquicela Uiversidad de Cuenca Ecuador
Vítor Filipe Universidad Tras-os-Montes e Alto Douro Portugal
Yadira Quiñonez Universidad Autonoma de Sinaloa México
Yilmaz Murat Çankaya University Turquia
-
8/18/2019 Tendencias de la Ingeniería de Software - Impacto en las TIC
9/98
Índice general
Herramienta para administración y validación de requerimientos de sistemas 7
Definición de Requerimientos de Software a Través de Escenarios utilizando Patrones 15
Proceso basado en patrones de proceso para desarrollar aplicaciones Web 22
Evaluación Heurística de Herramientas de Composición de Componentes Centrada en elUsuario Final
32
Metamodelo para validación de software basado en el CMMI 41
Presupuesto-CUC y SIRU, dos Experiencias de Desarrollo De Software A La MedidaPara Fortalecer La Gestión De La Universidad De La Costa: Presentación DeResultados, Impactos, Dificultades y Recomendaciones. 49
Propuesta de un modelo para la Implementación de un Sistema de Gestión delConocimiento en la Educación Dual 55
Propuesta de un modelo para la integración de las MiPyMES, Sociedad y Gobierno através del uso de las TIC de la Zona Metropolitana del Valle de Orizaba, Veracruz 62
Sistema de detección de emociones para la recomendación de recursos educativos 68
Propuesta de contenido y controles de seguridad para un sitio web de un CSIRT 75
Forming an alternate solution for endoscopy 83
Establishing the state of art of frameworks, methods and methodologies to assess the
implementation and use of agile methodologies in SMEs: A systematic review 90
-
8/18/2019 Tendencias de la Ingeniería de Software - Impacto en las TIC
10/98
Jezreel Mejia Miranda - Mirna A. Muñoz Mata - Alma Y. Quiñonez Carrillo - Hugo A. Mitre Hernández - José A. Mora Soto
7
Herramienta para administración y validación de requerimientos de
sistemas
Oscar Carlos Medina, Marcelo Martín Marciszack, Mario Alberto Groppo
GIDTSI, Grupo de Investigación, Desarrollo y Transferencia de Sistemas de InformaciónUniversidad Tecnológica Nacional, Facultad Regional Córdoba
Maestro López esq. Av. Cruz Roja Argentina, Ciudad Universitaria – (5016) Có[email protected], marciszack @gmail.com, [email protected]
Abstract. El presente trabajo describe una aplicación web denominada SIAR (Sistema Integral deAdministración de Requerimientos) que gestiona los requerimientos de un sistema de informaciónmediante Casos de Uso, según los lineamientos de UML (Lenguaje Unificado de Modelado). LosCasos de Uso son útiles para la generación y análisis de requisitos de sistemas. La finalidad principalde SIAR es la administración de Casos de Uso con una herramienta informática que agilice suregistración, normalice su contenido y posibilite implementar validaciones funcionales, como porejemplo un método automatizado de análisis de consistencia de Casos de Uso, para lo cual el sistema
genera un grafo con la transición de estados de cada Caso de Uso, expresado en el protocolo XPDL(Lenguaje de Definición de Flujo de Trabajo), que es analizado en un simulador de autómata finitodeterminista para verificar la cohesión de los escenarios en él definidos.
Palabras Clave: Caso de Uso, Requerimientos, UML, XPDL, Autómata finito determinista.
1 Introducción
SIAR (Sistema Integral de Administración de Requerimientos) es la denominación que se le dio a unaaplicación web que gestiona los requerimientos funcionales de un sistema de información según loslineamientos de UML (Lenguaje Unificado de Modelado).
Esta aplicación se originó dentro del proyecto de investigación ―Validación de Requerimientos a través
de Modelos Conceptuales‖ del GIDTSI (Grupo de Investigación, Desarrollo y Transferencia de Sistemasde Información), dependiente del Departamento Ingeniería en Sistemas de Información de la UniversidadTecnológica Nacional, Facultad Regional Córdoba que ―busca dar solución a uno de los principales
problemas de la Ingeniería de Requisitos relacionado a la elicitación y especificación de requerimientos,que vincula las distintas etapas del proceso de desarrollo de software manteniendo la trazabilidad de losmismos hasta su validación e implementación‖.
Como el modelo de requerimientos tiene por objetivo la registración y estandarización derequerimientos funcionales, la construcción de SIAR tiene por fin administrar en forma integral losrequerimientos funcionales de un proyecto de software según la metodología UML. SIAR es unaaplicación web que permitió registrar en forma normalizada los casos de uso y cuya primera versióncomprende el siguiente alcance:
• Administración de los atributos de un proyecto de software y su versionado.• Diseño y validación del Modelo Conceptual.• Gestión de los alcances de cada versión del proyecto y los casos de uso asignados.• Administración de los atributos de un caso de uso, incluyendo actores, pre-condiciones, post-
condiciones, cursos de acción, normal y alternativos, y su versionado.• Clasificación, priorización y trazabilidad de los casos de uso.• Visualización de consultas y generación de reportes en distintos formatos, inclusive XPDL, para
comunicarse con otras aplicaciones.• Gestión de atributos de procesos de negocio, de actividades de negocio que los componen y los
casos de uso asociados a estas actividades.• Registración y consulta de un glosario por proyecto, con entradas y sinónimos, siguiendo las
recomendaciones de LEL (Léxico Extendido del Lenguaje), que es una estrategia de modelado derequisitos basada en lenguaje natural.
-
8/18/2019 Tendencias de la Ingeniería de Software - Impacto en las TIC
11/98
Jezreel Mejia Miranda - Mirna A. Muñoz Mata - Alma Y. Quiñonez Carrillo - Hugo A. Mitre Hernández - José A. Mora Soto
8
2 Construcción de una herramienta para la administración integral de Casos de
Uso
La herramienta ha sido diseñada con un criterio de lógica que permite describir la siguiente relación decascada:
Fig. 1. Relaciones de SIAR.
SIAR permite trabajar con diferentes Sistemas, cada uno con sus propias Versiones, cada Versióncubre un número limitado de Alcances, cada Alcance gestiona un grupo de Casos de Uso, cada Caso deUso está compuesto por una secuencia ordenada de Pasos, finalmente un paso puede o no tenerAlternativas.
Los Pasos de un Caso de Uso permiten efectuar tareas que son descriptos con el soporte del sistemaque se ha desarrollado.
Desde el punto de vista conceptual un Caso de Uso es la descripción de una secuencia de interaccionesentre el sistema y uno o más Actores. Las personas o entidades que participarán en un caso de uso sedenominan Actores.
Cada caso de uso tiene pre-condiciones que se deben cumplir para que el flujo de eventos se puedanllevar a cabo. Dichas pre-condiciones son las reglas o condiciones que se deben cumplir antes de que seainiciado el caso de uso.
También posee post-condiciones que reflejan el estado en que se queda el Sistema una vez ejecutadoel caso de uso.
Puede clasificarse con diferentes niveles de Complejidad según el criterio de cada Analista funcionalen Muy Alta, Media y Baja.
A su vez, un Caso de Uso puede ser del tipo Concreto o Abstracto. Un caso de uso es Abstracto si no puede ser realizado por sí mismo, o si no es Concreto ya que puede ser iniciado por un actor y realizado por sí mismo.
Los pasos son las actividades que deberán realizarse para llevar a cabo algún proceso (Rumbaugh,Jacobson, Booch, 1999).
Cada paso posee alternativas que a su vez puede tener pasos y estos volver a tener alternativas.Cada caso de uso está codificado con 5 dígitos que conforman el Identificador del Caso de Uso:1. Id del Sistema.2. Id de la Versión del Sistema.3. Id del Alcance de la Versión.4. Id del Caso de Uso.5. Id de la Versión del Caso Uso.
3 Alcance de SIAR versión 1.0
El aplicativo busca cubrir las siguientes necesidades:
-
8/18/2019 Tendencias de la Ingeniería de Software - Impacto en las TIC
12/98
Jezreel Mejia Miranda - Mirna A. Muñoz Mata - Alma Y. Quiñonez Carrillo - Hugo A. Mitre Hernández - José A. Mora Soto
9
3.1 Administración de requerimientos
Se planteó la necesidad de generar un sistema que no solo administre los casos de usos por separado, sinotambién gestione en forma integral todo el proyecto que lo contiene. Es decir, sistema con sus versiones,
por cada versión del sistema sus alcances y por cada alcance sus casos de usos con sus versiones.
Fig. 2. Consulta de Casos de Uso de un Sistema.
Para cumplir con esta funcionalidad se incluyó también el concepto de sistema, versiones y alcances deversiones. A su vez cada caso de uso incluye pasos y alternativas. También se propone hacer unatrazabilidad de los cambios.
3.2 Configuración del entorno de desarrollo
Para su implementación se utilizó una plataforma de desarrollo ―case‖, generando en lenguaje de programación C# y almacenando la información en una base de datos MYSQL.
3.3 Interfaz de usuario
El desarrollo del sistema es web porque solo se precisa Internet para acceder a la aplicación desde unacomputadora personal. No se escogió un desarrollo de escritorio porque sería necesario contar con unentorno de configuración local en el equipo que se desee acceder al sistema.
3.4 Administración de proyectos de sistemas
Como se mencionó anteriormente, el trabajo tiene por objetivo principal administrar las descripciones ymantenimiento de casos de uso en forma integral.
3.5 Administración de Casos de Uso
Durante la descripción de un Caso de Uso, pueden administrarse las pre-condiciones, post-condiciones, pasos y alternativas como así también los datos básicos de un Caso de Uso. Del mismo modo, en ladescripción de un nivel o paso, una vez definido el mismo puede modificarse o darse de baja, esto se vereflejado en las versiones del CU. Lo mismo con cada alternativa de un nivel o paso.
-
8/18/2019 Tendencias de la Ingeniería de Software - Impacto en las TIC
13/98
Jezreel Mejia Miranda - Mirna A. Muñoz Mata - Alma Y. Quiñonez Carrillo - Hugo A. Mitre Hernández - José A. Mora Soto
10
3.6 Versionado de Casos de Uso
La aplicación permite versionar sistemas y versionar Casos de Uso. Se ofrecen distintas herramientas para llevar a cargo esta tarea, por ejemplo el listado de comparación de versiones de un caso de uso,detalla los cambios entre dos versiones seleccionadas. Puede ocurrir que el usuario que consulta elversionado del Caso de Uso no sea el mismo que lo generó, de esta manera puede ver reflejada en el
listado la evolución del CU desde el principio hasta la última modificación.
Fig. 3. Versionado de un Caso de Uso.
3.7 Exportación a archivos XML
Esta es una funcionalidad que proporciona el sistema para poder intercambiar datos con otrasaplicaciones por ejemplo un autómata finito. El archivo XML representa en este protocolo de intercambiode datos el grafo de estados del Caso de Uso que surge de la equivalencia con sus pasos y alternativas.
3.8 Consultas
Es posible obtener las siguientes salidas del sistema:
a) Sistemas b) Versionado de Sistemasc) Alcances por Versión de Sistemad) Casos de Uso por Alcancee) Versionado de Casos de Usof) Comparación entre dos Versiones de un Caso de Usog) Reportes de Casos de Uso
Para la versión vigente de un Caso de Uso se pueden imprimir los siguientes reportes:• Conversión a archivo XML para ingresar a Autómata Finito Determinista. • Gráfico de estructura del Caso de Uso en forma de árbol. • Reporte PDF del Caso de Uso. • Tabla de Estados del Caso de Uso.
h) Información de Usuarios
4 Validación de consistencia de Casos de Uso con simuladores de autómatas finitos
En la actualidad UML es reconocido como el estándar para el modelado de proyectos de softwareorientado a objetos.
Los componentes principales de esta metodología son los Casos de Uso ya que especifican elcomportamiento deseado del sistema. Por definición el caso de uso ―especifica una secuencia de acciones,incluyendo variantes, que el sistema puede ejecutar y que produce un resultado observable de valor paraun particular actor‖.
Una vez generado un caso de uso, es necesario comprobar y asegurar su validez. La verificación deconsistencia de la secuencia de acciones descripta en el caso de uso es una de las tareas que permiten su
validación.Es deseable que esta verificación pueda realizarse de manera automatizada para lo cual se podríatrabajar con autómatas finitos deterministas, ya que un autómata finito es un conjunto de estados y un
-
8/18/2019 Tendencias de la Ingeniería de Software - Impacto en las TIC
14/98
Jezreel Mejia Miranda - Mirna A. Muñoz Mata - Alma Y. Quiñonez Carrillo - Hugo A. Mitre Hernández - José A. Mora Soto
11
determinado. El desafío es transformar el caso de uso en un autómata finito determinista para validar sucohesión secuencial.
Partiendo de estas premisas, el aporte del presente análisis a la validación de requerimientos que se propone lograr el proyecto de investigación, consiste en dar respuesta a la siguiente pregunta:
¿Es factible determinar un método, basado en simuladores de autómatas finitos deterministas, queverifique la consistencia de la secuencia de acciones, incluyendo variantes, definidas en un caso de uso?.
La funcionalidad de SIAR que se detalla a continuación propone una alternativa viable para estanecesidad, que se realiza en 3 pasos:4.1 Registración normalizada del requerimiento.4.2 Transformación del Caso de Uso en una máquina de estados.4.3 Validación de la consistencia secuencial de los cursos de acción del Caso de Uso.
4.1 Registración normalizada del requerimiento
Como el modelo de requerimientos tiene por objetivo la captura de requerimientos funcionales (Jacobsony otros, 1992), la primera tarea que se emprendió, fue la construcción de SIAR, una herramienta cuyo fines administrar en forma integral los requerimientos funcionales de un proyecto de software según elestándar UML y permite registrar en forma normalizada los casos de uso.
4.2 Transformación del Caso de Uso en una máquina de estados
En segunda instancia se definió un conjunto de reglas de conversión del caso de uso en un grafo deestados para que sea la entrada a un simulador de autómata finito determinista.Una vez completa la versión de un caso de uso, se genera un grafo de estados a partir de las siguientesdefiniciones:
• Todo caso de uso tiene al menos un curso de acción normal.• Un caso de uso puede no tener ningún, o tener uno o tener varios cursos de acción alternativos. • Cada paso de un curso de acción de un caso de uso responde a un estado y es un nodo de la
máquina de estados.• Todo caso de uso tiene un paso inicial, y es el primer paso de todos los cursos de acción. Este
paso es el estado/nodo inicial.• Todo caso de uso tiene un paso final por aceptación, y es el último paso del curso de acciónnormal. También puede ser el último paso de algún curso alternativo. Este paso es el estado/nodofinal por aceptación.• Un caso de uso puede no tener ningún, tener uno o tener varios finales por error, y son el último
paso de un curso alternativo. Estos pasos son estados/nodos finales por error.• Todo caso de uso pasa de un estado/nodo a otro por medio de una función de transición. • Partiendo de un estado/nodo origen se puede continuar en un único estado/nodo destino, o en
dos nodos/estados destino alternativos dependiendo de una condición de bifurcación.• El grafo de estados asociado al caso de uso tiene un alfabeto de tres símbolos para indicar qué
evento lo cambia de un estado/nodo a otro:
o A = Por medio de una Acción determinada.
o S = Cuando Si se cumple una condición que bifurca los cursos de acción.o N = Cuando No se cumple una condición que bifurca los cursos de acción.
Fig. 4. Bifurcación en la especificación de trazo fino de un Caso de Uso.
-
8/18/2019 Tendencias de la Ingeniería de Software - Impacto en las TIC
15/98
Jezreel Mejia Miranda - Mirna A. Muñoz Mata - Alma Y. Quiñonez Carrillo - Hugo A. Mitre Hernández - José A. Mora Soto
12
Partiendo de un estado/nodo origen, en la función de transición puede estar asociado solamente uno de lossímbolos: A, N o S. Con esto se cumple la condición necesaria de un autómata finito determinista. De estamanera, si la transición entre dos estados/nodos se da dentro de un mismo camino, se asocia el símbolo A.Si en cambio interviene una bifurcación, la función de transición hacia el estado/nodo destino porcumplimiento de la condición de bifurcación, se asocia el símbolo S. Por el otro camino de la bifurcación,se asocia el símbolo N.
Fig. 5. Tabla de estados de un Caso de Uso. Transformación automática por SIAR.
Una vez generado el grafo de estados se expresa en protocolo XPDL, por ser el más adecuado paraintercambiar modelos de procesos entre distintas herramientas. Este lenguaje ―da soporte a la definición ya la importación/exportación de procesos, con el objetivo de que, aunque se modele un proceso en unaaplicación, este modelo pueda ser usado por otras aplicaciones de modelado y/o por otras aplicacionesque trabajen en el entorno de ejecución‖ (Pérez, 2007).
Fig. 6. Fragmento de archivo XPDL generado por SIAR.
4.3 Validación de la consistencia secuencial de los cursos de acción del Caso de Uso
Finalmente se ingresa el archivo XPDL, que representa al caso de uso como grafo de estados, al programa―Autómata Finito‖ que forma parte del conjunto de ―Herramientas Prácticas para el Aprendizaje de
Informática Teórica‖. Esta aplicación java ―permite definir autómatas y gramáticas para la enseñanza y
ejercitación de los alumnos de la asignatura Sintaxis y Semántica del Lenguaje que se dicta en la carrerade Ingeniería en Sistemas de Información de la Universidad Tecnológica Nacional Facultad RegionalCórdoba‖ (U.T.N. F.R.C., 2009).
-
8/18/2019 Tendencias de la Ingeniería de Software - Impacto en las TIC
16/98
Jezreel Mejia Miranda - Mirna A. Muñoz Mata - Alma Y. Quiñonez Carrillo - Hugo A. Mitre Hernández - José A. Mora Soto
13
Fig. 7. Fragmento del grafo de estados en el simulador de autómatas finitos.
El simulador posibilita probar el grafo de estados y comprobar si es aceptado o rechazado. En el segundocaso se puede visualizar el detalle para detectar la inconsistencia, la cual puede ser corregida en unanueva versión del caso de uso, generando un nuevo grafo de estados automáticamente. De esta manera selogra control y trazabilidad de los cambios en los cursos de acción de los requerimientos funcionales.
Vale recordar a F. P. Brook s cuando dijo: ―la tarea más importante que el ingeniero de software hace parael cliente es la extracción iterativa y el refinamiento de los requerimientos del producto‖.
4.4 Limitaciones
El software limita su alcance con las siguientes restricciones:• En cada paso abarca alternativas hasta un nivel, sin embargo cada alternativa puede incluir másde un paso.• Los Casos de Usos no registran relaciones de inclusión y extensión..
4.5 Resultados
Se pone a consideración este método automatizado, implementado en el aplicativo SIAR que registra,normaliza y transforma un caso de uso a formato XPDL y un simulador de autómatas finitos, que permiteverificar la consistencia secuencial de los distintos caminos del caso de uso.El aporte que realiza SIAR al proyecto en el que fue concebido, ―Validación de Requerimientos a travésde Modelos Conceptuales‖, es el de constituirse como plataforma de software integradora de las
aplicaciones que se utilizan en cada una de las líneas de investigación.El presente desarrollo está fundamentado en una ―Propuesta Metodológica para validación deRequerimientos Funcionales a través de Modelos Conceptuales‖ registrada en la República Argentina con
Derecho de autor de producciones tecnológicas (rubro ―Modelo de organizac ión y/o gestión, Ciencia ycultura-Ciencia y tecnología‖) según Expediente No.5229942. Esta metodología expone cómo se llega aidentificar la necesidad de construir SIAR y la especificación de requerimientos funcionales de susalcances, módulos y funcionalidades.
También ―S.I.A.R. – Sistema Integral de Administración de Requerimientos‖ está registrado en laRepública Argentina con Derecho de autor de producciones tecnológicas (rubro ―Máquina, equipo,instrumento y/o herramienta o su/s componente/s. Informática-software. Ciencia y cultura-Ciencia ytecnología‖) según Expediente No.5229955. En lo que respecta a la funcionalidad de análisis de consistencia, SIAR ofrece un método automatizado
para validar la cohesión de un caso de uso desde el punto de vista de la transición de estados definidosintrínsecamente en los pasos de su especificación funcional. Permitiendo también enlazar este proyectocon un trabajo académico de la carrera Ingeniería en Sistemas de Información, el del Grupo deHerramientas Didácticas de Informática Teórica que contribuyó con el simulador de autómatas finitos.Finalmente se tiene previsto en el año 2015 hacer una transferencia del software a una empresaespecializada en desarrollos de seguridad informática de la región en el marco de un programagubernamental de generación y transferencia de conocimientos.
5 Conclusión
-
8/18/2019 Tendencias de la Ingeniería de Software - Impacto en las TIC
17/98
Jezreel Mejia Miranda - Mirna A. Muñoz Mata - Alma Y. Quiñonez Carrillo - Hugo A. Mitre Hernández - José A. Mora Soto
14
información según los lineamientos de UML. Haciendo posible también enlazar este proyecto con untrabajo académico de la carrera Ingeniería en Sistemas de Información, el del Grupo de HerramientasDidácticas de Informática Teórica que contribuyó con el simulador de autómatas finitos, que permitióimplementar un método automatizado para validar la cohesión de un caso de uso desde el punto de vistade la transición de estados definidos intrínsecamente en los pasos de su especificación funcional.
Como lo señalaron Taurant y Marciszack: ―Actualmente existen en el mercado una gran variedad de
herramientas y metodologías que permiten la gestión de requerimientos de software a lo largo del ciclo devida de desarrollo. Independientemente de la herramienta o metodología utilizada, la creación ymantención de un gran número de modelos y artefactos es realizada por el analista en forma manual,generando con gran frecuencia inconsistencias entre los modelos generados, impactando en latr azabilidad de los requerimientos.‖
Es por esto que se propuso con SIAR, el desarrollo de una herramienta que permita al analistagestionar los requerimientos en forma asistida y parcialmente automatizada, por medio de la generaciónde modelos conceptuales como representaciones de máquinas abstractas, considerando que se alcanzaronestos objetivos parcialmente.
Una alternativa factible para continuar trabajando con SIAR es ampliar la trazabilidad de los modelosde requerimientos de manera tal que permita medir el impacto de los cambios desde el ModeloConceptual hasta el Modelo de Sistema de Información agregando técnicas de validación yfuncionalidades de gestión de proyectos de software. Hasta el momento la metodología propuesta y el
modelo de datos de la herramienta que la soporta, posibilitan la trazabilidad desde el modelo derequerimientos del sistema con su origen en el modelo de datos, pero aún no se alcanza a medir elimpacto en el cambio de dichos modelos. Se está indagando la incorporación de ―Patrones‖, según el
concepto de la Ingeniería de Software, en la validación de Modelos Conceptuales como el próximo paso aseguir para ampliar el alcance de esta herramienta.
Además se hace necesario validar dentro del Modelo Conceptual también los Requerimientos nofuncionales desde el punto de vista del usuario, entendiendo que usabilidad es el atributo de calidad quemide la facilidad de las interfaces de un sistema.
Referencias
Rumbaugh, J., Jacobson,I., Booch,G. (1999). The Unified Modelling Language Reference. Addisson Wesley.
Chakraborty, Samarjit (2003). Formal Languages and Automata Theory-Regular Expressions and Finite Automata-.Computer Engineering and Networks Laboratory Swiss Federal Institute of Technology (ETH) Zurich.
Marciszack, Marcelo, Pérez,Ramiro, Castro, Claudia Castro (2013). Validación de Requerimientos a través deModelos Conceptuales – Modelos y Transformaciones. WICC 2013.
Jacobson, Ivar y otros (1992). Object Oriented Software Engineering. A Use Case Driven Approach. AddisonWesley.
Pérez, J. D. (2007). Notaciones y lenguajes de procesos. Una visión global. Tesis de Doctorado Universidad deSevilla.
U.T.N. F.R.C. (2009). Proyecto Construcción de Herramientas Didácticas para la enseñanza y ejercitación prácticaen laboratorio de Informática Teórica en las Carreras con Informática. Manual de Usuario – Grupo deHerramientas Didácticas.
Bibliografía adicional
Sommerville, I. (2005). Software Enginnering, Computing Departament, Lancaster University, John Willey&SonsLtd.
Davis, A. (1993). Software requeriments. Object, functions and states. Pretince Hall international Inc.
Brooks, Frederik P. (1987). No Silver Bullet. Essence and Accidents in Software Engineering. IEEE Computer.
Leonardi, C., Leite, J.C.S., Rossi, Gustavo (2001). Una estrategia de Modelado Conceptual de Objetos, basada enModelos de requisitos en lenguaje natural. Tesis de Maestría Universidad Nacional de la Plata.
-
8/18/2019 Tendencias de la Ingeniería de Software - Impacto en las TIC
18/98
Jezreel Mejia Miranda - Mirna A. Muñoz Mata - Alma Y. Quiñonez Carrillo - Hugo A. Mitre Hernández - José A. Mora Soto
Definición de Requerimientos de Software a Través de Escenarios
utilizando Patrones
Carlos Alberto Cortés Bravo1, María A. Abud Figueroa1, Celia Romero Torres,
Ulises Juárez Martínez1, Gustavo Pelaez Camarena1
,1 Instituto Tecnológico de Orizaba, División de Estudios de Posgrado e Investigación,
Av. Oriente 9 No. 852, Orizaba, Veracruz, México [email protected], {mabud, cromero, ujuarez
gpelaez}@ito-depi.edu.mx
Abstract. La definición de los requerimientos de software consiste en la especificación y validaciónde las funcionalidades que el sistema a desarrollar debe proporcionar, al igual que las restriccionesque el sistema debe cumplir. Para el análisis de los requerimientos existen varias técnicas, siendo losescenarios una técnica que permite describir el comportamiento esperado del software en un lenguajereconocido por los involucrados con lo que se logra una buena comunicación con el cliente. Por otra
parte, los patrones permiten reutilizar elementos previamente comprobados funcionando como unregistro de experiencias que ayudan a agilizar y mejorar los procesos. En este artículo se presenta una propuesta para la definición de patrones de escenario que servirán para tener una descripción másclara de los que se espera del software a desarrollar y que serán la base para un catálogo de patrones para un dominio especifico.
Keywords: patrones, escenarios, requerimientos de software
1 Introducción
Un punto prioritario en el desarrollo de software es la definición de lo que se quiere producir, ya que eldesarrollo del software inicia hasta el momento en el que se tienen establecidas a detalle las
características del software que se va a desarrollar, situación que es más crítica cuando se trata desistemas complejos.La ingeniería de requisitos es el área de investigación que atiende este punto fundamental en el proceso
de producción, proponiendo métodos, técnicas y herramientas que facilitan el trabajo de definición de loque se quiere de un producto de software. Su objetivo es aumentar el conocimiento del dominio del
problema para así representar las necesidades de un cliente en función de una aplicación de software deuna manera adecuada y entendible tanto para los usuarios finales como para el equipo de desarrollo.
Es de suma importancia asegurar una buena comunicación con los clientes y/o usuarios, ya que de ellodepende un futuro éxito o fracaso, porque es en esta parte en donde se recopila todo lo que el futurosistema tendrá implementado.
Existen diversas técnicas para documentar los requisitos, como son casos de uso, prototipos, puntos devista, escenarios, entre otras. De éstas se reporta como una de las más exitosas los escenarios, ya queéstos permiten mantener mucha información en una forma que los involucrados reconocen (Ridao, et al
2001). Son muchas las definiciones de la palabra escenario (Ridao, et al. 2001; Sutcliffe, 2003; Hadad, etal. 1996), una de las cuales es: ―un escenario es una descripción parcial y concreta del comportamiento deun sistema en una determinada situación‖ (Ridao, 2000).
Por otra parte, los patrones permiten, en diferentes áreas del conocimiento, utilizar soluciones previas aun problema en nuevas situaciones, ofreciendo un mecanismo de reutilización de experiencia. En estetrabajo, se propone el uso de patrones en la definición de escenarios con el fin de aprovechar lassituaciones recurrentes en la definición de requerimientos, para lo cual se establece un formato para sudefinición. En la sección 2 de este artículo se muestra una revisión de diferentes propuestas para larepresentación de requerimientos a través de escenarios, posteriormente en la sección 3 se presenta una
propuesta para la definición patrones de escenarios en la definición de requerimientos, finalmente se presentan las conclusiones.
2 Trabajos Relacionados sobre Definición de Requerimientos
L i i t ifi é l l i t d b h (f i ) i d d
-
8/18/2019 Tendencias de la Ingeniería de Software - Impacto en las TIC
19/98
Jezreel Mejia Miranda - Mirna A. Muñoz Mata - Alma Y. Quiñonez Carrillo - Hugo A. Mitre Hernández - José A. Mora Soto
16
proporcionar una visión amplia sobre lo que se pretende resolver con el desarrollo de una aplicación desoftware.
En la fase de definición de requerimientos, el ingeniero de requerimientos se enfrenta a distintasdificultades (Hadad et al 1996). La elección de una buena técnica para recopilar requerimientos como eluso de un lenguaje común, tanto para los desarrolladores como para los clientes y usuarios, es vital paragarantizar un buen proceso de definición y validación de requerimientos. De igual manera es muy
importante comprender el dominio del problema, con lo cual se necesita que el ingeniero derequerimientos se vuelva experto en el dominio para así comprender de la manera más amplia lasnecesidades del cliente, ya que de no ser así es muy probable que se recopilen requerimientos incompletosy erróneos.
2.1 Lenguaje para Definición de Requerimientos
Capturar el dominio del problema es una de las formas mediante las cuales se garantiza una mejorcompresión en la descripción de un escenario, tanto por clientes como por el equipo de desarrollo. Elvocabulario del UdeD (Universo de Discurso) es el que refleja las palabras peculiares y más usadas en elmismo (Ridao, et al. 2001). Para la recopilación del conocimiento del UdeD es necesario revisar ladocumentación, realizar entrevistas o aplicar otras técnicas. Son diversos los casos donde la construcción
de escenarios se basa en el UdeD como en (Ridao, et al. 2001; Ridao, 2000; Doorn, 2002), con el propósito de mantener una buena comunicación con el cliente, ya que se logra que el ingeniero derequerimientos maneje un vocabulario entendible tanto por los integrantes del equipo de desarrollo asícomo por los clientes y/o usuarios. Uno de los métodos que permite mantener un leguaje homogéneo paraambos es el LEL (Léxico Extendido del Lenguaje), el cual es una representación de los símbolos en ellenguaje del dominio del problema (do Prado Leite. et al. 1997). Combinar el uso de escenarios y el LELfacilita la compresión por parte de las personas no especializadas en el desarrollo del software (Hadad,2010).
Los objetivos del LEL son conocer el vocabulario del usuario y contar con un instrumento simple detrazabilidad (Hadad, et al. 1996). Los elementos para la descripción de un símbolo LEL son: nombre,noción e impacto; el nombre identifica el símbolo del LEL, la noción indica qué es el símbolo y elimpacto cómo repercute en el sistema. En la Tabla 1 se presenta un ejemplo de un símbolo del LEL quese construye para un caso de estudio de una biblioteca, en la cual se observa que el nombre que se le da
está formado por dos palabras siendo estas sinónimos mediante las cuales se identifica el símbolo(Kaplan, et al. 2000).
Tabla 1. Ejemplo simbología del LEL.
Las heurísticas que son utilizadas para la construcción del LEL son: identificar fuentes de información,identificar símbolos, clasificar símbolos, describir los símbolos, verificar el LEL y validarlo. Una vez quese obtiene el LEL es necesario actualizarlo para obtener la mejor compresión del UdeD. Así como estatécnica mejora la comprensión del dominio del problema, también es posible que tenga defectos loscuales surgen cuando no se construye un LEL de manera correcta. Los principales defectos que puedencontener el LEL son: de descripción, de clasificación, de identificación y de referencia los cuales estándescritos en (Kaplan, et al. 2000).
2.2 Representación de un Escenario
En Ryser (1999) define un procedimiento para la recopilación de los requerimientos y su documentación
-
8/18/2019 Tendencias de la Ingeniería de Software - Impacto en las TIC
20/98
Jezreel Mejia Miranda - Mirna A. Muñoz Mata - Alma Y. Quiñonez Carrillo - Hugo A. Mitre Hernández - José A. Mora Soto
17
• Encontrar todos los eventos relevantes al sistema.• Determinar entradas, resultados y salidas del sistema.• Determinar límites del sistema.• Crear descripciones de escenarios amplias.• Priorizar los escenarios de acuerdo a la importancia, asegurar que los escenarios cubran
la funcionalidad del sistema.
• Crear una descripción paso a paso de eventos y acciones para cada escenario• Crear un gráfico general y un diagrama de dependencia.• Tener opinión y comentarios de los usuarios sobre los diagramas y escenarios.• Extender escenario al refinar su descripción, dividir las tareas en pasos de trabajo
individuales.• Flujo de acciones del modelo alternativo, especificar excepciones y cómo reaccionar a
las excepciones.• Factorizar escenarios abstractos (secuencias de interacciones que aparecen en más de un
escenario).• Incluir requerimientos no funcionales y cualidades en escenarios.• Revisar el diagrama de información general y diagrama de dependencia.• Pedir a los usuarios comprobar y validar los escenarios (revisiones formales).
Para la construcción de un escenario es preciso considerar los elementos por los que este escenarioestará formado. En (Hadad, G et al 1996) se muestran algunos ejemplos de escenarios, en los cuales seobservan los siguientes elementos como parte de un escenario: nombre, objetivo, contexto, recursos,actores, conjunto de episodios y casos alternativos. En (Hadad, G et al 1997) se propone otrarepresentación de un escenario que se ilustra como un diagrama E-R y se observa en la Figura 1.
Fig. 1. Diagrama Entidad-Relación para la construcción de un escenario
Las propuestas revisadas son muy similares, básicamente tienen los mismos elementos para representarun escenario. En la Tabla 2 se presenta un ejemplo de un escenario de un caso de estudio ―Sistema
Nacional para la Emisión de Pasaportes (Hadad, et al. 1998).
-
8/18/2019 Tendencias de la Ingeniería de Software - Impacto en las TIC
21/98
Jezreel Mejia Miranda - Mirna A. Muñoz Mata - Alma Y. Quiñonez Carrillo - Hugo A. Mitre Hernández - José A. Mora Soto
18
Tabla 2. Ejemplo Escenario para ―Sistema Nacional de Emisión de Pasaportes‖
Tomando en cuenta los modelos revisados, se propone incluir en la representación de un escenario loselementos: título, objetivo, acción, recursos, actores, episodios y excepciones, mismos que se representanen un diagrama de clases UML como se muestra en la Figura 2.
Fig. 2. Elementos Escenario
3 Patrones de Escenario
El uso de patrones en la construcción de escenarios permite ahorrar tiempo para la construcción de losmismos, ofreciendo una visión más estructural de las situaciones, y con esto determinar el tipo deescenario que corresponda a cada situación. En este sentido existen algunas propuestas como la de(Ridao 2001), sin embargo ofrecen situaciones muy abstractas y difíciles de utilizar.
En este trabajo se propone el uso de patrones para la representación de escenarios basados en lanotación LEL, compuesto por la siguiente notación:
+ significa composición,{x} significa cero o más ocurrencias de x,( ) es usado para agrupamiento,
-
8/18/2019 Tendencias de la Ingeniería de Software - Impacto en las TIC
22/98
Jezreel Mejia Miranda - Mirna A. Muñoz Mata - Alma Y. Quiñonez Carrillo - Hugo A. Mitre Hernández - José A. Mora Soto
19
El patrón se forma con los siguientes elementos:
Títuloo El título identificará de forma única un escenario para una acción específica del sistema.o Sintaxis: Frase
Objetivoo El objetivo describirá de forma breve que se logra con implementación de este
escenario.o Sintaxis: [Actor | Recurso] + Verbo + Predicado
Actoreso Se mencionarán los involucrados que participan en este escenario en particular.o Sintaxis: Nombre
Accióno Describirá la actividad que se ejemplifica este escenario.o Sintaxis: [Sujeto | Actor | Recuso] + Verbo + Predicado + {Restricción}
Restriccióno Describirá la situación solo en la que este escenario tendrá lugar (opcional)o Sintaxis: [Actor | Recurso] + Verbo + Predicado
Secuenciao Contendrá los pasos que describen de forma clara los pasos que sigue este escenario,
para llegar a un fin.o Sintaxis:
::= | |
::= ::= IF THEN ::= [ ]donde es descrita como:(([Actor | Recurso] + Verbo + Predicado) | ([Actor | Recurso] + [Verbo] +Título)) + {Restricción}
Secuencia Alternao En caso de que durante el proceso de esta actividad no se logre completar
satisfactoriamente en este apartado se describirá lo que sucederé en esos casos.o Sintaxis:
Causa [(Solución)]donde Causa es:
Frase | ([Sujeto | Actor | Recurso] + Verbo + Predicado)donde Solución es:
Título
Con base en esta propuesta, en la Tabla 3 se muestra un ejemplo del patrón de escenario Ingreso,mismo que detalla los pasos a seguir cuando un usuario realiza una acción de acceso al sistema.
Tabla 3. Patrón de Escenario Ingreso Título Ingreso Objetivo Un actor ingresa datos de identificación para acceder al sistemaActores Sólo un actorAcción El Usuario inicia sesión en el SistemaRestricción Por lo menos unaSecuencia Por lo menos uno como el siguiente:
El Actor ingresa datos de identificación para acceder al sistema Se verifica que los datos son correctos
DEBEN ESTAR EN SECUENCIA INTERACCIÓN ACTOR YSISTEMA
Secuencia Alterna Circunstancia que obstaculiza el acceso al sistema
La Tabla 4 muestra el caso específico de uso de este patrón para un ingreso donde se solicita a un
-
8/18/2019 Tendencias de la Ingeniería de Software - Impacto en las TIC
23/98
Jezreel Mejia Miranda - Mirna A. Muñoz Mata - Alma Y. Quiñonez Carrillo - Hugo A. Mitre Hernández - José A. Mora Soto
20
Tabla 4. Uso del Patrón de Escenario Ingreso Título Ingreso Objetivo Un actor ingresa datos de identificación para acceder al sistemaActores UsuarioAcción El Usuario inicia sesión en el Sistema
Restricción El Usuario debe ser un Usuario RegistradoSecuencia El Usuario ingresa id y contraseña y selecciona la opción Ingresar
SI id existe ENTONCES verifica contraseña SI contraseña es correcta ENTONCES el sistema verifica
privilegios e inicia sesiónSecuencia Alterna Id no existe [mensaje de error]
Contraseña errónea [mensaje de error]
4 Conclusiones
Los escenarios son una técnica que permite mantener una descripción clara y concisa de los
requerimientos, por lo que combinándola con el uso de LEL como la técnica para la construcción deescenarios, permite tener un proceso más ágil de definición/validación de requerimientos con losclientes/usuarios y de esta manera evitar la propagación de requerimientos y descripciones incompletasque pueden llegar a ser interpretadas de múltiples maneras y llevar a errores en la implementación de lasfuncionalidades de un software.
Una de las ventajas que tienen los escenarios es que la posibilidad de construirlos a partir de patrones,de tal manera que es posible reutilizar las soluciones a situaciones similares que se presentan en diversos
proyectos de software. El contar con una representación formal para un escenario facilitará la creación deun catálogo de patrones que ayude a agilizar y hacer más segura la definición de requerimientos.
En comparación con los trabajos revisados, esta propuesta está enfocada en describir escenarios que puedan ser útiles para tener una descripción más precisa en cuanto a lo que se espera del software adesarrollar, cuyas situaciones son recurrentes en casi cualquier sistema de software, en el trabajo de Ridao(2001) su propuesta describe situaciones muy abstractas y difíciles de reconocer en primera instancia.
Como trabajo futuro se propone el desarrollo de un catálogo de patrones de escenarios para un dominioespecífico y realizar las pruebas de campo que permitan exponer las ventajas que trae consigo el uso deun catálogo de patrones para la construcción de escenarios.
Agradecimientos.
El autor corresponsal agradece al Consejo Nacional de Ciencia y Tecnología CONACYT por el apoyo brindado para la realización de los estudios de postgrado.
Referencias
1. Do Prado Leite, J. C. S., Rossi, G., Balaguer, F., Maiorana, V., Kaplan, G., Hadad, G., & Oliveros, A.Enhancing a requirements baseline with scenarios. Requirements Engineering, 2(4), 184--198 (1997)
2. Doorn, J. H., Hadad, G. D., & Kaplan, G. N. Comprendiendo el Universo de Discurso Futuro conEscenarios. In WER, 117--131 (2002).
3. Hadad, Graciela DS., Doorn, Jorge., Kaplan, Gladys. Enfoque middle-out en la Construcción e Integraciónde Escenarios, (1998)
4. Hadad, G., Kaplan, G., Oliveros, A., & Sampaio do Prado Leite, J. C. Integración de Escenarios con elLéxico Extendido del Lenguaje en la elicitación de requerimientos*: Aplicación a un caso real, (1996)
5. Hadad, G.; Kaplan, G.; Oliveros, A.; Leite, J.C.S.P. Construcción del Léxico Extendido del Lenguaje yderivación de Escenarios para la elicitación de requerimientos, (1997)
6. Hadad, G. D. S. Uso de Escenarios en la Derivación de Software. In XII Workshop de Investigadores enCiencias de la Computación, (2010)
7 Kaplan G N Hadad G D Doorn J H & do Prado Leite J C S Inspección Del Lexico Extendido Del
-
8/18/2019 Tendencias de la Ingeniería de Software - Impacto en las TIC
24/98
Jezreel Mejia Miranda - Mirna A. Muñoz Mata - Alma Y. Quiñonez Carrillo - Hugo A. Mitre Hernández - José A. Mora Soto
21
8. Potts, C., Takahashi, K., & Antón, A. Inquiry-based requirements analysis. IEEE software, 11(2). 21--32(1994)
9. Ridao, Marcela. Uso de Patrones en el Proceso de Construccion de Escenarios. Workshop de Engenharia deRequisitos. 140--157 (2000)
10. Ryser, J., & Glinz, M. A scenario-based approach to validating and testing software systems usingstatecharts. In Proc. 12th International Conference on Software and Systems Engineering and their
Applications, (1999)
11. Ridao, Marcela. Uso de Patrones en el Proceso de Construcción de Escenarios. Tesis Doctoral. Facultad deInformática, (2001)
12. Ridao, Marcela and Jorge Doorn., and Julio Cesar Sampaio (2001). Incorporación de Patrones al Proceso deConstruccion de Escenarios. Workshop em Engenharia de Requisitos, Buenos Aires, Argentina, s.f. 107--123 (2001)
13. Sutcliffe, A. Scenario-based requirements engineering. In Requirements engineering conference,.Proceedings. 11th IEEE international 320--329 (2003)
14. Toro, A. D., & Jiménez, B. B. Metodología para la Elicitación de Requisitos de Sistemas Software. InformeTécnico LSI-2000-10. Facultad de Informática y Estadística Universidad de Sevilla. (2000)
-
8/18/2019 Tendencias de la Ingeniería de Software - Impacto en las TIC
25/98
-
8/18/2019 Tendencias de la Ingeniería de Software - Impacto en las TIC
26/98
Jezreel Mejia Miranda - Mirna A. Muñoz Mata - Alma Y. Quiñonez Carrillo - Hugo A. Mitre Hernández - José A. Mora Soto
23
Fig. 1 Proceso de software orientado a objetos
2 Trabajos relacionados
En (Xiang-xi Meng, 2007) se menciona que a pesar de que existe gran variedad de casos exitosos en eluso de métodos ágiles, dado que cada proyecto de software es único es difícil definir una serie de
procesos universales y repetibles para todos los proyectos ágiles. Por ello, se propuso un lenguaje que se basa en patrones de proceso para métodos de desarrollo ágil. PPL ( Process Pattern Language, Lenguajede Patrones de Proceso) se basa en dos metodologías ágiles, XP (eXtreme Programming , ProgramaciónExtrema) y SCRUM, combinando el proceso de desarrollo de ambas metodologías para generar unmodelo de proceso ágil apropiado para diferentes proyectos en diferentes organizaciones.
En (Mohsen Asadi, 2009.) se menciona la poca flexibilidad que proporcionan las metodologías dedesarrollo tradicionales ya que no proveen el soporte necesario para el desarrollo de proyectos de sistemasmodernos, lo cual conlleva a cambiar de metodología entre un proyecto y otro. Por ello propusieron el
proceso de ingeniería de métodos situacional (SMEP) como marco de trabajo que se basa en patrones de proceso para generar procesos SME (Situational Method Engineering , Ingeniería de Métodos Situacional)
a la medida.En (Tran, 2007) se mencionó que aplicar patrones de proceso tiene como principales objetivos dar a
conocer las mejores prácticas de los procesos y reducir el tiempo de modelado de éstos. La problemáticaque se abordó es que aunque existen diversos intentos para formalizar a los patrones de proceso, ningunocumple totalmente con todos los requerimientos que se mencionan anteriormente, es por esta razón que
presenta un meta-modelo de procesos que se basa en UML y permite una representación explícita de patrones de proceso en los modelos de procesos. Lo novedoso de la propuesta es que permite laaplicación de diferentes tipos de procesos no solo para construir sino también para mejorar los modelosde procesos.
La principal aportación de los patrones de procesos es reducir tiempo y esfuerzo en el desarrollo desoftware mediante la reutilización de procesos de desarrollo ya existentes. Como se observa este tipo de
patrones tienen diferentes usos. Sin embargo no existen trabajos que reporten un proceso basado en estos patrones que sirva para el desarrollo de aplicaciones Web.
3 Proceso
En esta sección se presenta el proceso propuesto basado en patrones de proceso para desarrollaraplicaciones Web. Se tomó como base los patrones propuestos por Scott Ambler (Tabla 1), eligiendo lasactividades más adecuadas para el caso de las aplicaciones Web, complementado la definición con los
patrones de diseño de Gamma para la parte de diseño.
3.1 Elementos del proceso
La idea central del proceso se basa en tres elementos básicos: rol, producto de trabajo y tarea (Figura 2).
Las tareas representan el esfuerzo a hacer, los roles representan quién lo hace y los productos de trabajorepresentan las entradas que se utilizan en las tareas y las salidas que se producen. La idea centralsubyacente consiste básicamente, en decir quién (rol) realiza qué (tarea) para, a partir de unas
-
8/18/2019 Tendencias de la Ingeniería de Software - Impacto en las TIC
27/98
Jezreel Mejia Miranda - Mirna A. Muñoz Mata - Alma Y. Quiñonez Carrillo - Hugo A. Mitre Hernández - José A. Mora Soto
24
Fig.2 Idea básica de proceso SPEM 2.0
Tabla 1. Patrones de proceso propuestos por Scott Ambler.
3.2 Roles
A continuación se definen los roles técnicos y el perteneciente a la parte del cliente. Es importamencionar que roles como ingeniero de requisitos, administrador del proyecto, programador, diseñador,ingeniero de pruebas y técnico de soporte, tendrán la tarea de realizar los documentos que sean necesarios
de acuerdo a los productos de trabajo que se definieron.
Jefe del proyecto. Se encarga de dirigir el proyecto, asegurándose que cada actividad, tarea y producto detrabajo se realice de manera correcta. Las tareas que desempeña este rol se muestran en la Figura3.
Fig.3 Jefe de proyecto
Patrón de proceso
propuesto por Scott AmblerDescripción
Initiate El objetivo principal de este patrón es poner las bases para un proyecto exitoso. Se compone de ladefinición y validación de los requerimientos, la
administración de documentos, la justificación ydefinición de la infraestructura del proyecto.Construct Este patrón se concentra en la construcción de la
aplicación de manera que sea fácil de mantener y demejorar. Incluye tareas de modelado, programación,
pruebas unitarias y reutilización. Deliver Se enfoca en proporcionar al cliente una
aplicación que se haya desarrollado con un trabajode alta calidad y que se encuentre bien documentada.Se basa en realizar pruebas, mejorar los defectos, yen la liberación del sistema poniéndola a disposiciónde los usuarios y capacitándolos.
Maintenance and Support Su objetivo es mantener la aplicación en
funcionamiento y lo más actualizada posible. Esdecir, que se atienden las necesidades de los usuarios proporcionando capacitación, dando respuesta a susdudas y reparando cualquier problema que se
presente.
-
8/18/2019 Tendencias de la Ingeniería de Software - Impacto en las TIC
28/98
Jezreel Mejia Miranda - Mirna A. Muñoz Mata - Alma Y. Quiñonez Carrillo - Hugo A. Mitre Hernández - José A. Mora Soto
25
Ingeniero de requisitos. Recolecta toda la información necesaria que el cliente proporciona para eldesarrollo de la aplicación. Las tareas que desempeña este rol se muestran en la Figura 4.
Fig.4 Ingeniero de requisites
Administrador del proyecto. Es el encargado de elaborar todos los documentos administrativos del proyecto. Las tareas que desempeña este rol se muestran en la Figura 5.
Fig.5 Administrador del proyecto
Programador. Es el encargado de construir la aplicación de acuerdo con las especificaciones dadas enlos requisitos que el cliente proporcionó. También realiza las mejoras de los defectos que la aplicaciónnecesite. Las tareas que desempeña este rol se muestran en la Figura 6.
Fig.6 Programador
Diseñador. Analiza los requisitos y en base a ellos elabora los modelos que permitirán observar con másdetalla cómo estará constituida y estructurada la aplicación. Las tareas que desempeña este rol semuestran en la Figura 7.
Fig.7 Diseñador
Ingeniero de pruebas. Realiza las pruebas que son necesarias para verificar la correcta funcionalidad dela aplicación y documenta todo a través de reportes. Las tareas que desempeña este rol se muestran en laFigura 8.
Fig.8 Ingeniero de pruebas
Técnico de soporte. Es el encargado de recibir, analizar y proporcionar una solución a las solicitudes desoporte que el cliente requiere. Las tareas que desempeña este rol se muestran en la Figura 9.
-
8/18/2019 Tendencias de la Ingeniería de Software - Impacto en las TIC
29/98
Jezreel Mejia Miranda - Mirna A. Muñoz Mata - Alma Y. Quiñonez Carrillo - Hugo A. Mitre Hernández - José A. Mora Soto
26
Fig.9 Técnico de soporte
Usuario final. Es el cliente que se encarga de aportar la información necesaria sobre qué es lo que esperay cómo quiere interactuar con la aplicación Web. Las tareas que desempeña este rol se muestran en laFigura 10.
Fig.10 Usuario Final
3.3 Fases del proceso
En esta sección se explicarán a detalle las fases que conforman el proceso de desarrollo de aplicacionesWeb, cada una de las cuales se conforman de actividades que a su vez contienen tareas y productos detrabajo. El proceso consta de cuatro fases principales: inicio, construcción, y mantenimiento-soporte, delas cuales las fases de construcción y entrega son iterativas (Figura 11).
Fig.11 Fases del proceso
3.3.1 Fase de Inicio
La fase de inicio tiene como objetivo obtener información proveniente del cliente para detectar losrequerimientos para la construcción de la aplicación, así como preparar los documentos que permitan unamayor organización para lograr el éxito del proyecto. Las actividades propuestas en esta fase seseleccionaron del patrón de proceso Initiate (Inicio) propuesto por Scott Ambler (Figura 12) y se detallana continuación:
Fig.12 Fase de inicio
Definir y validar requerimientos. Determina exactamente las características del software que seentregará al usuario final, para ello se realizan una serie de actividades con el fin de recolectar, definir yvalidar los requisitos que indiquen qué características tendrá la aplicación a desarrollar. Las tareas arealizar son:
Definición de requerimientos. El jefe del proyecto y el ingeniero de requisitos se citan con el
cliente para realizar una serie de entrevistas que permitan obtener la mayor cantidad de
información para determinar los requerimientos de la aplicación que se quiere desarrollar.
Documentación de requerimientos. El ingeniero de requisitos realiza un documento de
requerimientos donde especifica cada uno de los requerimientos del sistema.
Validación de requerimientos. El ingeniero de requisitos, el jefe del proyecto y el cliente se
reúnen en varias ocasiones según se requiera con el fin de realizar un análisis para verificar los
requerimientos que se tienen, para evitar se olvide algún requisito o que no se haya comprendido
con claridad.El producto de trabajo generado es: Documento de requerimientos. Especificación a detalle de los requerimientos acordados con el
-
8/18/2019 Tendencias de la Ingeniería de Software - Impacto en las TIC
30/98
Jezreel Mejia Miranda - Mirna A. Muñoz Mata - Alma Y. Quiñonez Carrillo - Hugo A. Mitre Hernández - José A. Mora Soto
27
Definir documentos de administración. En esta etapa se crean documentos importantes que permiten laadministración adecuada del proyecto. Las tareas a realizar son:
Elaboración del plan del proyecto. El jefe del proyecto y el documentador realizan un
documento formal y aprobado el cual se usará para guiar, controlar y ejecutar el proyecto.
Elaboración del plan de evaluación de riesgos. El jefe del proyecto y el documentador evalúan
e identifican los posibles riesgos que surgirán durante el desarrollo del proyecto y plantean
medidas de solución. El objetivo es identificar los riesgos para que tengan un impacto mínimo enel proyecto y así evitar pérdidas de tiempo y dinero.
Elaboración del plan de aseguramiento de la calidad . El jefe del proyecto y el documentador
identifican las técnicas y procedimientos que se emplearán en las actividades de prueba y
aseguramiento de la calidadLos productos de trabajo generados son: Plan del proyecto. Documento que permite organizar todos los componentes que conforman un
proyecto. Plan de evaluación de riesgos. Documento en donde se definen los posibles riesgos del
proyecto, su prioridad y la tasa de impacto que tendrá, así como posibles alternativas desolución.
Plan de aseguramiento de la calidad. Documento que describe las políticas y procedimientosde prueba que serán empleadas.
Justificación. Se conforma de un estudio de factibilidad y por la identificación de posibles riesgos que puedan surgir durante el desarrollo del proyecto. Las tareas a realizar son:
Realización del estudio de factibilidad. El administrador del proyecto es el encargado de
realizarlo, con el fin de comparar diversas alternativas de implementación basándose en la
factibilidad técnica, económica y operacional que se tenga. De acuerdo con los resultados que se
obtengan se selecciona la alternativa que mejor convenga.
Identificación de riesgos. El administrador del proyecto identifica y define los riesgos posibles
que fueron encontrados durante el estudio de factibilidad técnica y operacional del proyecto, los
cuales se agregan al documento de riesgos.El producto de trabajo generado es: Documento de estudio de factibilidad. Describe los resultados del estudio de factibilidad. Documento de riesgos. Describe los posibles riesgos y sus soluciones.
Definir infraestructura. Se define la infraestructura necesaria para el desarrollo de la aplicación: lasherramientas de desarrollo, el equipo de trabajo, entre otras. Las tareas a realizar son:
Definición del equipo del proyecto. El administrador del proyecto/ingeniero de infraestructura
selecciona a las personas que formarán parte del equipo de desarrollo de acuerdo a sus
habilidades, asignando a cada una su rol y las responsabilidades que tendrá dentro del desarrollo
del proyecto.
Adaptación del proceso de software. Se seleccionan y definen los procedimientos y
metodologías que se deberán seguir para que los miembros del equipo de desarrollo sepan qué es
lo que harán y cómo se realizará, con el fin de aumentar la eficacia del equipo del proyecto.
También se seleccionan y definen los estándares y directrices que se aplicarán en el proyecto
para asegurar consistencia y mantenibilidad.
Definición de herramientas. Antes de comenzar la fase de construcción se necesita seleccionar
la herramienta que se utilizará para el modelado, la documentación, la administración del
proyecto, entornos de programación, de soporte y de prueba.El producto de trabajo generado es: Documento de infraestructura. Tiene una descripción de las personas involucradas en el
proyecto, cuáles serán los roles y qué responsabilidades tendrán, así como las herramientas deapoyo para el desarrollo
3.3.2 Fase de Construcción
La fase de construcción se compone de tres etapas, así como una serie de iteraciones para el desarrollo decada parte de la aplicación Web y al final se define un hito que permite verificar si los objetivos se
cumplieron. Se basa en el patrón de proceso Construct (Construcción) propuesto por Scott Ambler(Figura 13) y consta de las siguientes actividades:
-
8/18/2019 Tendencias de la Ingeniería de Software - Impacto en las TIC
31/98
Jezreel Mejia Miranda - Mirna A. Muñoz Mata - Alma Y. Quiñonez Carrillo - Hugo A. Mitre Hernández - José A. Mora Soto
28
Fig.13 Fase de construcción
Modelado. Se crean diversos modelos con base en los requerimientos que permiten al desarrollador unamejor compresión de lo que realmente se desea construir. Las tareas a realizar son:
Diseño del modelo de requerimientos. El diseñador con base en los requisitos identifica los
actores que participarán en el uso de la aplicación Web así como las funciones a las que tendrá
acceso cada uno.
Diseño del modelo conceptual. Consiste en el diagrama de clases que representa los datos del
dominio que se usan en la aplicación.
Diseño del modelo de presentación. El diseñador define cómo se verá estructurada la
aplicación Web, es decir, crea las interfaces de usuario que se mostrarán. Se sugiere utilizar los
patrones de diseño de interfaz de usuario, los cuales permiten un buen diseño de interfaz.
Diseño del modelo de navegación. El diseñador define la forma en cómo el usuario navegará a
través de la aplicación Web. Definición de la tecnología a utilizar. Determinar qué tecnología se utilizará para el desarrollo
de la aplicación Web.
Los productos de trabajo generados son: Modelo de requerimientos. Permite representar los elementos que formarán parte de la
aplicación Web, así como la relación que existirá entre ellos.
Modelo conceptual. Permite representar las clases con los elementos que formarán parte de la
aplicación.
Modelo de presentación. Permite representar la forma en que se presentará la información al
usuario, así se tiene una mejor comprensión y se especifica cómo los actores interactuarán con la
aplicación.
Modelo de navegación. Permite representar la navegación a páginas relacionadas a través de
asociaciones o enlaces hipertextuales. Tecnología. Engloba el lenguaje de programación, servidor de base de datos, y cualquier
tecnología a utilizar para el desarrollo de la aplicación Web.
Programación. Se genera el código fuente para el desarrollo de la aplicación Web y su respectivadocumentación. Aquí se desarrolla la tarea:
Codificación y documentación. El programador con base en los requisitos, y los modelos que
se diseñaron anteriormente, construye la aplicación Web haciendo uso de la tecnología de
programación que se seleccionó, así como también se genera la documentación necesaria para el
usuario. En esta etapa se sugiere utilizar patrones de diseño propuestos por Gamma.
El producto de trabajo es: Código Fuente Documentado. Es un conjunto de instrucciones que engloban la funcionalidad
de la aplicación incluyendo información detallada. Pruebas unitarias. Se enfoca en la verificación, validación y prueba de documentos, modelos y
código fuente que se generó durante cada iteración. Las tareas a realizar son: Realización de pruebas. El ingeniero de pruebas realiza una serie de pruebas necesarias para
verificar que los artefactos desarrollados funcionen bien de acuerdo a lo que el usuario necesita,
y documenta lo que salió mal, sugiriendo su solución.
Realización de correcciones. El programador, con base al reporte de pruebas, corrige los
errores que se presentaron y se verifica nuevamente que todo funcione de manera correcta.
El producto de trabajo generado es: Reporte de pruebas unitarias. Documenta todos los detalles de las pruebas que se realizan a la
aplicación Web.
3.3.3 Fase de Entrega
La fase de entrega permite ajustar los últimos detalles del producto para asegurar que al ser implementadofuncionará de manera adecuada para satisfacer las necesidades del cliente. Consta de un conjunto de
-
8/18/2019 Tendencias de la Ingeniería de Software - Impacto en las TIC
32/98
Jezreel Mejia Miranda - Mirna A. Muñoz Mata - Alma Y. Quiñonez Carrillo - Hugo A. Mitre Hernández - José A. Mora Soto
29
visualizar que los objetivos de la iteración se cumplieron, así como de las siguientes actividades, lascuales fueron seleccionadas del patrón de proceso Deliver (Entrega) propuesto por Scott Ambler (Figura14).
Fig.14 Fase de entrega
Pruebas de integración. Se junta lo que se desarrolló durante la iteración con lo que ya funciona de laliberación anterior, para después realizar una serie de pruebas para verificar que funciona correctamente.Las tareas a realizar son:
Integración de módulos. El programador integra el módulo que se desarrolló durante la
iteración con lo que ya se tiene de liberaciones anteriores.
Realización de pruebas del sistema. El ingeniero de pruebas realiza una serie de pruebas a la
aplicación Web para determinar las capacidades de la aplicación y resolver los problemas antes
de pasar a las pruebas de usuario. Realización de pruebas de usuario. El usuario realiza un proceso de pruebas con el fin de
verificar que la aplicación satisface sus necesidades.
El producto de trabajo generado es: Reporte de pruebas de integración. Documenta todos los detalles de las pruebas que se
realizan a la aplicación Web.
Mejora. Se reparan defectos críticos que se detectaron en la etapa de pruebas de integración.Consta de las siguientes tareas:
Priorización de defectos. El ingeniero de pruebas analiza los defectos que se encontraron
durante la etapa de pruebas de integración y los enlista de acuerdo a la prioridad que requieren
para ser resueltos, de manera que se reparen a tiempo antes de que generen un gasto mayor
después.
Reparación de defectos. El programador se encargará de dar solución a los defectos según su prioridad. Antes de realizar estos cambios, se realizará un análisis de impacto, para determinar
las posibles afectaciones al hacer el cambio. Con base a los resultados de este análisis, se
realizarán las modificaciones que necesite la aplicación, en dónde se actualizarán los modelos,
código fuente, documentación y se realizará otra vez pruebas unitarias. El producto de trabajo generado es: Reporte de mejora defectos. Enlista los defectos que se encontraron con base a su prioridad y la
descripción detallada de cada uno.
Liberación. Se entrega la liberación de una iteración hasta llegar a la entrega final de la aplicación Web,la documentación correspondiente y dar la capacitación necesaria al usuario. Las tareas a realizar son:
Preparación de la liberación. El administrador y jefe del proyecto se aseguran y preparan todo lo
necesario (documentos, aplicación, etc.) para realizar la entrega al cliente.
Liberación a la comunidad de usuarios. El jefe del proyecto se encarga de realizar la entrega
formal de la aplicación al cliente para su implantación.
Los productos de trabajo generados son: Aplicación Web. Producto funcionalmente terminado que cuenta con las características que el
cliente solicitó.
Manual del usuario. Documento dirigido al usuario final que explica el funcionamiento de la
aplicación, desde su instalación hasta cómo se utiliza en general.
3.3.4 Fase de Mantenimiento-soporte
La fase de mantenimiento-soporte es la fase final del proceso e involucra la identificación de defectos y la
corrección de los mismos una vez que el producto está implementado, de manera que se mejore yoptimice la aplicación. Consta de las siguientes actividades, las cuales fueron seleccionadas del patrón de proceso Maintenance and Support (Mantenimiento-soporte) propuesto por Scott Ambler (Figura 15).
-
8/18/2019 Tendencias de la Ingeniería de Software - Impacto en las TIC
33/98
Jezreel Mejia Miranda - Mirna A. Muñoz Mata - Alma Y. Quiñonez Carrillo - Hugo A. Mitre Hernández - José A. Mora Soto
30
Fig.15 Fase de mantenimiento-soporte
Soporte. Se da respuesta a las solicitudes entrantes provenientes de los usuarios, para identificar una
solución a la solicitud y después supervisar la implementación a esa solución. Las tareas a realizar son: Respuesta a una solicitud. El técnico de soporte recibe una solicitud de un usuario el cual
necesita que le brinden soporte para resolver un problema a la brevedad posible.
Determinación de la resolución. El técnico de soporte trabajará en conjunto con el usuario
solicitante con el fin de determinar una solución para el problema.
Resolución del problema. Una vez que se tiene una estrategia de solución, el técnico en soporte
guiará al usuario para implementar la solución con el objetivo de resolver el problema actual.
Los productos de trabajo generados son: Solución. Es la respuesta que se le da a un problema para que funcione adecuadamente el
elemento que lo presenta.
Solicitud de cambio de software (SCR). Descripción de una mejora al software. Las solicitudes
se envían a la etapa de identificar defectos y mejores para que se traten esos cambios.
Identificar defectos y mejoras. Se analizan las solicitudes de cambio de software que se definieron en laetapa de soporte de modo que esos cambios se identifican y se asignan a los elementos de configuraciónapropiados. Las tareas a realizar son:
Análisis de peticiones de cambio de software. Se analizan las solicitudes que se tienen y se
identifica si se trata de un defecto o de una mejora. Para ello se tienen cuatro categorías para
mantenimiento de cambios: preventivo y correctivo que se usan para defectos, y adaptativo -
perfectivo para mejoras.
Priorización de mantenimiento. Después de que se ya se identificó si se dará mantenimiento a
la aplicación por defecto o por mejora, se les asigna prioridad. Existen tres maneras de priorizar:
emergencia, urgente y regular.
Asignación de cambios de mantenimiento a los elementos de configuración. Se realizan los
cambios de acuerdo a su prioridad.
El producto de trabajo que se genera es: Reporte de mantenimiento-soporte. Documento que engloba una descripción de los problemas
de software que se identificaron y de los cambios que se realizarán.
4. Conclusiones
El uso de patrones de proceso en el desarrollo de software proporciona un beneficio ya que permitenreutilizar actividades que fueron probadas y tuvieron resultados de éxito en situaciones similares, lo quetiene como ventaja un desarrollo rápido, disminuyendo el riesgo de fracaso en los proyectos.
En la actualidad no se reporta un proceso basado en patrones de proceso para desarrollar aplicacionesWeb, por ello el presente documento presentó la definición de un proceso el cuál se basa en el conjuntode patrones de proceso propuesto por Scott Ambler. Consta de cuatro fases principales, así como susetapas, tareas y productos de productos de trabajo respectivos que se definieron como parte del proceso dedesarrollo para aplicaciones Web, el cual fue creado con base al meta-modelo SPEM 2.0 y de acuerdo a laselección de un conjunto de patrones de proceso que se consideraron importantes para el ciclo de vida dedesarrollo de aplicaciones Web. También se especifica cada uno de los roles que participan en este
proceso y sus responsabilidades.
5. Trabajo a futuro
Se trabaja en un caso de estudio para validar el proceso de desarrollo propuesto. Se desarrolla unaaplicación Web que automatice el proceso de residencias profesionales que se llevan a cabo en eldepartamento académico de sistemas y computación del Instituto Tecnológico de Orizaba. Actualmente
se está trabajando en la etapa de modelado de la fase de construcción, refinando detalles del modeloconceptual, de navegación y presentación.Como trabajo futuro se seguirá trabajando en las siguientes fases y etapas de desarrollo del caso de
-
8/18/2019 Tendencias de la Ingeniería de Software - Impacto en las TIC
34/98
Jezreel Mejia Miranda - Mirna A. Muñoz Mata - Alma Y. Quiñonez Carrillo - Hugo A. Mitre Hernández - José A. Mora Soto
31
6. Referencias
Alexander, C. (1979). The Timeless Way of Building. Oxford University Press, New York.
Ambler, S. W. (1999). More process patterns: building large-scale systems using object technology. CambridgeUniversityPress.
Ambler, S. W. (1998). Process patterns: building large-scale systems using object technology. Cambridge UniversityPress.
Gamma Erich et al (2009). Patrones de diseño. Pearson Addison Wesley,
Mohsen Asadi, R. R. (2009.). "Method engineering process patterns.". Proceedings of the 2nd India softwareengineering conference.New York, USA: ACM. , 143-144.
Ruiz Francisco, J. V. (2008). ―Guía de Uso de SPEM 2 con EPF Composer‖.
Tran, H. C. (2007). "Modeling Process Patterns and Their Application.". Software Engineering Advances, ICSEA. ,25-31.
Xiang-xi Meng, Y.-s. W.-J. (2007). "A Process Pattern Language for Agile Methods.". Software EngineeringConference, APSEC. , 374 - 381.
-
8/18/2019 Tendencias de la Ingeniería de Software - Impacto en las TIC
35/98
Jezreel Mejia Miranda - Mirna A. Muñoz Mata - Alma Y. Quiñonez Carrillo - Hugo A. Mitre Hernández - José A. Mora Soto
Evaluación Heurística de Herramientas de Composición de
Componentes Centrada en el Usuario Final
Yadira Jarvio Hernández1
, Perla Velasco-Elizondo2
y
Edgard Benítez-Guerrero1
1 Universidad Veracruzana, Facultad de Estadística e Informática, Xalapa, VER, 91020, México.
2 Universidad Autónoma de Zacatecas, Unidad Académica de Ingeniería, Ciudad Universitaria Siglo XXI,Zacatecas, ZAC, 98000, México.
[email protected], [email protected], [email protected]
Resumen. Cada vez más personas realizan diversas tareas apoyándose de sistemas de software queson construidos a partir de la composición de componentes. A pesar de la popularidad del desarrollocentrado en composición y las herramientas existentes para soportarlo hay evidencia sobre que el usode éstas sigue siendo complicado. Sin embargo, existe poca evidencia que permita comprender esta problemática en un contexto de usuarios finales. En este trabajo se realiza una evaluación heurísticade herramientas de composición de componentes centrada en el usuario final. Una contribuciónimportante de esta evaluación es que considerando un conjunto de aspectos intrínsecos al desarrollocentrado en composición y a los usuarios finales, se identifican un conjunto de heurísticas relevantes para detectar problemas generales de usabilidad. Las heurísticas y los problemas identificados proveen una base de conocimiento que puede ser extendida en dominios específicos de aplicación para mejorar el diseño de herramientas de composición.
Keywords: evaluación heurística, composición de componentes, usuarios finales.
1 Introducción
Muchas personas realizan diversas tareas apoyándose de sistemas de software que son construidos a partirde la composición de componentes. En términos generales, un componente es un elemento de software
pre-existente que implementa alguna funcionalidad, la cual puede ser accedida a través de interfaces biendefinidas (Sommerville, 2006). Los COTS (Commercial Off-The-Shelf) (Morisio, Seaman, Basili, Parra,Kraft, & Condon, 2002), los Servicios Web (Cauldwell, Chawla, & Chopra, 2002), los Mashlets(Abiteboul, Greenshpan, & Milo, 2008) o las (Web) APIs son ejemplos de componentes en estossistemas.
Enfoques de desarrollo como el Desarrollo Basado en Componentes (Sommerville, 2006), las Líneasde Productos de Software (Clements & Northrop, 2001), la Arquitectura Orientada a Servicios (Erl, 2005)o más recientemente las arquitecturas de micro servicios (Fowler, 2014) han adquirido popularidad puestoque soportan el desarrollo de sistemas de software usando un enfoque centrado en la composición.Actualmente existen diversas herramientas y (repositorios de) componentes en dominios específicos quefacilitan el desarrollo de sistemas bajo este enfoque.
La disponibilidad de herramientas y (repositorios de) componentes ha contribuido a que nuevascomunidades de usuarios incursionen en el desarrollo de este tipo de sistemas. Un ejemplo es la
comunidad de usuarios finales (Mehandjiev, Namoune, Wajid, Macaulay, & Sutcliffe, 2010), (Garlan,Dwivedi, Ruchkin, & Schmerl, 2012), (Roy Chowdhury, 2012). En términos generales este tipo deusuarios y los sistemas que construyen presentan las siguientes características:a. Son inexpertos en materia de desarrollo de sistemas y, generalmente, expertos en algún dominio
profesional. b. Soportan sus tareas diarias mediante sistemas de software que ellos mismos construyen a partir de la
composición de componentes de software que son provistos por terceras partes.c. Los sistemas que construyen tienen una arquitectura ―data -flow‖ (Taylor, Medvidovic, & Dashofy,
2009).Ejemplos de estos usuarios incluyen a sociólogos realizando análisis de influencia en redes sociales
(Knoke & Yang, 2008) con scripts que usan las APIs de Twitter (Twitter, 2015) e igraph para R (Team,2015) o biólogos realizando análisis de cadenas de proteínas con workflows creados con la herramientade composición Taverna (School of Computer Science, 2010) y servicios Web en BioCatlogue (Bhagat,
et al., 2010).A pesar de la popularidad del desarrollo centrado en composición y las herramientas existentes para
soportarlo hay evidencia sobre que el uso de éstas sigue siendo complicado Sin embargo existe muy
-
8/18/2019 Tendencias de la Ingeniería de Software - Impacto en las TIC
36/98
Jezreel Mejia Miranda - Mirna A. Muñoz Mata - Alma Y. Quiñonez Carrillo - Hugo A. Mitre Hernández - José A. Mora Soto
33
detectar problemas generales de usabilidad relevantes al contexto de un usuario final. En contraste contrabajos relacionados, una contribución importa