Unidad I: Modelos de Desarrollo de Software
Concepto:
El desarrollo de software es un proceso estructurado para crear sistemas informáticos.
Involucra etapas bien definidas que van desde la planificación hasta el mantenimiento. Los
modelos de desarrollo organizan y estructuran estas etapas para guiar el proceso.
Resumen:
El Proceso de Software: Serie de actividades organizadas para desarrollar un sistema de
software.
Ciclo de Vida del Software
El ciclo de vida del software es la secuencia de etapas por las que pasa un sistema desde su
concepción hasta su retiro. Estas etapas son:
Planificación: Definir objetivos, alcance y recursos necesarios.
Análisis: Identificar y documentar los requisitos del sistema.
Diseño: Crear la arquitectura del sistema y los detalles técnicos.
Implementación: Desarrollar el código según el diseño.
Pruebas: Verificar y validar el funcionamiento del software.
Despliegue: Entregar el sistema al usuario final.
Mantenimiento: Corregir errores y realizar mejoras.
Modelos de Desarrollo de Software
Modelo en Cascada
Enfoque: Secuencial y lineal.
Características: Cada fase se completa antes de iniciar la siguiente, con entregables
claramente definidos.
Uso: Proyectos con requisitos estables y bien definidos.
Modelos Evolutivos
Enfoque: Adaptativos y flexibles, permiten ajustes constantes.
Incremental: Construcción en módulos, desarrollados y entregados de forma iterativa.
Espiral: Combina iteración con evaluación continua de riesgos, ideal para proyectos
complejos o inciertos.
Modelos Concurrentes
Enfoque: Actividades de desarrollo que se ejecutan en paralelo, permitiendo mayor
interacción entre fases.
Uso: Proyectos grandes con equipos de trabajo especializados.
Modelos de Desarrollo Rápido
Enfoque: Maximizar la velocidad de entrega y adaptabilidad a cambios.
Métodos Ágiles: Basados en ciclos iterativos y colaboración estrecha entre equipos y
clientes.
Ejemplos: Scrum, Kanban, Lean, XP.
Unidad II: Modelado de los Requerimientos
Concepto:
El modelado de requerimientos consiste en analizar, documentar y representar las
necesidades del cliente para el sistema. Es fundamental para asegurar que el software cumple
con sus objetivos.
Resumen:
Análisis de los Requerimientos
El análisis de los requerimientos es el proceso de identificar, entender y documentar las
necesidades y expectativas del cliente y los usuarios finales para garantizar que el sistema
cumpla sus objetivos. Incluye:
Requerimientos funcionales: Lo que el sistema debe hacer.
Requerimientos no funcionales: Restricciones o características adicionales (rendimiento,
seguridad, etc.).
Modelado de Requerimientos
Modelado Orientado al Flujo
Representa cómo los datos y actividades fluyen a través del sistema. Ayuda a entender los
procesos operativos mediante herramientas como:
Diagramas de flujo de datos (DFD).
Modelos de procesos de negocio (BPMN).
Modelado de Datos
Describe la estructura, organización y relaciones entre los datos del sistema. Es fundamental
para diseñar bases de datos y ejemplos incluyen:
Diagramas entidad-relación (ER): Representan entidades, atributos y relaciones.
Modelos lógicos y físicos de bases de datos.
Modelado para WebApps
Diseño enfocado en las necesidades específicas de aplicaciones web. Incluye:
Salida: Cómo se presentan los datos al usuario (e.g., tablas, gráficos).
Contenido: Organización de la información en la aplicación.
Interacción: Diseño de la interfaz de usuario (UI) y experiencia de usuario (UX) para asegurar
una navegación eficiente y agradable.
Estos enfoques garantizan que los requerimientos del cliente se traduzcan en un diseño
adecuado y
Unidad III: Diseño de Sistemas
Concepto:
El diseño de sistemas transforma los requerimientos en una arquitectura funcional y técnica
para el software, asegurando su eficiencia y mantenibilidad.
Resumen:
Conceptos de Diseño: Principios como modularidad, cohesión, acoplamiento y reutilización.
Estrategias de Diseño:
Orientado a la funcionalidad: Enfoque en las tareas que debe realizar el sistema.
Orientado a objetos: Uso de clases y objetos para modelar el sistema.
Centrado en la estructura de datos: Diseño basado en el flujo y organización de los datos.
Orientado a eventos: Respuesta del sistema a estímulos externos o internos.
Diseño de WebApps: Esquemas de diseño para aplicaciones web dinámicas.
Unidad IV: Verificación y Pruebas de Software
Concepto:
La verificación y pruebas aseguran la calidad del software, detectando errores y garantizando
que el sistema cumple con sus especificaciones y estándares.
Resumen:
Verificación y Validación:
Verificación: Confirma que el software cumple los requisitos establecidos.
Validación: Asegura que el software satisface las necesidades del usuario.
Inspecciones de Software: Revisión formal de documentos y código.
Métodos Formales: Técnicas matemáticas para garantizar la corrección.
Desarrollo de Sala Limpia: Enfoque riguroso para minimizar errores en el código.
Pruebas de Software:
Diseño de Casos de Prueba: Escenarios específicos para evaluar funcionalidades.
Automatización de Pruebas: Uso de herramientas para agilizar las pruebas.
Validación de Sistemas Críticos: Evaluación exhaustiva de sistemas que requieren alta
confiabilidad.