1:
REPÚBLICA BOLIVARIANA DE VENEZUELA
MINISTERIO DEL PODER POPULAR PARA LA
DEFENSA UNIVERSIDAD NACIONAL
EXPERIMENTAL POLITÉCNICA DE LA FUERZA
ARMADA NACIONAL
U.N.E.F.A
NÚCLEO: BARINAS SEDE: BARINAS
2:
ÍNDICE
INTRODUCCIÓN 3
1. 4
2.
3. CONCLUSIÓN
4. BIBLIOGRAFÍA
Introducción
3:
4:
Modelos de Ciclo de Vida del Software
Los modelos de ciclo de vida del software son enfoques estructurados para desarrollar
software desde la planificación inicial hasta su despliegue y mantenimiento. Aquí tienes una
breve descripción y ejemplos de los modelos mencionados:
1. Modelo en Cascada
El Modelo en Cascada es uno de los enfoques más tradicionales para el desarrollo de
software. En este modelo, el proceso se divide en fases secuenciales, donde cada fase
depende de la finalización de la anterior. Las fases típicas son: Requisitos, Diseño,
Implementación, Pruebas, Despliegue y Mantenimiento.
Fases del Modelo en Cascada
1. Recolección de Requisitos:
o Se identifican, documentan y analizan los requisitos del software.
o Ejemplo: Elaborar un documento de especificación detallado para un sistema de
gestión de inventarios.
2. Diseño del Sistema:
o Se define la arquitectura del sistema y los componentes que lo integrarán.
o Ejemplo: Diseñar la base de datos y los diagramas de flujo para el sistema.
3. Implementación:
o Los desarrolladores convierten el diseño en código funcional.
o Ejemplo: Escribir el código del sistema de gestión de inventarios basado en el
diseño.
4. Pruebas:
o Se verifica y valida que el software cumpla con los requisitos definidos.
o Ejemplo: Realizar pruebas funcionales y de rendimiento para garantizar que el
sistema gestione los datos correctamente.
5. Despliegue:
o El software se instala en el entorno de producción y está disponible para los
usuarios.
o Ejemplo: Instalar el sistema de gestión de inventarios en los equipos del cliente.
5:
6. Mantenimiento:
o Se realizan correcciones, mejoras o adaptaciones después de la entrega del
software.
o Ejemplo: Resolver errores reportados o actualizar el sistema para nuevos
requisitos.
Ventajas del Modelo en Cascada
Enfoque claro y estructurado.
Documentación completa en cada etapa.
Ideal para proyectos con requisitos estables y bien definidos.
Desventajas del Modelo en Cascada
Rigidez: no permite cambios en los requisitos una vez iniciadas las etapas.
Poca retroalimentación temprana, ya que los usuarios no interactúan con el producto
hasta el final.
No es adecuado para proyectos con requisitos cambiantes o inciertos.
Ejemplo Práctico
Un sistema de nómina para una empresa con requisitos claros.
1. Los analistas recopilan requisitos como cálculo de salarios, impuestos y reportes.
2. Se diseña la base de datos, la interfaz de usuario y los algoritmos de cálculo.
3. Se programa el sistema de nómina.
4. Se prueban los cálculos y reportes.
5. Se entrega el sistema a la empresa.
6. Se realiza mantenimiento ante cualquier error reportado.
Ejemplo General: Un sistema bancario simple que debe ser desarrollado siguiendo un
enfoque estructurado donde cada fase se completa de manera lineal y no hay retrocesos
entre las etapas.
2. Modelo Incremental
6:
El Modelo Incremental divide el proyecto en pequeños incrementos que se desarrollan de
forma iterativa. Cada incremento se desarrolla sobre el anterior y se entrega una versión
funcional del software después de cada iteración. Los usuarios pueden empezar a utilizar el
software parcialmente y proporcionar retroalimentación temprana.
Características del Modelo Incremental
1. Se divide el proyecto en módulos pequeños o incrementos.
2. Cada incremento pasa por todas las etapas: requisitos, diseño, desarrollo y pruebas.
3. Cada versión es una mejora sobre la anterior, con nuevas características o
funcionalidades.
4. Ideal para proyectos donde se necesitan entregas rápidas y la retroalimentación de los
usuarios es esencial.
Fases del Modelo Incremental
1. Identificación de Requisitos:
o Los requisitos se dividen en funcionalidades prioritarias (se entregan primero) y
las de menor prioridad.
o Ejemplo: En una aplicación bancaria, se priorizan funcionalidades como
consultar saldo y transferencias, dejando "configuración de usuario" para iteraciones
posteriores.
2. Planificación de Incrementos:
o Se decide qué funcionalidades incluir en cada incremento.
o Ejemplo: Incremento 1: Consultar saldo; Incremento 2: Transferencias;
Incremento 3: Pago de servicios.
3. Diseño y Desarrollo de Cada Incremento:
o Cada incremento pasa por las etapas de diseño y codificación.
o Ejemplo: Diseñar y programar la pantalla y lógica para la consulta de saldo.
4. Pruebas de Incremento:
o Cada módulo se prueba de forma individual y en integración con los anteriores.
o Ejemplo: Probar que las transferencias funcionen correctamente y que los
saldos se actualicen.
7:
5. Entrega y Retroalimentación:
o Se entrega el incremento a los usuarios y se recogen comentarios para ajustes
futuros.
o Ejemplo: Usuarios prueban la funcionalidad de consulta de saldo y sugieren
mejoras.
Ventajas del Modelo Incremental
Los usuarios obtienen un sistema funcional más rápido.
Permite cambios en los requisitos gracias a la retroalimentación continua.
Reduce riesgos, ya que los problemas se detectan y solucionan en incrementos
pequeños.
Más flexible y adaptable que el modelo en cascada.
Desventajas del Modelo Incremental
Puede requerir una planificación compleja para dividir los requisitos.
La integración constante entre incrementos puede ser un desafío técnico.
No siempre es adecuado para proyectos con una visión poco clara desde el principio.
Ejemplo Práctico
Desarrollo de una aplicación de comercio electrónico:
1. Incremento 1: Funcionalidades básicas como navegar productos y ver detalles.
2. Incremento 2: Carrito de compras y cálculo de precios.
3. Incremento 3: Proceso de pago y generación de facturas.
4. Incremento 4: Integración con métodos de pago y funcionalidades adicionales como
"lista de deseos".
Ejemplo General: El desarrollo de una aplicación móvil donde se lanza una versión básica,
luego se añaden características como notificaciones, integración con redes sociales, etc., en
incrementos sucesivos.
2. Modelos Basados en Prototipos Desechables e Incrementales
8:
Modelos Basados en Prototipos
Los modelos basados en prototipos se centran en la creación de una versión inicial del
sistema (el prototipo) que sirve como base para entender mejor los requisitos del cliente. Este
enfoque es útil cuando los requisitos no están completamente claros al inicio del proyecto.
Hay dos tipos principales:
1. Prototipo Desechable.
2. Prototipo Incremental.
1. Prototipo Desechable
En este enfoque, el prototipo se desarrolla rápidamente para probar ideas o capturar
requisitos y luego se descarta. Este prototipo no está pensado para ser parte del producto
final, sino como una herramienta para:
Identificar errores o malentendidos en los requisitos.
Recibir retroalimentación temprana.
Fases del Prototipo Desechable:
1. Recolección inicial de requisitos:
o Se identifican los aspectos clave que los usuarios quieren evaluar.
2. Construcción rápida del prototipo:
o Se desarrolla un modelo simplificado con las características más importantes.
3. Pruebas y retroalimentación:
o Los usuarios interactúan con el prototipo y sugieren cambios o mejoras.
4. Desecho del prototipo:
o El prototipo se descarta, y se comienza el desarrollo del sistema real basado en
la retroalimentación obtenida.
Ejemplo: Desarrollar un prototipo de la interfaz de usuario para una aplicación de banca
móvil, donde los usuarios pueden interactuar con un diseño básico para definir cómo deberían
funcionar las opciones de menú y flujo de navegación.
2. Prototipo Incremental
En este enfoque, el prototipo inicial no se descarta; en cambio, se va mejorando y refinando
9:
gradualmente. Los incrementos sucesivos del prototipo se convierten en el producto final.
Fases del Prototipo Incremental:
1. Identificación de funcionalidades básicas:
o Se desarrolla una versión inicial con características esenciales.
2. Construcción del prototipo inicial:
o Un prototipo funcional limitado, pero operativo.
3. Iteraciones y mejoras:
o A través de retroalimentación, se añaden nuevas características o se optimizan
las existentes.
4. Producto final:
o El prototipo se transforma en el sistema completo.
Ejemplo: Desarrollar un sistema de gestión de inventarios:
Incremento 1: Permite registrar productos y visualizar listas.
Incremento 2: Añadir funcionalidades para generar reportes.
Incremento 3: Integrar herramientas de análisis y gráficos de rendimiento.
Ventajas de los Modelos Basados en Prototipos
Mejora la comprensión de los requisitos desde etapas tempranas.
Permite retroalimentación temprana y continua de los usuarios.
Reduce el riesgo de malinterpretaciones o errores costosos.
En el caso del prototipo incremental, se aprovecha el trabajo inicial.
Desventajas
Prototipo Desechable:
o El tiempo invertido en el prototipo puede parecer un desperdicio si no se
planifica bien.
Prototipo Incremental:
o Puede haber una tendencia a construir sobre una base pobremente diseñada si
no se tienen cuidados iniciales.
10:
Comparación entre Desechable e Incremental:
Aspecto Prototipo Desechable Prototipo Incremental
Uso Solo para capturar requisitos Evoluciona hacia el producto final
Necesita una base sólida desde el
Estructura inicial Puede ser poco detallada
inicio
Impacto a largo Ayuda a evitar errores de
Reduce el tiempo total de desarrollo
plazo requisitos
4. Modelo del Sistema Automatizado
Este modelo está centrado en el uso de herramientas automáticas y sistemas de apoyo en
todo el ciclo de vida del software, desde la ingeniería de requisitos hasta la implementación y
mantenimiento. Se suele aplicar en entornos donde se requiere automatización y eficiencia en
el desarrollo de software.
Características Clave del Modelo
1. Automatización Completa o Parcial:
o Las herramientas automatizadas se utilizan en una o varias fases del desarrollo,
como generación de código, pruebas automáticas o monitoreo del sistema.
2. Integración de Herramientas CASE:
o Las herramientas CASE (Computer-Aided Software Engineering) son
fundamentales en este modelo y pueden incluir generadores de código, diseñadores gráficos,
generadores de pruebas y más.
3. Estandarización y Consistencia:
o La automatización ayuda a mantener consistencia en el diseño, la codificación y
las pruebas.
4. Reducción de Errores Humanos:
o Las tareas repetitivas o complejas se automatizan, lo que disminuye los riesgos
asociados al error humano.
11:
Fases del Modelo del Sistema Automatizado
1. Definición de Requisitos:
o Uso de herramientas para capturar requisitos funcionales y no funcionales.
o Ejemplo: Usar herramientas como Jira o Confluence para documentar y rastrear
requisitos.
2. Diseño del Sistema:
o Generación automática de diagramas de clases, diagramas de flujo de datos o
diagramas UML.
o Ejemplo: Utilizar herramientas como Enterprise Architect o Lucidchart.
3. Codificación:
o Generadores automáticos de código basados en modelos o especificaciones.
o Ejemplo: Un generador que convierte un modelo UML directamente en código
fuente.
4. Pruebas:
o Pruebas automatizadas para validar el software.
o Ejemplo: Herramientas como Selenium para pruebas de interfaz de usuario o
JUnit para pruebas unitarias.
5. Despliegue:
o Uso de herramientas para automatizar la configuración y la implementación del
software.
o Ejemplo: Usar Docker para empaquetar y desplegar aplicaciones en
contenedores.
6. Mantenimiento:
o Monitoreo automatizado para detectar problemas en tiempo real.
o Ejemplo: Implementar herramientas como Nagios o Splunk para supervisar el
rendimiento.
Ventajas del Modelo del Sistema Automatizado
Eficiencia: Se reduce el tiempo de desarrollo al automatizar tareas repetitivas.
Calidad: Mejora la calidad al minimizar errores humanos.
Escalabilidad: Facilita el manejo de proyectos grandes o complejos.
12:
Trazabilidad: Las herramientas automatizadas suelen generar documentación
detallada y actualizada.
Desventajas
Costo inicial: Implementar herramientas automatizadas puede requerir una inversión
inicial significativa.
Curva de aprendizaje: El personal necesita capacitación para usar estas herramientas
de manera efectiva.
Dependencia tecnológica: Se depende de las herramientas seleccionadas, lo que
podría limitar la flexibilidad.
Ejemplo Práctico
Desarrollo de un sistema de gestión hospitalaria:
1. Se utiliza un modelador UML para diseñar los flujos de datos.
2. Los modelos se convierten automáticamente en código fuente utilizando un generador.
3. Se implementan pruebas automáticas con herramientas como TestNG para verificar el
sistema.
4. El sistema se despliega y se monitorea usando contenedores Docker y herramientas de
supervisión como Zabbix.
Ejemplo General: Un sistema de software para la gestión de producción en una fábrica
donde se automatizan tareas de monitoreo, control de calidad, y optimización de procesos.
5. Meta
Modelo Meta en Desarrollo de Software
El Modelo Meta, también conocido como el Modelo Basado en Metamodelos, es un
enfoque centrado en la creación de modelos abstractos o de alto nivel (metamodelos) que
describen las estructuras, reglas y componentes necesarios para desarrollar software. Estos
metamodelos se utilizan para generar automáticamente modelos más concretos o incluso
código fuente para aplicaciones específicas.
13:
Características del Modelo Meta
1. Uso de Metamodelos:
o Un metamodelo es un modelo de modelos. Define el marco de referencia y las
reglas que los modelos concretos deben seguir.
o Ejemplo: Un metamodelo UML que define las reglas para diagramas de clases o
diagramas de actividades.
2. Generación Automática:
o El metamodelo puede ser utilizado por herramientas automatizadas para generar
modelos concretos, código fuente o documentación.
3. Independencia de la Tecnología:
o El enfoque meta no está vinculado a una tecnología o lenguaje específico; se
centra en la estructura y lógica general del software.
4. Estandarización:
o Promueve la consistencia y la reutilización al establecer reglas comunes para el
diseño.
Fases del Modelo Meta
1. Definición del Metamodelo:
o Se crean las reglas y estructuras abstractas que guiarán los modelos concretos.
o Ejemplo: Definir cómo deben estructurarse los componentes de un sistema e-
commerce (productos, usuarios, órdenes).
2. Desarrollo de Modelos Concretos:
o A partir del metamodelo, se generan modelos específicos para el sistema que se
desea desarrollar.
o Ejemplo: Crear un modelo para un sistema de e-commerce que incluye
categorías, productos y métodos de pago.
3. Generación Automática de Código:
o Se utiliza software para convertir los modelos concretos en código fuente.
o Ejemplo: Generar automáticamente las clases de Java para el sistema e-
commerce a partir del modelo.
4. Verificación y Refinamiento:
o Se verifica que los modelos y el código generado cumplan con los requisitos y
las reglas definidas en el metamodelo.
5. Implementación y Mantenimiento:
o El software generado se despliega y se mantiene. Cualquier cambio en los
modelos concretos puede reflejarse automáticamente en el sistema.
Ejemplo Práctico
Desarrollo de un Sistema de Gestión Académica:
14:
1. Se define un metamodelo que establece cómo deben representarse entidades como
estudiantes, cursos y matrículas.
2. A partir del metamodelo, se crea un modelo concreto para una universidad específica,
definiendo las relaciones entre estudiantes, cursos y profesores.
3. Se genera automáticamente el código fuente para la base de datos, interfaces y lógica
de negocio.
4. El software se implementa y se actualiza fácilmente modificando el modelo inicial.
Ventajas del Modelo Meta
Estandarización: Los sistemas siguen reglas y estructuras comunes.
Automatización: Acelera el desarrollo mediante la generación automática de código y
modelos.
Reutilización: Los metamodelos pueden usarse para desarrollar múltiples sistemas
similares.
Escalabilidad: Facilita la adaptación a diferentes entornos o requerimientos.
Desventajas
Complejidad Inicial: La creación de metamodelos requiere experiencia y tiempo.
Dependencia de Herramientas: Se necesita software especializado para aprovechar
al máximo el enfoque meta.
Adaptación al Cambio: Cambiar un metamodelo puede ser complicado si ya se han
generado múltiples modelos concretos.
Herramientas Usadas en el Modelo Meta
Eclipse Modeling Framework (EMF): Para crear y gestionar metamodelos basados en
UML.
MagicDraw: Herramienta para modelado UML compatible con metamodelos.
Acceleo: Herramienta para generar código a partir de modelos.
Ejemplo General: Herramientas de generación automática de código que toman modelos
UML (Unified Modeling Language) y generan código en lenguajes de programación.
6. Modelo en Espiral
15:
El Modelo en Espiral es un enfoque iterativo y basado en la gestión de riesgos, que
combina elementos del modelo en cascada y del modelo incremental. Este modelo se repite
en espiral, donde cada vuelta de la espiral representa una fase del ciclo de vida del software.
Es particularmente útil cuando los requisitos no están completamente definidos o son
cambiantes.
Características Clave del Modelo en Espiral
1. Iterativo y Evolutivo:
o El desarrollo se realiza en ciclos (espirales), donde cada ciclo entrega una
versión mejorada del sistema.
2. Gestión de Riesgos:
o En cada iteración, se identifican, analizan y mitigan riesgos potenciales antes de
avanzar a la siguiente fase.
3. Flexibilidad:
o Permite cambios en los requisitos a medida que el proyecto avanza y se
obtienen más datos.
4. Retroalimentación Continua:
o Los usuarios y las partes interesadas proporcionan comentarios al final de cada
ciclo.
Fases del Modelo en Espiral
Cada espiral está compuesta por las siguientes actividades:
1. Determinación de Objetivos y Requisitos:
o Se identifican los objetivos del sistema, las alternativas para cumplirlos y las
restricciones.
2. Análisis y Evaluación de Riesgos:
o Se identifican riesgos potenciales (como malentendidos de requisitos o
limitaciones tecnológicas) y se desarrollan estrategias para mitigarlos.
3. Desarrollo y Prueba:
o Se desarrolla un prototipo o una versión parcial del sistema que se puede probar
y evaluar.
16:
4. Planeación de la Siguiente Iteración:
o Basándose en los resultados de la iteración actual, se planifica el siguiente ciclo
de la espiral.
Diagrama del Modelo en Espiral
El modelo se representa como una espiral dividida en cuadrantes, con el radio
representando el progreso en el tiempo y los giros indicando iteraciones sucesivas.
Ventajas del Modelo en Espiral
Gestión Activa de Riesgos: Los riesgos se abordan temprano, reduciendo el impacto
de problemas graves.
Flexibilidad: Es adaptable a cambios en los requisitos.
Retroalimentación Temprana: Los usuarios y partes interesadas pueden evaluar el
progreso y realizar ajustes.
Adecuado para Proyectos Complejos: Funciona bien en proyectos grandes o
inciertos.
Desventajas del Modelo en Espiral
Costo Elevado: La gestión de riesgos y las múltiples iteraciones pueden ser caras.
Complejidad: Requiere experiencia en la identificación y mitigación de riesgos.
No siempre es necesario: Para proyectos simples, puede ser excesivo.
Ejemplo Práctico
Desarrollo de un sistema de reserva de vuelos:
1. Primera iteración:
o Requisitos iniciales: Permitir la búsqueda de vuelos.
o Evaluación de riesgos: Riesgo de errores en los algoritmos de búsqueda.
o Prototipo: Una interfaz básica para buscar vuelos.
2. Segunda iteración:
o Nuevos requisitos: Agregar selección de asientos y carrito de reservas.
o Evaluación de riesgos: Problemas de integración con el sistema de pagos.
17:
o Desarrollo: Se implementa la selección de asientos y reservas básicas.
3. Tercera iteración:
o Nuevos requisitos: Funcionalidades de pago y generación de boletos.
o Evaluación de riesgos: Seguridad en las transacciones.
o Desarrollo: Se integran los métodos de pago y se optimiza la funcionalidad
completa.
Ejemplo General: El desarrollo de software para la industria aeroespacial o de defensa,
donde los requisitos son complejos y pueden cambiar a medida que se avanza en el proyecto.
El sistema evoluciona hasta que cumple con todos los requisitos.
18:
Conclusión
19:
Bibliografía
“Data Science and Knowledge Discovery Using Machine Learning Methods” - Este capítulo
introductorio explica el proceso de KDD y posiciona el aprendizaje automático dentro de este
proceso. También define los desafíos de investigación y desarrollo para la próxima generación
de ciencia de datos.
“Knowledge Discovery in Databases: An Overview” - Este capítulo proporciona una visión
general del proceso de KDD, definiendo los conceptos básicos, objetivos y métodos de
minería de datos. Incluye estudios de caso exitosos en análisis de datos científicos.
“The KDD process for extracting useful knowledge from volumes of data” - Este artículo
ofrece una visión general de los pasos que constituyen el proceso de KDD, desde la selección
de datos hasta la presentación de resultados
Para información mas detallada consulte los siguientes libros:
20:
- Pressman, R. (2014). *Ingeniería de software: un enfoque práctico*. McGraw-Hill.
- Sommerville, I. (2016). *Software Engineering*. Pearson.
- Booch, G., Maksimchuk, R., Engle, M., Young, B., Conallen, J., & Houston, K. (2007).
*Object-Oriented Analysis and Design with Applications*. Addison-Wesley.
- Rumbaugh, J., Blaha, M., Premerlani, W., Eddy, F., & Lorensen, W. (1991). *Object-
Oriented Modeling and Design*. Prentice Hall.