SlideShare una empresa de Scribd logo
1 de 20
Un enfoque colaborativo para la
recuperación de la arquitectura de
referencia en Líneas de Producto Software
IV Jornadas Iberoamericanas de HCI
UNIVERSIDAD DEL CAUCA
MAESTRÍA EN COMPUTACIÓN
- IDIS -
Alejandro Bolaños Ussa
Advisor
PhD. Julio Ariel Hurtado
Advisor
PhD(c). Marta Cecilia Camacho
Agenda
Líneas de Producto Software. ¿Qué es una SPL? Ventajas, dificultades y alcance (Scoping) 3
Arquitectura del Software. ¿Qué es S.A? Documentación y vistas 6
Arquitectura en líneas de Productos Software – PLA 7
Recuperación de Arquitectura Software – SAR 8
Planteamiento del Problema: Cómo recuperar una Arquitectura de Software? Código fuente,
dinámico y resultados.
9
Objetivo: Lograr un enfoque de colaboración para recuperar una Arquitectura de Referencia 12
Trabajo relacionado 13
Enfoque Colaborativo 14
Metodología de investigación – Progresos y resultados esperados 15
Referencias 17
¿Preguntas? 19
2
Líneas de Producto Software
Es un conjunto de sistemas intensivos en
software que comparten un conjunto común
de características administradas que
satisfacen las necesidades específicas de un
segmento de mercado o misión particular y
que se desarrollan a partir de un conjunto
común de activos centrales de una manera
determinada[Clements, 2002]
3
Ventajas
Disminución del tiempo de
comercialización
Aumento de la calidad del
producto
Ganancia de productividad
Satisfacción del cliente
4
Requerimientos
Arquitecturas
Componentes
Pruebas
Procesos y
Personas
SCOPING
Definición del alcance en SPL –(scoping)
Es una descripción de los productos que
constituirán la línea de productos. En su forma
más simple, el alcance puede consistir en una
lista enumerada de nombres de productos.
Su alcance debe definirse cuidadosamente, este
evoluciona a medida que cambian las
condiciones del mercado.
Arquitectura de Referencia en SPL = {A ∩ B ∩ C ∩ D ∩ E}
5
Arquitectura Software- SA
• “Las estructuras de un sistema,
compuestas de elementos con
propiedades visibles de forma
externa y las relaciones que existen
entre ellos.”[L. Bass, P. Clements, R.
Kazman]
• La manera en que se estructura un
sistema permitirá o impedirá que se
satisfagan los atributos de calidad.
6
Arquitectura en Líneas de Producto - PLA 7
Rationale-Decisiones
Patrones Arquitectónicos
Patrones de diseño
Atributos de Calidad
Componentes variables Componentes reutilizables
Recuperación de la Arquitectura Software -
SAR
• La recuperación de la arquitectura de software (SAR) implica la
extracción de información arquitectónicamente relevante de un
sistema software, la abstracción y la descripción de la
arquitectura recuperada.
8
SAR
Módulos,
componentes,
patrones, decisiones,
atributos de calidad.
Desconocimiento del
sistema
Planteamiento del problema
• Existen varias propuestas de recuperación de arquitectura tal como se
definen Koznov y Romanovsky [4], que son el análisis del código fuente,
métodos formales, entre otros. Sin embargo, los métodos poseen un
punto débil como lo es la sincronización y/o coherencia entre el código,
el conocimiento, el dominio y el modelo recuperado, ya que son poco
efectivos en ambientes que evolucionan activamente
• En el caso de las líneas de productos, existen las siguientes propuestas:
Crescencio Lima [14], inicialmente propone en un enfoque para
recuperar PLA basado en el uso y la adaptación de técnicas y
herramientas para la recuperación de arquitectura software.
• Lima y Santana [15], establecen que las PLA es la arquitectura principal
en todos los productos pertenecientes a una línea.
9
Planteamiento del problema 10
Reference architecture construction process [Pinzer, 2004]
[Bosch, 2001]
Pregunta de investigación
• ¿Cómo recuperar una arquitectura de referencia para una
organización a partir de los productos, componentes, documentos
y personal involucrado en la construcción de productos previos,
considerando el alcance identificado para la SPL que será
desarrollada, y cuya principal fuente sean los stakeholders?
11
Objetivos 12
Proponer un enfoque colaborativo para la recuperación de
arquitectura de referencia en líneas de productos software
planteadas a partir de productos previamente construidos.
Establecer las técnicas o métodos
utilizados en las experiencias SAR en
el contexto de la construcción de
SPL, de especificación del rationale
arquitectónico y del trabajo
colaborativo en la ingeniería de
software.
Seleccionar y adaptar un método de
recuperación de arquitecturas y su
rationale, en el contexto de
construcción de una SPL a través de
la incorporación de aspectos de
trabajo colaborativo.
Evaluar el método de recuperación
de la arquitectura de referencia
propuesto a través de la comprensión
del producto a nivel arquitectural y
la integralidad del conocimiento
arquitectónico con el alcance de la
SPL en un estudio de caso práctico
Trabajo relacionado
SAR
SAR for
Product
Families
Evolution in
Software
Product
Lines
PLAR: an
approach
proposal
Experiences
with using
the
systematic
method for
SAR
Cost-Effective
Traceability
Links for
Architecture
Level Software
Understanding
Evidence for
Understanding
the
Relationship
between
PLA_SAR
Método de
recuperación
de la
arquitectura
EVAR
13
Enfoque
colaborativo
Enfoque colaborativo
EVAR
•Rationale
•Architectural
views
•Stakeholders
SPL
•PLA
•Feature model
•Scope
Collaborative
Approach
•Roles
•CSCW
•Patrones
•Stakeholders
EVAR ++
14
Metodología 15
Mario
Bundge,
2002
Kitchenha
m, 2004
Henderson-
Sellers, 2014
•Planteamiento del problema
•Reconocimiento de los hechos
•Análisis
Fase 1
•Selección de los factores pertinentes
Definición de las hipótesis
•Selección del método de recuperación de la
arquitectura de referencia
Fase 2
• Caracterización de los métodos de mejora y de
los elementos a emplear
• Construcción de la propuesta de mejora del
método de recuperación
Fase 3
•Evaluación de la propuesta de mejora.
Fase 4
•Introducción de las conclusiones en la teoría
•Confrontación de los resultadosFase 5
Progreso, resultados esperados
Review of
the literature
Review of
recovery tools
and methods
Selection of
tools and
method for
architectural
recovery
Termination
of the
Scientific
Article, a
review of the
literature
Case study
design for
architecture
recovery
(single). A
practical
case
Application
and execution
of the case
study
Case study
design, for
the
validation of
SAR + SPL +
Collaborative
Approach
Application
and execution
of the case
study
Report with
the results
obtained from
the execution
of the case
study
Evaluation,
Analysis and
Publication of
research
results
16
Referencias
• L. Bass, P. Clements, R. Kazman, Software Architecture in Practice, 2nd Edition, Addison
Wesley, 2003
• [1] A. E. Hassan y R. C. Holt, «Architecture recovery of Web applications,» Software
Engineering, International Conference, pp. 349-366, 2002.
• [2] J. Tahuiton Mora, «Arquitectura de software para aplicaciones Web,» México D.F., 2011.
• [3] E. Albassam, H. Gomaa, and D. A. Menascé, “Variable Recovery and Adaptation Connectors
for Dynamic Software Product Lines.”
• [4] D. Koznov, K. Romanovsky y A. Nikitin, «A Method for Recovery and Maintenance of
Software Architecture».
• [5] M. Pinzger, H. Gall, J.-F. Girard, J. Knodel, C. Riva, W. Pasman, C. Broerse y J. G.
Wijnstra, «Architecture Recovery for Product Families,» pp. 332 - 351, 2003.
• [6] I. Pashov y M. Riebisch, «Using feature modeling for program comprehension and software
architecture recovery,» Engineering of Computer-Based Systems, 2004. Proceedings. 11th IEEE
International Conference and Workshop on the, pp. 406-417, 2004
17
Referencias
• [7] F. Ahmed y L. F. Capretz, «The software product line architecture: An empirical investigation of key process activities,» Information and
Software Technology, vol. 50, nº 1, p. 1.098 a 1.113, 2008.
• [8] M. Svahnberg y E. Bosch, «Evolution in software product lines: Two cases,» Journal of Software Maintenance: Research and Practice, vol. 11,
nº 6, pp. 391-422, 1999.
• [9] F. Solms, “Experiences with using the Systematic Method for Architecture Recovery (SyMAR),” ACM Int. Conf. Proceeding Ser., pp. 170–178,
2013.
• [10] M. A. Javed, S. Stevanetic, and U. Zdun, “Cost-effective traceability links for architecture-level software understanding: A controlled
experiment,” ACM Int. Conf. Proceeding Ser., vol. 28–Septemb, pp. 69–73, 2015.
• [11] C. R. L. Neto, M. P. S. Cardoso, C. von F. G. Chavez, and E. S. de Almeida, “Initial Evidence for Understanding the Relationship between
Product Line Architecture and Software Architecture Recovery,” in 2015 IX Brazilian Symposium on Components, Architectures and Reuse
Software, 2015, pp. 40–49.
• [12] Y. A. Ordoñez Guzmán y E. A. Giraldo Muñoz, «Método de recuperación de arquitecturas basado en la focalización evaluativa y la
visualización de software: un estudio de caso en una pequeña organizacion de software,» 2016.
• [13] C. &. Northrop, Software Product Lines: Practices and Patterns: Practices and Patterns, 2002.
• [14] C. Lima, «Product line architecture recovery: An approach proposal (extended abstract),» IEEE International Conference on Software
Engineering Companion Product, 2017
• [15] C. Lima, E. Santana de Almeida, M. P. Soares Cardoso, C. v. F. G. Chavez y I. d. C. Machado, «Investigating the Variability Impact on the
Recovery of Soſtware Product Line Architectures: An Exploratory Study,» ACM Press, pp. 1-, 2017.
18
Un enfoque colaborativo para la
recuperación de la arquitectura de
referencia en Líneas de Producto Software
IV Jornadas Iberoamericanas de HCI
¿PREGUNTAS?
UNIVERSIDAD DEL CAUCA
MAESTRÍA EN COMPUTACIÓN
- IDIS -
Alejandro Bolaños Ussa
Advisor
PhD. Julio Ariel Hurtado
Advisor
PhD(c). Marta Cecilia Camacho
Gracias
20

Más contenido relacionado

La actualidad más candente

Arquitectura software capitulo i
Arquitectura software capitulo iArquitectura software capitulo i
Arquitectura software capitulo iCathy Guevara
 
Fundamentos arquitectura del software
Fundamentos arquitectura del softwareFundamentos arquitectura del software
Fundamentos arquitectura del softwarevenezuela2015
 
Diseno de la arquitectura
Diseno de la arquitecturaDiseno de la arquitectura
Diseno de la arquitecturaFatima Cham
 
Arquitecturas de software - Parte 2
Arquitecturas de software - Parte 2Arquitecturas de software - Parte 2
Arquitecturas de software - Parte 2Marta Silvia Tabares
 
Estilos de Software
Estilos de SoftwareEstilos de Software
Estilos de Softwarebjjuarez
 
Diseño de arquitectura del software
Diseño de arquitectura del softwareDiseño de arquitectura del software
Diseño de arquitectura del softwaredeahesy najera garcia
 
Arquitecturas de software - Parte 1
Arquitecturas de software - Parte 1Arquitecturas de software - Parte 1
Arquitecturas de software - Parte 1Marta Silvia Tabares
 
Arquitectura Basada En Componentes
Arquitectura Basada En ComponentesArquitectura Basada En Componentes
Arquitectura Basada En Componentesurumisama
 
Arquitectura del software
Arquitectura del softwareArquitectura del software
Arquitectura del softwareJohns Chacon
 
Arquitectura de software y Generación de computadores.
Arquitectura de software y Generación de computadores.Arquitectura de software y Generación de computadores.
Arquitectura de software y Generación de computadores.Juan Franco
 
Principios de diseño de la arquitectura del software
Principios de diseño de la arquitectura del softwarePrincipios de diseño de la arquitectura del software
Principios de diseño de la arquitectura del softwareJose Patricio Bovet Derpich
 
DiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del SoftwareDiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del Softwarelcastillo110
 

La actualidad más candente (20)

Principios diseño del software
Principios diseño del software Principios diseño del software
Principios diseño del software
 
Arquitectura software capitulo i
Arquitectura software capitulo iArquitectura software capitulo i
Arquitectura software capitulo i
 
Is.1p.5 arquitectura de software
Is.1p.5 arquitectura de softwareIs.1p.5 arquitectura de software
Is.1p.5 arquitectura de software
 
Fundamentos arquitectura del software
Fundamentos arquitectura del softwareFundamentos arquitectura del software
Fundamentos arquitectura del software
 
Diseno de la arquitectura
Diseno de la arquitecturaDiseno de la arquitectura
Diseno de la arquitectura
 
Arquitecturas de software - Parte 2
Arquitecturas de software - Parte 2Arquitecturas de software - Parte 2
Arquitecturas de software - Parte 2
 
Estilos de Software
Estilos de SoftwareEstilos de Software
Estilos de Software
 
Arquitectura
ArquitecturaArquitectura
Arquitectura
 
Arquitectura de Software
Arquitectura de SoftwareArquitectura de Software
Arquitectura de Software
 
Diseño de arquitectura del software
Diseño de arquitectura del softwareDiseño de arquitectura del software
Diseño de arquitectura del software
 
Arquitecturas de software
Arquitecturas de softwareArquitecturas de software
Arquitecturas de software
 
ingenieria de software
ingenieria de softwareingenieria de software
ingenieria de software
 
8.conceptos de diseño
8.conceptos de diseño8.conceptos de diseño
8.conceptos de diseño
 
Conceptos basicos arquitectura de software
Conceptos basicos arquitectura de softwareConceptos basicos arquitectura de software
Conceptos basicos arquitectura de software
 
Arquitecturas de software - Parte 1
Arquitecturas de software - Parte 1Arquitecturas de software - Parte 1
Arquitecturas de software - Parte 1
 
Arquitectura Basada En Componentes
Arquitectura Basada En ComponentesArquitectura Basada En Componentes
Arquitectura Basada En Componentes
 
Arquitectura del software
Arquitectura del softwareArquitectura del software
Arquitectura del software
 
Arquitectura de software y Generación de computadores.
Arquitectura de software y Generación de computadores.Arquitectura de software y Generación de computadores.
Arquitectura de software y Generación de computadores.
 
Principios de diseño de la arquitectura del software
Principios de diseño de la arquitectura del softwarePrincipios de diseño de la arquitectura del software
Principios de diseño de la arquitectura del software
 
DiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del SoftwareDiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del Software
 

Similar a Participación en simposio IV jornadas Iberoamericanas de HCI

050608 architect academy webcast 1
050608 architect academy webcast 1050608 architect academy webcast 1
050608 architect academy webcast 1juliank13
 
Actividad remedial_Maria_Albarran
Actividad remedial_Maria_AlbarranActividad remedial_Maria_Albarran
Actividad remedial_Maria_AlbarranMarijoalbarranb
 
Ingeniería de software - definiciones
Ingeniería de software - definicionesIngeniería de software - definiciones
Ingeniería de software - definicionesdettebe
 
Diseño de Sistemas de Información en la Empresa
Diseño de Sistemas de Información en la EmpresaDiseño de Sistemas de Información en la Empresa
Diseño de Sistemas de Información en la EmpresaEdicion Ticnews
 
29 sap tecnología arquitectura de software
29 sap tecnología   arquitectura de software29 sap tecnología   arquitectura de software
29 sap tecnología arquitectura de softwareLuis Alberto Perdomo
 
presentacion
presentacionpresentacion
presentacionjuanjovez
 
S8 arely medina_informe
S8 arely medina_informeS8 arely medina_informe
S8 arely medina_informeArely_Medina
 
Líneas De ProductosDe Software Y Método Watch
 Líneas De ProductosDe Software Y Método Watch Líneas De ProductosDe Software Y Método Watch
Líneas De ProductosDe Software Y Método WatchViviana131293
 
Presentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de CostePresentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de CosteCAMILO
 
PROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOSPROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOSCAMILO
 
Proyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de CostoProyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de CostoCAMILO
 
presentacion de software y estimacion de doste
presentacion de software y estimacion de dostepresentacion de software y estimacion de doste
presentacion de software y estimacion de dosteCAMILO
 
Proyecto de Software y Coste
Proyecto de Software y CosteProyecto de Software y Coste
Proyecto de Software y CosteCAMILO
 
Desarrollo de componentes
Desarrollo de componentesDesarrollo de componentes
Desarrollo de componenteschito86
 
Desarrollo de componentes
Desarrollo de componentesDesarrollo de componentes
Desarrollo de componentesdianiktlk
 
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTEPRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTECAMILO
 

Similar a Participación en simposio IV jornadas Iberoamericanas de HCI (20)

050608 architect academy webcast 1
050608 architect academy webcast 1050608 architect academy webcast 1
050608 architect academy webcast 1
 
Actividad remedial_Maria_Albarran
Actividad remedial_Maria_AlbarranActividad remedial_Maria_Albarran
Actividad remedial_Maria_Albarran
 
Ingeniería de software - definiciones
Ingeniería de software - definicionesIngeniería de software - definiciones
Ingeniería de software - definiciones
 
Diseño de Sistemas de Información en la Empresa
Diseño de Sistemas de Información en la EmpresaDiseño de Sistemas de Información en la Empresa
Diseño de Sistemas de Información en la Empresa
 
29 sap tecnología arquitectura de software
29 sap tecnología   arquitectura de software29 sap tecnología   arquitectura de software
29 sap tecnología arquitectura de software
 
Angelis Urdaneta
Angelis UrdanetaAngelis Urdaneta
Angelis Urdaneta
 
Dai1 ple2
Dai1 ple2Dai1 ple2
Dai1 ple2
 
presentacion
presentacionpresentacion
presentacion
 
S8 arely medina_informe
S8 arely medina_informeS8 arely medina_informe
S8 arely medina_informe
 
Líneas De ProductosDe Software Y Método Watch
 Líneas De ProductosDe Software Y Método Watch Líneas De ProductosDe Software Y Método Watch
Líneas De ProductosDe Software Y Método Watch
 
Proyecto
ProyectoProyecto
Proyecto
 
Proyecto
ProyectoProyecto
Proyecto
 
Presentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de CostePresentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de Coste
 
PROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOSPROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOS
 
Proyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de CostoProyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de Costo
 
presentacion de software y estimacion de doste
presentacion de software y estimacion de dostepresentacion de software y estimacion de doste
presentacion de software y estimacion de doste
 
Proyecto de Software y Coste
Proyecto de Software y CosteProyecto de Software y Coste
Proyecto de Software y Coste
 
Desarrollo de componentes
Desarrollo de componentesDesarrollo de componentes
Desarrollo de componentes
 
Desarrollo de componentes
Desarrollo de componentesDesarrollo de componentes
Desarrollo de componentes
 
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTEPRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
 

Más de Alejandro Bolaños Ussa

Propiedad intelectual y patentes como desarrollo económico en colombia(1)
Propiedad intelectual y patentes como desarrollo económico en colombia(1)Propiedad intelectual y patentes como desarrollo económico en colombia(1)
Propiedad intelectual y patentes como desarrollo económico en colombia(1)Alejandro Bolaños Ussa
 
El factor movilidad vehícular, un primer gran problema de las ciudades en cr...
El factor movilidad vehícular, un primer gran  problema de las ciudades en cr...El factor movilidad vehícular, un primer gran  problema de las ciudades en cr...
El factor movilidad vehícular, un primer gran problema de las ciudades en cr...Alejandro Bolaños Ussa
 
Seminario de programación Java, con Apache Maven, J2EE, JPA, Primefaces
Seminario de programación Java, con Apache Maven, J2EE, JPA, PrimefacesSeminario de programación Java, con Apache Maven, J2EE, JPA, Primefaces
Seminario de programación Java, con Apache Maven, J2EE, JPA, PrimefacesAlejandro Bolaños Ussa
 
MONOGRAFIA PARA EL MANEJO DE APLICACIONES SOFTWARE
MONOGRAFIA PARA EL MANEJO DE APLICACIONES SOFTWAREMONOGRAFIA PARA EL MANEJO DE APLICACIONES SOFTWARE
MONOGRAFIA PARA EL MANEJO DE APLICACIONES SOFTWAREAlejandro Bolaños Ussa
 
DESARROLLO DE UNA APLICACIÓN PARA EMPRESA
DESARROLLO DE UNA APLICACIÓN PARA EMPRESADESARROLLO DE UNA APLICACIÓN PARA EMPRESA
DESARROLLO DE UNA APLICACIÓN PARA EMPRESAAlejandro Bolaños Ussa
 
LA MENTE DEL HOMBRE UN MUNDO DE SUEÑOS CUMPLIDOS
LA MENTE DEL HOMBRE UN MUNDO DE SUEÑOS CUMPLIDOSLA MENTE DEL HOMBRE UN MUNDO DE SUEÑOS CUMPLIDOS
LA MENTE DEL HOMBRE UN MUNDO DE SUEÑOS CUMPLIDOSAlejandro Bolaños Ussa
 

Más de Alejandro Bolaños Ussa (16)

Importancia de la ética investigativa
Importancia de la ética investigativaImportancia de la ética investigativa
Importancia de la ética investigativa
 
Propiedad intelectual y patentes como desarrollo económico en colombia(1)
Propiedad intelectual y patentes como desarrollo económico en colombia(1)Propiedad intelectual y patentes como desarrollo económico en colombia(1)
Propiedad intelectual y patentes como desarrollo económico en colombia(1)
 
El factor movilidad vehícular, un primer gran problema de las ciudades en cr...
El factor movilidad vehícular, un primer gran  problema de las ciudades en cr...El factor movilidad vehícular, un primer gran  problema de las ciudades en cr...
El factor movilidad vehícular, un primer gran problema de las ciudades en cr...
 
Paradigma orientado a objetos
Paradigma orientado a objetosParadigma orientado a objetos
Paradigma orientado a objetos
 
Sustentación proyecto casa del vocal
Sustentación proyecto casa del vocalSustentación proyecto casa del vocal
Sustentación proyecto casa del vocal
 
Mercadéo Electrónico
Mercadéo ElectrónicoMercadéo Electrónico
Mercadéo Electrónico
 
Calculo de raíces de una ecuación
Calculo de raíces de una ecuaciónCalculo de raíces de una ecuación
Calculo de raíces de una ecuación
 
Seminario de programación Java, con Apache Maven, J2EE, JPA, Primefaces
Seminario de programación Java, con Apache Maven, J2EE, JPA, PrimefacesSeminario de programación Java, con Apache Maven, J2EE, JPA, Primefaces
Seminario de programación Java, con Apache Maven, J2EE, JPA, Primefaces
 
MONOGRAFIA PARA EL MANEJO DE APLICACIONES SOFTWARE
MONOGRAFIA PARA EL MANEJO DE APLICACIONES SOFTWAREMONOGRAFIA PARA EL MANEJO DE APLICACIONES SOFTWARE
MONOGRAFIA PARA EL MANEJO DE APLICACIONES SOFTWARE
 
GRAMATICAS AMBIGUAS
GRAMATICAS AMBIGUASGRAMATICAS AMBIGUAS
GRAMATICAS AMBIGUAS
 
PARADIGMA DE PROGRAMACION
PARADIGMA DE PROGRAMACIONPARADIGMA DE PROGRAMACION
PARADIGMA DE PROGRAMACION
 
DESARROLLO DE UNA APLICACIÓN PARA EMPRESA
DESARROLLO DE UNA APLICACIÓN PARA EMPRESADESARROLLO DE UNA APLICACIÓN PARA EMPRESA
DESARROLLO DE UNA APLICACIÓN PARA EMPRESA
 
INVESTIGACION DE OPERACIONES
INVESTIGACION DE OPERACIONESINVESTIGACION DE OPERACIONES
INVESTIGACION DE OPERACIONES
 
LA MENTE DEL HOMBRE UN MUNDO DE SUEÑOS CUMPLIDOS
LA MENTE DEL HOMBRE UN MUNDO DE SUEÑOS CUMPLIDOSLA MENTE DEL HOMBRE UN MUNDO DE SUEÑOS CUMPLIDOS
LA MENTE DEL HOMBRE UN MUNDO DE SUEÑOS CUMPLIDOS
 
ESTRUCTURAS ORGANIZACIONALES
ESTRUCTURAS ORGANIZACIONALESESTRUCTURAS ORGANIZACIONALES
ESTRUCTURAS ORGANIZACIONALES
 
FASE DE GESTACION PROCESO UNIFICADO
FASE DE GESTACION PROCESO UNIFICADOFASE DE GESTACION PROCESO UNIFICADO
FASE DE GESTACION PROCESO UNIFICADO
 

Participación en simposio IV jornadas Iberoamericanas de HCI

  • 1. Un enfoque colaborativo para la recuperación de la arquitectura de referencia en Líneas de Producto Software IV Jornadas Iberoamericanas de HCI UNIVERSIDAD DEL CAUCA MAESTRÍA EN COMPUTACIÓN - IDIS - Alejandro Bolaños Ussa Advisor PhD. Julio Ariel Hurtado Advisor PhD(c). Marta Cecilia Camacho
  • 2. Agenda Líneas de Producto Software. ¿Qué es una SPL? Ventajas, dificultades y alcance (Scoping) 3 Arquitectura del Software. ¿Qué es S.A? Documentación y vistas 6 Arquitectura en líneas de Productos Software – PLA 7 Recuperación de Arquitectura Software – SAR 8 Planteamiento del Problema: Cómo recuperar una Arquitectura de Software? Código fuente, dinámico y resultados. 9 Objetivo: Lograr un enfoque de colaboración para recuperar una Arquitectura de Referencia 12 Trabajo relacionado 13 Enfoque Colaborativo 14 Metodología de investigación – Progresos y resultados esperados 15 Referencias 17 ¿Preguntas? 19 2
  • 3. Líneas de Producto Software Es un conjunto de sistemas intensivos en software que comparten un conjunto común de características administradas que satisfacen las necesidades específicas de un segmento de mercado o misión particular y que se desarrollan a partir de un conjunto común de activos centrales de una manera determinada[Clements, 2002] 3
  • 4. Ventajas Disminución del tiempo de comercialización Aumento de la calidad del producto Ganancia de productividad Satisfacción del cliente 4 Requerimientos Arquitecturas Componentes Pruebas Procesos y Personas
  • 5. SCOPING Definición del alcance en SPL –(scoping) Es una descripción de los productos que constituirán la línea de productos. En su forma más simple, el alcance puede consistir en una lista enumerada de nombres de productos. Su alcance debe definirse cuidadosamente, este evoluciona a medida que cambian las condiciones del mercado. Arquitectura de Referencia en SPL = {A ∩ B ∩ C ∩ D ∩ E} 5
  • 6. Arquitectura Software- SA • “Las estructuras de un sistema, compuestas de elementos con propiedades visibles de forma externa y las relaciones que existen entre ellos.”[L. Bass, P. Clements, R. Kazman] • La manera en que se estructura un sistema permitirá o impedirá que se satisfagan los atributos de calidad. 6
  • 7. Arquitectura en Líneas de Producto - PLA 7 Rationale-Decisiones Patrones Arquitectónicos Patrones de diseño Atributos de Calidad Componentes variables Componentes reutilizables
  • 8. Recuperación de la Arquitectura Software - SAR • La recuperación de la arquitectura de software (SAR) implica la extracción de información arquitectónicamente relevante de un sistema software, la abstracción y la descripción de la arquitectura recuperada. 8 SAR Módulos, componentes, patrones, decisiones, atributos de calidad. Desconocimiento del sistema
  • 9. Planteamiento del problema • Existen varias propuestas de recuperación de arquitectura tal como se definen Koznov y Romanovsky [4], que son el análisis del código fuente, métodos formales, entre otros. Sin embargo, los métodos poseen un punto débil como lo es la sincronización y/o coherencia entre el código, el conocimiento, el dominio y el modelo recuperado, ya que son poco efectivos en ambientes que evolucionan activamente • En el caso de las líneas de productos, existen las siguientes propuestas: Crescencio Lima [14], inicialmente propone en un enfoque para recuperar PLA basado en el uso y la adaptación de técnicas y herramientas para la recuperación de arquitectura software. • Lima y Santana [15], establecen que las PLA es la arquitectura principal en todos los productos pertenecientes a una línea. 9
  • 10. Planteamiento del problema 10 Reference architecture construction process [Pinzer, 2004] [Bosch, 2001]
  • 11. Pregunta de investigación • ¿Cómo recuperar una arquitectura de referencia para una organización a partir de los productos, componentes, documentos y personal involucrado en la construcción de productos previos, considerando el alcance identificado para la SPL que será desarrollada, y cuya principal fuente sean los stakeholders? 11
  • 12. Objetivos 12 Proponer un enfoque colaborativo para la recuperación de arquitectura de referencia en líneas de productos software planteadas a partir de productos previamente construidos. Establecer las técnicas o métodos utilizados en las experiencias SAR en el contexto de la construcción de SPL, de especificación del rationale arquitectónico y del trabajo colaborativo en la ingeniería de software. Seleccionar y adaptar un método de recuperación de arquitecturas y su rationale, en el contexto de construcción de una SPL a través de la incorporación de aspectos de trabajo colaborativo. Evaluar el método de recuperación de la arquitectura de referencia propuesto a través de la comprensión del producto a nivel arquitectural y la integralidad del conocimiento arquitectónico con el alcance de la SPL en un estudio de caso práctico
  • 13. Trabajo relacionado SAR SAR for Product Families Evolution in Software Product Lines PLAR: an approach proposal Experiences with using the systematic method for SAR Cost-Effective Traceability Links for Architecture Level Software Understanding Evidence for Understanding the Relationship between PLA_SAR Método de recuperación de la arquitectura EVAR 13 Enfoque colaborativo
  • 15. Metodología 15 Mario Bundge, 2002 Kitchenha m, 2004 Henderson- Sellers, 2014 •Planteamiento del problema •Reconocimiento de los hechos •Análisis Fase 1 •Selección de los factores pertinentes Definición de las hipótesis •Selección del método de recuperación de la arquitectura de referencia Fase 2 • Caracterización de los métodos de mejora y de los elementos a emplear • Construcción de la propuesta de mejora del método de recuperación Fase 3 •Evaluación de la propuesta de mejora. Fase 4 •Introducción de las conclusiones en la teoría •Confrontación de los resultadosFase 5
  • 16. Progreso, resultados esperados Review of the literature Review of recovery tools and methods Selection of tools and method for architectural recovery Termination of the Scientific Article, a review of the literature Case study design for architecture recovery (single). A practical case Application and execution of the case study Case study design, for the validation of SAR + SPL + Collaborative Approach Application and execution of the case study Report with the results obtained from the execution of the case study Evaluation, Analysis and Publication of research results 16
  • 17. Referencias • L. Bass, P. Clements, R. Kazman, Software Architecture in Practice, 2nd Edition, Addison Wesley, 2003 • [1] A. E. Hassan y R. C. Holt, «Architecture recovery of Web applications,» Software Engineering, International Conference, pp. 349-366, 2002. • [2] J. Tahuiton Mora, «Arquitectura de software para aplicaciones Web,» México D.F., 2011. • [3] E. Albassam, H. Gomaa, and D. A. Menascé, “Variable Recovery and Adaptation Connectors for Dynamic Software Product Lines.” • [4] D. Koznov, K. Romanovsky y A. Nikitin, «A Method for Recovery and Maintenance of Software Architecture». • [5] M. Pinzger, H. Gall, J.-F. Girard, J. Knodel, C. Riva, W. Pasman, C. Broerse y J. G. Wijnstra, «Architecture Recovery for Product Families,» pp. 332 - 351, 2003. • [6] I. Pashov y M. Riebisch, «Using feature modeling for program comprehension and software architecture recovery,» Engineering of Computer-Based Systems, 2004. Proceedings. 11th IEEE International Conference and Workshop on the, pp. 406-417, 2004 17
  • 18. Referencias • [7] F. Ahmed y L. F. Capretz, «The software product line architecture: An empirical investigation of key process activities,» Information and Software Technology, vol. 50, nº 1, p. 1.098 a 1.113, 2008. • [8] M. Svahnberg y E. Bosch, «Evolution in software product lines: Two cases,» Journal of Software Maintenance: Research and Practice, vol. 11, nº 6, pp. 391-422, 1999. • [9] F. Solms, “Experiences with using the Systematic Method for Architecture Recovery (SyMAR),” ACM Int. Conf. Proceeding Ser., pp. 170–178, 2013. • [10] M. A. Javed, S. Stevanetic, and U. Zdun, “Cost-effective traceability links for architecture-level software understanding: A controlled experiment,” ACM Int. Conf. Proceeding Ser., vol. 28–Septemb, pp. 69–73, 2015. • [11] C. R. L. Neto, M. P. S. Cardoso, C. von F. G. Chavez, and E. S. de Almeida, “Initial Evidence for Understanding the Relationship between Product Line Architecture and Software Architecture Recovery,” in 2015 IX Brazilian Symposium on Components, Architectures and Reuse Software, 2015, pp. 40–49. • [12] Y. A. Ordoñez Guzmán y E. A. Giraldo Muñoz, «Método de recuperación de arquitecturas basado en la focalización evaluativa y la visualización de software: un estudio de caso en una pequeña organizacion de software,» 2016. • [13] C. &. Northrop, Software Product Lines: Practices and Patterns: Practices and Patterns, 2002. • [14] C. Lima, «Product line architecture recovery: An approach proposal (extended abstract),» IEEE International Conference on Software Engineering Companion Product, 2017 • [15] C. Lima, E. Santana de Almeida, M. P. Soares Cardoso, C. v. F. G. Chavez y I. d. C. Machado, «Investigating the Variability Impact on the Recovery of Soſtware Product Line Architectures: An Exploratory Study,» ACM Press, pp. 1-, 2017. 18
  • 19. Un enfoque colaborativo para la recuperación de la arquitectura de referencia en Líneas de Producto Software IV Jornadas Iberoamericanas de HCI ¿PREGUNTAS? UNIVERSIDAD DEL CAUCA MAESTRÍA EN COMPUTACIÓN - IDIS - Alejandro Bolaños Ussa Advisor PhD. Julio Ariel Hurtado Advisor PhD(c). Marta Cecilia Camacho

Notas del editor

  1. QUE NO ES: Reutilizar piezas de grano pequeño Todos los activos están diseñados para ser reutilizados y están optimizados para su uso en más de un sistema. La reutilización con líneas de productos de software es completa, planificada y rentable Desarrollar un solo sistema con reutilización Si tenemos un producto uno, y reutilizamos para crear un producto dos, tenemos dos productos diferentes. Pero no dos productos de una línea. En primer lugar, las líneas de productos de software reutilizan los activos que fueron diseñados explícitamente para su reutilización. En segundo lugar, la línea de productos se trata como un todo, no como productos múltiples que se ven y mantienen por separado. La línea de producto es por lo tanto, la agrupación de los activos principales que son la principal razón del producto u organización. Desarrollar basado en componentes o basado en servicios Las líneas de productos de software dependen de una forma de desarrollo basado en componentes (o basado en el servicio), pero se trata de mucho más. Aunque los productos en las líneas de productos de software ciertamente están compuestos de componentes, algunos de los cuales pueden ser servicios web, estos componentes están especificados por la arquitectura de línea de producto Solo una arquitectura reconfigurable Una arquitectura de línea de producto está diseñada para admitir la variación que necesitan los productos en la línea de productos, por lo que es reconfigurable. Sin embargo, la arquitectura de línea de productos es solo un activo, aunque importante, en la base de activos básicos de la línea de productos. Liberaciones y versiones de productos individuales Primero, una línea de productos tiene múltiples productos simultáneos, todos los cuales están pasando por sus propios ciclos de lanzamiento y versionamiento simultáneamente. Por lo tanto, la evolución de un solo producto debe considerarse dentro de un contexto más amplio, a saber, la evolución de la línea. Pero en una línea de productos, una versión temprana de un producto que todavía se considera que tiene potencial de mercado puede mantenerse fácilmente como un miembro viable de la familia: es, después de todo, una instancia de los activos centrales, al igual que otras versiones de otros productos Solo un conjunto de estándares técnicos Los estándares técnicos son restricciones para promover la interoperabilidad y disminuir el costo asociado con el mantenimiento y soporte de componentes comerciales. Una organización que emprende un esfuerzo de línea de productos puede tener tales estándares técnicos, en cuyo caso la arquitectura de la línea de productos y los componentes deberán cumplir con dichos estándares. Sin embargo, los estándares son simplemente restricciones que se ingresan a la línea de productos de software, no más.
  2. Un enfoque de línea de productos de software brinda opciones para futuras oportunidades de mercado Requisitos reutilizables Los objetivos de calidad para un sistema -su rendimiento, confiabilidad, capacidad de modificación, etc.- están ampliamente permitidos o descartados una vez que la arquitectura está en su lugar. La arquitectura de línea de producto se usa para cada producto y solo necesita ser instanciada. Se ahorra tiempo y riesgo considerables. Componentes: la arquitectura de línea de producto proporciona especificaciones de componentes para todos los componentes no únicos que pueden ser necesario Con cada nuevo producto, existe una confianza extremadamente alta de que los problemas de temporización se han resuelto y que los errores asociados con la computación distribuida Ya se han creado los planes genéricos de pruebas. Estos artefactos de prueba solo se deben adaptar en función de las variaciones relacionadas con el producto. Los presupuestos de línea de base y los cronogramas de proyectos previos de desarrollo de productos ya existen y proporcionan una base confiable para los planes de trabajo del producto Los procesos ya están definidos y sólo es necesario reutilizarlos. Personas: se requieren menos personas para construir productos, y las personas se transfieren más fácilmente a través de toda la línea
  3. “Elementos” dentro de la definición del SEI es vago a propósito, pues puede referirse a distintas entidades relacionadas con el sistema
  4. Los difrentes productos tienen definido una arquitectura, pero es una instancia de la arquitectura principal, el cuál contiene una serie de variaciones. Los productos en una línea de productos de software existen simultáneamente y pueden variar entre sí en términos de comportamiento, atributos de calidad, plataforma, red, configuración física, middleware y factores de escala, y en una multitud de otras formas Existe durante el ciclo de vida de los productos Varía relativamente poco Generalmente la arquitectura está basada en los atributos de calidad (ADD – Diseño controlado por atributos [SEI]): Es un método de descomposición Elige controladores arquitectónicos Elige Patrones y tipos de componentes secundarios. Crear instancia de elementos Identificar puntos comunes Validar descomposición Refinar los CU y escenarios Un patrón de arquitectura5 es una descripción de los tipos de componentes y una pauta de su control de tiempo de ejecución y / o transferencia de datos [Shaw 1996a]
  5. SAR: es fundamental para el mantenimiento de una sola aplicación, ya que según Gomaa [3] una arquitectura de línea de producto (PLA) es una arquitectura para una familia de productos, el cual describe los componentes obligatorios, opcionales y variables de la línea. De esta manera la combinación de SAR con PLA es parte fundamental para mantener actualizados y sincronizados los activos de un sistema dentro de la línea (Gomaa). La recuperación de la arquitectura es fundamental para el mantenimiento de una sola aplicación, ya que según Gamaa una arquitectura de línea de producto (PLA) es una arquitectura para una familia de productos, el cual describe los componentes obligatorios, opcionales y variables de la línea. De esta manera la combinación de SAR con PLA es parte fundamental para mantener actualizados y sincronizados los activos de un sistema dentro de la línea
  6. A- Se define un proceso de construcción de familia de productos a través de una exploración de sistemas sobre productos que pertenecen a un dominio en particular B- Presentan una propuesta inicial que consiste en un enfoque para recuperar PLA basado en el uso y la adaptación de técnicas y herramientas para la recuperación de arquitectura software en sistemas únicos de abajo hacia arriba (ascendente) C- Presentan una directrices para facilitar la evolución de los activos pertenecientes a un línea de productos, Se identificaron categorías de esta evolución en requisitos, arquitectura y componentes software analizando las relaciones entre estas categorías D- Definen un método iterativo en cual permite la descripción arquitectónica resultante incluye la identificación de componentes arquitectónicos que abordan problemas no funcionales E- Integra como parte fundamental las actividades humana. Presentan herramientas para automatizar la recuperación del software por medio de métodos automáticos. F- Recopila datos y evidencias sobre la relación entre la arquitectura de la línea de productos y la recuperación de la arquitectura de software. La intención es comprender la relación entre la recuperación de la arquitectura de software y las arquitecturas de línea de productos. G-Realizan un análisis de las diferentes técnicas, herramientas, métodos de evaluación de arquitectura haciendo un enfoque en la visualización y la facilidad para la recuperación a partir del conocimiento implícito de los participantes.