You are on page 1of 25

Procesos de Software

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 1

Objetivos

Introducir modelos de procesos de software


Describir tres modelos de procesos genricos y
cundo pueden utilizarse
Describir modelos de procesos de ingeniera de
requerimientos, de desarrollo de software,
pruebas y la evolucin
Explicar el modelo de Proceso Unificado de
Rational
Introducir la tecnologa CASE para apoyar las
actividades de proceso del software

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 2

Tpicos Expuestos

Modelos de procesos de software


Iteracin de procesos
Actividades del proceso
El Proceso Unificado de Rational
Ingeniera de Software Asistida por Computadora

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 3

El Proceso del Software

Un conjunto estructurado de actividades necesarias para


desarrollar un Sistema de software

Especficacin;
Diseo;
Validacin;
Evolucin.

Un modelo de proceso del software es una representacin


abstracta de un proceso. Presenta una descripcin de un
proceso desde una perspectiva particular.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 4

Modelos Genricos
de Proceso de Software

El modelo de cascada

Separadas y distintas fases de la especificacin y el


desarrollo.

Desarrollo evolutivo

Ingeniera de Software Basada en Componentes

Especificacin, desarrollo y validacin estn intercalados.


El sistema est montado a partir de los componentes
existentes.

Hay muchas variantes de estos modelos, por ejemplo, el


desarrollo formal donde se toma un proceso similar al de
cascada, pero la especificacin es una especificacin
formal que se perfecciona a travs de varias etapas hacia
un diseo implementable.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 5

Modelo de Cascada

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 6

Modelo de Cascada - Fases

Anlisis de requerimientos y definicin


diseo del sistema y del software
Ejecucin y unidad de pruebas
Implementacin y pruebas del sistema
Operacin y mantenimiento
El principal inconveniente del modelo de cascada
es la dificultad de acomodar el cambio despus
de que el proceso est en marcha. Una fase tiene
que ser completada antes de pasar a la siguiente
fase.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 7

Modelo de Cascada - Problemas

Rgida divisin del proyecto en fases distintas que hace


difcil responder a la evolucin de las necesidades del
cliente.
Por lo tanto, este modelo slo es apropiado cuando los
requisitos son bien entendidos y los cambios sern
bastante limitados durante el proceso de diseo.
Pocos sistemas de negocio tienen requerimientos
estables.
El modelo de cascada se utiliza para grandes proyectos de
ingeniera de sistemas donde el desarrollo de un sistema
se efecte en varios sitios.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 8

Desarrollo Evolutivo

Desarrollo exploratorio

El objetivo es trabajar con los clientes y evolucionar a


un sistema final a partir de un esbozo inicial de
especificacin.
Debera
empezar
con
buen
entendimiento de los requerimientos y aadir nuevas
funciones en la forma propuesta por el cliente.

Prototipado desechable

El objetivo es comprender los requisitos del sistema.


Se puede empezar con especificaciones poco
entendidas.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 9

Desarrollo Evolutivo

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 10

Desarrollo Evolutivo

Problemas

Poca visibilidad en el proceso;


Los sistemas son a menudo mal estructurado;
Habilidades especiales (por ejemplo, lenguajes
para prototipado rpido) pueden ser requeridas.

Aplicabilidad

Para sistemas interactivos pequeos o medianos;


Para partes de grandes sistemas (por ejemplo, la
interfaz de usuario);
Para sistemas de corta vida.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 11

Ingeniera de Software
Basada en Componentes

Sobre la base de la reutilizacin sistemtica


donde se integran los sistemas de los
componentes existentes o COTS (Comercial-offthe-shelf) de sistemas.
Las fases del proceso

Anlisis de componentes;
Modificacin de requerimientos;
Diseo del sistema con reutilizacin;
Desarrollo e integracin.

Este enfoque est siendo cada vez ms utilizado


a medida que los componentes estndar van
surgiendo.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 12

Desarrollo Orientado
a la Reutilizacin

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 13

Iteracin de Procesos

Los requerimientos del sistema SIEMPRE


evolucionan en el transcurso de un proyecto, as
que el proceso de iteracin donde las fases son
revisadas, siempre son parte del proceso de
grandes sistemas.
Iteracin se puede aplicar a cualquiera de los
modelos de procesos genricos.
Dos enfoques (relacionados)

Entrega incremental;
Desarrollo en Espiral.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 14

Entrega Incremental

En lugar de entregar el sistema en una sola entrega, el


desarrollo y la prestacin se divide en incrementos, y
con cada incremento se entrega parte de la
funcionalidad requerida.
Son priorizados los requerimientos de los usuarios y
los requerimientos de ms alta prioridad son incluidos
en los primeros incrementos.
Una vez que el desarrollo de un incremento se ha
iniciado, los requisitos estn congelados, a pesar de
que los requerimientos de los incrementos posteriores
pueden seguir evolucionando.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 15

Entrega Incremental

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 16

Ventajas del Desarrollo Incremental

Entregas con valor para el cliente pueden ser


hechas con cada incremento, de manera que la
funcionalidad del sistema est disponible
tempranamente.
Los primeros incrementos actan como un
prototipo para ayudar a obtener requerimientos
para incrementos posteriores.
Menor riesgo de fracaso del proyecto general.
La ms alta prioridad del sistema de servicios
tiende a recibir ms pruebas.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 17

Programacin Extrema

Un enfoque del desarrollo basado en el desarrollo


y la entrega de los muy pequeos incrementos de
funcionalidad.
Cdigo se basa en constante mejora, la
participacin de los usuarios en el equipo de
desarrollo y programacin en parejas.
Cubiertos en el captulo 17

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 18

Desarrollo en Espiral

El proceso se representa como una espiral y no


como una secuencia de actividades con marcha
atrs.
Cada bucle en la espiral representa una fase en el
proceso.
Fases no fijas, tales como las fases de diseo o
especificacin - bucles de la espiral se eligen en
funcin de lo que se necesita.
Riesgos se evalan de forma explcita y se
resuelven a travs todo el proceso.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 19

Espiral Modelo el Proceso de Software

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 20

Sectores del Modelo en Espiral

La fijacin de objetivos

Evaluacin de riesgos y su reduccin

Se evalan los riesgos y las actividades puestas en


marcha para reducir los principales riesgos.

Desarrollo y validacin

Los objetivos especficos de cada fase son identificados.

Un modelo de desarrollo para el sistema elegido es el que


puede ser cualquiera de los modelos genricos.

Planificacin

El proyecto es revisado y la prxima fase de la espiral es


planeada.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 21

Actividades del Proceso

Especificacin de software
Diseo e implementacin de software
Validacin de software
Evolucin del software

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 22

Especificacin de Software

El proceso de establecer qu servicios son


requeridos
y
las
limitaciones
en
el
funcionamiento del sistema y el desarrollo.
Proceso de ingeniera de requerimientos

Estudio de viabilidad;
Obtencin y anlisis de requerimientos;
Especificacin de los requerimientos;
Validacin de requerimientos.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 23

Proceso de Ingeniera de Requerimientos

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 24

Diseo e Implementacin de Software


El proceso de convertir la especificacin del
sistema en un sistema ejecutable.
Diseo de software

Disear una estructura de software


constancia de la especificacin;

que

Implementacin

Traducir esta estructura en un programa ejecutable;

Las actividades de diseo e implementacin


estn estrechamente relacionadas y pueden ser
interpoladas.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 25

Actividades del Proceso de Diseo

Diseo arquitectnico
Especificacin abstracta
Diseo de la interfaz
Diseo de componentes
Diseo de estructura de datos
Diseo de algoritmos

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 26

El Proceso de Diseo de Software

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 27

Mtodos Estructurados

Enfoques sistemticos para el desarrollo de un


diseo de software.
El diseo es por lo general documentado
como un conjunto de modelos grficos.
Posibles modelos

Modelo de objetos;
Modelo de secuencia;
Modelo de transicin de estados;
Modelo estructural;
Modelo de flujo de datos.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 28

Programacin y Depuracin

Traduccin de un diseo en un programa y la


eliminacin de errores de ese programa.
La programacin es una actividad personal - no
hay ningn proceso de programacin genrico.
Los programadores deben acarrear alguna
prueba del programa para descubrir defectos en
el programa y eliminar esas fallas en el proceso
de depuracin.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 29

El Proceso de Depuracin

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 30

Validacin de Software

Verificacin y validacin (V & V) es para poner


de manifiesto que un sistema cumple con su
especificacin y cumple los requerimientos del
cliente.
Implica el control y revisin de los procesos y
pruebas del sistema.
La prueba del sistema implica la ejecucin del
sistema con casos de prueba que se derivan
de la especificacin de los datos reales para
ser procesados por el sistema.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 31

El Proceso de Pruebas

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 32

Etapas del Proceso de Pruebas

Prueba de componentes o unidades

Pruebas del sistema

Cada uno de los componentes son probados por


separado;
Componentes pueden ser funciones u objetos o
agrupaciones coherentes de estas entidades.
Prueba del sistema en su conjunto. Prueba de
propiedades
emergentes
es
particularmente
importante.

Pruebas de aceptacin

Pruebas con los datos de los clientes para comprobar


que el sistema cumple con los requerimientos del
cliente.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 33

Fases de Prueba

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 34

Evolucin del Software

El software es inherentemente flexible y puede


cambiar.
Como los requerimientos cambian a travs del
cambio de las circustancias empresariales, el
software que soporta la empresa tambin debe
evolucionar y cambiar.
Aunque ha habido una demarcacin entre el
desarrollo y evolucin (mantenimiento) es cada
vez ms irrelevante como cada vez menos y
menos sistemas son completamente nuevos.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 35

Evolucin del Sistema

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 36

El Proceso Unificado de Rational

Un moderno modelo de proceso derivado de


la labor sobre el UML y procesos asociados.
Normalmente se describe a partir de 3 de
perspectivas

Una perspectiva dinmica, que muestra las fases


del modelo en el tiempo;
Una perspectiva esttica que muestra las
actividades de proceso;
Una perspectiva prctica que sugiere buenas
prcticas a utilizar durante el proceso.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 37

Fases del RUP

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 38

RUP - Fases

Inicio

Elaboracin

Desarrollar una comprensin del dominio


problema y la arquitectura del sistema.

del

Construccin

Establecer el modelo comercial para el sistema.

Diseo de sistemas, programacin y pruebas.

Transicin

Desplegar el sistema en su entorno operativo.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 39

Buenas Prcticas en RUP

Desarrollar software iterativamente


Gestin de requerimientos
Uso de arquitecturas basadas en
componentes
Modelos de software visuales
Verificar la calidad del software
Control de cambios al software

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 40

Los Flujos de Trabajo

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 41

Ingeniera de Software
Asistida por Computadora

Ingeniera de Software Asistida por Computadora


(CASE) es un software para apoyar el desarrollo de
software y procesos de evolucin.
Automatizacin de la actividad

Editores grficos para el modelo de desarrollo del


sistema;
Diccionario de datos para la gestin de las entidades de
diseo;
Constructor GUI para la construccin de la interfaz de
usuario grfica;
Depuradores para ayudar a encontrar defectos en el
programa;
Traductores automatizados para generar nuevas
versiones de un programa.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 42

Tecnologa CASE

La tecnologa CASE ha dado lugar a mejoras


significativas en el proceso del software. Sin
embargo, estas no van acorde a la magnitud de
las mejoras previstas alguna vez

Ingeniera de software requiere pensamiento


creativo esto no se automatiza fcilmente;
Ingeniera de software es una actividad de grupo y,
para grandes proyectos, se dedica mucho tiempo a
las interacciones del equipo. La tecnologa CASE
realmente no ayuda a ello.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 43

Clasificacin CASE

La clasificacin nos ayuda a entender los diferentes tipos


de herramientas CASE y su apoyo a actividades del
proceso.
Perspectiva funcional

Perspectiva de proceso

Herramientas se clasifican de acuerdo a su funcin


especfica.
Herramientas se clasifican de acuerdo con las actividades
de proceso que son compatibles.

Perspectiva de integracin

Herramientas se clasifican de acuerdo a su organizacin


en unidades integradas.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 44

Clasificacin Funcional de las


Herramientas CASE

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 45

Clasificacin Basada en Actividades de


las Herramientas CASE

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 46

Integracin de Herramientas CASE

Herramientas

Bancos de trabajo

Tareas individuales de apoyo al proceso como


control de coherencia de diseo, edicin de texto, etc
Apoyar una fase del proceso como la especificacin
o diseo, por lo general incluyen una serie de
herramientas integradas.

Entornos

Apoyo a la totalidad o una parte sustancial de todo un


proceso del software. Normalmente incluyen varios
bancos de trabajo integrados.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 47

Herramientas, Bancos de Trabajo


y Entornos

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 48

Puntos Claves

Procesos de software son las actividades implicadas en la


produccin y la evolucin de un sistema de software.
Modelos de procesos software son representaciones
abstractas de estos procesos.
Actividades generales son la especificacin, diseo e
implementacin, la validacin y la evolucin.
Los modelos genricos del proceso describen la
organizacin de los procesos de software. Los ejemplos
incluyen el modelo de cascada, desarrollo evolutivo e
ingeniera de software basada en componentes.
Los modelos de iteracin de procesos describen el
proceso del software como un ciclo de actividades.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 49

Puntos Claves

Ingeniera de requerimientos es el proceso de desarrollo


de una especificacin de software.
Diseo implementacin comprenden la transformacin de
la especificacin de requerimientos en un software
ejecutable.
La validacin implica que el sistema cumple con las
especificaciones y requerimientos del usuario.
Evolucin se refiere a la modificacin del sistema
despus de que est en uso.
El Proceso Unificado de Rational es un modelo de
proceso genrico que separa las actividades de las fases
que presenta.
La tecnologa CASE proporciona ayuda automatizada a
los procesos de software.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 50

You might also like