33
Métodos ágiles de programación Sesión 2. Modelos del proceso de software

Métodos del proceso de software

Embed Size (px)

Citation preview

Métodos ágiles de programación

Sesión 2. Modelos del proceso de software

Proceso de desarrollo de software

¿Qué es?

Un proceso del software es un conjunto de actividades que conducen a la creación de un producto de software.

Actividades fundamentales

1. Especificación de software2. Diseño e implementación del software3. Validación del software4. Evolución del software

Especificación de software

Se debe definir la funcionalidad de software y las restricciones de operación

Diseño e implementación del software

Se debe validar el software que cumpla su especificación

Validación del software.• Se debe validar el software para asegurar que

hace lo que el cliente desea

Evolución del software

El software debe evolucionar para cubrir las necesidades del cliente

Modelos del Proceso del Software

Un modelo de software es una representación abstracta de un proceso del software. Cada modelo del proceso representa un proceso desde una perspectiva muy particular u así proporciona sólo información parcial sobre ese proceso.

¿Qué es?

1. Modelo de cascada2. Desarrollo evolutivo3. Ingeniería de software basada en

componentes

Algunos ejemplos

Modelo de Cascada

Considera las actividades fundamentales del proceso de especificación, desarrollo, validación y evolución. Los representa como fases separadas del proceso, tales como especificación de requerimientos, el diseño de software, la implementación, las pruebas, etc.

¿Qué es?

Las principales etapas de este modelo se transforman en actividades de desarrollo como…

Principales etapas

Las principales etapas de este modelo se transforman en actividades de desarrollo como…

1. Análisis y definición de requerimientos

• El proceso de diseño de sistema divide los requerimientos en sistemas en hardware y software

• Establece la arquitectura completa del sistema• El diseño del software identifica y describe las

abstracciones fundamentales del sistema de software y sus relaciones

2. Diseño del sistema de software

• El diseño del software se lleva a cabo como un conjunto de unidades de programa.

• La prueba de unidades implica verificar que cada una cumpla su especificación

3. Implementación y prueba de unidades

• Los programas o las unidades individuales de programas se integran y prueban como sistema completo para asegurar que se cumplan los requerimientos del software.

• Después de las pruebas, el sistema del software se entrega al cliente

4. Integración y pruebas de sistema

• El mantenimiento implica corregir errores no cubiertos en las etapas anteriores del ciclo de vida, mejorar la implementación de las unidades del sistema y resaltar los servicios del sistema una vez que se descubren nuevos requerimientos.

• Por lo general esta es la fase más larga del ciclo de vida.

5. Funcionamiento y mantenimiento

Desarrollo evolutivo

El desarrollo evolutivo se basa en la idea de desarrollar una implementación inicial, exponiéndola a los comentarios de los usuarios y refinándola a través de las diferentes versiones hasta que se desarrolla un sistema adecuado

¿Qué es?

1. Desarrollo exploratorio2. Prototipos desechables

Tipos de desarrollo evolutivo

• El objetivo es trabajar con el cliente para explorar sus requerimientos y entregar un sistema final.

• El desarrollo empieza con las partes del sistema que se comprenden mejor.

• El sistema evoluciona agregando nuevos atributos propuestos por el cliente.

1. Desarrollo exploratorio

• Su objetivo es comprender los requerimientos del cliente y entonces desarrollar una definición mejorada de los requerimientos del sistema.

• El prototipo se centra en experimentar con los requerimientos del cliente que no se comprenden del todo.

2. Prototipos desechables

Ingeniería Basada en Componentes

En los últimos años ha surgido un enfoque de desarrollo de software denominado ingeniería de software basado en componentes que se basa en la reutilización. Algunas veces estos componentes son sistemas por si mismos que pueden proporcionar funcionalidad específica.

¿Qué es?

Etapas1. Especificación de requerimientos2. Análisis de componentes3. Modificación de requerimientos4. Diseño del sistema con reutilización5. Desarrollo e integración6. Validación del sistema

• Similar al modelo de cascada

1. Especificación de requerimientos

• Por lo general no existe una concordancia exacta y los componentes que se utilizan sólo proporcionan parte de la funcionalidad.

2. Análisis de componentes

• Los requerimientos se analizan utilizando información acerca de los componentes que se han descubierto. Entonces estos componentes se modifican para reflejar los componentes disponibles .

• Si las modificaciones no son posibles, la actividad de análisis de componentes se puede llevar a cabo nuevamente para buscar soluciones alternativas

3. Modificación de requerimientos

• En esta fase se diseña o se reutiliza un marco de trabajo para el sistema.

4. Diseño del sistema con reutilización.

• Para crear el sistema, el software que no se puede adquirir externamente se desarrolla, y los componentes y los sistemas adquiridos se integran.

5. Desarrollo e integración.

• Similar al modelo de cascada

6. Validación del sistema