Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Modelo para la Definición Unificada de la Práctica en Ingeniería de Software, Apuntes de Programación de Bases de Datos

Un modelo para definir prácticas en ingeniería de software, que incluye la síntesis conceptual de prácticas, el proceso de definición de prácticas bien formadas y nombradas, y la estructura de práctica. Se analizan varias propuestas de prácticas y se extraen sus constructos y proposiciones comunes. El modelo permite validar las relaciones entre la práctica y las actividades, y asignar un nombre adecuado a las prácticas.

Tipo: Apuntes

2020/2021

Subido el 14/05/2021

1 / 140

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Modelo para la Definición Unificada
de la Práctica como Constructo
Teórico en Ingeniería de Software
Alexander Alvaro Barón Salazar, M.Sc.
Universidad Nacional de Colombia
Facultad de Minas
Departamento de Ciencias de la Computación y de la Decisión
MedellínColombia
2019
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Vista previa parcial del texto

¡Descarga Modelo para la Definición Unificada de la Práctica en Ingeniería de Software y más Apuntes en PDF de Programación de Bases de Datos solo en Docsity!

Modelo para la Definición Unificada

de la Práctica como Constructo

Teórico en Ingeniería de Software

Alexander Alvaro Barón Salazar, M.Sc.

Universidad Nacional de Colombia Facultad de Minas Departamento de Ciencias de la Computación y de la Decisión Medellín—Colombia 2019

Dedicatoria

Especialmente para ti, mi amada Negrita, por enseñarme la mejor práctica para la vida: realización de sueños orientada por el amor. Esta Tesis Doctoral es como la vida misma: un maravilloso viaje por alta mar lleno de aventuras. Por eso, la dedico a mis tripulantes, quienes me ayudaron a llegar a feliz puerto. A Dios, mi guía, El que controla los monstruos marinos, los feroces vientos y las turbulentas aguas. Quien alinea las estrellas que orientan y dan luz a la travesía. A mi Padre Santiago, mi consejero, quien escribió y me heredó las cartas de navegación que señalan las coordenadas correctas. A mi Madre Teresa, mi descanso, quien con sus plegarias me provee de energía para superar momentos de debilidad. A mis hermanas Doradaly, Marisol y Lucerito y a mis hermanos Jorge, Santiago, Franklin, Leonardo y Richard, mis compañeros de travesías y aventuras, quienes amenizan el viaje con maravillosos recuerdos de infancia. A Nancy, mi todo, quien se ocupa de los mapas y de la brújula para no perder el rumbo. A Karen, mi linda, quien, con sus exquisitas recetas de amor, alimenta el espíritu de los viajeros. A Santiago, mi compañero, quien me ayuda a mantener firme y en dirección nuestro navío. A Juan Camilo, mi risa de cada día, quien mantiene funcionando las maquinas que mueven el barco de nuestros anhelos. Amada familia… ¡Llegamos! A. Barón S.

Agradecimientos

Esta Tesis Doctoral se realizó con el apoyo de Colciencias y el Programa de Becas de Doctorado Nacional, el Grupo de Investigación en Lenguajes Computacionales de la Universidad Nacional de Colombia Sede Medellín y el Grupo de Investigación Galeras .Net de la Universidad de Nariño. También, quiero expresar mis más sinceros sentimientos de profunda gratitud a las siguientes personas y entidades que con su apoyo hicieron posible esta Tesis Doctoral: A Carlos Mario Zapata Jaramillo, Ph.D., por su incansable y paciente guía como Director de esta investigación y por enseñarme que la disciplina y la pasión son el camino para alcanzar cualquier objetivo. Mi aprecio, admiración y respeto para Usted y su familia, siempre. A Hanna Jadwiga Oktaba, Ph.D. por acogerme como tutora de pasantía en su hogar académico: la Universidad Nacional Autónoma de México y por su invaluable aporte para el desarrollo y evaluación de esta Tesis Doctoral. A Nilda Yangüez Cervantes, Ph.D., por su aporte como tutora de pasantía en la Universidad Tecnológica de Panamá y como jurado de esta investigación. Cada una de sus acertadas observaciones permitieron enriquecer mi trabajo. A Albeiro Espinosa Bedoya, Ph.D., por su siempre oportuna y constructiva crítica como jurado de esta Tesis Doctoral. Sus valiosas recomendaciones fueron factor clave de éxito en el desarrollo de la investigación.

VIII Modelo para la Definición Unificada de la Práctica como Constructo Teórico en Ingeniería de Software A Miguel Ehécatl Morales, Ph.D. y a Luis Fernando Castro, Ph.D., por la rigurosa evaluación como expertos de validación de esta Tesis Doctoral. Sus aportes permitieron mejorar los resultados de la investigación y garantizar que son una contribución real a la ingeniería de software. A Luis Patiño, M.Sc., por brindarme su apoyo como tutor de pasantía y permitirme compartir mi trabajo con la apreciada comunidad académica de la Universidad Politécnica Estatal del Carchi, Ecuador. A María Clara Gómez, Rubén Darío Sánchez y a Jesús Insuasti, mis queridos compañeros de estudio, por su amistad y apoyo incondicionales, por compartir un pedazo de vida conmigo. A Jairo Guerrero García, por el sabio consejo siempre oportuno. A mi Alma Mater , la Universidad de Nariño, por darme la oportunidad de estudiar, aprender, vivir y soñar. A mis compañeros y compañeras docentes del Departamento de Sistemas de la Universidad de Nariño, por su aprecio y apoyo de todos los días. A mis estudiantes, por confiar en mi guía y transitar a mi lado por los fantásticos senderos de la academia.

X Modelo para la Definición Unificada de la Práctica como Constructo Teórico en Ingeniería de Software El modelo que se obtiene como resultado de esta Tesis Doctoral es una contribución a la definición de una teoría general y, específicamente, a la construcción de un vocabulario unificado para la ingeniería de software, ya que permite definir de manera unificada y carente de ambigüedad el constructo teórico de práctica. El modelo se valida mediante la consulta a expertos de la comunidad de ingeniería de software. En la validación se realizan análisis cualitativos y cuantitativos que permiten identificar las oportunidades de mejora y el nivel de aceptación del modelo para los expertos evaluadores. Palabras clave: ingeniería de software, práctica, constructo teórico, modelo, Semat , Essence****.

Abstract

The Semat—Software Engineering Method and Theory—community focus on two main objectives: defining a kernel of elements for describing the Essence of software engineering and defining a general theory for such a discipline. All well-defined general theories include theoretical constructs, propositions, explanations, and scope. Theoretical constructs are the basic concepts of a specific domain and they constitute the vocabulary of the general theory. Some authors try to define a unified vocabulary in software engineering. However, the proposed definitions lack enough information for defining theoretical constructs, which are the basis of a general theory. Defining a unified vocabulary is particularly complex in software engineering, since micro-theories commonly include theoretical constructs involving different definitions; practice is one of such constructs. Practice is particularly defined in different proposals of software engineering regardless of other visions, i.e. , such proposals include non-unified definitions. Also, practice is ambiguously defined, since other theoretical constructs included in a software engineering endeavor can also comply with the definition of practice, and such proposed practices are inappropriately named. Although some software engineering endeavors are focused on the definition of practice, a unified and unambiguous definition is still absent in this regard. In this Ph.D. Thesis we consolidate a model of the unified and unambiguous definition of practice as a theoretical construct in software engineering. Theoretical constructs and propositions for characterizing the practice construct are identified from the analysis of practices from different approaches; such constructs and propositions are integrated into the components of the model. Each component allows for fulfilling specific functions oriented to define well-formed, well-named practices. The model obtained as a result of this Ph.D. Thesis is a contribution to the definition of a general theory. Specifically, we want to contribute to the construction of a unified vocabulary

Contenido

XVI Modelo para la Definición Unificada de la Práctica como Constructo Teórico en Ingeniería de Software Figura 4-14: Tarjeta de la actividad determinar la arquitectura .................................... 84 Figura 4-15: Tarjeta de la actividad evolucionar la implementación de la arquitectura 84 Figura 4-16: Modelo para la definición unificada de la práctica.................................... 87 Figura 5-1: Proceso de validación del modelo ............................................................ 92 Figura 5-2: Posición de cada uno de los expertos por ítem ..................................... 105 Figura 5-3: Posición integrada de expertos por ítem y posición integrada general. 105

Lista de tablas

    1. Introducción Pág.
    • 1.1 Motivación y descripción del problema
    • 1.2 Contribución de la investigación
    • 1.3 Premisas de investigación
    • 1.4 Objetivos.................................................................................................................
    • 1.5 Alcance de la investigación
    • 1.6 Proceso de desarrollo de la investigación
    • 1.7 Divulgación de la Investigación............................................................................
      1. 8 Organización de la Tesis Doctoral
    1. Marco teórico
    • 2.1 Esquemas preconceptuales como lenguaje de modelado..................................
    • 2.2 Teoría, constructo teórico y modelo
    • 2.3 Essence como marco de trabajo para describir prácticas
    • 2.4 Consulta a expertos como mecanismo de validación
    1. Análisis de antecedentes: síntesis conceptual de práctica
    • 3.1 Fase 1: Planeación de la síntesis conceptual
    • 3.2 Fase 2: Realización de la síntesis conceptual
    • 3.3 Fase 3: Reporte de la síntesis conceptual
    1. Descripción del modelo para la definición unificada de la práctica
    • 4.1 Los componentes del modelo.
    • 4.2 La práctica bien formada en ingeniería de software
    • 4.3 La práctica bien nombrada en ingeniería de software
    • 4.4 Tarjetas de práctica y de actividad
    • 4.5 Proceso de definición de prácticas bien formadas y nombradas........................
    • 4.6 Un ejemplo de práctica de software bien formada y nombrada
    • 4.7 Representación del modelo
    1. Validación del modelo para la definición unificada de la práctica
    • 5.1 Fase 1: Planeación de la validación
    • 5.2 Fase 2: Definición de los expertos
    • 5.3 Fase 3: Conducción de la validación
    • 5.4 Fase 4: Análisis de la información y reporte de resultados...............................
    1. Conclusiones y trabajo futuro
    • 6.1 Conclusiones
    • 6.2 Trabajo futuro
  • Figura 1-1: Proceso de desarrollo de la investigación Pág.
  • Figura 2-1: Sintaxis básica de los esquemas preconceptuales (Zapata et al. , 2006)
  • Figura 2-2: Una aproximación a una teoría general para la ingeniería de software
  • Figura 2-3: Las áreas de interés del núcleo
  • Figura 2-4: Los alfas del núcleo
  • Figura 2 - 5: Relación de subordinación
  • Figura 2-6: Relación de manifiesto
  • Figura 2-7: Los espacios de actividad del núcleo
  • Figura 2-8: Los espacios de actividad del núcleo
  • Figura 2-9: El proceso del método grupos focales......................................................
  • Figura 3-1: El proceso de la síntesis conceptual de práctica
  • Figura 3-2: Cadenas de búsqueda
  • Figura 3 - 3: Extracción de información de la propuesta RUP......................................
  • Figura 3-4: Extracción de información de la propuesta CMMI-DEV
  • Figura 3-5: Extracción de información de la propuesta Scrum
  • Figura 3-6: Extracción de información de la propuesta EPFC....................................
  • Figura 3-7: Extracción de información de la propuesta Kuali-Beh
  • Figura 3-8: Extracción de información de la propuesta Essence
  • Figura 3-9: Caracterización de la práctica...................................................................
  • Figura 4-1: Los componentes del modelo
  • Figura 4-2: Las reglas de práctica bien formada.........................................................
  • Figura 4-3: Modelo general para el nombramiento de la práctica
  • Figura 4-4: La tarjeta de práctica
  • Figura 4-5: La tarjeta de actividad
  • Figura 4-6: Proceso de definición de prácticas bien formadas y nombradas.............
  • Figura 4-7: Elementos de presentación de la práctica esenciales de arquitectura
  • Figura 4-8: Actividad identificar los requisitos de arquitectura
  • Figura 4-9: Actividad determinar la arquitectura
  • Figura 4-10: Actividad evolucionar la implementación de la arquitectura
  • Figura 4-11: Flujo de actividades de la práctica esenciales de arquitectura
  • Figura 4-12: Tarjeta de la práctica implementación evolutiva de la arquitectura
  • Figura 4-13: Tarjeta de la actividad identificar los requisitos de arquitectura
  • Tabla 3- 1 : Resultados de la búsqueda en fuentes digitales Pág.
  • Tabla 3- 2 : Resultados de la aplicación de los criterios inclusión y exclusión
  • Tabla 3- 3 : Resumen del análisis de las definiciones de práctica..................................
  • Tabla 3- 4 : Unificación terminológica de constructos teóricos
  • Tabla 3- 5 : Unificación terminológica de constructos teóricos (continuación)
  • Tabla 3- 6 : Unificación de relaciones dinámicas
  • Tabla 4- 1 : Taxonomía de verbos nominalizados para el alfa interesados
  • Tabla 4- 2 : Taxonomía de verbos nominalizados para el alfa oportunidad
  • Tabla 4- 3 : Taxonomía de verbos nominalizados para el alfa requisitos
  • Tabla 4- 4 : Taxonomía de verbos nominalizados para el alfa sistema de software
  • Tabla 4- 5 : Taxonomía de verbos nominalizados para el alfa equipo
  • Tabla 4- 6 : Taxonomía consolidada de verbos nominalizados
  • Tabla 4- 7 : Adjetivos utilizados por propuestas de ingeniería de software (Parte I)
  • Tabla 4- 8 : Adjetivos utilizados por propuestas de ingeniería de software (Parte II)
  • Tabla 4- 9 : Conjunto consolidado de adjetivos
  • Tabla 4- 10 : Conjunto de sustantivos
  • Tabla 4- 11 : Elementos esenciales que describen las actividades de la práctica
  • Tabla 4- 12 : Tareas de las actividades de la práctica esenciales de erquitectura
  • Tabla 4- 13 : Taxonomía de verbos nominalizados del sustantivo arquitectura
  • Tabla 5- 1 : Objetivos de validación
  • Tabla 5- 2 : Ítems del instrumento de evaluación para expertos
  • Tabla 5- 3 : Escala de Likert
  • Tabla 5- 4 : Memorias de validación – Posición de los expertos
  • Tabla 5- 5 : Consolidado de observaciones de expertos
  • Tabla 5- 6 : Consolidado de observaciones de expertos (continuación)
  • Tabla 5-7: Consolidado de observaciones de expertos (continuación)
  • Tabla 5- 8 : Rangos de valoración de posición para análisis de indicadores
  • Tabla 5- 9 : Indicadores sobre la posición de expertos
  • Tabla 5- 10 : Indicadores sobre la posición de expertos con escala de Likert
  • Tabla 5- 11 : Acciones asociadas con el consolidado de observaciones
  • Tabla 5- 12 : Acciones asociadas con el consolidado de observaciones (continuación)
  • Tabla 5- 13 : Acciones asociadas con el consolidado de observaciones (continuación)

1. Introducción

1.1 Motivación y descripción del problema

Investigadores de la comunidad científica de la ingeniería de software (Stol y Fitzgerald, 2013; Jacobson y Seidewitz, 2014; Erbas y Erbas, 2015) coinciden en afirmar que la ingeniería de software carece de una teoría sólida y compartida para explicar los fenómenos observados en la disciplina. Por esta razón, no se define realmente como una disciplina de ingeniería. Algunos autores proponen directrices para la construcción de teorías a partir de conocimientos de otras disciplinas. Sin embargo, la ingeniería de software no se suele guiar con una teoría explícita ni se produce una teoría explícita (Stol y Fitzgerald, 2013). Como respuesta directa a este requisito, la iniciativa de la Teoría y Método de la Ingeniería de Software ( Semat , por sus iniciales en inglés) se enfoca en dos objetivos principales: encontrar un núcleo de elementos que describan la Esencia de la ingeniería de software y definir para la ingeniería de software una base teórica adecuada y que se acepte ampliamente (Jacobson et al. , 2012). Una teoría general permite una ingeniería de software disciplinada (Jacobson et al. , 2014). Sin el soporte de una teoría sólida, la ingeniería de software se relega al costoso proceso que se orienta al azar (Johnson et al. , 2012). Actualmente, la ingeniería de software carece de una teoría general (Stol y Fitzgerald, 2013). Toda teoría general bien definida incluye cuatro componentes: (i) constructos teóricos, que son los conceptos básicos de un dominio en particular; (ii) proposiciones, que permiten describir cómo interactúan los constructos teóricos; (iii) explicaciones, que permiten definir por qué es importante la aplicación de la teoría y permiten justificar las proposiciones para integrar constructos teóricos; (iv) alcance, que permite expresar las condiciones, cómo, cuándo y dónde se debe aplicar la teoría (Whetten, 1989).

2 Modelo para la Definición Unificada de la Práctica como Constructo Teórico en Ingeniería de Software El proceso de desarrollo de una teoría general incluye la definición de un vocabulario unificado que permite integrar la visión de la comunidad sobre los constructos teóricos y los fenómenos del dominio de la teoría (Erbas y Erbas, 2015). Definir un vocabulario unificado es particularmente complejo en ingeniería de software, debido a que existen micro-teorías en las que se proponen constructos teóricos diferentes, se describen de manera diferente constructos teóricos similares y se definen de manera diversa constructos teóricos comunes. Además, pocos elementos de diferentes micro-teorías se pueden integrar (Johnson y Ekstedt, 2007). En ingeniería de software existen intentos para definir un vocabulario unificado. El Cuerpo de Conocimiento de Ingeniería de Software (SWEBOK, por su sigla en inglés; IEEE Computer Society , 2014) y el Vocabulario de Ingeniería de Software y Sistemas (SEVOCAB, por su sigla en inglés; IEEE Computer Society , 2019) son fuentes de definiciones que la comunidad acuerda. Sin embargo, estas definiciones se orientan a qué es el concepto. Este tipo de definiciones no aporta información suficiente para definir constructos teóricos que son base de una teoría general. Para definir constructos teóricos se requiere información sobre aspectos estructurales y dinámicos del concepto y sobre las relaciones con otros constructos teóricos. Para expresar el trabajo en ingeniería de software se utilizan conceptos como proceso, metodología, método, práctica, actividad y tarea. Estos conceptos evolucionan paralelamente con la evolución de la ingeniería de software ( IEEE Computer Society , 2019). Actualmente, el constructo teórico de práctica es el concepto que permite articular el trabajo en un esfuerzo de ingeniería de software ( Object Management Group , 2015). La práctica es un importante constructo teórico en el proceso de redefinición de la ingeniería de software que se propone en la iniciativa Semat , pues incluye entre sus principios el cambio de paradigma: de una ingeniería de software orientada al método a una ingeniería de software orientada a la práctica (Jacobson y Seidewitz, 2014). En ingeniería de software, práctica es un constructo teórico común que se define de manera diversa. Hay propuestas en las que, desde su particularidad, se define la práctica ignorando otras visiones, es decir, presentan definiciones no unificadas. Por ejemplo, Kirk y Tempero (2012) se enfocan en la facilidad de adaptación al contexto como característica de calidad de la práctica. Rolandsson et al. (2011) enfatizan en la capacidad de integración de prácticas de diferentes enfoques en un mismo escenario de desarrollo. Passos et al.