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.