Este capítulo discute la ingeniería de software y su importancia para el desarrollo de software educativo de calidad. Explica que la ingeniería de software integra aspectos ergonómicos, educativos y funcionales. También describe los conceptos clave de la ingeniería de software como los modelos de procesos, la estructura de organización y la gestión de calidad. Finalmente, introduce los conceptos de proceso de software y su importancia para lograr un desarrollo formal de software.
El documento describe los modelos y metodologías para el desarrollo de software. Explica tres modelos principales: 1) El modelo en cascada que representa las fases de desarrollo de forma secuencial, 2) El modelo en espiral que entrelaza especificación, desarrollo y validación a través de iteraciones, y 3) El modelo basado en componentes que se enfoca en la reutilización de componentes existentes. También discute la importancia de aplicar metodologías formales para mejorar la calidad, productividad y control del proceso de desarrol
El documento define la ingeniería de software y su importancia para el desarrollo de software de calidad. Explica los inicios de la disciplina en la década de 1940 y algunos modelos de desarrollo como el ciclo de vida del software. También describe organizaciones como el Software Engineering Institute y el World Wide Web Consortium. Finalmente, define conceptos clave como la arquitectura de software.
El documento habla sobre el hardware y software, así como la comunicación y colaboración en Internet. Explica las definiciones de hardware y software, y cómo se clasifica el software en sistemas operativos, software de programación y aplicaciones. También describe el proceso de creación de software, incluyendo las etapas de requisitos, diseño, codificación, pruebas e implementación. Finalmente, discute diferentes modelos de procesos como la cascada y los modelos evolutivos.
Este documento presenta una guía de estudio sobre arquitecturas de software. Introduce los conceptos clave de calidad de software, arquitectura de software, atributos de calidad, estilos y patrones arquitectónicos, vistas arquitectónicas, notaciones, lenguajes de descripción arquitectónica y métodos de evaluación de arquitecturas de software. El documento provee una visión general de estos temas y su importancia para el diseño y evaluación de sistemas de software.
El documento describe los diferentes métodos del ciclo de vida de los sistemas, incluyendo el método clásico, el método de desarrollo por análisis estructurado y el método de construcción de prototipos. Explica las diferentes fases de cada método, como el análisis, diseño, desarrollo, pruebas e implementación. También discute principios clave en el desarrollo de sistemas como involucrar a los usuarios y aplicar un enfoque de resolución de problemas.
El documento habla sobre hardware y software, así como la comunicación y colaboración en Internet. Explica definiciones de hardware y software, la clasificación del software en sistemas operativos, de programación y de aplicación. También describe el proceso de creación de software, incluyendo etapas como la captura de requisitos, diseño, codificación y pruebas. Finalmente, discute modelos de procesos como el modelo en cascada y modelos evolutivos.
Este documento presenta resúmenes breves de varias metodologías de desarrollo de sistemas y software, incluyendo UML, RAD, RUP, OMT, SSM, MERINDE, Scrum y otras. Cada metodología se describe en una o dos oraciones resumiendo sus características principales y su enfoque al desarrollo de sistemas.
Metodologías para el análisis diseño de sistemasGeorghe
Este documento presenta una introducción a varias metodologías para el análisis, diseño y desarrollo de sistemas de información. Describe brevemente 15 metodologías diferentes, incluyendo RUP, Scrum, XP, RAD, SSM, UML, entre otras. El objetivo es proporcionar una guía sobre los principales enfoques metodológicos utilizados en el campo del desarrollo de sistemas.
El documento describe los modelos y metodologías para el desarrollo de software. Explica tres modelos principales: 1) El modelo en cascada que representa las fases de desarrollo de forma secuencial, 2) El modelo en espiral que entrelaza especificación, desarrollo y validación a través de iteraciones, y 3) El modelo basado en componentes que se enfoca en la reutilización de componentes existentes. También discute la importancia de aplicar metodologías formales para mejorar la calidad, productividad y control del proceso de desarrol
El documento define la ingeniería de software y su importancia para el desarrollo de software de calidad. Explica los inicios de la disciplina en la década de 1940 y algunos modelos de desarrollo como el ciclo de vida del software. También describe organizaciones como el Software Engineering Institute y el World Wide Web Consortium. Finalmente, define conceptos clave como la arquitectura de software.
El documento habla sobre el hardware y software, así como la comunicación y colaboración en Internet. Explica las definiciones de hardware y software, y cómo se clasifica el software en sistemas operativos, software de programación y aplicaciones. También describe el proceso de creación de software, incluyendo las etapas de requisitos, diseño, codificación, pruebas e implementación. Finalmente, discute diferentes modelos de procesos como la cascada y los modelos evolutivos.
Este documento presenta una guía de estudio sobre arquitecturas de software. Introduce los conceptos clave de calidad de software, arquitectura de software, atributos de calidad, estilos y patrones arquitectónicos, vistas arquitectónicas, notaciones, lenguajes de descripción arquitectónica y métodos de evaluación de arquitecturas de software. El documento provee una visión general de estos temas y su importancia para el diseño y evaluación de sistemas de software.
El documento describe los diferentes métodos del ciclo de vida de los sistemas, incluyendo el método clásico, el método de desarrollo por análisis estructurado y el método de construcción de prototipos. Explica las diferentes fases de cada método, como el análisis, diseño, desarrollo, pruebas e implementación. También discute principios clave en el desarrollo de sistemas como involucrar a los usuarios y aplicar un enfoque de resolución de problemas.
El documento habla sobre hardware y software, así como la comunicación y colaboración en Internet. Explica definiciones de hardware y software, la clasificación del software en sistemas operativos, de programación y de aplicación. También describe el proceso de creación de software, incluyendo etapas como la captura de requisitos, diseño, codificación y pruebas. Finalmente, discute modelos de procesos como el modelo en cascada y modelos evolutivos.
Este documento presenta resúmenes breves de varias metodologías de desarrollo de sistemas y software, incluyendo UML, RAD, RUP, OMT, SSM, MERINDE, Scrum y otras. Cada metodología se describe en una o dos oraciones resumiendo sus características principales y su enfoque al desarrollo de sistemas.
Metodologías para el análisis diseño de sistemasGeorghe
Este documento presenta una introducción a varias metodologías para el análisis, diseño y desarrollo de sistemas de información. Describe brevemente 15 metodologías diferentes, incluyendo RUP, Scrum, XP, RAD, SSM, UML, entre otras. El objetivo es proporcionar una guía sobre los principales enfoques metodológicos utilizados en el campo del desarrollo de sistemas.
Este documento presenta información sobre metodologías, procesos y diagramas utilizados en el desarrollo de software. Explica que existen diferentes metodologías como estructuradas u orientadas a objetos, y que los procesos unificados buscan mejorar mediante el desarrollo organizacional. También describe elementos para modelar software como objetos y relaciones, y los tipos de diagramas como de secuencia e implementación. Finalmente, indica que las herramientas soportan la notación gráfica para beneficiar a los ingenieros de software.
Este documento describe diferentes aspectos relacionados con el software. Define software y explica que incluye programas, datos, documentación y más. Luego clasifica el software en tres tipos: sistema, aplicación y programación. También describe el proceso de creación de software y explica que existen diferentes metodologías como cascada, evolutivas y más.
metodologías para el análisis y diseño de sistemas BrainQC
El documento presenta una descripción general de varias metodologías y conceptos relacionados con el análisis y diseño de sistemas, incluyendo el ciclo de vida del desarrollo de software, los objetivos del lenguaje UML, diagramas de interacción, metodologías como RUP, RAD, Scrum y conceptos como sistemas blandos.
Este documento presenta varias metodologías para el análisis y diseño de sistemas. Describe el Lenguaje Unificado de Modelado (UML), la Metodología del Ciclo de Vida de un Sistema de James Martin, el Proceso Unificado de Desarrollo de Software, la Metodología de Kendall & Kendall, la Metodología de Sistemas Expertos de David Rolston, y otras metodologías como Scrum, Merinde y Sistemas Blandos.
Este documento describe la historia de la ingeniería de software y su aplicación a la educación informática. Explica que la ingeniería de software surgió en 1968 para hacer frente a una crisis de software. Se define la ingeniería de software como la aplicación sistemática de principios de ingeniería para desarrollar software fiable y eficiente. También describe los componentes clave de la ingeniería de software como herramientas, métodos, procesos y enfoques de calidad. Finalmente, explica el ciclo de vida del software que incluye las fases de definición,
El documento describe varias metodologías para el desarrollo de software, incluyendo el modelo en cascada, el modelo espiral, la metodología RUP y los ciclos de vida de los sistemas y el software. Explica que una metodología es un marco de trabajo que estructura, planifica y controla el proceso de desarrollo de software.
Metodologías para el análisis diseño de sistemasGeorghe
El documento describe varias metodologías para el análisis y diseño de sistemas. Entre ellas se encuentran metodologías como RUP, que incluye fases como análisis, diseño e implementación; metodologías orientadas a objetos que utilizan diagramas UML; y metodologías ágiles como Scrum que dividen el proceso en iteraciones de planificación, ejecución e inspección. En general, la mayoría de las metodologías describen procesos sistemáticos con etapas como análisis de requisitos
Normas y Estándares de calidad para el desarrollo de SoftwareEvelinBermeo
Este documento resume varios modelos y estándares de calidad para el desarrollo de software. Describe normas ISO/IEC como ISO 9126 que definen las características de calidad de software y ISO/IEC 25000 (SQuaRE) que armoniza normas anteriores. También cubre el modelo CMMI para mejorar procesos, SPICE para evaluar procesos, PSP/TSP para estimación a nivel individual/grupal y MOPROS para pymes mexicanas. Los diferentes estándares permiten un proceso de mejora continua al implementarlos.
It refers to a group of abstractions and patterns that provide us a useful outline to guide us in the development of software in a computer system reference.
Metodología para el desarrollo del sistemas de información y comunicación seg...travesuras79
Sintesis del Libro "Analisis y Diseño de Sistemas de Informacion" de Jeffry Whitten en el 2003, donde se detalla la metodologia para el desarrollo de sistemas de información y comunicación
Este documento describe la ingeniería de software y su historia. La ingeniería de software surgió en la década de 1960 para abordar los problemas de calidad y costos asociados con el desarrollo de software. El documento luego explica los objetivos, etapas y modelos de la ingeniería de software, incluidos el modelo en cascada, el modelo en espiral y el proceso unificado. Finalmente, cubre temas como la arquitectura, los marcos como MSF y los factores que deben considerarse en cada iteración del modelo en espiral.
El documento describe varias metodologías, estándares y modelos para el desarrollo de software, incluyendo SWEBOK, que define las áreas de conocimiento de la ingeniería de software; Métrica V3.0, una metodología española basada en ISO 12207; y MoProSoft, un modelo mexicano de 9 procesos para la industria de software.
Este documento describe varias metodologías para el análisis y diseño de sistemas. Presenta el Lenguaje Unificado de Modelado (UML), la Metodología RAD de James Martin, el Proceso Unificado de Desarrollo de Software, la Metodología de Kendall & Kendall, la Metodología RMM, la Metodología de Sistemas Expertos de David Rolston, la Metodología de Software Educativo de Álvaro Galvis, la Metodología de Sistemas Blandos de Peter Checkland y la Metodología Scrum. Conclu
Unidad 1 Introducción a la Ingeniería de SoftwareMary Carmen
Este documento presenta conceptos clave de ingeniería de software e información, incluyendo mitos, paradigmas, calidad, procesos, métodos, herramientas y gestión de proyectos de software. También describe la importancia de la ingeniería de software, su historia y evolución, y conceptos de sistemas de información como características, estructuras, clasificaciones, ERP, CRM y SCM.
Metodologías de Diseño y Desarrollo de Sistemas de InformaciónRafael Brito
Este documento describe las diferentes fases del desarrollo de sistemas de información. Inicia con la fase de requerimientos, donde se determinan los requerimientos del sistema. Luego está la fase de análisis y diseño, donde se desarrolla el diseño arquitectónico utilizando los requerimientos. Finalmente, la fase de construcción, que incluye actividades como el desarrollo de la infraestructura, la adaptación de paquetes, y el desarrollo de unidades interactivas, por lotes y manuales.
El documento discute el diseño de sistemas de información. Explica que el diseño de sistemas es la primera fase donde se selecciona el enfoque básico para resolver un problema, dividiendo el sistema en subsistemas. También cubre decisiones de alto nivel como la organización del sistema, asignación de tareas a procesadores, y el manejo de datos y recursos compartidos. El diseñador debe considerar aspectos como la estructura, concurrencia, implementación y condiciones del sistema.
El documento describe los conceptos fundamentales del proceso de desarrollo de software. Explica que el desarrollo de software es una actividad importante en muchas áreas y que involucra a terceros además de los programadores. Luego introduce los conceptos clave del proceso de ingeniería de software, incluyendo las actividades principales (requisitos, análisis, diseño, implementación, pruebas), la importancia de los modelos de proceso, y factores como la arquitectura y metodologías. Finalmente, profundiza en detalles específicos
Ingenieria de software (conceptos básicos)Yaskelly Yedra
La ingeniería de software es el área de la ciencia de la computación, que ofrece métodos y técnicas para el desarrollo de software, estudia el conjunto de actividades relacionadas con el ciclo de desarrollo del software, en particular se enfoca tanto a en calidad de su proceso como de su producto.
Este documento proporciona una introducción al modelado de software. Explica que el modelado de software es una técnica que ayuda a visualizar y especificar la estructura y comportamiento de un sistema de información. Los modelos también facilitan la comunicación con los clientes. El modelado de software tiene varios beneficios como mejorar la productividad, reducir errores y facilitar el mantenimiento. Los principios incluyen elegir los modelos apropiados y expresarlos a diferentes niveles de detalle.
Fundamentos del diseño y Garantías de Calidad del SoftwareRichard J. Nuñez
Este documento trata sobre los fundamentos del diseño de software y las garantías de calidad del software. Explica que el diseño de software es una etapa importante que permite evaluar la calidad del software antes de codificar y realizar pruebas. También describe diferentes técnicas para el diseño de software como el diseño orientado a objetos, y métodos para garantizar la calidad como las pruebas de software y el mantenimiento preventivo y de seguridad.
Este documento presenta información sobre metodologías, procesos y diagramas utilizados en el desarrollo de software. Explica que existen diferentes metodologías como estructuradas u orientadas a objetos, y que los procesos unificados buscan mejorar mediante el desarrollo organizacional. También describe elementos para modelar software como objetos y relaciones, y los tipos de diagramas como de secuencia e implementación. Finalmente, indica que las herramientas soportan la notación gráfica para beneficiar a los ingenieros de software.
Este documento describe diferentes aspectos relacionados con el software. Define software y explica que incluye programas, datos, documentación y más. Luego clasifica el software en tres tipos: sistema, aplicación y programación. También describe el proceso de creación de software y explica que existen diferentes metodologías como cascada, evolutivas y más.
metodologías para el análisis y diseño de sistemas BrainQC
El documento presenta una descripción general de varias metodologías y conceptos relacionados con el análisis y diseño de sistemas, incluyendo el ciclo de vida del desarrollo de software, los objetivos del lenguaje UML, diagramas de interacción, metodologías como RUP, RAD, Scrum y conceptos como sistemas blandos.
Este documento presenta varias metodologías para el análisis y diseño de sistemas. Describe el Lenguaje Unificado de Modelado (UML), la Metodología del Ciclo de Vida de un Sistema de James Martin, el Proceso Unificado de Desarrollo de Software, la Metodología de Kendall & Kendall, la Metodología de Sistemas Expertos de David Rolston, y otras metodologías como Scrum, Merinde y Sistemas Blandos.
Este documento describe la historia de la ingeniería de software y su aplicación a la educación informática. Explica que la ingeniería de software surgió en 1968 para hacer frente a una crisis de software. Se define la ingeniería de software como la aplicación sistemática de principios de ingeniería para desarrollar software fiable y eficiente. También describe los componentes clave de la ingeniería de software como herramientas, métodos, procesos y enfoques de calidad. Finalmente, explica el ciclo de vida del software que incluye las fases de definición,
El documento describe varias metodologías para el desarrollo de software, incluyendo el modelo en cascada, el modelo espiral, la metodología RUP y los ciclos de vida de los sistemas y el software. Explica que una metodología es un marco de trabajo que estructura, planifica y controla el proceso de desarrollo de software.
Metodologías para el análisis diseño de sistemasGeorghe
El documento describe varias metodologías para el análisis y diseño de sistemas. Entre ellas se encuentran metodologías como RUP, que incluye fases como análisis, diseño e implementación; metodologías orientadas a objetos que utilizan diagramas UML; y metodologías ágiles como Scrum que dividen el proceso en iteraciones de planificación, ejecución e inspección. En general, la mayoría de las metodologías describen procesos sistemáticos con etapas como análisis de requisitos
Normas y Estándares de calidad para el desarrollo de SoftwareEvelinBermeo
Este documento resume varios modelos y estándares de calidad para el desarrollo de software. Describe normas ISO/IEC como ISO 9126 que definen las características de calidad de software y ISO/IEC 25000 (SQuaRE) que armoniza normas anteriores. También cubre el modelo CMMI para mejorar procesos, SPICE para evaluar procesos, PSP/TSP para estimación a nivel individual/grupal y MOPROS para pymes mexicanas. Los diferentes estándares permiten un proceso de mejora continua al implementarlos.
It refers to a group of abstractions and patterns that provide us a useful outline to guide us in the development of software in a computer system reference.
Metodología para el desarrollo del sistemas de información y comunicación seg...travesuras79
Sintesis del Libro "Analisis y Diseño de Sistemas de Informacion" de Jeffry Whitten en el 2003, donde se detalla la metodologia para el desarrollo de sistemas de información y comunicación
Este documento describe la ingeniería de software y su historia. La ingeniería de software surgió en la década de 1960 para abordar los problemas de calidad y costos asociados con el desarrollo de software. El documento luego explica los objetivos, etapas y modelos de la ingeniería de software, incluidos el modelo en cascada, el modelo en espiral y el proceso unificado. Finalmente, cubre temas como la arquitectura, los marcos como MSF y los factores que deben considerarse en cada iteración del modelo en espiral.
El documento describe varias metodologías, estándares y modelos para el desarrollo de software, incluyendo SWEBOK, que define las áreas de conocimiento de la ingeniería de software; Métrica V3.0, una metodología española basada en ISO 12207; y MoProSoft, un modelo mexicano de 9 procesos para la industria de software.
Este documento describe varias metodologías para el análisis y diseño de sistemas. Presenta el Lenguaje Unificado de Modelado (UML), la Metodología RAD de James Martin, el Proceso Unificado de Desarrollo de Software, la Metodología de Kendall & Kendall, la Metodología RMM, la Metodología de Sistemas Expertos de David Rolston, la Metodología de Software Educativo de Álvaro Galvis, la Metodología de Sistemas Blandos de Peter Checkland y la Metodología Scrum. Conclu
Unidad 1 Introducción a la Ingeniería de SoftwareMary Carmen
Este documento presenta conceptos clave de ingeniería de software e información, incluyendo mitos, paradigmas, calidad, procesos, métodos, herramientas y gestión de proyectos de software. También describe la importancia de la ingeniería de software, su historia y evolución, y conceptos de sistemas de información como características, estructuras, clasificaciones, ERP, CRM y SCM.
Metodologías de Diseño y Desarrollo de Sistemas de InformaciónRafael Brito
Este documento describe las diferentes fases del desarrollo de sistemas de información. Inicia con la fase de requerimientos, donde se determinan los requerimientos del sistema. Luego está la fase de análisis y diseño, donde se desarrolla el diseño arquitectónico utilizando los requerimientos. Finalmente, la fase de construcción, que incluye actividades como el desarrollo de la infraestructura, la adaptación de paquetes, y el desarrollo de unidades interactivas, por lotes y manuales.
El documento discute el diseño de sistemas de información. Explica que el diseño de sistemas es la primera fase donde se selecciona el enfoque básico para resolver un problema, dividiendo el sistema en subsistemas. También cubre decisiones de alto nivel como la organización del sistema, asignación de tareas a procesadores, y el manejo de datos y recursos compartidos. El diseñador debe considerar aspectos como la estructura, concurrencia, implementación y condiciones del sistema.
El documento describe los conceptos fundamentales del proceso de desarrollo de software. Explica que el desarrollo de software es una actividad importante en muchas áreas y que involucra a terceros además de los programadores. Luego introduce los conceptos clave del proceso de ingeniería de software, incluyendo las actividades principales (requisitos, análisis, diseño, implementación, pruebas), la importancia de los modelos de proceso, y factores como la arquitectura y metodologías. Finalmente, profundiza en detalles específicos
Ingenieria de software (conceptos básicos)Yaskelly Yedra
La ingeniería de software es el área de la ciencia de la computación, que ofrece métodos y técnicas para el desarrollo de software, estudia el conjunto de actividades relacionadas con el ciclo de desarrollo del software, en particular se enfoca tanto a en calidad de su proceso como de su producto.
Este documento proporciona una introducción al modelado de software. Explica que el modelado de software es una técnica que ayuda a visualizar y especificar la estructura y comportamiento de un sistema de información. Los modelos también facilitan la comunicación con los clientes. El modelado de software tiene varios beneficios como mejorar la productividad, reducir errores y facilitar el mantenimiento. Los principios incluyen elegir los modelos apropiados y expresarlos a diferentes niveles de detalle.
Fundamentos del diseño y Garantías de Calidad del SoftwareRichard J. Nuñez
Este documento trata sobre los fundamentos del diseño de software y las garantías de calidad del software. Explica que el diseño de software es una etapa importante que permite evaluar la calidad del software antes de codificar y realizar pruebas. También describe diferentes técnicas para el diseño de software como el diseño orientado a objetos, y métodos para garantizar la calidad como las pruebas de software y el mantenimiento preventivo y de seguridad.
Presentación realizada por Romain Fleury, traductor y consultor en el área de la localización y uso de herramientas TAC, el 6 de septiembre de 2014, en Lima, Perú, en el marco del I Ciclo de Conferencias y Cursos de Traducción e Interpretación Especializadas 2014 organizado por el Instituto de Altos Estudios en Traducción (IAET).
Este documento resume cuatro figuras retóricas: laísmo, elipsis, dequeísmo y personificación. El laísmo es el uso incorrecto de los pronombres "la" y "las" en lugar de "le" y "les". La elipsis es la omisión de elementos para lograr énfasis. El dequeísmo es el uso incorrecto de la preposición "de" antes de la conjunción "que". La personificación atribuye características humanas a entidades no humanas.
El documento presenta las biografías breves de varios estudiantes y profesores que desean participar de forma responsable en un blog escolar. Cada biografía incluye el nombre de la persona y, en algunos casos, su cargo o especialidad. El documento también incluye una definición de amor y un enlace a una página web con más información sobre el tema.
El documento describe la evolución de la comunicación humana. Explica que el lenguaje y el habla son herramientas para comunicarse mediante signos orales o escritos. Describe los actos del habla como afirmaciones, peticiones u órdenes, y expresiones de emociones. También explica los mecanismos de comunicación como el lenguaje mímico, pictográfico, auditivo y oral, y cómo la escritura evolucionó para reemplazar la lengua oral.
El documento describe los componentes principales de un ordenador, incluyendo la carcasa, placa base, periféricos de entrada y salida, y sistemas de almacenamiento. También explica los diferentes tipos de software como sistemas operativos, aplicaciones de productividad, herramientas de desarrollo, y programas de comunicación y seguridad.
España tiene altas tasas de fracaso escolar y deserción, con uno de cada tres jóvenes que abandona la educación secundaria, según datos de la UNESCO. El documento analiza las tasas de éxito escolar en España, que rondan el 70-74%, aunque aumentan al 84% si se incluyen quienes obtienen el título a través de educación de adultos. Las tasas varían significativamente entre comunidades autónomas, desde el 89% en Asturias hasta el 61% en Baleares. Además, casi tres de
Este capítulo discute la ingeniería de software y los procesos de desarrollo de software. Explica que el desarrollo de software es una tarea difícil que involucra aspectos funcionales, ergonómicos y educativos. También introduce el concepto de proceso de software y discute los modelos y estándares internacionales de procesos de desarrollo de software. Finalmente, define la ingeniería de software y explica su importancia para el desarrollo de software de calidad.
Este documento describe diferentes temas relacionados con la ingeniería de software, incluyendo definiciones, importancia, utilidad y clasificaciones de aplicaciones de cómputo. También cubre los modelos de desarrollo de software como el modelo en cascada, incremental y de desarrollo rápido de aplicaciones.
El documento describe los métodos y herramientas de la ingeniería de software y cómo pueden aplicarse para el desarrollo de programas educativos. Explica los principales paradigmas del ciclo de vida del software como el modelo en cascada y los orientados a objetos. También define la calidad del software y métricas comúnmente usadas para medirla. El objetivo es presentar una metodología para el diseño, desarrollo y evaluación de software educativo aplicando los principios de la ingeniería de software.
El documento habla sobre el curso de Ingeniería de Software II. Explica conceptos clave como ingeniería de software, ciclo de vida de un proyecto, metodologías, arquitectura de software, clasificación de aplicaciones y más. También describe las implicaciones socioeconómicas de la ingeniería de software y define términos como SEI y W3C.
El documento habla sobre conceptos clave de la ingeniería de software como definiciones, historia, metodologías, ciclo de vida de proyectos, arquitectura de software, y más. Explica que la ingeniería de software aplica un enfoque sistemático al desarrollo de software, y cubre temas como las implicaciones económicas y sociales del software, las etapas comunes en los proyectos como análisis de requisitos y pruebas, y herramientas para la ingeniería de software.
Este documento presenta un ensayo sobre la calidad de software. Describe la ingeniería de software, incluyendo sus definiciones, metodologías, ciclo de vida y factores de calidad. Explica conceptos como los costos asociados con la calidad, las características y mitos del software, y las capas de la ingeniería de software. Finalmente, define la calidad de software y sus factores internos y externos.
Este documento presenta un ensayo sobre la calidad de software. Describe la ingeniería de software, incluyendo sus definiciones, metodologías, ciclo de vida y factores de calidad. Explica conceptos como los costos asociados con la calidad, las características y mitos del software, y las capas de la ingeniería de software. Finalmente, define la calidad de software y sus factores internos y externos.
El documento describe un ensayo sobre la calidad de software. Explica conceptos clave como la ingeniería de software, los ciclos de vida del desarrollo de software, los costos asociados con la calidad, las características y mitos del software, las capas de la ingeniería de software y la definición de software de calidad. El ensayo analiza estos temas para proporcionar elementos que permitan tomar decisiones sobre inversiones para asegurar la calidad y mejorar procesos de desarrollo de software.
Este documento define el software y describe los diferentes tipos, incluyendo software de aplicación, programación y sistema. Explica que el software incluye programas, datos, documentación e instrucciones que permiten la ejecución de tareas en una computadora. También describe el proceso de desarrollo de software, que generalmente incluye etapas como la captura de requisitos, diseño, codificación, pruebas e implementación.
Este documento trata sobre la ingeniería de software. Explica que la ingeniería de software es un enfoque sistemático para el desarrollo, operación, mantenimiento y retiro de software. Además, define el software como la suma total de programas de computadora, procedimientos, reglas, documentación y datos que pertenecen a un sistema computacional. Finalmente, describe las diferentes etapas del desarrollo de software, incluyendo la concepción, elaboración, construcción y transición.
El documento habla sobre hardware y software, así como sobre comunicación y colaboración en Internet. Explica definiciones de hardware y software, su clasificación y procesos de creación. Describe diferentes tipos de software como sistema, programación y aplicación. También cubre modelos de procesos como el modelo en cascada y sus ventajas y desventajas para el desarrollo de software.
Este documento describe los conceptos clave de la ingeniería de software. Explica que la ingeniería de software es la aplicación sistemática del desarrollo de software mediante el uso de metodologías probadas. También describe las principales etapas del ciclo de vida del desarrollo de software como el análisis de requisitos, diseño, programación, pruebas y mantenimiento. Además, discute los modelos de desarrollo de software e implicaciones socioeconómicas de la ingeniería de software.
Este documento define el software como la parte lógica e intangible de una computadora que incluye programas, datos, documentación e instrucciones. Explica que el software se clasifica en aplicaciones, programación y sistemas. También describe el proceso de desarrollo de software, el cual involucra etapas como requisitos, diseño, codificación, pruebas e instalación.
El documento trata sobre la ingeniería del software. Explica que la ingeniería del software surgió en los años 1960 para facilitar la creación y comprensión del software a través de herramientas y procesos. Desde entonces, se ha convertido en una disciplina legítima con logros significativos, aunque aún queda trabajo por hacer. También define los diferentes tipos de software y costos asociados con la calidad del software.
Este documento presenta una metodología ágil para el desarrollo de un sistema de información para la captura y recolección de información en el proceso de inteligencia. Utilizará el lenguaje de programación Java y XML para el almacenamiento de datos. La metodología propuesta busca mejorar la comunicación de información entre agentes y organismos de inteligencia de una manera más estructurada y eficiente.
Este documento presenta información sobre ingeniería de software. Define conceptos clave como programa, software, aplicación y sistemas operativos. Explica qué es la ingeniería de software y sus objetivos. Detalla las etapas del desarrollo de software y los modelos más comunes como el modelo en cascada y en espiral. Finalmente, discute la importancia de la calidad en el desarrollo de software.
Este documento trata sobre ingeniería de software. Define conceptos como programa, software, aplicación y componentes lógicos. Explica qué es ingeniería y específicamente ingeniería de software. Detalla las etapas del desarrollo de software y los modelos como cascada y en espiral. Finalmente, discute la importancia de la calidad en el software.
Este documento presenta una introducción a la ingeniería de software. Define la ingeniería de software como una disciplina que ofrece métodos y técnicas para desarrollar software de calidad. Explica que la ingeniería de software trata con áreas como sistemas operativos e Internet y se aplica a muchas industrias. También describe los fundamentos teóricos, el proceso de desarrollo de sistemas informáticos, y concluye explicando cómo la ingeniería de software puede mejorar la eficiencia y calidad de sistemas críticos.
Metodologías de diseño y desarrollo de sistemas de informaciónJose Martinez
Los sistemas de información son fundamentales para el desarrollo de actividades y toma de decisiones en las organizaciones. Existen metodologías para el desarrollo de sistemas de información que definen actividades del proyecto y satisfacen las necesidades de los usuarios. El desarrollo de sistemas de información incluye etapas como el análisis de requisitos, diseño, implementación, pruebas y mantenimiento.
El documento describe la importancia del software y la ingeniería de software. Explica que el software se ha convertido en un elemento fundamental en la mayoría de los sistemas modernos y actividades cotidianas. También describe que la ingeniería de software implica seguir un proceso sistemático para el desarrollo de software que involucra a equipos de personas con diferentes perfiles técnicos especializados trabajando juntos. Además, señala que la calidad del software depende en gran medida de la pericia del equipo que lo desarrolla y del cumplimiento de los requis
1. Cap´ıtulo 5
Ingenier´ıa de software
El desarrollo de sistemas de informaci´on se caracteriza por ser una dif´ıcil
empresa. El grado de dificultad se incrementa cuando el software producido
tiene caracter´ısticas educativas. Ante esto, se verifica que el desarrollo de
software educativo integra tanto los aspectos ergon´omicos (i.e. aquellos estu-
diados en la ingenier´ıa de usabilidad) y los aspectos educativos (i.e. aquellos
estudiados por las teor´ıas educativas), como los aspectos funcionales (i.e.
aquellos estudiados por la ingenier´ıa de software).
De esta manera, se a˜nade a la presente tesis la ingenier´ıa de software
en donde se investigan, desde el enfoque basado en procesos1
, los siguientes
aspectos:
• El an´alisis y dise˜no de modelos conceptuales de flujos de trabajo.
• Su estructura de organizaci´on.
1
De acuerdo con Hammer y Champy (1993), la mayor´ıa de las personas de negocios no
usan el enfoque de an´alisis y dise˜no basado en proceso, sino que usan enfoques orientado
a tareas, a trabajo, a personas y a estructuras.
130
2. 131
• La gesti´on y control de calidad.
En este cap´ıtulo, se presentan los conceptos fundamentales para el en-
tendimiento de los v´ınculos existentes entre la ingenier´ıa de software y el
modelo de test propuesto (v´ease Cap´ıtulo 7). El panorama presentado parte
de la definici´on de software y sus caracter´ısticas, pasando por los modelos
y est´andares internacionales de proceso de software, hasta la definici´on de
modelos de proceso de test.
3. 132
5.1 El software y su ingenier´ıa
El software es un sistema inform´atico compuesto por un conjunto de ins-
trucciones que, cu´ando se ejecutan en un dispositivo f´ısico (i.e. el hardware)
produce resultados de acuerdo con los objetivos y funci´on principal prede-
terminada. Dicho conjunto de instrucciones est´a organizado en estructuras
de datos2
que permiten la manipulaci´on de la informaci´on. Seg´un Pressman
(1995), el ingenio del “desarrollador” (o del equipo de desarrollo) es el ´unico
aspecto que limita el dise˜no (i.e. organizaci´on y complejidad) de una es-
tructura de datos, aunque existen algunas estructuras de datos cl´asicas (e.g.
escalar, vector secuencial, listas encadenadas y ´arbol jer´arquica) que pueden
ser usadas para la construcci´on de estructuras m´as complejas.
La estructura de datos asociada al tipo de hardware usado influye de-
cisivamente en el desempe˜no del software. As´ı pues, durante el dise˜no y
programaci´on de un software es importante seleccionar el tipo de estructura
de datos m´as adecuado respecto al tipo de procesamiento previsto.
Usando el concepto abstracto del software (i.e. parte l´ogica del sis-
tema “computacional”3
) como punto de partida, se presentan algunas car-
acter´ısticas que distinguen el software del hardware y ofrecen una buena
2
De acuerdo con Pressman (1995, p. 432-433),
“la estructura de datos es una representaci´on de la relaci´on l´ogica entre e-
lementos de datos individuales. (...) La estructura de datos determina la
organizaci´on, los m´etodos de acceso, el grado de asociatividad y las alterna-
tivas de procesamiento de informaciones”.
3
Se define un sistema “computacional” como un entorno de trabajo, estudio, entrete-
nimiento u otra actividad, el cual est´a compuesto por tres elementos interrelacionados: el
software (i.e. la parte l´ogica), el hardware (i.e. la parte f´ısica) y el peopleware (i.e. la
parte humana).
4. 133
compresi´on de su significado (Pressman, 1995):
• Su desarrollo o proyecto no se basa en manufactura cl´asica sino que en
la ingenier´ıa.
• Considerando que un determinado software est´a implantado, ´este no
se deteriora con el tiempo, la suciedad, las temperatura altas y la vi-
braci´on, como es el caso del hardware. Por otra parte, la evoluci´on
del hardware impone cambios de paradigmas en la filosof´ıa de dise˜no
del software, de manera que se identifica la implementaci´on de nuevas
versiones con el prop´osito de adaptarlas a las nuevas tecnolog´ıas.
• La mayor´ıa de los sistemas inform´aticos son desarrollados a medida
(i.e. se concibe el software como una unidad completa). Sin embar-
go, actualmente se observa una tendencia que consiste en dise˜nar y
implementar componentes de software que puedan ser usados seg´un la
necesidad. En la literatura, se pueden encontrar diversos estudios sobre
el tema (e.g. Veryard (1997) y Garc´ıa y Fuente (2000)).
En este sentido, se desarrolla un software con el objetivo de facilitar
todas aquellas tareas en d´onde se verifica la necesidad de procesamiento de
grandes cantidades de informaciones. Esto implica la determinaci´on de ´areas
de aplicaci´on de software (e.g. software b´asico, de tiempo real, comercial,
cient´ıfico y de ingenier´ıa, educativo, etc.), lo que, seg´un Pressman (1995), es
una tarea dif´ıcil. Dentro el contexto de la presente investigaci´on, se trata
con el software educativo representado las aplicaciones multimedia usadas en
educaci´on y formaci´on a distancia.
5. 134
Zahran (1998) argumenta que el desarrollo de software, m´as que un in-
tento, es una empresa caracterizada por un proceso continuado de desaf´ıo.
Adem´as, la influencia del software dentro del mundo de los negocios y de la
vida cotidiana de las personas se vuelve cr´ıtica debido no s´olo a los problemas
conceptuales y de dise˜no, sino tambi´en a los problemas t´ecnicos y econ´omicos
generados durante el proyecto de software.
Las propuestas acad´emicas y de la industria para reducci´on de estos pro-
blemas como por ejemplo las herramientas CASE4
y las metodolog´ıas de
desarrollo, han permitido que el software evolucionara provocando, a partir
de las necesidades creadas, la aparici´on de una nueva disciplina: la ingenier´ıa
de software.
Dicha disciplina, incluyendo la ingenier´ıa de usabilidad (v´ease Cap´ıtulo
4), define est´andares para el desarrollo de software de calidad basados en
diversos indicadores como, por ejemplo, la correcci´on, la eficacia, la eficiencia,
la fiabilidad, la facilidad de comprensi´on, de uso y de mantenimiento, la
interoperabilidad, la portabilidad, la reusabilidad y la robustez.
De acuerdo con Naur y Randall (1968), la ingenier´ıa de software es
“el establecimiento y uso de s´olidos principios de ingenier´ıa con
el prop´osito de obtener econ´omicamente un software que sea fiable
y que funcione eficientemente en m´aquina reales”.
Humphrey (1989) presenta una definici´on similar resaltando, de manera
4
La sigla CASE es acr´onimo de Computer-Aided Software Engineering. Esta herramien-
ta consiste en un sistema compuesto por software, hardware y una base de datos que ofrece
soporte a la ingenier´ıa de software, permitiendo el an´alisis estructurado, la implementaci´on
y test de sistemas inform´aticos.
6. 135
general, la calidad del software. Usando la definici´on citada anteriormente
como punto de partida, Totland y Conradi (1995) comentan que el ´area
de modelado del proceso de software (software process modeling) puede ser
considerado como un subdominio de la ingenier´ıa de software.
El desarrollo formal de software se caracteriza por la definici´on de los
requerimientos de la aplicaci´on, la especificaci´on de los objetivos, el dise˜no
iterativo, los procesos continuados de test y la implementaci´on del software.
Para cada una de estas actividades se dise˜nan procesos (y subprocesos) que
ser´an implementados a trav´es de un lenguaje de programaci´on.
Considerando la perspectiva del dise˜no centrado en el usuario (v´ease Sec-
ciones 4.4 y 4.6, p´aginas 101 y 122 respectivamente), el estudio y la evoluci´on
de los m´etodos y t´ecnicas de control y gesti´on de la calidad han sido deter-
minantes para la creaci´on de la ingenier´ıa de usabilidad.
´Esta se caracteriza por ser uno de los macro-procesos de la ingenier´ıa
de software. En este sentido, Sulaiman (1996) presenta una propuesta de
integrar la usabilidad al ciclo de vida de producci´on de software a trav´es de
la inserci´on de m´etodos de medici´on de calidad de software y en las fases
iniciales de proyecto.
Se realiza la integraci´on a partir de la definici´on de los procesos de soft-
ware. Por lo tanto, se presentan en las pr´oximas secciones la contextuali-
zaci´on y conceptualizaci´on necesaria del enfoque de dise˜no y desarrollo de
software orientado a procesos. De esta manera, se concentra el estudio en las
actividades de mejora de procesos de software y procesos de test.
7. 136
5.1.1 Proceso de software
Para lograr el entendimiento de proceso de software, es necesario, en primer
lugar, presentar una definici´on de proceso. En la literatura, se puede en-
contrar una amplia variedad de definiciones de la palabra “proceso”. Por
consiguiente, se observa que dentro de esta variedad existen distintas inter-
pretaciones, sean por extensi´on, cobertura o orientaci´on (Zahran, 1998).
Hammer y Champy (1993, p. 35) presentan una definici´on adecuada para
el ´ambito de la presente tesis debido a su car´acter general. Seg´un los autores,
un proceso es
“una colecci´on de actividades que toman uno o m´as tipos de en-
tradas y crea una salida que es de valor para cliente”.
En el contexto de la presente investigaci´on, la colecci´on de actividades
se caracteriza por todos los procedimientos que componen el ciclo de vida
de software (i.e. procesos de concepci´on, dise˜no, desarrollo, mantenimiento,
documentaci´on, control de calidad, test, gesti´on, entrenamiento, etc.) desde
las fases iniciales hasta su uso por el cliente (i.e. el usuario final). Cabe re-
saltar que un software se caracteriza por tres grandes actividades: la entrada
de datos, su procesamiento y la salida de las informaciones procesadas.
De acuerdo con Zahran (1998), un proceso est´a compuesto por tres as-
pectos. El primer aspecto es la definici´on del proceso que generalmente est´a
representado por un documento que especifica las actividades y procedimien-
tos para el proceso. El segundo aspecto se refiere a la transferencia del
conocimiento del proceso para aquellos que lo van a ejecutar. Finalmente, el
8. 137
tercer aspecto son los resultados obtenidos del proceso despu´es de su ejecu-
ci´on. Seg´un el autor, el enfoque orientado a proceso permite:
• La sincronizaci´on y armon´ıa entre las actividades desempe˜nadas por
cada individuo y los objetivos comunes del equipo.
• La garant´ıa de la consistencia de las actividades y sus resultados.
• El uso de t´ecnicas objetivas de medici´on del desempe˜no de cada indi-
viduo respecto a las actividades asignadas.
• Debido a la reducci´on de la dependencia en cada individuo, se consigue
que el equipo pueda repetir un determinado proceso, aunque individuos
ajenos sean asignados a la actividad.
Por otra parte, seg´un Curtis, Kellner y Over (1992), las perspectivas
en la representaci´on del proceso son la funcional, la de conducta, la de la
organizaci´on y la de la informaci´on. Usando la definici´on de proceso y sus
consideraciones como punto de partida, Boehm (1988, p. 61) argumenta que
“las funciones primarias de un modelo de proceso de software son
determinar el orden de las fases involucradas en el desarrollo y
evoluci´on de software y establecer los criterios de transici´on para
avanzar de una fase a la pr´oxima”.
La ingenier´ıa del software comprende un conjunto estructurado de pa-
sos que representan los “paradigmas de la ingenier´ıa del software”. Estos
paradigmas se basan en la naturaleza del proyecto y de la aplicaci´on, en los
m´etodos y las herramientas que ser´an usados en el proyecto, los controles y
los productos o servicios desarrollados (Pressman, 1995).
9. 138
5.2 Ciclo vida de software
En la literatura, se pueden encontrar varios modelos de ciclo de vida de
desarrollo de software. Todos ellos se basan en diversos aspectos tales como
la planificaci´on, el an´alisis, el dise˜no e implementaci´on de software. Cada uno
de estos m´etodos est´an asociados a los marcos y paradigmas tecnol´ogicos de
su entorno y ´epoca.
A continuaci´on, se presenta una revisi´on de los modelos de ciclo de vida
de desarrollo de software.
5.2.1 Modelo codificar-y-fijar
Boehm (1988) comenta que en la ´epoca inicial del desarrollo de software, se
ha usado el modelo codificar-y-fijar (code-and-fix). ´Este contiene dos pasos:
• Escribir alg´un c´odigo.
• Fijar los problemas en el c´odigo.
De esta manera, inicialmente se implementaba alg´un c´odigo y, a continua-
ci´on, se pensaba sobre los requerimientos, el dise˜no, los test y el mantenimien-
to. Las principales dificultades del modelo consisten en la estructuraci´on in-
suficiente de c´odigo, la carencia de correspondencia con las necesidades del
usuario y el coste excesivo debido a la deficiente preparaci´on de los test y
modificaciones.
Ante esto, se observa la necesidad de reorganizaci´on del modelo en etapas,
incorporando elementos de planificaci´on, coordinaci´on y control.
10. 139
5.2.2 Modelo de etapas
A partir de la necesidad de construir grandes sistemas de software (e.g. Semi-
Automated Ground Environment - SAGE), el modelo de etapas ha sido desa-
rrollado con el prop´osito de facilitar la mejora de los problemas involucrados
en los proyectos de software (Benington, 1956). El modelo determina que el
software ser´a desarrollado en etapas consecutivas:
• Plan operativo.
• Especificaci´on operativa.
• Especificaci´on de codificaci´on.
• Codificaci´on o implementaci´on.
• Test de par´ametros.
• Test de integraci´on o montaje.
• Registro (shakedown).
• Evaluaci´on del sistema.
Adem´as, el modelo enfatiza la documentaci´on resultante de cada una de
las etapas, de manera que formaliza los procedimientos de planificaci´on y
de control. No obstante, se identifica no s´olo una laguna entre el equipo
de desarrollo, caracterizado b´asicamente por la figura del programador, y el
usuario del software, sino tambi´en la necesidad de rehacer todo el sistema
cuando se detectan problemas en su instalaci´on.
11. 140
5.2.3 Modelo en cascada
Este modelo, tambi´en conocido como ciclo de vida cl´asico (Pressman, 1995)
ha sido inicialmente presentado por Royce (1970) y se caracteriza por un
refinamiento del modelo de etapas, en el cual se realza los ciclos de retroali-
mentaci´on entre las etapas con el objetivo de minimizar el coste de retrabajo
del proyecto. El modelo incorpora el “prototipaje” al ciclo de vida de desa-
rrollo de software. En la Figura 5.1, se presentan la etapas del modelo.
Viabilidad del
sistema
Validación
Validación
Planes y requerimien-
tos de software
Verificación
Diseño del producto
Verificación
Diseño detallado
Test de unidad
Código
Verificación
del producto
Integración
Test del sistema
Implementación
Revalidación
Operaciones y
mantenimiento
Figura 5.1: El modelo en cascada del proceso de software. Fuente: Boehm
(1988)
12. 141
Aunque los ciclos de retroalimentaci´on permitan realizar extensas revi-
siones y refinamientos, se identifican algunas dificultades causadas por el
´enfasis en la elaboraci´on de documentos completos como criterios de fina-
lizaci´on para las etapas de requerimientos y dise˜no. Por otra parte, se
observa la problem´atica de su aplicaci´on a sistemas interactivos, debido,
una vez m´as, al distanciamiento entre los usuarios y el equipo de desarrollo
(Boehm, 1988; Sommerville, 1996).
5.2.4 Modelo de desarrollo orientado a prototipos
Este modelo consiste en un procedimiento que permite al equipo de desarrollo
dise˜nar y analizar una aplicaci´on que representa el sistema que ser´a imple-
mentado (McCracken y Jackson, 1982). Dicha aplicaci´on, llamada prototipo,
est´a compuesta por los componentes que se desean evaluar (i.e. las funciones
principales). Las etapas del modelo son:
• Investigaci´on preliminar.
• Colecta y refinamiento de los requerimientos y proyecto r´apido:
– An´alisis y especificaci´on del prototipo.
– Dise˜no y construcci´on del prototipo.
– Evaluaci´on del prototipo por el cliente.
– Refinamiento del prototipo.
• Dise˜no t´ecnico.
• Programaci´on y test.
13. 142
• Operaci´on y mantenimiento.
De acuerdo con Pressman (1995), los problemas identificados en el modelo
de desarrollo orientado a prototipos consisten, por una parte, en que “se ve
lo que parece ser” (i.e. lo que el usuario examina es una representaci´on
del sistema con funcionalidades restringidas), por tanto, no se considera la
calidad global del software, ni sus aspectos de mantenimiento. Por otra parte,
el equipo de desarrollo hace concesiones de implementaci´on basadas en el uso
de sistemas operativos y lenguajes de programaci´on impropios, sin importar
la inadecuaci´on posterior del producto.
5.2.5 Modelo de desarrollo evolutivo
De acuerdo con Boehm (1988), las etapas del modelo de desarrollo evolutivo
“consisten en expandir los incrementos de un producto de software
operativo, siendo las direcciones de evoluci´on determinadas por la
experiencia operativa”.
Se identifica, por tanto, la importancia en la obtenci´on de un sistema de
producci´on flexible y expansible, permitiendo la adaptaci´on de los cambios
de requerimientos que no han sido planeados. Se asocia este modelo a un
lenguaje de cuarta generaci´on. En este sentido, Sommerville (1996) comenta
que este modelo es el m´as apropiado para el desarrollo de sistemas interactivos
y de sistemas de inteligencia artificial. Las etapas b´asicas del modelo son:
• Especificaci´on inicial.
• Desarrollo del producto o servicio.
14. 143
• Implementaci´on.
• Uso.
• Evaluaci´on.
• Nuevas versiones.
• Re-especificaci´on.
Sin embargo, se observan algunas dificultades t´ecnicas como, por ejemplo,
la problem´atica de la integraci´on de aplicaciones independientes, los casos de
“esclerosis de informaci´on” debido a los trabajos temporales alrededor de
algunas deficiencias del software y el reemplazo de un nuevo software en un
gran sistema existente (Boehm, 1988).
5.2.6 Modelo de transformaci´on
El modelo de transformaci´on ha sido propuesto como una soluci´on a las difi-
cultades de c´odigo del modelo de desarrollo evolutivo y del modelo codificar-
y-fijar analizado dentro del modelo en cascada. Desde la ´optica de Boehm
(1988, p. 63) el modelo
“asume la existencia de una capacidad de convertir autom´aticamente
una especificaci´on formal de un producto de software en un pro-
grama que satisfaga la especificaci´on”.
Seg´un el autor, los pasos de este modelo son:
• Especificaci´on formal del mejor entendimiento inicial del producto de-
seado.
15. 144
• Transformaci´on autom´atica de la especificaci´on en c´odigo.
• Un ciclo iterativo, si necesario, para mejorar el desempe˜no del c´odigo
resultante, lo que ofrece una gu´ıa de optimizaci´on al sistema de trans-
formaci´on.
• Ejercicio o evaluaci´on del producto resultante.
• Un ciclo interactivo externo para ajustar las especificaciones basadas en
el resultado de la experiencia operativa, y para rederivar, reoptimizar,
y ejercitar o evaluar el producto de software ajustado.
Las dificultades del modelo se caracterizaban por la carencia generali-
zada de capacidades de transformaci´on autom´aticas s´olo disponibles para
peque˜nos productos, la posibilidad de evoluci´on no planeada y los problemas
de mantenimiento de base de conocimiento.
5.2.7 Modelo espiral
Boehm (1988) presenta el modelo espiral del proceso de software (v´ease Figu-
ra 5.2), el cual ha evolucionado bas´andose en los diversos refinamientos del
modelo en cascada y del desarrollo orientado a prototipos. El modelo espiral
se caracteriza por un conjunto de ciclos progresivos, en los cuales se identi-
fican los objetivos de cada parte del producto que est´a siendo desarrollado,
las propuestas alternativas de implementaci´on y las restricciones impuestas
por dichas alternativas al software.
16. 145
Evaluación del cliente
Planeamiento Coste acumulado
Revisión
Comprometimiento
Partición
Determinar
objetivos,
alternativas,
restricciones
Planificar las
siguientes fases
Evaluar
alternativas,
identificar y
resolver riegos
Desarrollar y
verificar el
producto en el
siguiente nivel
Progreso a través
de las fases
Análisis de
riesgos (AR)
AR
AR
AR
Prototipo
operativoPrototipo 1
Prototipo
2
Prototipo
3
Simulaciones, Modelos, Estándares
Implemen-
tación
Diseño detallado
Código
Testdeunidad
Integracióny
test
Testde
aceptación
Plan de
requisitos,
Plan de ciclo
de vida
Concepto de
operación
Requisitos
de software
Validación
de requisitos
Plan de
desarrollo
Diseño del pro-
ducto de software
Verificación y
validación del diseñoPlan de test eintegración
Ingeniería
Análisis de riegos
Figura 5.2: El modelo espiral del proceso de software. Fuente: Boehm (1988)
El modelo se divide en cuatro cuadrantes que representan las actividades
principales para el ciclo de vida de desarrollo de software, resumidos por
Pressman (1995) en:
• Planeamiento.
• An´alisis de riegos.
• Ingenier´ıa.
• Evaluaci´on del cliente.
17. 146
De acuerdo con Boehm (1988, p. 65) el ciclo de vida propuesto por el
modelo se basa en cuatro preguntas fundamentales:
1. “¿C´omo empieza la espiral?”
2. “¿C´omo uno rompe los ciclos de la espiral cuando es apropiado termi-
nar un proyecto apenas iniciado?”
3. “¿Por qu´e la espiral se acaba bruscamente?”
4. “¿Qu´e pasa con la mejora (o el mantenimiento) del software?”
Debido a la reducci´on de riesgos determinada por el m´etodo evolutivo
del modelo, ´este representa un enfoque m´as apropiado para el desarrollo de
grandes, complejos y ambiciosos sistemas de informaci´on. Adem´as, el modelo
espiral posee un nivel alto de capacidades de entorno de soporte de software y
es flexible, lo que permite acomodar diversas alternativas t´ecnicas y objetivos
de usuario.
5.3 Modelos y est´andares internacionales de
proceso de software
Como se ha comentado, la presente investigaci´on se basa en el an´alisis de las
interrelaciones entre los aspectos ergon´omicos y el aprendizaje del usuario de
aplicaciones multimedia en entornos de formaci´on a distancia. Para ello, se
definen en las Seccione 5.1 y 5.2 de este cap´ıtulo, los fundamentos te´oricos
sobre la ingenier´ıa de software.
18. 147
En consecuencia, se puede decir que a trav´es de los modelos y est´andares
de evaluaci´on de proceso de software se podr´a establecer estrategias para la
definici´on de criterios de evaluaci´on de usabilidad de sistemas interactivos
multimedia.
5.3.1 Capability Maturity Model for Software
Paulk, Curtis, Chrissis y Weber (1993) definen el modelo de madurez de
capacidad (Capability Maturity Model - CMM) como un modelo que establece
los niveles por los cuales las organizaciones de software hacen evolucionar
sus definiciones, implementaciones, mediciones, controles y mejor´ıas de sus
procesos de software.
Adem´as, el CMM permite la definici´on del grado de madurez de las
pr´acticas de gesti´on y de ingenier´ıa de software de dichas organizaciones.
De esta manera, se puede determinar c´omo madura una determinada orga-
nizaci´on y cuales son las acciones de mejora prioritarias para sus procesos de
software.
El enfoque inicial del CMM ha sido el proceso de software. Sin embargo,
se puede encontrar aplicaciones del modelo en otros campos como por ejem-
plo CMM para personas (People CMM), CMM para ingenier´ıa de sistemas
(Systems Engineering CMM), CMM para la gesti´on de productos integrados
(Integrated Product Management CMM) y otros (Zahran, 1998).
19. 148
5.3.1.1 Estructura del CMM
El esquema del modelo CMM est´a compuesto por cinco niveles de madurez de
acuerdo con la capacidad del proceso de software y definidos por los objetivos
de los procesos que, cuando satisfechos, permiten evolucionar al pr´oximo nivel
ya que uno o m´as componentes importantes del proceso de software han sido
estabilizados (Paulk, Curtis, Chrissis y Weber, 1993). De esta manera, los
niveles de madurez ayudan a las organizaciones a definir prioridades para
sus esfuerzos de mejora. En la Figura 5.3, se presenta los cinco niveles de
madurez del proceso de software.
• Nivel 1 - Inicial: se caracteriza como ad hoc o ca´otico. Pocos procesos
son definidos.
• Nivel 2 - “Repetible” o repetici´on: se caracteriza como disciplinado. Se
establecen procesos b´asicos de gesti´on.
• Nivel 3 - Definido: se caracteriza como est´andar y consistente.
• Nivel 4 - Gestionado: se caracteriza como predicable. Hay un preocu-
paci´on en la medici´on detallada de la calidad del proceso de software y
del producto.
• Nivel 5 - Optimizaci´on: se caracteriza como mejora continua a partir
de la realimentaci´on (feedback) cuantitativa.
Cada nivel de madurez tiene una estructura interna (v´ease Figura 5.4)
compuesta por los siguientes componentes:
21. 150
• Nivel de madurez: Representa un indicador evolutivo que permite al-
canzar la madurez del proceso de software.
• ´Areas de proceso clave (Key Process Areas - KPA): Son las subestruc-
turas de cada nivel que indican las ´areas a las que una organizaci´on
deber´ıa dirigir su atenci´on con el prop´osito de mejorar su proceso de
software. Se asigna cada conjunto de KPA a un nivel de madurez (ex-
cepto al nivel uno), como se muestra en la Figura 5.5. Zahran (1998)
comenta que el CMM no detalla todas las ´areas de proceso involu-
cradas en el desarrollo y mantenimiento de software, sino que se enfoca
en las ´areas clave que contribuyen en la mayor´ıa de las capacidades de
proceso.
• Objetivos: Este componente delimita las KPA a trav´es de la definici´on
de su alcance, l´ımites y intenciones. Los objetivos, por lo tanto, de-
terminan las restricciones que deben ser superadas por la organizaci´on
para que ´esta pueda alcanzar mejores niveles de madurez.
• Caracter´ısticas comunes: Son atributos que indican si la implementaci´on
e institucionalizaci´on de una KPA son eficaces, repetidas y duraderas.
Paulk, Curtis, Chrissis y Weber (1993) presentan cinco caracter´ısticas
comunes:
– El compromiso en desempe˜nar las acciones que garantizan el es-
tablecimiento del proceso.
– La habilidad en desempe˜nar dichas acciones.
– Las actividades desempe˜nadas para implementar las KPA.
22. 151
– La medici´on y el an´alisis del estado y eficacia de las actividades
desempe˜nadas.
– La implementaci´on para la verificaci´on de las actividades desem-
pe˜nadas respecto a los procesos establecidos.
• Pr´acticas clave: ´Estas describen la infraestructura y actividades que
contribuyen para la implementaci´on e institucionalizaci´on efectiva de
la KPA.
Niveles de madurez
contienenindican
Capacidad del
proceso
Áreas de proceso clave
organizadas poralcanzan
Objetivos Características comunes
contienendireccionan
Implementación o
Institucionalización
Prácticas clave
describen
Infraestructura o
Actividades
Figura 5.4: Estructura interna del CMM. Fuente: Paulk, Curtis, Chrissis y
Weber (1993)
23. 152
Inicial (1)
Repetición (2)
Gestión de configuración de software
Garantía de calidad de software
Gestión de subcontratación de software
Supervisión y dirección del proyecto de software
Planeamiento de proyecto de software
Gestión de requerimientos
Definido (3)
Gestionado (4)
Gestión de calidad de software
Gestión de proceso cuantitativo
Revisión de pares
Coordinación intergrupo
Ingeniería de producto de software
Gestión de software integrado
Programa de entrenamiento
Definición de proceso de organización
Enfoque de proceso de organización
Optimización (5)
Gestión de cambio de proceso
Gestión de cambio de tecnología
Prevención de defecto
Figura 5.5: Las KPA representadas en cada uno de los cinco niveles de
madurez del proceso de software del CMM. Fuente: Paulk, Curtis, Chris-
sis y Weber (1993)
24. 153
De acuerdo con Zahran (1998), el CMM es un mapa para la definici´on de
pasos (i.e. un esquema de evaluaci´on) que una organizaci´on necesita realizar
para moverse desde procesos ca´oticos a procesos de mejora continua. Las eva-
luaciones basadas en CMM utilizan el cuestionario del Software Engineering
Institute (SEI) como un instrumento de evaluaci´on. Su enfoque se dirige a
temas relacionados con procesos y sus cuestiones se basan en los objetivos
de las KPA del CMM.
5.3.2 Est´andar ISO/IEC 15504
La Organizaci´on Internacional para Estandarizaci´on (International Organi-
zation for Standardization) y la Comisi´on Electrot´ecnica Internacional (Inter-
national Electrotechnical Commission) han presentado el est´andar ISO/IEC
15504 (1998), el cual se manifiesta a partir del consenso internacional en la
definici´on de un est´andar de dominio p´ublico para la evaluaci´on de procesos
de software.
El desarrollo del est´andar ISO/IEC 15504 se establece a partir del proyeto
SPICE5
que tiene como objetivo garantizar una ruta de desarrollo r´apida y
solicitar las opiniones de los expertos m´as importantes del mundo (Zahran,
1998).
5.3.2.1 Estructura del ISO/IEC 15504
El est´andar ISO/IEC 15504 consiste en dos dimensiones: la dimensi´on de
proceso y la dimensi´on de capacidad.
5
Software Process Improvement and Capability dEtermination.
25. 154
• Dimensi´on de proceso: se caracteriza por los prop´ositos de proceso (i.e.
objetivos de medici´on esenciales de un proceso) y el resultado esperado
del proceso (i.e. la indicaci´on de su finalizaci´on exitosa) (Zahran, 1998).
Para esta dimensi´on son atribuidas cinco categor´ıas:
– Categor´ıa de proceso cliente-proveedor.
– Categor´ıa de proceso de ingenier´ıa.
– Categor´ıa de proceso de soporte.
– Categor´ıa de proceso de gesti´on.
– Categor´ıa de proceso de organizaci´on.
• Dimensi´on de capacidad: Esta dimensi´on consiste en un conjunto de
atributos interrelacionados que ofrecen los indicadores de medici´on nece-
saria para gestionar un proceso y mejorar la capacidad de desempe˜nar
un proceso. Esta dimensi´on compuesta de seis niveles tiene carac-
ter´ısticas evolutivas similares a las del CMM (v´ease Figura 5.6):
– Nivel 0 - Incompleto: se caracteriza por un incumplimiento general
para lograr el prop´osito del proceso;
– Nivel 1 - Proceso desempe˜nado: se caracteriza por el logro de
manera general del prop´osito del proceso;
– Nivel 2 - Proceso gestionado: se caracteriza por la identificaci´on
de la calidad aceptable con definici´on de tiempos y recursos. Los
productos del trabajo est´an de acuerdo con los est´andares especi-
ficados y los requerimientos;
26. 155
– Nivel 3 - Proceso consolidado: se caracteriza por la gesti´on y el
desempe˜no del proceso usando el proceso est´andar basado en prin-
cipios estables de ingenier´ıa de software;
– Nivel 4 - Proceso predecible: se caracteriza por la consistencia de
su desempe˜no en la pr´actica con l´ımites de control definidos para
alcanzar sus objetivos de proceso definido;
– Nivel 5 - Proceso optimizado: se caracteriza por la optimizaci´on
del desempe˜no del proceso para encontrar las necesidades de nego-
cio actuales y futuras, y por el grado de repetici´on que el proceso
alcanza encontrando sus objetivos de negocio definidos.
Nivel 5 Proceso
optimizado
Nivel 4 Proceso predecible
Nivel 3 Proceso consolidado
Nivel 2 Proceso gestionado
Nivel 1 Proceso desempeñado
Nivel 0 Incompleto
Nivel 5
Figura 5.6: Los niveles de capacidad de proceso seg´un ISO/IEC 15504.
Fuente: Zahran (1998)
Como se ha comenta, el ISO/IEC 15504 (1998) es un est´andar interna-
cional para la evaluaci´on de proceso de software que ofrece beneficios a los
desarrolladores, proveedores y clientes (i.e. las organizaciones que adquieren
27. 156
el software). En este sentido, se observa la necesidad de dise˜nar un modelo
de test para aplicaciones multimedia que tambi´en ofrezca beneficios similares
al ´ambito educativo.
5.3.3 Bootstrap
El Bootstrap es una metodolog´ıa de evaluaci´on que mejora la capacidad de
los procesos de desarrollo de software. Adem´as, el modelo Bootstrap describe
el proceso de evaluaci´on, determina donde se encuentra una organizaci´on res-
pecto a los niveles de madurez, identifica los puntos fuertes y debilidades de
la organizaci´on, y ofrece un gu´ıa para el proceso de mejora (Kuvaja, Bicego,
Haase, Koch, Krzanik, Cacchia, Lancelotti, Maiocchi, Messnarz, Saukkonen,
Schynoll y Simil¨a, 1993).
Este m´etodo es uno de los resultados del proyecto ESPRIT 5441 apoyado
por la Comunidad Europea. El Bootstrap ha considerado como punto de
partida varios est´andares y metodolog´ıas como por ejemplo CMM, ISO/IEC
15504 y los est´andares de ingenier´ıa de software (Software Engineering Stan-
dards - SES) de la Agencia Espacial Europea (European Space Agency - ESA).
El modelo Bootstrap se basa en la tr´ıada Organizaci´on, Metodolog´ıa y Tec-
nolog´ıa (OMT) presentada en la Figura 5.7.
Organización
Metodología
Tecnología
Figura 5.7: La tr´ıada Bootstrap. Fuente: Zahran (1998)
28. 157
5.3.3.1 Arquitectura del modelo de proceso Bootstrap
Usando la tr´ıada presentada en la Figura 5.7 como punto de partida, se define
una arquitectura en forma de ´arbol que identifica, seg´un Zahran (1998),
las categor´ıas de proceso, las ´areas de proceso, los procesos y las mejores
pr´acticas.
TEC. 1 Innovación tecnológica
TEC. 2 Soporte tecnológico para
los procesos del ciclo de vida
TEC. 3 Soporte tecnológico para
los procesos independiente del ciclo de vida
TEC. 4 Herramienta de integración
Boostrap 3.2
Organización
Metodología
Ciclo de vida independiente
Ciclo de vida dependiente
Tecnología
Relacionado a proceso
Gestión Cliente ProveedorSoporte
ORG. 1 Ingeniería de negocios
ORG. 2 Gestión de recursos
humanos
ORG. 3 Gestión de infraestructura
ENG. 0 Definición de desarrollo
ENG. 1 Análisis de requerimientos
de sistema
ENG. 2 Diseño de la arquitectura
del sistema
ENG. 3 Análisis de requerimientos
de software
ENG. 4 Diseño de la arquitectura
de software
ENG. 5 Diseño detallado de
software
ENG. 6 Implementación y test de
software
ENG. 7 Integración y test de
software
ENG. 8 Integración y test de
sistema
ENG. 9 Mantenimiento
ENG. 10 Migración
ENG. 11 Retiro
MAN. 0 Gestión
MAN. 1 Gestión de proyecto
MAN. 2 Gestión de calidad
MAN. 3 Gestión de riesgos
MAN. 4 Gestión de
subcontrato
MAN. 5 Gestión de reuso
SUP. 1 Documentación
SUP. 2 Gestión de
configuración
SUP. 3 Garantía de calidad
SUP. 4 Verificación
SUP. 5 Validación
SUP. 6 Revisión completa
SUP. 7 Auditoría
SUP. 8 Resolución de
problemas
CUS. 1 Adquisición
CUS. 2 Gestión de la necesidad
del cliente
CUS. 3 Garantía Suministro
CUS. 4 Operación de software
CUS. 5 Atención al cliente
PRO. 1 Definición de proceso
PRO. 2 Mejora de proceso
PRO. 3 Evaluación de proceso
PRO. 4 Medición
Figura 5.8: Arquitectura de proceso Bootstrap versi´on 3.2. Fuente:
http://www.bootstrap-institute.com
En general, se utiliza el proceso de evaluaci´on del m´etodo Bootstrap para
medir el estado actual de la pr´actica de desarrollo de software dentro de una
organizaci´on.
La evaluaci´on se basa en un cuestionario que est´a formado por listas de
29. 158
verificaci´on (checklists) de acuerdo con unos atributos clave. De esta manera,
se calcula la media agregada por atributos clave y consecuentemente el nivel
de madurez, bas´andose en los cinco niveles de madurez del CMM.
El Bootstrap cubre la unidad de producci´on de software enfocando sus
actividades no s´olo en la evaluaci´on sino tambi´en en el planeamiento de ac-
ci´on.
5.4 Proceso de test
Como se ha comentado, los procesos de test se realizan tanto dentro del
´ambito de la ingenier´ıa de software (e.g. test de verificaci´on y validaci´on),
como dentro del ´ambito de la ergonom´ıa (e.g. test de usabilidad). En este
sentido, es necesario realizar un estudio sobre la formaci´on del proceso de
test en la ingenier´ıa de software.
Kit (1995, p. 3) define el proceso de test de software como
“los medios a trav´es de los cuales se integran las personas, los
m´etodos, las mediciones, las herramientas y los equipos con el
objetivo de evaluar un producto de software”.
A partir de de esta definici´on, el autor presenta seis elementos esenciales
para el proceso de test de software:
1. La calidad del proceso de test (y, consecuentemente, la calidad del
software producido) determina el ´exito del esfuerzo de test.
2. La prevenci´on de la migraci´on de defectos a trav´es de la aplicaci´on de
30. 159
t´ecnicas de test en las fases iniciales del ciclo de vida de desarrollo de
software.
3. El uso inmediato de herramientas de test de software.
4. Una persona debe responsabilizarse de la mejora de procesos de test.
5. La realizaci´on de test (testing) es una disciplina profesional que requiere
personas entrenadas y calificadas.
6. Cultivar una actitud positiva de eliminaci´on de defectos en el equipo
de test.
Dentro de este contexto, se observan avances continuados en la b´usqueda
de la calidad de software desde las perspectivas de la gesti´on (e.g. el es-
tudio de Birk y Rombach (2001) sobre la gesti´on de calidad de software
orientado a procesos), de la realizaci´on de test (e.g. el an´alisis de requeri-
mientos funcionales y no-funcionales de procesos de test por Keese (2001)) y
de la construcci´on de heramientas para la realizaci´on de test (e.g. Bromnick
(2001)).
Usando estas consideraciones com punto de partida, se presentan, a con-
tinuaci´on, las actividades que permiten tanto verificar y validar los software,
como evaluar su aceptabilidad y la satisfacci´on del usuario.
5.4.1 Test de verificaci´on, validaci´on y usabilidad
El test de verificaci´on es una de las fases del ciclo de vida de los procedimien-
tos de test. Seg´un Kit (1995) el principal objetivo es detectar la mayor´ıa
31. 160
de errores posibles. En este sentido, Schulmeyer y Mackenzie (2000) comen-
tan que la verificaci´on permite garantizar la consistencia entre los productos
desarrollados (i.e. los prototipos y la versi´on final del software) y sus requer-
imientos predeterminados en la fase de especificaci´on, es decir, se necesita
saber si se est´a desarrollando de manera correcta el producto.
Por otra parte, seg´un Schulmeyer y Mackenzie (2000) el test de validaci´on
permite garantizar que el software final satisfaga los requerimientos del sis-
tema, es decir, se necesita saber si se desarrolla el producto correcto.
Finalmente est´an los test de usabilidad que son un procedimiento de
an´alisis que considera criterios de evaluaci´on previamente seleccionados (v´ease
Cap´ıtulo 4, p´agina 102). En este tipo de test se verifica el grado de eficiencia
y eficacia con que un usuario desempe˜na sus tareas bajo los requerimientos
y restricciones de un producto o servicio y su entorno, evaluando la acepta-
bilidad y satisfacci´on del usuario.
Para una mejor compresi´on de los tipos de test de verificaci´on, validaci´on
y usabilidad, se presenta en la Figura 5.9 el modelo “U en punto” (Dotted-U
Model) propuesto por Software Development Technologies (SDT)6
. Seg´un Kit
(1995), este modelo integra el ciclo de vida de desarrollo y el ciclo de test.
6
http://www.sdtcorp.com/trntest.htm
32. 161
Verificación de
requerimientos
Especificación de
requerimientos
1
Verificación del
diseño funcional
Especificación del
diseño funcional
2
Verificación del
diseño interno
Especificación del
diseño interno
4
Verificación del
código
Código
5
Validación de
unidad
Modificación del
código y de la
especificación
7
Validación de la
integración
Modificación del
código y de la
especificación
8
Validación de la
función
Modificación del
código y de la
especificación
10
Validación del
sistema y
Modificación del
código y de la
especificación
11
Test de usabilidad
Simulación del
producto
3 9
6
de la aceptabilidad
Figura 5.9: Adaptaci´on del Modelo U en punto SDT. Fuente:
http://www.sdtcorp.com/trntest.htm y Kit (1995)
33. 162
En la Figura 5.9, se puede examinar el alcance de los tres m´etodos de
test:
1. La verificaci´on del software se caracteriza por las etapas representadas
en rojo (i.e. la verificaci´on de requerimientos, de dise˜no y de c´odigo).
2. La validaci´on consiste en las etapas amarillas (i.e. se validan el software
o sus componentes respecto a sus funciones predefinidas). Aunque que
Kit (1995) considere el test de usabilidad una actividad de validaci´on,
debido a su importancia para la presente tesis se modifica su enfoque
defini´endola como una tercera actividad.
3. Los test de usabilidad, representados por la etapa verde, examinan la
aceptabilidad y satisfacci´on del usuario respecto al software.
5.4.2 Importancia de los test
La necesidad de garantizar la alta calidad de los sistemas inform´aticos (i.e.
software) ha aumentado las horas de trabajo de los procedimientos de test re-
specto a los de an´alisis, dise˜no y programaci´on. En los ´ultimos a˜nos, diversos
autores han publicado documentos en los cuales se constata la preocupaci´on
en transformar los procedimientos de test (i.e. un proceso dentro del ciclo de
vida de desarrollo de software) en estudios m´as profundizados.
Recientemente, Shepard, Lamb y Kelly (2001) han comentado sobre la im-
portancia de las t´ecnicas de verificaci´on y validaci´on de software como parte
de una disciplina importante de ingenier´ıa de software, las cuales tienen el
objetivo de formar desarrolladores de software m´as efectivos. Los autores
34. 163
apuntan la dificultad de la inserci´on de dichas t´ecnicas en los curr´ıculos de
ingenier´ıa de software, aunque el panorama ha cambiado en los ´ultimos a˜nos.
Por ejemplo, Adamsone, Borzovs, Gills, Linde y Plume (2000) comentan que
el curriculum de cursos en inform´atica en Latvia hace m´as de una d´ecada
que consideran asignaturas sobre test de software, presentando con el mis-
mo grado de importancia las actividades de test y las de an´alisis, dise˜no y
programaci´on.
No obstante y aunque parezca contradictorio, el ideal ser´ıa que el tiempo
dedicado a las actividades de verificaci´on y validaci´on en la industria del
software se redujera como resultado de mejores pr´acticas de desarrollo de
software (Shepard, Lamb y Kelly, 2001).
5.4.3 Proceso de test en los modelos est´andares
El est´andar ISO/IEC 15504 define un esquema integrado para el desarrollo y
aplicaci´on de test a lo largo del ciclo de vida del software, as´ı como el modelo
Bootstrap. Por otra parte, estos modelos aportan referencia t´ecnica a los
test y c´omo ´estos dan soporte a los dem´as procesos.
Adem´as el est´andar ISO/IEC 15504 y el modelo Bootstrap, bajo un punto
de vista operacional, mantienen un entendimiento com´un con los clientes, ya
que el producto o el proceso est´a de acuerdo con sus requerimientos. Sin
embargo, no se identifica una especializaci´on sistem´atica de los procesos de
test (i.e. los test de verificaci´on, validaci´on y usabilidad).
En el caso del CMM, no se contempla adecuadamente los aspectos rela-
cionados con los test en las ´areas de proceso clave (key process areas). Tam-
35. 164
poco se identifican las pr´acticas de test como una herramienta o mecanismo
de mejora del proceso. De esta manera, en el CMM no han sido identificados
algunos conceptos, como por ejemplo el de madurez de los test.
5.5 Modelos espec´ıficos de proceso de test
De acuerdo con Gelperin y Hetzel (1988), la idea propuesta por diversos inves-
tigadores y profesionales de c´omo transformar la tarea de test en un proceso
de costes efectivos, ha crecido equitativamente respecto a la importancia de
dicha tarea.
La evoluci´on de los modelos espec´ıficos de proceso de test aumenta satis-
factoriamente la calidad de dichos procesos y consecuentemente, los coloca
en una posici´on relevante dentro de la ingenier´ıa de software.
Como se ha comentado, los modelos y est´andares de evaluaci´on de pro-
ceso de software ofrecen herramientas para establecer niveles de madurez de
desarrollo y mantenimiento del software. Sin embargo, ha sido constatado
que estos modelos y est´andares no dirigen adecuadamente sus enfoques a los
procesos de test. En este sentido, se presentan, a continuaci´on, dos modelos
de evaluaci´on y mejora de procesos de test:
• Modelo de madurez del test (Testing Maturity Model - TMM)
• Modelo de mejora del proceso de test (Test Process Improvement - TPI)
36. 165
5.5.1 Modelo de madurez del test - TMM
Considerando que el test es un componente cr´ıtico en el proceso de desa-
rrollo de software, Burnstein, Suwannasart y Carlson (1996a) y Burnstein,
Suwannasart y Carlson (1996b) han propuesto el Modelo de madurez del test
(Testing Maturity Model - TMM) cuyo objetivo es conducir las evaluaciones y
mejoras de los procesos de test en las organizaciones que desarrollan software.
El modelo TMM es un modelo de evaluaci´on de proceso de test, guiado por
el conjunto b´asico de conceptos del CMM y compuesto por dos componentes
princinpales: un conjunto de niveles de madurez y una modelo de evaluaci´on
(Burnstein, Homyen, Grom y Carlson, 1998). As´ı pues, el TMM prescribe
la posici´on que un determinado proceso de test ocupa en la jerarqu´ıa de
madurez del test (v´ease Figura 5.10).
Nivel 1: Inicial
Nivel 2: Definición de fase
Institucionalizar métodos y técnicas de test básico
Iniciar un proceso de planeamiento de test
Desarrollar test y definifir los objetivos de depuración
Nivel 3: Integración
Nivel 4: Gestión y Medición
Evaluación de calidad de software
Establecer un programa de medición de test
Establecer un programa de revisión amplio de la organización
Control y seguimiento del proceso de test
Integrar el test en el ciclo de vida del software
Establecer un programa de entrenamiento técnico
Establecer una organización de test de software
Nivel 5: Optimización, Prevención de defectos y Control de
calidad
Optimización de proceso de test
Control de calidad
Aplicación de datos de proceso para prevención de defecto
Figura 5.10: Los niveles de madurez del TMM y sus objetivos. Fuente:
Burnstein, Suwannasart y Carlson (1996a, 1996b)
37. 166
Los niveles de madurez del proceso de test son:
• Nivel 1 - Inicial: El test se caracteriza como un proceso ca´otico. El
objetivo del test es mostrar que el software funciona y existe carencia
de recursos, herramientas y de un equipo apropiadamente entrenado.
• Nivel 2 - Definici´on de fase: Se caracteriza por la utilizaci´on de m´etodos
y t´ecnicas b´asicas de test que identificar´an si el software est´a de acuerdo
con sus especificaciones.
• Nivel 3 - Integraci´on: Se caracteriza por la identificaci´on de test en
todo el ciclo de vida del software. El test es una actividad profesional
que realiza un papel de revisi´on importante (formal o informal) en el
control de calidad.
• Nivel 4 - Gesti´on y Medici´on: El test es un proceso medido y cuantifi-
cado. La usabilidad es uno de los atributos de calidad utilizado en el
test del software.
• Nivel 5 - Optimizaci´on, Prevenci´on de defectos y Control de calidad:
Se caracteriza por mecanismos precisos para que el test pueda ser mejo-
rado continuamente. En este nivel se utilizan procedimientos para se-
leccionar y evaluar herramientas de test.
Se describe cada nivel considerando los objetivos de la organizaci´on y la
capacidad de test. Adem´as, la estructura de cada nivel (excepto el nivel uno)
consiste en un conjunto de objetivos de madurez soportado por sub-objetivos
(o metas) de madurez que son alcanzados por las actividades, tareas y res-
ponsabilidades (ATR). Por una parte, las actividades y tareas representan
38. 167
las acciones que deben ser desempe˜nadas en cada nivel con el prop´osito de
mejorar la capacidad del test y, por otra, se asignan responsabilidades, para
las actividades y tareas, a los gestores, a los desarrolladores y “testeadores”
(o revisores) y a los usuarios y clientes (Burnstein, Homyen, Grom y Carlson,
1998). En la Figura 5.11, se presenta la estructura de los niveles de madurez
del modelo TMM.
Niveles
contienenindican
Capacidad de test Objetivos de madurez
Subobjetivos de madurez
Soportados por
Actividades/Tareas/Responsabilidades
Alcanzados por
Visiones críticas
Organizados pordireccionan
Implementación y
Adaptación de la
organización
Gestor Desarrollador/
"Testeador"
Usuario/Cliente
Figura 5.11: La estructura del modelo de madurez del proceso de test.
Fuente: Burnstein, Suwannasart y Carlson (1996a, 1996b)
De acuerdo con Burnstein, Homyen, Grom y Carlson (1998), el segundo
componente, el modelo de evaluaci´on, consiste en un m´etodo que permite a
la organizaci´on evaluar y mejorar sus procesos de test, bas´andose en un cues-
tionario de evaluaci´on, un procedimiento de evaluaci´on y el entrenamiento y
39. 168
criterios de selecci´on del equipo de evaluaci´on.
Los objetivos de este componente son: proveer un esquema de evaluaci´on
de proceso de test de software y un fundamento para la mejora de dichos
procesos a trav´es de an´alisis de datos y planeamiento de acciones, as´ı como
contribuir con la ingenier´ıa de proceso de software.
5.5.2 Mejora del proceso de test - TPI
Koomen y Pol (1999) presentan el modelo de mejora del proceso de test (Test
Process Improvement - TPI), en cual ofrece soporte a la mejora del proceso
de test a trav´es de gu´ıas pr´acticas que ser´an utilizadas para evaluar el nivel de
madurez de los test de una organizaci´on. Adem´as, este esquema determina
los puntos fuertes y d´ebiles de un proceso de test, de manera que ayuda a
definir pasos controlados y graduales de mejora.
El modelo TPI se basa en la metodolog´ıa de test estructurado TMap (Pol
y Veenendaal, 1998), a partir de diversas recomendaciones de estructuraci´on
de proceso de test organizadas en cuatro componentes: el ciclo de vida (C),
las t´ecnicas (T), la infraestructura (I) y la organizaci´on (O)(v´ease Figura
5.12).
T
I O
C
Figura 5.12: Los componentes de soporte para enfoques estructurados de
test. Fuente: Pol y Veenendaal (1998)
40. 169
El modelo TPI, presentado en la Figura 5.13, consiste en cinco compo-
nentes:
Áreas clave
Niveles
Lista de verificación Sugerencias de mejora
Matriz de
madurez
de test
Figura 5.13: El esquema general del modelo TPI. Fuente: Koomen and Pol
(1999)
• Las ´areas clave: Constituyen la base para mejorar y estructurar el
proceso de test. Las ´areas clave comprenden tanto los test de sistema
y de aceptaci´on (i.e. test de alto nivel) como los test de unidad y de
integraci´on (i.e. test de bajo nivel). El modelo TPI tiene viente ´areas
clave:
– Estrategias de test
– Modelo de ciclo de vida
– Momento de compromiso
– Estimaci´on y planeamiento
– T´ecnicas de especificaci´on de test
– T´ecnicas de test est´atico
– M´etrica
– Herramientas de test
– Entorno de test
– Entorno de oficina
– Compromiso y motivaci´on
– Funciones de test y entrenamiento
– Alcance de la metodolog´ıa
– Comunicaci´on
– Producci´on de informes
– Gesti´on de defectos
41. 170
– Gesti´on de elementos de test
– Gesti´on del proceso de test
– Evaluaci´on
– Test de bajo nivel
• Los niveles de madurez: La organizaci´on de las ´areas clave dentro de
un proceso de test determina la madurez de dicho proceso (Koomen y
Pol, 1999). Por consiguiente, los niveles de madurez indican el estados
(e.g. A, B, C, etc.) de cada ´area clave, debido a que ellos conllevan
el cumplimiento de determinados requerimientos para las ´areas clave.
Como promedio, existen tres niveles para cada ´area.
• La lista de verificaci´on: Es un instrumento de medici´on objetivo, basado
en preguntas, que permite determinar el nivel de madurez de cada ´area
clave.
• La matriz de madurez del test: Representa un mapa de interrelaciones
entre las ´areas clave y sus niveles de madurez en una escala de 1 a 13
distribuida en tres categor´ıas:
– Controlada (1 al 5).
– Eficiente (6 al 10).
– Optimizada (11 al 13)
• Las sugerencias de mejora: Los resultados de los an´alisis de la matriz de
madurez de test proponen acciones de mejora en funci´on de los criterios
que se deseen alcanzar.
El proceso de evaluaci´on del modelo TPI se basa en la utilizaci´on de
encuestas y documentaci´on para determinar el estado de cada proceso de
42. 171
test. En el procedimiento se consideran las caracter´ısticas de cada ´area clave
en los diferentes niveles, de manera que, a trav´es del uso de los puntos de
verificaci´on (checkpoints), sea posible determinar los puntos fuertes y d´ebiles
del proceso de test, permitiendo establecer una posici´on relativa en la matriz
de madurez del test (Test Maturity Matrix). Adem´as, las sugerencias de
mejora son una herramienta que ayuda a alcanzar un determinado nivel de
madurez, ya que establece comentarios e sugerencias para el proceso de test
(Koomen y Pol, 1999).
De acuerdo con Koomen y Pol (1999) el modelo TPI ofrece el soporte
necesario para mejorar el proceso de test a trav´es de la obtenci´on de r´apida
de informaci´on acerca de la situaci´on actual de dichos procesos. De esta
manera, se considera el modelo como una herramienta de estructuraci´on de
acciones de mejora del proceso de test.
Como se ha visto en este cap´ıtulo, la ingenier´ıa de software es una disci-
plina que involucra diversas metodolog´ıas, m´etodos, t´ecnicas y herramientas
con el prop´osito de desarrollar sistemas inform´aticos de alta calidad.
Considerando el contexto de la presente investigaci´on (i.e. la interrelaci´on
entre la usabilidad del software educativo y el aprendizaje del usuario), se han
presentado los conceptos m´as importantes sobre la ingenier´ıa de software y
sobre los modelos y est´andares internacionales que auxilian en las actividades
de evaluaci´on de proceso de software y de test. Por lo tanto, el estudio te´orico
presentado ha guiado la preparaci´on del modelo propuesto (v´ease Cap´ıtulo
7).