proceso del software

28
+ Proceso del Software Hernández Rodríguez Ares Atzarel 6IM7

Upload: ares-hernandez-rodriguez

Post on 06-Apr-2017

283 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Proceso del Software

+

Proceso del Software

Hernández Rodríguez Ares Atzarel6IM7

Page 2: Proceso del Software

+Proceso del Software

Una definición sencilla de proceso es “serie de acciones que conducen a un final”.

Siempre que para alcanzar algún fin deseado necesitemos ejecutar una serie de acciones, y estas acciones tengan cierto orden, dependencias, roles responsables, resultados, tiempos de ejecución y herramientas de apoyo, estaremos hablando de procesos, que pueden ser predefinidos y personalizados.

Page 3: Proceso del Software

+Proceso del Software

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

La meta es desarrollar o mejorar procesos. El conjunto de personas, estructuras de organización,

reglas, políticas, actividades y sus procedimientos, componentes de software, metodologías, y herramientas utilizadas o creadas específicamente para definir, desarrollar, ofrecer un servicio, innovar y extender un producto de software son parte de estos procesos

Page 4: Proceso del Software
Page 5: Proceso del Software

+Proceso del Software

Un proceso de software efectivo habilita a la organización a incrementar su productividad al desarrollar software:

1. Permite estandarizar esfuerzos, promover reuso, repetición y consistencia entre proyectos.

2. Provee la oportunidad de introducir mejores prácticas de la industria.

3. Permite entender que las herramientas deben ser utilizadas para soportar un proceso.

4. Establece la base para una mayor consistencia y mejoras futuras. 

Page 6: Proceso del Software

+Proceso del Software

Algunas actividades fundamentales son comunes para todos los procesos del software:

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

II. Diseño e implementación del software. Se debe validar el software que cumpla su especificación.

III. Validación del software. Se debe validar el software para asegurar que hace lo que el cliente desea

IV. Evolución del software. El software debe evolucionar para cubrir las necesidades cambiantes del cliente. 

Page 7: Proceso del Software

+Modelos del Proceso de Software Un modelo de software es un marco de referencia que

contiene los procesos, las actividades y las tareas involucradas en el desarrollo, la explotación y el mantenimiento de un producto de software, abarcando la vida del sistema desde la definición de los requisitos hasta la finalización de su uso (norma ISO 12207-1) [ISO/IEC, 1995]

Es decir: un modelo de software es una representación abstracta de un proceso del software.

Page 8: Proceso del Software

+

Modelo en Cascada

Conocido también como modelo lineal o “clasico”

Se denomina modelo en cascada porque su característica principal es que no se comienza con un paso hasta que no se ha terminado el anterior.

(Bennington 1956, Modificado por Royce en 1970, Pressman lo presenta como ciclo de vida clásico).

Page 9: Proceso del Software

+Modelo en Cascada

El modelo en Cascada establece que el software debe ser construido, rigurosamente, a través de una transformación sucesiva de documentos, siguiendo una estrategia lineal de desarrollo. Primero saber qué se quiere y después, cuando se conozca todo lo que se quiere, empezar a construirlo.

El modelo de cascada también conocido como modelo lineal secuencial sugiere un enfoque sistemático, secuencial para el desarrollo del software que comienza en un nivel de sistemas y progresa con el análisis, diseño, codificación, pruebas y mantenimiento.

Page 10: Proceso del Software

+Etapas del Modelo en Cascada

1. Análisis y definición de requerimientos. Los servicios, restricciones y metas del sistema se definen a partir de las consultas con los usuarios. Se definen en detalle y sirven como una especificación del sistema.

2. Diseño del sistema de software. El proceso de diseño de sistema divide los requerimientos en sistemas en hardware y software. Establece la arquitectura completa del sistema.

Page 11: Proceso del Software

+Etapas del Modelo en Cascada

3. Implementación y prueba de unidades. En esta etapa el diseño del software se lleva a cabo como un conjunto o unidades de programa. La prueba de unidades implica verificar que cada una cumpla su especificación.

4. Integración y prueba del sistema. Los programas o las unidades individuales de programas se integran y prueban como sistema completo para asegurar que se cumplan los requerimientos del software.

5. Funcionamiento y mantenimiento. El sistema se instala y se pone en funcionamiento. El mantenimiento implica corregir errores no cubiertos en las etapas anteriores del ciclo de vida, mejorar la implementación de las unidades del sistema.

Page 12: Proceso del Software

+

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.

Page 13: Proceso del Software

+Tipos de modelos evolutivos

1. Desarrollo exploratorio: El objetivo del proceso 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.

2. Prototipos desechables: El objetivo del proceso de desarrollo evolutivo 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.

Page 14: Proceso del Software

+Prototipos desechables El prototipo es una versión rudimentaria del sistema que

posteriormente es desechada Se desarrolla código para explorar factores críticos para

el éxito del sistema La implementación usa lenguajes y/o métodos de

desarrollo más rápidos que los definitivos Se usa como herramienta auxiliar de la especificación de

requisitos y el diseño

Page 15: Proceso del Software

+Características del desarrollo evolutivoa. Enfoque de desarrollo que se utiliza cuando no se conoce

con seguridad lo que se quiere construir

b. Se comienza diseñando e implementando las partes más destacadas del sistema

c. La evaluación del prototipo proporciona la realimentación necesaria para aumentar y refinar el prototipo

d. El prototipo evoluciona y se transforma en el sistema final

Page 16: Proceso del Software

+Desarrollo evolutivo

Este suele ser más efectivo que el enfoque de cascada, ya que satisface las necesidades inmediatas de los clientes. Las ventajas que proporciona el enfoque evolutivo es que la especificación de puede desarrollar en forma creciente.

Cuenta con 2 problemas:

① El proceso no es visible. Si los sistemas se desarrollan rápidamente, no es rentable producir documentos que reflejen cada versión del sistema.

② A menudo los sistemas tienen una estructura deficiente. Los cambios continuos tienden a corromper la estructura del software.

Page 17: Proceso del Software

+

Ingeniería de Software Basada en Componentes

Se enmarca en un contexto más amplio: ingeniería del software basada en componentes

Enfoque de desarrollo que trata de maximizar la reutilización de software existente [Sommerville, 2002]

Modelo Orientado a la Reutilización

Page 18: Proceso del Software

+Ingeniería del Software basada en componentes Se divide en 2: Ingeniería del dominio

El objetivo de la ingeniería del dominio es identificar, construir, catalogar y diseminar un conjunto de componentes de software que tienen aplicación en el software actual y futuro dentro de un dominio de aplicación particular

Desarrollo basado en componentes

Page 19: Proceso del Software

+

Page 20: Proceso del Software

+Desarrollo basado en componentes Un componente es una unidad ejecutable e

independiente Los componentes publican su interfaz y todas las

interacciones son a través de ella La ingeniería del software basada en componentes

tiene la ventaja obvia de reducir la cantidad de software a desarrollarse y así reduce los costos y los riesgos. Por lo general permite una entrega más rápida del software.

Page 21: Proceso del Software

+Etapas del Modelo basado en componentes1. Especificación de requerimientos. Similar al modelo

de cascada.

2. Análisis de componentes. A partir de la especificación se buscan los componentes para implementar esta especificación.

3. Modificación de requerimientos. 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.

Page 22: Proceso del Software

+Etapas del Modelo basado en componentes4. Diseño del sistema con reutilización. En esta fase se

diseña o se reutiliza un marco de trabajo para el sistema. Los diseñadores tienen en cuenta los componentes que se reutilizan y organizan el marco de trabajo para que los satisfaga.

5. Desarrollo e integración. Para crear el sistema, el software que no se puede adquirir externamente se desarrolla, y los componentes y los sistemas adquiridos se integran.

6. Validación del sistema. Similar al modelo de cascada

Page 23: Proceso del Software

+

Iteración de Procesos

La esencia de los procesos iterativos es que la especificación se desarrolla junto con el software.

Permite prepararse para los cambios. Cuando se disponen nuevas tecnologías, cambian los diseños y la implementación.

Page 24: Proceso del Software

+Modelo en Espiral

Fue propuesto inicialmente por B. Boehm [Boehm, 1986, 1988]

Es un modelo de proceso de software evolutivo, que proporciona el potencial para el desarrollo rápido de versiones incrementales del software

Page 25: Proceso del Software

+Características del Modelo en espiral Puede considerarse como un metamodelo de proceso Principalmente, reúne características del modelo clásico y de

prototipos Aparece el análisis de riesgo Se divide en un numero de actividades estructurales, también

denominadas regiones de tareas. En el modelo original de Boehm aparecen cuatro regiones de tareas

Planificación, Análisis de riesgos, Ingeniería, Evaluación del cliente

El avance se realiza desde el centro de la espiral hacia el exterior

Page 26: Proceso del Software

+Modelo incremental

El modelo incremental aplica secuencias lineales de forma escalonada mientras avanza el tiempo.

Corrige la necesidad de una secuencia no lineal de pasos de desarrollo. Cada secuencia lineal produce un incremento del software

El modelo incremental entrega el software en partes pequeñas, pero utilizables, llamadas “incrementos”. En general, cada incremento se construye sobre aquel que ya ha sido entregado.

Page 27: Proceso del Software

+Modelo incremental

Cuando se utiliza un modelo incremental, el primer incremento a menudo es un producto esencial.

El cliente utiliza el producto central. Como un resultado de utilización y/o de evaluación, se

desarrolla un plan para el incremento siguiente. El plan afronta la modificación del producto central a fin de cumplir mejor las necesidades del cliente y la entrega de funciones, y características adicionales. Este proceso se repite siguiendo la entrega de cada incremento. Hasta que se elabore el producto completo.

Page 28: Proceso del Software

+Modelo incremental

El modelo de proceso incremental, como la construcción de prototipos y otros enfoques evolutivos, es iterativo por naturaleza. Pero a diferencia de la construcción  de prototipos, el modelo incremental se centra en la entrega de un producto operacional con cada incremento

Este modelo constituyo un avance sobre el modelo en cascada pero también presenta problemas. Aunque permite el cambio continuo de requisitos, aun existe el problema de determinar si los requisitos propuestos son validos. Los errores en los requisitos se presentan tarde y su corrección resulta tan costosa como en el modelo en cascada.