Sunteți pe pagina 1din 58

Capítulo 2 - Procesos de Software

30/10/2014 Procesos Capítulo 2 Software 1


Tópicos cubiertos

 modelos de procesos de software


 las actividades del proceso
 El problema del cambio
 La mejora de procesos

30/10/2014 Procesos Capítulo 2 Software 2


El proceso de software

 Un conjunto estructurado de actividades necesarias para


desarrollar una
sistema de software.
 Muchos procesos de software diferentes, pero todos
implican:
 Especificación - la definición de lo que debe hacer el sistema;
 Diseño e implementación - definir la organización del sistema y
la implementación del sistema;
 Validación - la comprobación de que hace lo que quiere el
cliente;
 Evolución - el cambio del sistema en respuesta a las cambiantes
necesidades de los clientes.
 Un modelo de proceso
30/10/2014 deCapítulo
Procesos software
2 Software es una 3
descripciones de procesos de software

 Cuando describimos y discutimos los procesos, por lo


general hablamos de las actividades en estos procesos,
como la especificación de un modelo de datos, el diseño
de una interfaz de usuario, etc. y el ordenamiento de
estas actividades.
 Las descripciones de procesos también pueden incluir:
 Productos, que son los resultados de una actividad de proceso;
 Papeles, que reflejan las responsabilidades de las personas
involucradas en el proceso;
 Pre y post-condiciones, que son los estados que son verdaderas
antes y después de una actividad de proceso se ha promulgado
o producido un producto.

30/10/2014 Procesos Capítulo 2 Software 4


Plan-conducido y procesos ágiles

 procesos del plan impulsado son procesos en los que


todas las actividades del proceso se planifican con
antelación y el progreso se mide en contra de este plan.
 En los procesos ágiles, la planificación es gradual y es
más fácil de cambiar el proceso para reflejar las
cambiantes necesidades de los clientes.
 En la práctica, la mayoría de los procesos prácticos
incluyen elementos de ambos enfoques del plan
impulsado y ágiles.
 No hay procesos de software correctas o incorrectas.

30/10/2014 Procesos Capítulo 2 Software 5


modelos de procesos de software

30/10/2014 Procesos Capítulo 2 Software 6


modelos de procesos de software

 El modelo de cascada
 Plan basado en modelos. Separar y distintas fases de
especificación y desarrollo.
 Desarrollo incremental
 Especificación, desarrollo y validación se intercalan. Puede ser
el plan impulsado o ágil.
 Integración y configuración
 El sistema se ensambla a partir de componentes configurables
existentes. Puede ser el plan impulsado o ágil.
 En la práctica, los sistemas más grandes se desarrollan
utilizando un proceso que incorpora elementos de todos
estos modelos.
30/10/2014 Procesos Capítulo 2 Software 7
El modelo de cascada

30/10/2014 Procesos Capítulo 2 Software 8


Cascada modelar fases

 Hay fases identificadas por separado en el modelo de


cascada:
 El análisis de requerimientos y definición
 Sistema y diseño de software
 Implementación y las pruebas unitarias
 Integración y sistema de prueba
 Operación y mantenimiento
 El inconveniente principal del modelo de la cascada es
la dificultad de acomodar el cambio después de que el
proceso está en marcha. En principio, una fase tiene
que ser completa antes de pasar a la siguiente fase.

30/10/2014 Procesos Capítulo 2 Software 9


Cascada modelar problemas

 particionamiento inflexible del proyecto en fases distintas


hace que sea difícil de responder a las cambiantes
necesidades de los clientes.
 Por lo tanto, este modelo sólo es apropiado cuando los
requisitos son bien entendidos y cambios serán bastante
limitadas durante el proceso de diseño.
 unos sistemas de negocio tienen requisitos estables.
 El modelo de cascada se utiliza sobre todo para grandes
proyectos de ingeniería de sistemas donde se desarrolla
un sistema en varios sitios.
 En estas circunstancias, la naturaleza del plan impulsado por el
modelo de cascada de ayuda a coordinar el trabajo.

30/10/2014 Procesos Capítulo 2 Software 10


Desarrollo incremental

30/10/2014 Procesos Capítulo 2 Software 11


beneficios incrementales de desarrollo

 El coste del alojamiento cambiantes necesidades de los


clientes se reduce.
 La cantidad de análisis y documentación que tiene que ser
hecho de nuevo es mucho menor que la requerida con el
modelo de cascada.
 Es más fácil de obtener retroalimentación de los clientes
en el trabajo de desarrollo que se ha hecho.
 Los clientes pueden hacer comentarios sobre las
manifestaciones del software y ver cuánto se ha implementado.
 la entrega más rápida y despliegue de software útil para
el cliente es posible.
 Los clientes son capaces de usar y ganar valor desde el
30/10/2014
software antes de lo que es posible con un proceso en cascada.12
Procesos Capítulo 2 Software
problemas de desarrollo incrementales

 El proceso no es visible.
 Los gerentes necesitan entregas regulares a medir el progreso.
Si los sistemas se desarrollan con rapidez, no es rentable para
producir documentos que reflejan todas las versiones del
sistema.
 Estructura del sistema tiende a degradar medida que se
añaden nuevos incrementos.
 A menos tiempo y dinero se gasta en la refactorización para
mejorar el software, cambio regular tiende a corromper su
estructura. La incorporación de nuevos cambios de software se
vuelve cada vez más difícil y costoso.

30/10/2014 Procesos Capítulo 2 Software 13


Integración y configuración

 Sobre la base de la reutilización de software donde los


sistemas se integran a partir de componentes existentes
o sistemas de aplicación (a veces llamados COTS -
Comercial-fuera de la plataforma) Systems).
 elementos reutilizados pueden estar configurados para
adaptar su comportamiento y funcionalidad a las
necesidades de un usuario
 La reutilización es ahora el enfoque estándar para la
construcción de muchos tipos de sistema de negocio
 Reutilización explica con más detalle en el capítulo 15.

30/10/2014 Procesos Capítulo 2 Software 14


Tipos de software reutilizable

 sistemas independientes de aplicación (a veces


llamados COTS) que están configurados para su uso en
un entorno particular.
 Colecciones de objetos que se desarrollan como un
paquete que se integrarán con un marco de
componentes tales como .NET o J2EE.
 Los servicios Web que se desarrollan de acuerdo a los
estándares de servicio y que están disponibles para la
invocación remota.

30/10/2014 Procesos Capítulo 2 Software 15


la ingeniería de software orientada a la
reutilización,

30/10/2014 Procesos Capítulo 2 Software dieciséis


etapas del proceso clave

 Especificación de requisitos
 descubrimiento y evaluación de software
 requisitos refinamiento
 la configuración del sistema de aplicación
 la adaptación y la integración de componentes

30/10/2014 Procesos Capítulo 2 Software 17


Ventajas y desventajas

 costes y riesgos como menos software reducidas se


desarrolla a partir de cero
 Una entrega más rápida y el despliegue de sistema
 Pero los requisitos son inevitables compromisos por lo
que el sistema no puede satisfacer las necesidades
reales de los usuarios
 La pérdida de control sobre la evolución de los
elementos del sistema reutilizados

30/10/2014 Procesos Capítulo 2 Software 18


las actividades del proceso

30/10/2014 Procesos Capítulo 2 Software 19


las actividades del proceso

 procesos de software reales son secuencias inter-con


hojas de actividades técnicas, de colaboración y de
gestión con el objetivo general de la especificación,
diseño, implementación y prueba de un sistema de
software.
 Las cuatro actividades básicas del proceso de
especificación, desarrollo, validación y evolución están
organizadas de manera diferente en diferentes procesos
de desarrollo.
 Por ejemplo, yon el modelo de cascada, que están
organizados en secuencia, mientras que en desarrollo
incremental que se intercalan.
30/10/2014 Procesos Capítulo 2 Software 20
El proceso de ingeniería de requerimientos

30/10/2014 Procesos Capítulo 2 Software 21


especificación de software

 El proceso de establecer lo que se requieren los servicios


y las limitaciones a la explotación y el desarrollo del
sistema.
 proceso de ingeniería de requerimientos
 La obtención de requisitos y análisis
• ¿Qué hacen los actores del sistema requieren o esperan del sistema?
 Especificación de requisitos
• La definición de los requisitos en detalle
 la validación de los requisitos
• Comprobación de la validez de los requisitos

30/10/2014 Procesos Capítulo 2 Software 22


diseño e implementación de software

 El proceso de conversión de la especificación del


sistema en un sistema ejecutable.
 Diseño de software
 Diseñar una estructura de software que realiza la especificación;
 Implementación
 Traducir esta estructura en un programa ejecutable;
 Las actividades de diseño e implementación están
estrechamente relacionados y pueden estar
interrelacionados de hojas.

30/10/2014 Procesos Capítulo 2 Software 23


Un modelo general del proceso de diseño

30/10/2014 Procesos Capítulo 2 Software 24


Las actividades de diseño

 Diseño arquitectonico, donde se identifica la estructura


general del sistema, los principales componentes
(subsistemas o módulos), sus relaciones y la forma en
que se distribuyen.
 diseño de base de datos, donde se diseña la estructura
de datos del sistema y cómo éstos han de estar
representados en una base de datos.
 Diseño de interfaz, donde se definen las interfaces entre
los componentes del sistema.
 la selección de componentes y el diseño, en el que la
búsqueda de componentes reutilizables. Si no está
disponible, a diseñar cómo va a operar.
30/10/2014 Procesos Capítulo 2 Software 25
implementación del sistema

 El software se realizará, ya sea mediante el desarrollo


de un programa o programas o mediante la
configuración de un sistema de aplicación.
 Diseño e implementación se intercalan actividades para
la mayoría de tipos de sistema de software.
 La programación es una actividad individual con ningún
proceso estándar.
 La depuración es la actividad de búsqueda de fallos del
programa y corregir dichos errores.

30/10/2014 Procesos Capítulo 2 Software 26


la validación del software

 Verificación y validación (V & V) se destina a mostrar


que un sistema se ajusta a su especificación y cumple
los requisitos del cliente del sistema.
 Implica procesos de control y revisión y las pruebas del
sistema.
 Las pruebas del sistema implica la ejecución del sistema
con los casos de prueba que se derivan de la
especificación de los datos reales para ser procesado
por el sistema.
 La prueba es la actividad V & V más comúnmente
utilizado.
30/10/2014 Procesos Capítulo 2 Software 27
Etapas de la prueba

30/10/2014 Procesos Capítulo 2 Software 28


etapas de prueba

 pruebas de componentes
 Los componentes individuales se prueban de forma
independiente;
 Los componentes pueden ser funciones u objetos o
agrupaciones coherentes de estas entidades.
 Las pruebas del sistema
 Pruebas del sistema en su conjunto. Pruebas de propiedades
emergentes es particularmente importante.
 Las pruebas del cliente
 Las pruebas con los datos del cliente para comprobar que el
sistema cumple con las necesidades del cliente.

30/10/2014 Procesos Capítulo 2 Software 29


Fases de pruebas en un proceso de software del
plan impulsado (V-modelo)

30/10/2014 Procesos Capítulo 2 Software 30


La evolución del software

 El software es inherentemente flexible y puede cambiar.


 A medida que cambian los requisitos cambiantes a
través de las circunstancias del negocio, el software que
soporta el negocio también deben evolucionar y
cambiar.
 Aunque ha habido una demarcación entre el desarrollo y
la evolución (mantenimiento) esto es cada vez más
irrelevante como sistemas cada vez menos son
completamente nuevos.

30/10/2014 Procesos Capítulo 2 Software 31


la evolución del sistema

30/10/2014 Procesos Capítulo 2 Software 32


El problema del cambio

30/10/2014 Procesos Capítulo 2 Software 33


El problema del cambio

 El cambio es inevitable en todos los grandes proyectos


de software.
 los cambios del negocio conducen a nuevos y modificados los
requisitos del sistema
 Las nuevas tecnologías abren nuevas posibilidades para
mejorar las implementaciones
 plataformas cambiantes requieren cambios en las aplicaciones
 Cambio lleva a la reanudación por lo que los costos del
cambio incluyen tanto la reelaboración (por ejemplo, re-
analizar requisitos), así como los costos de
implementación de nuevas funcionalidades

30/10/2014 Procesos Capítulo 2 Software 34


La reducción de los costos de reproceso

 Anticipación de cambios, donde el proceso de software


incluye actividades que pueden anticipar posibles
cambios antes de que se requiere la reanudación
significativa.
 Por ejemplo, un prototipo de sistema puede ser desarrollado
para mostrar algunas de las características clave del sistema a
los clientes.
 Cambiar la tolerancia, en el que el proceso está
diseñado de modo que los cambios pueden alojarse en
un costo relativamente bajo.
 Esto normalmente implica alguna forma de desarrollo
incremental. Los cambios propuestos se pueden implementar en
incrementos que aún no se han desarrollado. Si esto es
30/10/2014 imposible, a continuación, sólo 2un
Procesos Capítulo único incremento (una
Software 35
El hacer frente a las necesidades cambiantes

 prototipos del sistema, donde se desarrolla una versión


del sistema o parte del sistema de forma rápida para
comprobar los requisitos del cliente y la viabilidad de las
decisiones de diseño. Este enfoque es compatible con el
cambio anticipación.
 entrega incremental, donde incrementos del sistema se
entregan al cliente para el comentario y la
experimentación. Esto apoya tanto el cambio de
evitación y la tolerancia cambio.

30/10/2014 Procesos Capítulo 2 Software 36


creación de prototipos de software

 Un prototipo es una versión inicial de un sistema


utilizado para demostrar los conceptos y probar las
opciones de diseño.
 Un prototipo puede ser utilizado en:
 Los requisitos de proceso de ingeniería para ayudar con la
obtención de requisitos y validación;
 En los procesos de diseño para explorar opciones y desarrollar
un diseño de interfaz de usuario;
 En el proceso de prueba para ejecutar pruebas de espalda con
espalda.

30/10/2014 Procesos Capítulo 2 Software 37


Beneficios de prototipos

 sistema de usabilidad mejorada.


 Una aproximación más exacta a las necesidades reales
de los usuarios.
 la calidad del diseño mejorado.
 Mejora de la capacidad de mantenimiento.
 esfuerzo de desarrollo reducida.

30/10/2014 Procesos Capítulo 2 Software 38


El proceso de desarrollo de prototipos

30/10/2014 Procesos Capítulo 2 Software 39


desarrollo de prototipos

 Puede basarse en idiomas creación rápida de prototipos


o herramientas
 Puede implicar dejar de lado la funcionalidad
 Prototipo debe centrarse en las áreas del producto que no se
entiende bien;
 La comprobación de errores y la recuperación no se pueden
incluir en el prototipo;
 Centrarse en los requisitos funcionales y no funcionales no
como la fiabilidad y la seguridad

30/10/2014 Procesos Capítulo 2 Software 40


Desechable prototipos

 Los prototipos deben ser desechados después del


desarrollo ya que no son una buena base para un
sistema de producción:
 Puede ser imposible para afinar el sistema para satisfacer los
requisitos no funcionales;
 Los prototipos son normalmente sin papeles;
 La estructura del prototipo se suele degradarse a través de un
cambio rápido;
 El prototipo probablemente no va a cumplir con los estándares
de calidad normal de organización.

30/10/2014 Procesos Capítulo 2 Software 41


Entrega incremental

 En lugar de entregar el sistema como una sola entrega,


el desarrollo y la entrega se divide en incrementos con
cada parte de la subasta entrega de la funcionalidad
requerida.
 necesidades de los usuarios y se priorizan las
necesidades de mayor prioridad se incluyen en los
primeros incrementos.
 Una vez que se ha iniciado el desarrollo de un
incremento, los requisitos son congelados a pesar de los
requisitos para incrementos posteriores pueden seguir
evolucionando.

30/10/2014 Procesos Capítulo 2 Software 42


desarrollo incremental y entrega

 Desarrollo incremental
 Desarrollar el sistema en incrementos y evaluar cada
incremento antes de continuar con el desarrollo de la siguiente
incremento;
 enfoque normal utilizado en los métodos ágiles;
 La evaluación hecha por poder usuario / cliente.
 Entrega incremental
 Implementar un incremento para el uso por los usuarios finales;
 Una evaluación más realista sobre el uso práctico del software;
 Difícil de implementar para sistemas de reemplazo como
incrementos tienen menos funcionalidad que el sistema que está
siendo reemplazado.

30/10/2014 Procesos Capítulo 2 Software 43


Entrega incremental

30/10/2014 Procesos Capítulo 2 Software 44


ventajas de entrega incrementales

 El valor del cliente se puede entregar con cada


incremento de manera funcionalidad del sistema está
disponible antes.
 Los primeros incrementos actúan como un prototipo
para ayudar a generar requisitos para incrementos
posteriores.
 menor riesgo de fracaso del proyecto en general.
 Los servicios de mayor prioridad del sistema tienden a
recibir la mayoría de las pruebas.

30/10/2014 Procesos Capítulo 2 Software 45


problemas de entrega incrementales

 La mayoría de los sistemas requieren un conjunto de


servicios básicos que son utilizados por diferentes
partes del sistema.
 Como requisitos no se definen en detalle hasta un incremento
debe ser implementado, puede ser difícil de identificar las
instalaciones comunes que son necesarios para todos los
incrementos.
 La esencia de los procesos iterativos es que la
especificación se desarrolla en conjunto con el software.
 Sin embargo, este conflicto con el modelo de adquisición de
muchas organizaciones, donde la especificación del sistema
completo es parte del contrato de desarrollo del sistema.

30/10/2014 Procesos Capítulo 2 Software 46


La mejora de procesos

30/10/2014 Procesos Capítulo 2 Software 47


La mejora de procesos

 Muchas compañías de software han recurrido a la


mejora de procesos de software como una forma de
mejorar la calidad de su software, reduciendo los costos
o acelerar sus procesos de desarrollo.
 medios de mejora de procesos comprensión de los
procesos existentes y el cambio de estos procesos para
aumentar la calidad de los productos y / o reducir los
costos y el tiempo de desarrollo.

30/10/2014 Procesos Capítulo 2 Software 48


Enfoques para el mejoramiento

 El enfoque de la madurez del proceso, que se centra en


la mejora de procesos y gestión de proyectos y la
introducción de buenas prácticas de ingeniería de
software.
 El nivel de madurez de los procesos refleja el grado en que las
buenas prácticas y la gestión técnica ha sido adoptada en los
procesos de desarrollo de software de organización.
 El enfoque ágil, que se centra en el desarrollo iterativo y
la reducción de los gastos generales en el proceso de
software.
 Las características principales de los métodos ágiles son la
entrega rápida de funcionalidad y capacidad de respuesta a los
cambios de necesidades del cliente.
30/10/2014 Procesos Capítulo 2 Software 49
los ciclo de mejora de procesos

30/10/2014 Procesos Capítulo 2 Software 50


actividades de mejora de procesos

 medición de procesos
 Tú medir uno o más atributos del proceso de software o
producto. Estas mediciones forman una línea de base que le
ayuda a decidir si las mejoras del proceso han sido eficaces.
 Proceso análisis
 los proceso actual se evalúa y se identifican las debilidades del
proceso y los cuellos de botella. Los modelos de proceso (a
veces llamados mapas de procesos) que describen el proceso
pueden serdesarrollado.
 Proceso cambio
 Proceso Se proponen cambios para hacer frente a algunas de
las debilidades de los procesos identificados. Estos se
introducen y el ciclo se reanuda a recoger datos sobre la
30/10/2014 efectividad de los cambios.
Procesos Capítulo 2 Software 51
medición de procesos

 Siempre que sea posible, los datos cuantitativos del


proceso
debe ser recogido
 Sin embargo, cuando las organizaciones no tienen estándares
de procesos claramente definidos esto es muy difícil, ya que no
se sabe qué medir. Un proceso puede tener que ser definido
antes de cualquier medición es posible.
 Mediciones de procesos deberían utilizarse para
evaluar mejoras en los procesos
 Pero esto no significa que las mediciones deben conducir las
mejoras. El conductor de mejora deben ser los objetivos de la
organización.

30/10/2014 Procesos Capítulo 2 Software 52


métricas de procesos

 Tiempo necesario para que las actividades del proceso


sea
terminado
 Por ejemplo, tiempo o esfuerzo calendario para completar una
actividad o proceso.
 Los recursos necesarios para los procesos o actividades
 por ejemplo, el esfuerzo total de días-persona.
 Número de ocurrencias de un evento en particular
 Por ejemplo, número de defectos descubiertos.

30/10/2014 Procesos Capítulo 2 Software 53


los niveles de madurez de la capacidad

30/10/2014 Procesos Capítulo 2 Software 54


El modelo de madurez de la capacidad SEI

 Inicial
 esencialmente no controlada
 repetible
 procedimientos de gestión de producto definen y utilizan
 definido
 procedimientos y estrategias de gestión de procesos definidos
y usado
 Gestionado
 las estrategias de gestión de calidad definidos y utilizados
 Optimización
 las estrategias de mejora de procesos definidos y utilizados
30/10/2014 Procesos Capítulo 2 Software 55
Puntos clave

 procesos de software son las actividades involucradas


en la producción de un sistema de software.
 Software modelos de procesos son representaciones abstractas
de estos procesos.
 los modelos generales del proceso describen la
organización de los procesos de software.
 Ejemplos de estos modelos generales incluyen el modelo de
'cascada', desarrollo incremental, y el desarrollo orientados a la
reutilización.
 requisitos Ingenieria es el proceso de desarrollar una
especificación de software.

30/10/2014 Procesos Capítulo 2 Software 56


Puntos clave

 procesos de diseño e implementación tienen que ver


con la transformación de una especificación de
requisitos en un sistema de software ejecutable.
 validación de software es el proceso de verificar que el
sistema se ajusta a su especificación y que cumple con
las necesidades reales de los usuarios del sistema.
 La evolución del software se lleva a cabo cuando se
cambia sistemas de software existentes para satisfacer
las nuevas necesidades. El software debe evolucionar
para seguir siendo útiles.
 Los procesos deben incluir actividades tales como la
creación de prototipos y la entrega incremental poder
30/10/2014 Procesos Capítulo 2 Software 57
con cambio.
Puntos clave

 Los procesos pueden ser estructurados para el


desarrollo iterativo y entrega de modo que se pueden
hacer cambios sin perturbar el sistema como un todo.
 Los principales enfoques para la mejora de procesos
son enfoques ágiles, orientados a la reducción de los
gastos generales del proceso, y basada en la madurez
enfoques basados ​en una mejor gestión de los procesos
y el uso de prácticas de ingeniería de software buena.
 Los niveles de madurez del proceso de madurez marco
identifica SEI que corresponden esencialmente a la
utilización de buenas prácticas de ingeniería de
software.
30/10/2014 Procesos Capítulo 2 Software 58

S-ar putea să vă placă și