Podcast
Questions and Answers
¿Cuál es el principal objetivo del mantenimiento del software?
¿Qué tipo de mantenimiento se enfoca en corregir errores descubiertos después de la entrega del software?
¿Cuál de las siguientes afirmaciones es correcta sobre el mantenimiento adaptativo?
¿Qué tipo de software se clasifica como Software Estático o Simple?
Signup and view all the answers
El mantenimiento perfectivo se refiere a:
Signup and view all the answers
Según Lehman, el Software Pragmático se caracteriza por:
Signup and view all the answers
El objetivo del mantenimiento preventivo es:
Signup and view all the answers
¿Cuál de los siguientes no es un tipo de mantenimiento del software?
Signup and view all the answers
¿Qué tipo de mantenimiento implica mejorar la estructura del código sin cambiar su comportamiento externo?
Signup and view all the answers
¿Cuál es uno de los problemas administrativos más relevantes en el mantenimiento de software?
Signup and view all the answers
¿Qué significa el costo del ciclo de vida en el desarrollo de software?
Signup and view all the answers
¿Qué técnica de mantenimiento se usa para analizar y comprender los componentes y dependencias del software?
Signup and view all the answers
¿Cuál de los siguientes problemas técnicos se relaciona con la dificultad para prever el impacto de los cambios en el software?
Signup and view all the answers
¿Qué actividad no es parte de los tres tipos de trabajo que realiza un ingeniero de software?
Signup and view all the answers
¿Qué técnica se utiliza para rediseñar y reestructurar el software a fin de mejorar su mantenibilidad?
Signup and view all the answers
¿Cuál es la principal finalidad de las pruebas de regresión?
Signup and view all the answers
¿Cuál es la principal característica del software evolutivo?
Signup and view all the answers
Según la Ley 2 de la evolución del software, ¿qué ocurre con el costo de cambiar el software a medida que envejece?
Signup and view all the answers
¿Qué sugiere la Ley 4 sobre la funcionalidad y la estructura del software?
Signup and view all the answers
La Ley 6 establece que el sistema de software debe ser adaptado a cambios en qué aspecto?
Signup and view all the answers
¿Cuál de las siguientes afirmaciones describe mejor el impacto del tiempo en la complejidad del software?
Signup and view all the answers
¿Por qué es inevitable la evolución del software, según la Ley 1?
Signup and view all the answers
¿Qué tipo de mantenimiento se necesita para el software evolutivo?
Signup and view all the answers
¿Qué tipo de software es más propenso a la evolución continua?
Signup and view all the answers
¿Cuál es el propósito principal de la reingeniería de software?
Signup and view all the answers
¿Cuál de las siguientes es una técnica utilizada en la reingeniería de software?
Signup and view all the answers
Qué componente mejora la mantenibilidad y comprensión del código durante la reingeniería?
Signup and view all the answers
¿Cuál de los siguientes aspectos no es parte de la gestión de calidad del software?
Signup and view all the answers
¿Qué establece la gestión de calidad del software para garantizar un mejor producto?
Signup and view all the answers
La reestructuración de datos se enfoca principalmente en:
Signup and view all the answers
¿Cuál es un resultado esperado de aplicar la reingeniería a un sistema de software?
Signup and view all the answers
¿Cuál de las siguientes afirmaciones es cierta sobre la aplicación de procesos de calidad en software?
Signup and view all the answers
¿Cuál es el objetivo principal del aseguramiento de calidad (QA)?
Signup and view all the answers
¿Qué se entiende por control de calidad?
Signup and view all the answers
¿Cuál de los siguientes describe mejor el modelo CMMI?
Signup and view all the answers
¿Qué enfoque utiliza GQM para evaluar métricas de software?
Signup and view all the answers
¿Cuál es la principal finalidad del método PSP?
Signup and view all the answers
¿Cuál es el objetivo del proyecto Bootstrap en relación con el software?
Signup and view all the answers
¿Qué función tiene el equipo de QA en una compañía?
Signup and view all the answers
En el contexto del aseguramiento de calidad, ¿por qué se considera el término 'control de calidad' poco adecuado?
Signup and view all the answers
¿Cuál es el objetivo principal de SPICE?
Signup and view all the answers
¿Qué incluye el marco ITIL?
Signup and view all the answers
¿Cuál es una característica de COBIT?
Signup and view all the answers
¿Qué busca MOPROSOFT para las pequeñas y medianas empresas de software?
Signup and view all the answers
¿Cuál de las siguientes afirmaciones sobre las revisiones de código es correcta?
Signup and view all the answers
¿En qué consiste la técnica de inspección de programa?
Signup and view all the answers
¿Cómo se estructuran los procesos en MOPROSOFT?
Signup and view all the answers
¿Cuál es una diferencia entre SPICE y CMMI?
Signup and view all the answers
Study Notes
Mantenimiento de Software
- El mantenimiento del software es el proceso de realizar cambios y actualizaciones en un sistema de software después de su entrega inicial. Su objetivo principal es corregir defectos, mejorar el rendimiento, adaptar el software a nuevos requisitos y entornos, y garantizar su correcta operación a lo largo del tiempo.
Tipos de Mantenimiento
- Correctivo: Corrige errores o fallos detectados después de la entrega.
- Adaptativo: Ajusta el software a nuevos entornos (hardware, software o requisitos del sistema operativo).
- Perfectivo: Mejora la funcionalidad o rendimiento añadiendo nuevas características u optimizando las existentes.
- Preventivo: Previene problemas futuros, asegurando la eficiencia y evitando fallos.
Clasificación del Software (Según Meir "Manny" Lehman)
- Software S (Estático o Simple): Requisitos y especificaciones estables. Comportamiento predecible. Entorno estable. Ejemplo: programas matemáticos. No requiere mantenimiento evolutivo. Comportamiento determinista.
- Software P (Pragmático o Practicable): Problemas específicos bien definidos. Puede requerir ajustes por cambios en requisitos o entornos. Ejemplo: sistemas de gestión empresarial. Puede necesitar mantenimiento correctivo y adaptativo.
- Software E (Evolutivo): Requisitos cambian constantemente. El software debe adaptarse continuamente. Ejemplo: sistemas empresariales, sistemas de gestión pública. Necesita mantenimiento continuo (correctivo, adaptativo y perfectivo).
Leyes de Lehman y Belady sobre la Evolución del Software
- Ley 1: El software debe evolucionar porque las necesidades de los usuarios cambian con el tiempo.
- Ley 2: El costo de cambiar el software aumenta con el tiempo debido a su complejidad.
- Ley 3: El software debe adaptarse al entorno operativo.
- Ley 4: La funcionalidad aumenta pero la estructura del software tiende a degradarse.
- Ley 5: La complejidad del software tiende a aumentar con el tiempo.
- Ley 6: El sistema debe adaptarse a los cambios tecnológicos.
- Ley 7: La organización y los usuarios cambian, y el software debe evolucionar en consecuencia.
Problemas de Mantenimiento
-
Problemas Administrativos:
- Alineación con las prioridades del cliente.
-
Problemas Técnicos:
- Comprensión limitada.
- Análisis de impacto.
- Pruebas.
- Medición de la mantenibilidad.
Técnicas de Mantenimiento
- Refactorización: Mejora la estructura del código sin cambiar su comportamiento externo para hacerlo más comprensible y mantenible.
- Reingeniería: Rediseño y reestructuración del software para actualizarlo y mejorar su mantenibilidad.
- Reversión de Código: Análisis del software para identificar y entender sus componentes y dependencias.
- Pruebas de Regresión: Verificar que los cambios recientes no hayan introducido nuevos errores.
Herramientas de Mantenimiento
- Sistemas de Control de Versiones (ej. Git).
- Herramientas de Integración Continua (ej. Jenkins).
- Herramientas de Análisis Estático (ej. SonarQube).
- Sistemas de Seguimiento de Errores (ej. Jira).
Rejuvenecimiento del Software
- Redocumentación: Actualizar la documentación para reflejar el estado actual del software.
- Reestructuración: Modificar la estructura interna del código sin cambiar su comportamiento.
- Refactorización: Mejorar el código existente para reducir la complejidad.
- Reingeniería: Rediseñar y reconstruir el software para mejorar su mantenibilidad.
Ingeniería Inversa
- Recuperar código fuente perdido o desactualizado.
- Entender mejor el funcionamiento del software.
- Facilitar la refactorización y reestructuración.
Reingeniería
- Proceso exhaustivo para modificar y mejorar un sistema de software existente.
- Aprovechar el conocimiento del sistema original para optimizarlo.
Gestión de Calidad de Software
- Definir estándares para procesos y productos de software.
- Establecer procesos para verificar el cumplimiento de los estándares.
- Aseguramiento de la calidad (QA): Definir procesos y estándares para obtener productos de calidad.
- Control de la calidad: Eliminar productos que no cumplen con los estándares de calidad.
Estándares de Software
- CMMI (Capability Maturity Model Integration): Modelo de madurez para el desarrollo y mantenimiento de software.
- PSP (Personal Software Process): Metodología para mejorar la habilidad y productividad de los ingenieros de software.
- GQM (Goal Question Metric): Enfoque estructurado para definir y evaluar las métricas de software.
- SPICE (Software Process Improvement and Capability determination): Marco para la mejora y evaluación de procesos de software.
- COBIT (Control Objectives for Information and Related Technologies): Marco para la gobernanza y gestión de las tecnologías de la información.
- ITIL (Information Technology Infrastructure Library): Buenas prácticas para la gestión de servicios de TI.
- MOPROSOFT: Modelo de procesos para PMEs de desarrollo de software.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Este cuestionario explora los diferentes tipos de mantenimiento de software, que incluyen el mantenimiento correctivo, adaptativo, perfectivo y preventivo. También se discuten conceptos clave derivados de la clasificación del software según Meir Lehman. Ideal para estudiantes y profesionales del campo de la informática.