Está en la página 1de 27

Introducción a la

Ingeniería de Software

Tema 2:
“Modelos de Proceso”
Agenda

● Significado del Proceso -seguir, escribir...


● Modelos de Proceso de Software
● Metodologías Ágiles
● Herramientas y Técnicas
● Modelado en la Práctica

Tecnólogo en Informática – Buceo -


Latu, 2015
Significado del proceso

•El proceso de desarrollar software (organización


y disciplina en las actividades) contribuye a la
calidad del software y a la velocidad con que se
desarrolla.
•Conjunto ordenado de tareas como Proceso:
serie de pasos con actividades, restricciones y
recursos que producen una salida de cierto tipo.

•Cuando el proceso involucra la construcción de


un producto, a veces se menciona como Ciclo de
Vida (del producto).
Siguiendo un Proceso
•Un proceso es un conjunto de procedimientos
(receta), organizado para construir productos
que satisfacen una serie de objetivos y
estándares.
•Los procesos son importantes porque imponen
consistencia y estructura en un conjunto de
actividades.
•Sabemos cómo hacer algo bien y queremos
forzar que otros lo hagan de la misma forma.
Escribiendo un Proceso
(un “programa” que otros deben seguir)

•Prescribir todas las actividades principales


•Usa recursos sujeto a restricciones
•Puede estar compuesto de subprocesos
•Cada actividad tiene un criterio de entrada y
otro de salida
•Las Actividades están organizadas en una
secuencia.
•Establecer los objetivos de cada actividad.
Modelos de Proceso de Software

•Prescripciones de la forma en que el desarrollo


de software debería llevarse a cabo.
•Descripciones de la forma en que el desarrollo
se lleva a cabo realmente.
•Cada modelo de desarrollo de software incluye
los requerimientos del sistema como entrada y
el producto librado al uso como salida.
Proceso de Abastecimiento
Modelo de Proceso y de Ciclo de Vida

•La preocupación por el “Proceso” (fin de los


’80) es más reciente que la definición del “Ciclo
de Vida” (fin de los ’60)
•En general se asocia a la noción de modelo de
proceso un mayor detalle y precisión
•Los modelos previos presentan en general poco
nivel de detalle y fueron propuestos
originalmente como modelos de Ciclo de Vida
Modelo Cascada
ANALISIS DE
REQUERIMIENTOS
Cascada
c/prototipos
DISEÑO DEL
SISTEMA
Validar El prototipado permite al cliente
evaluar en forma temprana el
DISEÑO DE producto, e interactuar con los
PROGRAMAS Verificar diseñadores y desarrolladores
para saber si se está cumpliendo
IMPLEMENTACION con las expectativas y las
DE PROGRAMAS funcionalidades acordadas. Los
Prototipos no poseen la
funcionalidad total del sistema
PROTOTIPADO PRUEBA UNITARIA
Y DE INTEGRACION pero si condensa la idea principal
del mismo, Paso a Paso crece su
funcionalidad, y maneja un alto
PRUEBA DEL grado de participación del
SISTEMA usuario.

PRUEBA DE
ACEPTACION
OPERACION
Y MANTENIMIENTO
Modelo Espiral
1. Comunicación entre el cliente y
el desarrollador

2. Se definen recursos, tiempo y


otra información relacionadas con el
proyecto.

3. Se evalúan riesgos técnicos y de


gestión

4. Las tareas requeridas para construir


una o más representaciones de la
aplicación.

5. Las tareas requeridas para construir,


probar, instalar y proporcionar soporte
al usuario
6. Si el cliente no está de acuerdo se
Cubre otra banda de la espiral y se
vuelve a la segunda etapa
Modelo V

El lado izquierdo de la V representa la descomposición


de las necesidades y la creación de las especificaciones
del sistema. El lado derecho de la V representa la
integración de las piezas y su verificación.
Modelo iterativo
Modelo Incremental
Metodologías ÁGILES de Desarrollo de Sw.

•Los modelos de proceso tradicionales trabajan


en un contexto de ficción para representar una
imagen ideal del sistema, bajo control.
•En la realidad dichas “utopías”, ignoran la
verdadera dinámica del desarrollo de software y
generan resultados con altísimos costos de
retrabajo.
•Un grupo de desarrolladores comenzó a
trabajar con una nueva filosofía, centrada en las
personas, la cuál llamaron “Metodologías Ágiles”
Metodologías ÁGILES de Desarrollo de Sw.

•Manifiesto Ágil (http://www.agilemanifesto.org/iso/es/


Estamos descubriendo mejores maneras de desarrollar
software tanto por nuestra propia experiencia como ayudando
a terceros. A través de esta experiencia hemos aprendido a
valorar:
Individuos e interacciones sobre procesos y herramientas
Software que funciona sobre documentación exhaustiva
Colaboración con el cliente sobre negociación de contratos
Responder ante el cambio sobre seguimiento de un plan

Esto es, aunque los elementos a la derecha tienen valor,


nosotros valoramos por encima de ellos los que están a la
izquierda.
Metodologías ÁGILES de Desarrollo de Sw.
•Principios Ágiles
1)Nuestra mayor prioridad es satisfacer al cliente a
través de la entrega temprana y continua de
software con valor.
2)Aceptamos requisitos cambiantes, incluso en
etapas avanzadas.
3)Entregamos software frecuentemente.
4)Los responsables de negocio y los desarrolladores
deben trabajar juntos diariamente a lo largo del
proyecto.
5)Construimos proyectos con profesionales
motivados.
Metodologías ÁGILES de Desarrollo de Sw.
6. Conversación cara a cara.
7. Software que funciona es la principal medida de
progreso.
8. Los procesos ágiles promueven el desarrollo
sostenible.
9. La atención continua a la excelencia técnica y los
buenos diseños mejoran la agilidad.
10.Simplicidad es esencial.
11.Las mejores arquitecturas, requisitos y diseños
surgen de equipos que se auto-organizan.
12.A intervalos regulares el equipo reflexiona sobre
cómo ser más efectivo.
Metodologías ÁGILES de Desarrollo de Sw.

Entonces un Método es Ágil cuando el desarrollo es:


• Incremental
Liberaciones pequeñas y ciclos rápidos.
• Cooperativo
Clientes y desarrolladores trabajando juntos.
• Simple y Directo
El método es fácil de aprender y modificar.
• Adaptativo
Es posible realizar cambios de último momento.
Metodología SCRUM.
Metodologías ÁGILES (SCRUM)
Ejemplo Practico
Ejemplo Practico
Herramientas y Técnicas para el
Modelado de Procesos

Elegir un lenguaje o notación

•Tener claro objetivos del modelo


Detalle (granularidad)
Describir-prescribir
Predecir (requiere agregar relaciones
cuantitativas entre elementos)
Ejecutar (asistir en el uso)
Modelo ETVX

•Entry Task Verification eXit


•Entry: Condiciones necesarias para poder
cumplir una tarea
•Task: Tarea que se lleva a cabo
Quién y con qué responsabilidad
•Verification: Criterios para verificar que
concluyó de forma adecuada (a veces se le
menciona como Validation)
•eXit: Resultados a obtener
Modelado de Proceso
¿Para qué?
•Entender el proceso (real o propuesto)
Revelar inconsistencias, problemas (base para la mejora)
•Simulación del proceso y planificación del proyecto
Poco nivel de detalle adicional necesario
Factores que afectan la productividad global.
Relaciones (cuantificadas) entre los factores.
Soportados por sw que simulan el proceso.
•Guía en la ejecución real del proceso
Se precisa agregar múltiples detalles

También podría gustarte