INGENIERÍA DE SOFWARE
¿Por qué?
Dependencia de las herramientas para tareas complejas
Crecimiento de la demanda
Complejidad de las nuevas herramientas
Las herramientas pueden perdurar en el tiempo
Estrategias y Métodos
Diseño Orientado a Funciones
Método clásico de Diseño de Software
Implementa las diferentes funciones y las refina
Permite diagramas de flujo
Diseño Orientado a Objetos
Se destacan los objetos con sus métodos y atributos
Proceso del Software
Métodos Evolutivos
Prototipado
Modelo Espiral
Permite crear versiones iniciales rápidas y sin estándares de calidad, luego se pulen mediante comunicación con el cliente
Tiene un enfoque cíclico en el que se evalúa el riesgo siendo las espirales internas, la definición de requisitos, y lo más externo la implementación
Metodologías Tradicionales
Modelo en Cascada
Modelo Incremental
Permite abordar grandes proyectos
Aplica modelos lineales escalonados
Enfoque Secuencial y Lineal
Análisis de Requisitos
Diseño del Sistema
Implementación y Pruebas de Unidad
Integración y Pruebas
Operación y Mantenimiento
Definición
Es una disciplina que se encarga de la producción de software en todas sus etapas
Aplicación de un enfoque sistemático, disciplinario y cuantificable al desarrollo, operación y mantenimiento de software.
Metodologías Ágiles
Son una estrategia integral que impulsa a las organizaciones a gestionar los proyectos con rapidez y flexibilidad
Doce Principios
Cuatro Valores
Valoramos más a los individuos y su interacción que a los procesos y las herramientas
Valoramos más el software que funciona que la documentación exhaustiva
Valoramos más la colaboración con el cliente que la negociación contractual
Valoramos más la respuesta al cambio que el seguimiento de un plan
Nuestra principal prioridad es satisfacer al cliente a través de la entrega temprana y continua de software de valor
Son bienvenidos los requisitos cambiantes, incluso si llegan tarde al desarrollo. Los procesos ágiles se doblegan al cambio como ventaja competitiva para el cliente
Entregar con frecuencia software que funcione, en periodos de un par de semanas hasta un par de meses, con preferencia en los periodos breves
Las personas del negocio y los desarrolladores deben trabajar juntos de forma cotidiana a través del proyecto
Construcción de proyectos en torno a individuos motivados, dándoles la oportunidad y el respaldo que necesitan y procurándoles confianza para que realicen la tarea
La forma más eficiente y efectiva de comunicar información de ida y vuelta dentro de un equipo de desarrollo es mediante la conversación cara a cara.
El software que funciona es la principal medida del progreso.
Los procesos ágiles promueven el desarrollo sostenido. Los patrocinadores, desarrolladores y usuarios deben mantener un ritmo constante de forma indefinida.
La atención continua a la excelencia técnica enaltece la agilidad.
La simplicidad como arte de maximizar la cantidad de trabajo que se hace, es esencial.
Las mejores arquitecturas, requisitos y diseños emergen de equipos que se autoorganizan.
En intervalos regulares, el equipo reflexiona sobre la forma de ser más efectivo y ajusta su conducta en consecuencia.