Você está na página 1de 25

Procesos de Software

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 1

Objetivos
G G

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
Software Engineering, 7th edition. Chapter 4 Slide 2

Ian Sommerville 2004

Tpicos Expuestos
G G G G G

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


G

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


G

El modelo de cascada
Separadas y distintas fases de la especificacin y el desarrollo. Especificacin, desarrollo y validacin estn intercalados. El sistema est montado a partir de los componentes existentes.

Desarrollo evolutivo

Ingeniera de Software Basada en Componentes

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.
Software Engineering, 7th edition. Chapter 4 Slide 5

Ian Sommerville 2004

Modelo de Cascada

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 6

Modelo de Cascada - Fases


G G G G G G

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.
Software Engineering, 7th edition. Chapter 4 Slide 7

Ian Sommerville 2004

Modelo de Cascada - Problemas


G

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
G

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. El objetivo es comprender los requisitos del sistema. Se puede empezar con especificaciones poco entendidas.

Prototipado desechable

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
G

Problemas
Poca visibilidad en el proceso; Los sistemas son a menudo mal estructurado; Habilidades especiales (por ejemplo, lenguajes para prototipado rpido) pueden ser requeridas. Para sistemas interactivos pequeos o medianos; Para partes de grandes sistemas (por ejemplo, la interfaz de usuario); Para sistemas de corta vida.

Aplicabilidad

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 11

Ingeniera de Software Basada en Componentes


G

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.
Software Engineering, 7th edition. Chapter 4 Slide 12

Ian Sommerville 2004

Desarrollo Orientado a la Reutilizacin

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 13

Iteracin de Procesos
G

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.
Software Engineering, 7th edition. Chapter 4 Slide 14

Ian Sommerville 2004

Entrega Incremental
G

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


G

G G

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.
Software Engineering, 7th edition. Chapter 4 Slide 17

Ian Sommerville 2004

Programacin Extrema
G

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
G

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.
Software Engineering, 7th edition. Chapter 4 Slide 19

Ian Sommerville 2004

Espiral Modelo el Proceso de Software

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 20

Sectores del Modelo en Espiral


G

La fijacin de objetivos
Los objetivos especficos de cada fase son identificados. Se evalan los riesgos y las actividades puestas en marcha para reducir los principales riesgos. Un modelo de desarrollo para el sistema elegido es el que puede ser cualquiera de los modelos genricos. El proyecto es revisado y la prxima fase de la espiral es planeada.

Evaluacin de riesgos y su reduccin

Desarrollo y validacin

Planificacin

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 21

Actividades del Proceso


G G G G

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
G

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


G

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 d

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


G G G G G G

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
G

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
G

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
G

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


G

Prueba de componentes o unidades


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 con los datos de los clientes para comprobar que el sistema cumple con los requerimientos del cliente.
Software Engineering, 7th edition. Chapter 4 Slide 33

Pruebas del sistema

Pruebas de aceptacin

Ian Sommerville 2004

Fases de Prueba

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 34

Evolucin del Software


G

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.
Software Engineering, 7th edition. Chapter 4 Slide 35

Ian Sommerville 2004

Evolucin del Sistema

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 36

El Proceso Unificado de Rational


G

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
G

Inicio
Establecer el modelo comercial para el sistema. Desarrollar una comprensin del dominio problema y la arquitectura del sistema. Diseo de sistemas, programacin y pruebas. Desplegar el sistema en su entorno operativo. del

Elaboracin

Construccin

Transicin

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 4

Slide 39

Buenas Prcticas en RUP


G G G

G G G

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


G

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.
Software Engineering, 7th edition. Chapter 4 Slide 42

Ian Sommerville 2004

Tecnologa CASE
G

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
G

La clasificacin nos ayuda a entender los diferentes tipos de herramientas CASE y su apoyo a actividades del proceso. Perspectiva funcional
Herramientas se clasifican de acuerdo a su funcin especfica. Herramientas se clasifican de acuerdo con las actividades de proceso que son compatibles. Herramientas se clasifican de acuerdo a su organizacin en unidades integradas.
Software Engineering, 7th edition. Chapter 4 Slide 44

Perspectiva de proceso

Perspectiva de integracin

Ian Sommerville 2004

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


G

Herramientas
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. Apoyo a la totalidad o una parte sustancial de todo un proceso del software. Normalmente incluyen varios bancos de trabajo integrados.

Bancos de trabajo

Entornos

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
G

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
G

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.
Software Engineering, 7th edition. Chapter 4 Slide 50

Ian Sommerville 2004

Você também pode gostar