24
Desarrollo de Software Orientado a Objeto Ingeniería de Software Alfonso Vega Is-in-400.blogspot.com

Desarrollo de Software Orientado a Objeto Ingeniería de Software Alfonso Vega Is-in-400.blogspot.com

Embed Size (px)

Citation preview

Page 1: Desarrollo de Software Orientado a Objeto Ingeniería de Software Alfonso Vega Is-in-400.blogspot.com

Desarrollo de SoftwareOrientado a Objeto

Ingeniería de Software

Alfonso Vega

Is-in-400.blogspot.com

Page 2: Desarrollo de Software Orientado a Objeto Ingeniería de Software Alfonso Vega Is-in-400.blogspot.com

Temas

• Ciclos de Vida Tradicionales

• Workflows

• Proceso Unificado Rational RUP

• Programación Extrema XP

• Los Patrones

• La Refactorización

• Desarrollo Orientado a Aspectos

Page 3: Desarrollo de Software Orientado a Objeto Ingeniería de Software Alfonso Vega Is-in-400.blogspot.com

Historia

• OO era una técnica novedosa y revolucionaria• La OO se basa en los siguientes principios básicos:

abstracción, encapsulamiento, herencia y polimorfismo.

Abstracción Encapsulación Herencia Polimorfismo

Page 4: Desarrollo de Software Orientado a Objeto Ingeniería de Software Alfonso Vega Is-in-400.blogspot.com

• “Pues muy bien, ya sé UML...

• ¿y ahora qué?”

Page 5: Desarrollo de Software Orientado a Objeto Ingeniería de Software Alfonso Vega Is-in-400.blogspot.com

Como usar UML?

• UML es un lenguaje de especificación, visualización, construcción y documentación de propósito general, aunque especializado en sistemas software. Por su propia definición, la mayoría de autores no se pronuncian tajantemente acerca de cómo debe usarse UML

Page 6: Desarrollo de Software Orientado a Objeto Ingeniería de Software Alfonso Vega Is-in-400.blogspot.com

• Debido a la magnitud de los sistemas actuales y al tamaño de los equipos de desarrollo, la construcción de todo producto software (proyecto) pasa por una serie de fases. Estas son habitualmente: análisis, diseño, implementación, testing, instalación y configuración.

• Ver fig.

Page 7: Desarrollo de Software Orientado a Objeto Ingeniería de Software Alfonso Vega Is-in-400.blogspot.com
Page 8: Desarrollo de Software Orientado a Objeto Ingeniería de Software Alfonso Vega Is-in-400.blogspot.com

• Divisón del trabajo en tareas mas pequeñas (subsistemas)

• Cada Fase es un proceso (secuencia de actividades para alcanzar un objetivo)

• Para aplicar la OO y UML de forma efectiva es conveniente valorar la utilidad de algunas técnicas y ciclos de vida del software

Page 9: Desarrollo de Software Orientado a Objeto Ingeniería de Software Alfonso Vega Is-in-400.blogspot.com

• En los últimos años, una tecnología orientada a resolver este problema que ha sonado con mucha fuerza es la gestión de workflows. De forma más concreta, el Proceso Unificado de Rational (RUP) y la Programación eXtrema (XP) son dos de las aproximaciones al proceso de desarrollo más populares.

Page 10: Desarrollo de Software Orientado a Objeto Ingeniería de Software Alfonso Vega Is-in-400.blogspot.com

1 Ciclos tradicionales

• Ciclo en Cascada• Análisis→Diseño→Implementación→Testing

• El Modelo en V

• Prototipo

• ciclo de vida En Espiral• Análisis→Diseño→Implementación→Testing→

Análisis→Diseño...

Page 11: Desarrollo de Software Orientado a Objeto Ingeniería de Software Alfonso Vega Is-in-400.blogspot.com

2 Los Workflows

• Un workflow (flujo de trabajo) es la automatización, completa o parcial, de un proceso de negocio. Durante este proceso, las tareas, documentos o información en general pasa de un participante a otro siguiendo una serie de reglas. La misión principal de los workflows es controlar los procesos que se inician en una compañía para atender a una demanda externa

Page 12: Desarrollo de Software Orientado a Objeto Ingeniería de Software Alfonso Vega Is-in-400.blogspot.com

• Groupware

• Evolución de Proyecto

Page 13: Desarrollo de Software Orientado a Objeto Ingeniería de Software Alfonso Vega Is-in-400.blogspot.com

3 Proceso Unificado de Rational : RUP

• El Proceso Unificado de Rational (RUP) es iterativo e incremental, igual que el modelo en espiral. RUP se define mediante la combinación de flujos de trabajo fundamentales (workflows) y fases (ver figura). Está compuesto por una serie de filosofías y prácticas, un modelo de procesos, una librería de contenidos y un lenguaje de definición de procesos extensión de UML: SPEM.

Page 14: Desarrollo de Software Orientado a Objeto Ingeniería de Software Alfonso Vega Is-in-400.blogspot.com
Page 15: Desarrollo de Software Orientado a Objeto Ingeniería de Software Alfonso Vega Is-in-400.blogspot.com

• RUP gestiona los procesos de entrega de documentos y la autoría de los procesos. Además incluye plantillas, seguimiento de avances mediante hitos, informes, mentores de herramientas y un conjunto de roles asignables a cada participante.

• En RUP también se indica el uso adecuado de los distintos diagramas UML:

Page 16: Desarrollo de Software Orientado a Objeto Ingeniería de Software Alfonso Vega Is-in-400.blogspot.com
Page 17: Desarrollo de Software Orientado a Objeto Ingeniería de Software Alfonso Vega Is-in-400.blogspot.com

• La realización de las cuatro fases de RUP produce una generación del producto. Cada fase tiene una o más iteraciones de todos los flujos y finaliza en un Hito.

• • Fase de Inicio: • • Fase de Elaboración: • • Fase de Construcción: • • Fase de Transición:.

Page 18: Desarrollo de Software Orientado a Objeto Ingeniería de Software Alfonso Vega Is-in-400.blogspot.com

• RUP es genérico

• Puede englobar XP

Page 19: Desarrollo de Software Orientado a Objeto Ingeniería de Software Alfonso Vega Is-in-400.blogspot.com

4 Programación Extrema XP

• XP se basa en la existencia de equipos pequeños de desarrolladores para los que es factible mantener una estrecha relación con el cliente. Esto les permite realizar reuniones con frecuencia y de esta forma se capturan requisitos sin retrasos y se implementan cuanto antes.

Page 20: Desarrollo de Software Orientado a Objeto Ingeniería de Software Alfonso Vega Is-in-400.blogspot.com

• Las prácticas más comunes de la XP son:• Programación en pares. • Semanas de 40 horas. • Implementar Tests antes • Se promueve el uso de refactorización • Integración continua

Page 21: Desarrollo de Software Orientado a Objeto Ingeniería de Software Alfonso Vega Is-in-400.blogspot.com
Page 22: Desarrollo de Software Orientado a Objeto Ingeniería de Software Alfonso Vega Is-in-400.blogspot.com
Page 23: Desarrollo de Software Orientado a Objeto Ingeniería de Software Alfonso Vega Is-in-400.blogspot.com
Page 24: Desarrollo de Software Orientado a Objeto Ingeniería de Software Alfonso Vega Is-in-400.blogspot.com

Bibliografía

Joseph Schmuller, Aprendiendo UML en 24 Horas, Prentice HallRoger Pressman, Ingeniería del Software Mc Graw HillJAN SOMMERVJLLE, Ingeniería del Software, Pearson Addison Wesley

http://www.angelfire.com/scifi/jzavalar/apuntes/IngSoftware.html#IngSofthttp://www.slideshare.net/dersteppenwolf/la-ingeniera-de-software-y-ruphttp://carolina.terna.net/ingsw2/links.htmhttp://www.dsic.upv.es/~uml/index.html