SlideShare una empresa de Scribd logo
1 de 73
Rational Unified Process (RUP)
       y Patrones de Software
              aplicados a CMMi
             Technical Solution



               Javier González Sánchez

                       javiergs@acm.org




                             CIISA 2008
AGENDA


1.   CMMi Technical Solution



2.   Arquitectura de Software y Patrones



3.   Rational Unified Process (RUP)



7.   Caso y Actividades



8.   Conclusiones y Referencias



2                                          javiergs@acm.org
CONTEXTO




    CMMi        RUP
     TS




                       software

                      architecture




3                            javiergs@acm.org
EXPECTACTIVAS



    ¿Qué esperas aprender en este taller ?




                                                                              miscellaneous / client
                                                        developer
                                             engineer




                                                                    manager
              ¿Cuál es tu perfil?


4                                                   javiergs@acm.org
CONOCIMIENTO PREVIO


Tú experiencia con:

    CMMi

    Procesos

    Arquitectura de software… Ingeniería de software …

    Diseño de componentes

    Reuso

    Patrones (diseño, arquitectura, código)

    Arquitectura Model-drive

    Arquitectura Reuse-drive


5                                                        javiergs@acm.org
LA BATALLA




6                javiergs@acm.org
PRESENTACIÓN


Estudios y Certificaciones

      Maestría en Ciencias Computacionales

      CMU Certified Instructor Object-Oriented Design
      IBM Mastering Object-Oriented Analysis and Design
      IBM Mastering Requirements Managements



Experiencia

      Arquitecto de Software / Líder de proyecto / Desarrollador
      Consultor

      Profesor
      Director de programa académico



7                                                                  javiergs@acm.org
OBJETIVO



Comprender en toda su extensión el concepto de Solución Técnica desde la
perspectiva del modelo CMMi, así como los factores a considerar para cumplir
con los objetivos de esta área de proceso utilizando el Proceso Unificado de
Desarrollo (RUP) y los Patrones de Arquitectura y Diseño de Software



                         CMMi
         RUP
                  +       TS     +       ARQ
                                                  =

"CÓMO" empatar las recomendaciones de CMMi TS y la adopción de RUP
como metodología de creación de software.

"CÓMO" integrar en RUP técnicas especificas de arquitectura de software
benéficas para la creación de productos.


8                                                                javiergs@acm.org
CMMi
Technical Solution
                     javiergs@acm.org
DEFINICIÓN


El área de proceso de Solución Técnica :


     Pertenece a la categoría de Ingeniería

     Es una de las 14 áreas de proceso en nivel 3

     Su propósito es diseñar, desarrollar e implementar (incluido el proceso de
     pruebas) soluciones que satisfagan el conjunto de requerimientos.

     Soluciones, diseños e implementaciones son parte de los productos,
     componentes y procesos del área.

     Productos o componentes




10                                                                  javiergs@acm.org
11   javiergs@acm.org
PROBLEMA



     CMMi no es un proceso.

     CMMi es un Modelo de Proceso.

     Las practicas no se presentan en secuencia (aunque algunas veces lo
     parece). Se deben realizar las practicas especificas (SP) en el orden que
     tenga sentido para el negocio, y algunas veces incluso repetir SP.




12                                                                  javiergs@acm.org
RUP




13         javiergs@acm.org
CMMi TS :: SG1



 Seleccionar las Soluciones para Productos y Componentes

 El diseño de la solución debe considerar la evaluación de varias alternativas de
 solución: arquitectura y modularización, desarrollo interno contra productos
 comerciales, etc. Estas decisiones deben fundamentarse en:

     Requerimientos

     Restricciones de diseño

     Evolución a futuro del producto

     Productos comerciales disponibles

     Cualidades del software



14                                                                    javiergs@acm.org
CMMi TS :: SP1.1


Desarrollar alternativas de solución y criterios de selección


     Identificar y analizar diversas soluciones alternas.



     Las alternativas de solución estarán basadas en arquitecturas
     propuestas que cumplan con las características críticas del producto.



     Las alternativas de solución caerán dentro de márgenes aceptables de
     costos, calendario y desempeño.




15                                                               javiergs@acm.org
CMMi TS :: SP1.2


Seleccionar las soluciones para los componentes del producto que
mejor satisfagan los criterios establecidos


     Establecer los requerimientos asociados al conjunto de soluciones, como
     los requerimientos asignados a los componentes asociados con dicho
     conjunto de soluciones.


     Identificar las soluciones que serán reutilizadas o compradas.


     Establecer y mantener la documentación de las soluciones, su evaluación
     y razones de selección o rechazo.




16                                                                    javiergs@acm.org
CMMi TS :: SG2



El diseño del producto o componentes debe incluir información para su
implementación y demás fases del ciclo de vida del producto como son
la instalación y mantenimiento. Además, la documentación del diseño
provee una referencia que soporta el entendimiento del diseño con los
agentes relevantes.




17                                                         javiergs@acm.org
CMMi TS :: SP2.1


 Desarrollar el diseño del producto o componentes


     Diseño preliminar ó arquitectónico. Define los elementos estructurales
     y de coordinación del producto o componente.

     Considera cualidades deseables

     Se debe evaluar el uso de productos comerciales o el reutilizar productos
     existentes para los componentes del producto.

     Considera el establecimiento de un framework que de soporte a familias
     de productos.

     Subpracticas: RUP y aplicación de patrones




18                                                                 javiergs@acm.org
CMMi TS :: SP2.2
Establecer el Paquete Técnico




                                                          Component
                                            Modelos        Diagrams




19                                                    javiergs@acm.org
CMMi TS :: SP2.3


Diseñar las interfaces del producto y componentes en base a los
criterios establecidos




20                                                          javiergs@acm.org
CMMi TS :: SP2.4



Evaluar, en base a criterios establecidos, si los componentes se
desarrollarán, comprarán o reutilizarán

     La decisión entre desarrollar, comprar o reutilizar comienza en los
     primeros diseños y se completa a medida que los diseños se van
     detallando y refinando.


     Patrones y anti patrones




21                                                            javiergs@acm.org
CMMi TS :: SG3



Implementación del diseño del producto



     CMMi TS :: SP3.1 implementar (incluye pruebas)

     CMMi TS :: SP3.2 Documentar

     Hablemos de Trazabilidad




22                                                    javiergs@acm.org
Práctica en Equipo



                          ¿Cómo?




23                             javiergs@acm.org
Arquitecturas,
Modelos y
Patrones
                 javiergs@acm.org
Antecedentes



 Los “cambios” son mis amigos …




     Necesidades
     requerimientos
                                     producto




25                                        javiergs@acm.org
El modelo LEGO



La “creatividad” es positiva …




                                      … componentes

26                                           javiergs@acm.org
Arquitectura… y de software…




27                                  javiergs@acm.org
El arquitecto


Arquitectura de software

     NO IMPLICA DETALLES DE IMPLEMENTACION

Arquitecto

     Obtener Información del problema y diseñar solución que
     satisfaga requerimiento (funcionales, no funcionales)

PERO

     Apoyándose en patrones, modelos y Framework

ADEMAS DE

     Participar activamente en el desarrollo. PERO no es un desarrollador
     Generar lineamientos GENERALES a considerarse en la creación de
     FAMILIAS de productos.
28                                                                 javiergs@acm.org
¿Por qué una arquitectura?


     construcción de la casa del perro                    construcción de una casa




     una persona
     estructura simple
     proceso simple                                    Un equipo
     herramientas simples                              Modelado
                                                       Procesos bien definidos
     Conocimiento teórico limitado                     Herramientas poderosas


A medida que los sistemas crecen Los algoritmos y las estructuras de datos dejan de ser el mayor
problema.

29                                                                                 javiergs@acm.org
casas vs software




30                       javiergs@acm.org
Conceptos



     estilo arquitectónico

     Orientada a eventos

     SOA



     tipo o clase de arquitectura

     física

     lógica

     tecnológica


31                                       javiergs@acm.org
Estilos


                                                                                             ¿Arquitectura ?
     Columnas:                                                          ¿maya    ó azteca?

     Dórico,                                                            Pirámides en ángulo
     Jónico,                                                            perfecto y columnas de
                                                                        piedra
     y
     Corintio
                                                                        Egipto
     mayor detalle y elaboración.
     Satisfacer a los dioses y a
                                                                                 grandes y extravagantes, un placer a la vista.
     uno mismo (simetría y
                                                                                 azoteas son impresionantes y detalladas
     naturaleza):                   Roca,
                                    madera en la estructura interna y
     clásico                        ventanales emplomados.
                                    Fuego, Poder y Belleza
                                                                                 china
                                    Gótico




32                                                                                                        javiergs@acm.org
Tipos


                      Aplicación o
     física                                        Datos
                       negocio


                           Clase o tipo


                           Estilos
                       arquitectónicos


                           arquitectura


              componente                  patrón



                                          reglas

33                                                     javiergs@acm.org
Cualidades Arquitectónicas


     Estáticas:
     Modificabilidad,
     Portabilidad,
     Reusabilidad,
     Integrabilidad,
     Verificabilidad.

                        Dinámicas:
                        Desempeño,
                        Disponibilidad,
                        Funcionalidad,
                        Usabilidad.

                                          Arquitectónicas:
                                          Integridad Conceptual,
                                          Correctitud,
                                          Completitud,
                                          Factibilidad económica
34                                                                 javiergs@acm.org
Modelo de Aplicación




35                          javiergs@acm.org
Idioms


     Patrón de bajo nivel

     Soluciona problemas específicos de implementación en un lenguaje de
     programación

     Describe como implementar componentes o relaciones aplicando el
     lenguaje

Ejemplos:

     Convenciones de nombres

     Formato para el código fuente

     Manejo de memoria

     Etc.

36                                                             javiergs@acm.org
Patrones de Diseño


 Patrones de medio nivel, organizan la funcionalidad de subsistemas de
 manera independiente.

 Describe esquemas comunes de comunicación entre
 componentes para la solución de problemas generales en un contexto
 particular.


     Patrones de Creación

     Patrones Estructurales

     Patrones de Comportamiento




37                                                             javiergs@acm.org
Gang of Four




38                  javiergs@acm.org
De Monitos a Código




39                         javiergs@acm.org
Práctica en Equipo




40                        javiergs@acm.org
El modelo LEGO




           a) Relaciones

           b) Mini-componentes incluyentes

           c) Autonomía

           d) Estándar

           e) El “cambio” es mi amigo

           f)   Creatividad

           g) Producto predecible

41                                  javiergs@acm.org
Hablando de Relaciones




 a) Ser                a) Observar

 b) Usar               b) Encubrir a…

 c) Tener              c) Decorar a…

                       d) Soy único

                       e) Yo construyo a…

                       f)   Trabajar con …

                       g) Soy parte de …

42                                           javiergs@acm.org
Observer




43              javiergs@acm.org
Facade




44            javiergs@acm.org
Decorator




45               javiergs@acm.org
Builder




46             javiergs@acm.org
Strategy




47              javiergs@acm.org
Composite




48               javiergs@acm.org
Memento




49             javiergs@acm.org
Chain of Responsability




50                             javiergs@acm.org
Patrones con Patrones




51                           javiergs@acm.org
Patrones de Arquitectura



Patrones de alto nivel, applicable a la especificación fundamental del sistema
de software

Ejemplos:

     Distributed             Layered
     Event-driven            MVC
     Frame-based                     IR-centric
     Batch                   Subsumption
     Pipes and filters       Disposable
     Repository-centric
     Blackboard
     Interpreter
     Rule-based



52                                                                javiergs@acm.org
Antipatrones


Antipatrones aplicados en desarrollo
   Lava Flow
   Spaghetti code
   Poltergeists: muchas clases
   God class: the blob
   Golden Hammer

Aplicados a la arquitectura
   Reinventando la rueda
   Stovepipeline System
   Stovepipeline Enterprise
   Vendor Lock-in

Aplicados a la gestión
   Mythical Man Month
   Death March Project
   Analysis paralysis
   Corncob
53                                       javiergs@acm.org
Práctica en Equipo




54                        javiergs@acm.org
RUP:
Ingeniería de
software
orientado a
resuso
                javiergs@acm.org
RUP




56         javiergs@acm.org
Fundamento


 Necesidad
                                    Notación
     requerimientos




       modelos        Proceso
     (diagramas)      metodología         Herramientas


     Producto

57                                             javiergs@acm.org
Ciclo de Vida


                                                          fases




     Fuente: Jacobson et al., 2000



58                                                   javiergs@acm.org
Diagramas


Los diagramas expresan gráficamente partes de un modelo desde cierta perspectiva




                                                                 Diagramas de
                                                                 Componentes
                                          Modelo(s)




                                                                          Estáticos
   Dinámicos
                                                                     De Estructura
   De funcionalidad
                                                                    De arquitectura
   De Comportamiento

 59                                                                    javiergs@acm.org
Relación



          Modelo de
         Casos de Uso                                                verificado por




     especificado por
                              realizado por
                                                                                  Modelo de
                                                distribuido por                    Prueba
                  Modelo de
                   Análisis
                                    Modelo de                         implementado por
                                     Diseño

                                                        Modelo de
                                                        Despliegue

                                                                            Modelo de
                                                                          Implementación




60                                                                                    javiergs@acm.org
Agrupando Modelos




61                       javiergs@acm.org
Modelando


     Casos de Uso

     Clases

     Actividades
                                          Nombre
     Estados                              Atributos




     Secuencias                           Métodos




     Objetos




     IEEE SRS

62                              javiergs@acm.org
OOSE



                                                      UML
                                                                     Cada modelos es examinado o
           Construir modelos que representan al                 manipulado por un grupo de stakeholders
                         sistema

                                       Objetos, tipos, clases

                                                                                  código
                         cambiante                         sistemático                                    modelo
informal
             Problema                                                                      sistema
                real
                                                    OO-SE
complejo



                    Requerimientos – Analisis – Diseño - Implementacion -- Pruebas
                    abstracto       -          iteraciones      -         concreto


63                                                                                            javiergs@acm.org
OOSE


                                                                           OO-SE
             Comportamiento, mensajes

 Características, estados
                            objetos         encapsulamiento                      transición
Modelan y codifican
                                                                                         casos
                     generalización/especialización (herencia)                           de uso
 relaciones
                    asociación (objetos)

               dependencia (import)                              Generalización (herencia) de actores y casos




                            paquetes
                                                       código
                                                                           pruebas
                                                                         automáticas



64                                                                                         javiergs@acm.org
Práctica en Equipo




65                        javiergs@acm.org
Casos y
Actividad
Práctica
            javiergs@acm.org
Práctica en Equipo




67                        javiergs@acm.org
Conclusiones y
Referencias
                 javiergs@acm.org
AHORRO DE RECURSOS




69                        javiergs@acm.org
CALIDAD




70             javiergs@acm.org
RUP es un BUFFET




71                      javiergs@acm.org
REFERENCIAS




Software Architecture in Practice, Len Bass, Adisson Wesley 2003.

Software Reuse: Architecture, Process and Organization for
Business Success, Ivar Jacobson, ACM Press

Design Patterns, Head First, Eric Freeman & Elisabeth Freeman

CMMI Versión 1.1 SEI, 2002




                                                                    72


                                                        javiergs@acm.org
Javier González Sánchez


          javiergs@acm.org

                 / in / javiergs

     http://javiergs.com/ciisa2008

73

Más contenido relacionado

La actualidad más candente

Metodologías Ágiles para el Desarrollo de Software y Metodologias Para el de...
Metodologías Ágiles  para el Desarrollo de Software y Metodologias Para el de...Metodologías Ágiles  para el Desarrollo de Software y Metodologias Para el de...
Metodologías Ágiles para el Desarrollo de Software y Metodologias Para el de...Joel Fernandez
 
Merodologia de desarrollo de software
Merodologia de desarrollo de softwareMerodologia de desarrollo de software
Merodologia de desarrollo de softwareShadrickSdn1
 
Metodologías para desarrollo de software
Metodologías para desarrollo de softwareMetodologías para desarrollo de software
Metodologías para desarrollo de softwareAbner Garcia
 
Unidad 1 Ingenieria de software
Unidad 1 Ingenieria de softwareUnidad 1 Ingenieria de software
Unidad 1 Ingenieria de softwareJahiro Bojorquez
 
Metodologia de desarrollo de software
Metodologia de desarrollo de softwareMetodologia de desarrollo de software
Metodologia de desarrollo de softwareVictor Varela
 
Administración de proyectos de comercio electrónico
Administración de proyectos de comercio electrónicoAdministración de proyectos de comercio electrónico
Administración de proyectos de comercio electrónicoAlejandro Domínguez Torres
 
Metodologías de desarrollo de software
Metodologías de desarrollo de softwareMetodologías de desarrollo de software
Metodologías de desarrollo de softwareJesenia Escobar
 
Clasificación de las metodologías de desarrollo de software
Clasificación de las metodologías de desarrollo de softwareClasificación de las metodologías de desarrollo de software
Clasificación de las metodologías de desarrollo de softwareEliset Gonzales Uceda
 
Procesos De Ingenieria Del Software
Procesos De Ingenieria Del SoftwareProcesos De Ingenieria Del Software
Procesos De Ingenieria Del SoftwareRaquel Solano
 
1_1 Introduccion
1_1 Introduccion1_1 Introduccion
1_1 Introduccionlandeta_p
 
Metodologías de desarrollo de software ucp
Metodologías de desarrollo de software   ucpMetodologías de desarrollo de software   ucp
Metodologías de desarrollo de software ucpAlonso Toro Lazo
 
IDR Unidad 1: Introducción y proceso de Ingeniería de requerimientos
IDR Unidad 1: Introducción y proceso de Ingeniería de requerimientosIDR Unidad 1: Introducción y proceso de Ingeniería de requerimientos
IDR Unidad 1: Introducción y proceso de Ingeniería de requerimientosFranklin Parrales Bravo
 
Proceso Unificado De Rational
Proceso Unificado De RationalProceso Unificado De Rational
Proceso Unificado De RationalJulio Pari
 
Qué metodología será más adecuada para mi proyecto software
Qué metodología será más adecuada para mi proyecto softwareQué metodología será más adecuada para mi proyecto software
Qué metodología será más adecuada para mi proyecto softwareLeanSight Consulting
 
PSW Unidad 3: Implementación y seguridad del proceso de software
PSW Unidad 3: Implementación y seguridad del proceso de softwarePSW Unidad 3: Implementación y seguridad del proceso de software
PSW Unidad 3: Implementación y seguridad del proceso de softwareFranklin Parrales Bravo
 
Metodologias para el desarrollo del software
Metodologias para el desarrollo del softwareMetodologias para el desarrollo del software
Metodologias para el desarrollo del softwareyeltsintorres18
 
Futuro del Software: Impacto en las organizaciones y en los profesionales
Futuro del Software:  Impacto en las organizaciones  y en los profesionalesFuturo del Software:  Impacto en las organizaciones  y en los profesionales
Futuro del Software: Impacto en las organizaciones y en los profesionalesAISTI
 

La actualidad más candente (20)

Metodologías Ágiles para el Desarrollo de Software y Metodologias Para el de...
Metodologías Ágiles  para el Desarrollo de Software y Metodologias Para el de...Metodologías Ágiles  para el Desarrollo de Software y Metodologias Para el de...
Metodologías Ágiles para el Desarrollo de Software y Metodologias Para el de...
 
Merodologia de desarrollo de software
Merodologia de desarrollo de softwareMerodologia de desarrollo de software
Merodologia de desarrollo de software
 
Metodologías para desarrollo de software
Metodologías para desarrollo de softwareMetodologías para desarrollo de software
Metodologías para desarrollo de software
 
Unidad 1 Ingenieria de software
Unidad 1 Ingenieria de softwareUnidad 1 Ingenieria de software
Unidad 1 Ingenieria de software
 
Metodologia de desarrollo de software
Metodologia de desarrollo de softwareMetodologia de desarrollo de software
Metodologia de desarrollo de software
 
Administración de proyectos de comercio electrónico
Administración de proyectos de comercio electrónicoAdministración de proyectos de comercio electrónico
Administración de proyectos de comercio electrónico
 
Metodologías de desarrollo de software
Metodologías de desarrollo de softwareMetodologías de desarrollo de software
Metodologías de desarrollo de software
 
Clasificación de las metodologías de desarrollo de software
Clasificación de las metodologías de desarrollo de softwareClasificación de las metodologías de desarrollo de software
Clasificación de las metodologías de desarrollo de software
 
Procesos De Ingenieria Del Software
Procesos De Ingenieria Del SoftwareProcesos De Ingenieria Del Software
Procesos De Ingenieria Del Software
 
ingenieria del software
ingenieria del softwareingenieria del software
ingenieria del software
 
1_1 Introduccion
1_1 Introduccion1_1 Introduccion
1_1 Introduccion
 
Metodologías de desarrollo de software ucp
Metodologías de desarrollo de software   ucpMetodologías de desarrollo de software   ucp
Metodologías de desarrollo de software ucp
 
IDR Unidad 1: Introducción y proceso de Ingeniería de requerimientos
IDR Unidad 1: Introducción y proceso de Ingeniería de requerimientosIDR Unidad 1: Introducción y proceso de Ingeniería de requerimientos
IDR Unidad 1: Introducción y proceso de Ingeniería de requerimientos
 
Metodologia rup
Metodologia rupMetodologia rup
Metodologia rup
 
Proceso Unificado De Rational
Proceso Unificado De RationalProceso Unificado De Rational
Proceso Unificado De Rational
 
Qué metodología será más adecuada para mi proyecto software
Qué metodología será más adecuada para mi proyecto softwareQué metodología será más adecuada para mi proyecto software
Qué metodología será más adecuada para mi proyecto software
 
PSW Unidad 3: Implementación y seguridad del proceso de software
PSW Unidad 3: Implementación y seguridad del proceso de softwarePSW Unidad 3: Implementación y seguridad del proceso de software
PSW Unidad 3: Implementación y seguridad del proceso de software
 
Metodologias para el desarrollo del software
Metodologias para el desarrollo del softwareMetodologias para el desarrollo del software
Metodologias para el desarrollo del software
 
Futuro del Software: Impacto en las organizaciones y en los profesionales
Futuro del Software:  Impacto en las organizaciones  y en los profesionalesFuturo del Software:  Impacto en las organizaciones  y en los profesionales
Futuro del Software: Impacto en las organizaciones y en los profesionales
 
Ejemplo rup
Ejemplo rupEjemplo rup
Ejemplo rup
 

Destacado (20)

Cmmi acq
Cmmi acqCmmi acq
Cmmi acq
 
RUP x CMMI
RUP x CMMIRUP x CMMI
RUP x CMMI
 
Visibilidad. Paquetes, Estratos y Particiones. Diagramas de Estado y de Activ...
Visibilidad. Paquetes, Estratos y Particiones. Diagramas de Estado y de Activ...Visibilidad. Paquetes, Estratos y Particiones. Diagramas de Estado y de Activ...
Visibilidad. Paquetes, Estratos y Particiones. Diagramas de Estado y de Activ...
 
Sww clase4
Sww clase4Sww clase4
Sww clase4
 
Coomunicacion satelital
Coomunicacion satelitalCoomunicacion satelital
Coomunicacion satelital
 
Comunicación satelital
Comunicación satelitalComunicación satelital
Comunicación satelital
 
Comunicación Satelital
Comunicación SatelitalComunicación Satelital
Comunicación Satelital
 
Rup
RupRup
Rup
 
Redes Satelitales...etc
Redes Satelitales...etcRedes Satelitales...etc
Redes Satelitales...etc
 
Rup entrega final
Rup entrega finalRup entrega final
Rup entrega final
 
Ingeniería Web
Ingeniería WebIngeniería Web
Ingeniería Web
 
7iSF-2 rup
7iSF-2   rup7iSF-2   rup
7iSF-2 rup
 
INGENIERIA WEB
INGENIERIA WEBINGENIERIA WEB
INGENIERIA WEB
 
Introducción a la ingeniería web
Introducción a la ingeniería webIntroducción a la ingeniería web
Introducción a la ingeniería web
 
Sesion 1
Sesion 1Sesion 1
Sesion 1
 
Ciclo de vida del servicio itil (operación del servicio-)
Ciclo de vida del servicio   itil  (operación del servicio-)Ciclo de vida del servicio   itil  (operación del servicio-)
Ciclo de vida del servicio itil (operación del servicio-)
 
Ingenieria Web
Ingenieria WebIngenieria Web
Ingenieria Web
 
Rup (iteraciones)
Rup (iteraciones)Rup (iteraciones)
Rup (iteraciones)
 
Clase3 Caso Practico
Clase3 Caso PracticoClase3 Caso Practico
Clase3 Caso Practico
 
Desarrollo de software orientado a objetos
Desarrollo de software orientado a objetosDesarrollo de software orientado a objetos
Desarrollo de software orientado a objetos
 

Similar a CMMi TS, RUP y Patrones de Arquitectura

Actividad remedial_Maria_Albarran
Actividad remedial_Maria_AlbarranActividad remedial_Maria_Albarran
Actividad remedial_Maria_AlbarranMarijoalbarranb
 
Conceptosdemodelado.pdf
Conceptosdemodelado.pdfConceptosdemodelado.pdf
Conceptosdemodelado.pdfssuser20fade
 
Metodologías Agiles - APIT - UTN FRBA
Metodologías Agiles - APIT - UTN FRBAMetodologías Agiles - APIT - UTN FRBA
Metodologías Agiles - APIT - UTN FRBAGustavo Andres Brey
 
Modelo de desarrollo de software
Modelo de desarrollo de softwareModelo de desarrollo de software
Modelo de desarrollo de softwareYaskelly Yedra
 
Metodologia MeRinde
Metodologia MeRindeMetodologia MeRinde
Metodologia MeRindekyaalena
 
Ra semana 2 2
Ra semana 2 2Ra semana 2 2
Ra semana 2 2victdiazm
 
Sesion 5 2 del análisis al diseño
Sesion 5 2 del análisis al diseñoSesion 5 2 del análisis al diseño
Sesion 5 2 del análisis al diseñoJulio Pari
 
modelos del proceso del software
 modelos del proceso del software  modelos del proceso del software
modelos del proceso del software Brihany Rossell
 
Modelos del ciclo de vida del software
Modelos del ciclo de vida del softwareModelos del ciclo de vida del software
Modelos del ciclo de vida del softwareAbner Torres
 
Administracion y Gestion de Proyectos
Administracion y Gestion de ProyectosAdministracion y Gestion de Proyectos
Administracion y Gestion de ProyectosRodolfoRojasEscalante
 
Linea de Produccion de Software y Metodo Watch
Linea de Produccion de Software y Metodo WatchLinea de Produccion de Software y Metodo Watch
Linea de Produccion de Software y Metodo WatchEdisson Acosta
 
1 ingeniería de software
1 ingeniería de software1 ingeniería de software
1 ingeniería de softwareUVM
 

Similar a CMMi TS, RUP y Patrones de Arquitectura (20)

Actividad remedial_Maria_Albarran
Actividad remedial_Maria_AlbarranActividad remedial_Maria_Albarran
Actividad remedial_Maria_Albarran
 
Conceptosdemodelado.pdf
Conceptosdemodelado.pdfConceptosdemodelado.pdf
Conceptosdemodelado.pdf
 
Metodologías Agiles - APIT - UTN FRBA
Metodologías Agiles - APIT - UTN FRBAMetodologías Agiles - APIT - UTN FRBA
Metodologías Agiles - APIT - UTN FRBA
 
Modelo de desarrollo de software
Modelo de desarrollo de softwareModelo de desarrollo de software
Modelo de desarrollo de software
 
Metodologia MeRinde
Metodologia MeRindeMetodologia MeRinde
Metodologia MeRinde
 
Ra semana 2 2
Ra semana 2 2Ra semana 2 2
Ra semana 2 2
 
Sesion 5 2 del análisis al diseño
Sesion 5 2 del análisis al diseñoSesion 5 2 del análisis al diseño
Sesion 5 2 del análisis al diseño
 
Modelo cocomo
Modelo cocomoModelo cocomo
Modelo cocomo
 
Modelado Rup
Modelado RupModelado Rup
Modelado Rup
 
Estimación De Proyectos De Software
Estimación De Proyectos De SoftwareEstimación De Proyectos De Software
Estimación De Proyectos De Software
 
modelos del proceso del software
 modelos del proceso del software  modelos del proceso del software
modelos del proceso del software
 
Ra semana 5
Ra semana 5Ra semana 5
Ra semana 5
 
Principios diseño del software
Principios diseño del software Principios diseño del software
Principios diseño del software
 
Modelos del ciclo de vida del software
Modelos del ciclo de vida del softwareModelos del ciclo de vida del software
Modelos del ciclo de vida del software
 
Sesion1 adsi
Sesion1 adsiSesion1 adsi
Sesion1 adsi
 
Gestion de Proyectos
Gestion de ProyectosGestion de Proyectos
Gestion de Proyectos
 
Cap1 gestion
Cap1 gestionCap1 gestion
Cap1 gestion
 
Administracion y Gestion de Proyectos
Administracion y Gestion de ProyectosAdministracion y Gestion de Proyectos
Administracion y Gestion de Proyectos
 
Linea de Produccion de Software y Metodo Watch
Linea de Produccion de Software y Metodo WatchLinea de Produccion de Software y Metodo Watch
Linea de Produccion de Software y Metodo Watch
 
1 ingeniería de software
1 ingeniería de software1 ingeniería de software
1 ingeniería de software
 

Más de Javier Gonzalez-Sanchez (20)

201804 SER332 Lecture 01
201804 SER332 Lecture 01201804 SER332 Lecture 01
201804 SER332 Lecture 01
 
201801 SER332 Lecture 03
201801 SER332 Lecture 03201801 SER332 Lecture 03
201801 SER332 Lecture 03
 
201801 SER332 Lecture 04
201801 SER332 Lecture 04201801 SER332 Lecture 04
201801 SER332 Lecture 04
 
201801 SER332 Lecture 02
201801 SER332 Lecture 02201801 SER332 Lecture 02
201801 SER332 Lecture 02
 
201801 CSE240 Lecture 26
201801 CSE240 Lecture 26201801 CSE240 Lecture 26
201801 CSE240 Lecture 26
 
201801 CSE240 Lecture 25
201801 CSE240 Lecture 25201801 CSE240 Lecture 25
201801 CSE240 Lecture 25
 
201801 CSE240 Lecture 24
201801 CSE240 Lecture 24201801 CSE240 Lecture 24
201801 CSE240 Lecture 24
 
201801 CSE240 Lecture 23
201801 CSE240 Lecture 23201801 CSE240 Lecture 23
201801 CSE240 Lecture 23
 
201801 CSE240 Lecture 22
201801 CSE240 Lecture 22201801 CSE240 Lecture 22
201801 CSE240 Lecture 22
 
201801 CSE240 Lecture 21
201801 CSE240 Lecture 21201801 CSE240 Lecture 21
201801 CSE240 Lecture 21
 
201801 CSE240 Lecture 20
201801 CSE240 Lecture 20201801 CSE240 Lecture 20
201801 CSE240 Lecture 20
 
201801 CSE240 Lecture 19
201801 CSE240 Lecture 19201801 CSE240 Lecture 19
201801 CSE240 Lecture 19
 
201801 CSE240 Lecture 18
201801 CSE240 Lecture 18201801 CSE240 Lecture 18
201801 CSE240 Lecture 18
 
201801 CSE240 Lecture 17
201801 CSE240 Lecture 17201801 CSE240 Lecture 17
201801 CSE240 Lecture 17
 
201801 CSE240 Lecture 16
201801 CSE240 Lecture 16201801 CSE240 Lecture 16
201801 CSE240 Lecture 16
 
201801 CSE240 Lecture 15
201801 CSE240 Lecture 15201801 CSE240 Lecture 15
201801 CSE240 Lecture 15
 
201801 CSE240 Lecture 14
201801 CSE240 Lecture 14201801 CSE240 Lecture 14
201801 CSE240 Lecture 14
 
201801 CSE240 Lecture 13
201801 CSE240 Lecture 13201801 CSE240 Lecture 13
201801 CSE240 Lecture 13
 
201801 CSE240 Lecture 12
201801 CSE240 Lecture 12201801 CSE240 Lecture 12
201801 CSE240 Lecture 12
 
201801 CSE240 Lecture 11
201801 CSE240 Lecture 11201801 CSE240 Lecture 11
201801 CSE240 Lecture 11
 

Último

Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armadob7fwtwtfxf
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024u20211198540
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDAVIDROBERTOGALLEGOS
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdfsharitcalderon04
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxkimontey
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 

Último (20)

Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armado
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptx
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdf
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 

CMMi TS, RUP y Patrones de Arquitectura

  • 1. Rational Unified Process (RUP) y Patrones de Software aplicados a CMMi Technical Solution Javier González Sánchez javiergs@acm.org CIISA 2008
  • 2. AGENDA 1. CMMi Technical Solution 2. Arquitectura de Software y Patrones 3. Rational Unified Process (RUP) 7. Caso y Actividades 8. Conclusiones y Referencias 2 javiergs@acm.org
  • 3. CONTEXTO CMMi RUP TS software architecture 3 javiergs@acm.org
  • 4. EXPECTACTIVAS ¿Qué esperas aprender en este taller ? miscellaneous / client developer engineer manager ¿Cuál es tu perfil? 4 javiergs@acm.org
  • 5. CONOCIMIENTO PREVIO Tú experiencia con: CMMi Procesos Arquitectura de software… Ingeniería de software … Diseño de componentes Reuso Patrones (diseño, arquitectura, código) Arquitectura Model-drive Arquitectura Reuse-drive 5 javiergs@acm.org
  • 6. LA BATALLA 6 javiergs@acm.org
  • 7. PRESENTACIÓN Estudios y Certificaciones Maestría en Ciencias Computacionales CMU Certified Instructor Object-Oriented Design IBM Mastering Object-Oriented Analysis and Design IBM Mastering Requirements Managements Experiencia Arquitecto de Software / Líder de proyecto / Desarrollador Consultor Profesor Director de programa académico 7 javiergs@acm.org
  • 8. OBJETIVO Comprender en toda su extensión el concepto de Solución Técnica desde la perspectiva del modelo CMMi, así como los factores a considerar para cumplir con los objetivos de esta área de proceso utilizando el Proceso Unificado de Desarrollo (RUP) y los Patrones de Arquitectura y Diseño de Software CMMi RUP + TS + ARQ = "CÓMO" empatar las recomendaciones de CMMi TS y la adopción de RUP como metodología de creación de software. "CÓMO" integrar en RUP técnicas especificas de arquitectura de software benéficas para la creación de productos. 8 javiergs@acm.org
  • 9. CMMi Technical Solution javiergs@acm.org
  • 10. DEFINICIÓN El área de proceso de Solución Técnica : Pertenece a la categoría de Ingeniería Es una de las 14 áreas de proceso en nivel 3 Su propósito es diseñar, desarrollar e implementar (incluido el proceso de pruebas) soluciones que satisfagan el conjunto de requerimientos. Soluciones, diseños e implementaciones son parte de los productos, componentes y procesos del área. Productos o componentes 10 javiergs@acm.org
  • 11. 11 javiergs@acm.org
  • 12. PROBLEMA CMMi no es un proceso. CMMi es un Modelo de Proceso. Las practicas no se presentan en secuencia (aunque algunas veces lo parece). Se deben realizar las practicas especificas (SP) en el orden que tenga sentido para el negocio, y algunas veces incluso repetir SP. 12 javiergs@acm.org
  • 13. RUP 13 javiergs@acm.org
  • 14. CMMi TS :: SG1 Seleccionar las Soluciones para Productos y Componentes El diseño de la solución debe considerar la evaluación de varias alternativas de solución: arquitectura y modularización, desarrollo interno contra productos comerciales, etc. Estas decisiones deben fundamentarse en: Requerimientos Restricciones de diseño Evolución a futuro del producto Productos comerciales disponibles Cualidades del software 14 javiergs@acm.org
  • 15. CMMi TS :: SP1.1 Desarrollar alternativas de solución y criterios de selección Identificar y analizar diversas soluciones alternas. Las alternativas de solución estarán basadas en arquitecturas propuestas que cumplan con las características críticas del producto. Las alternativas de solución caerán dentro de márgenes aceptables de costos, calendario y desempeño. 15 javiergs@acm.org
  • 16. CMMi TS :: SP1.2 Seleccionar las soluciones para los componentes del producto que mejor satisfagan los criterios establecidos Establecer los requerimientos asociados al conjunto de soluciones, como los requerimientos asignados a los componentes asociados con dicho conjunto de soluciones. Identificar las soluciones que serán reutilizadas o compradas. Establecer y mantener la documentación de las soluciones, su evaluación y razones de selección o rechazo. 16 javiergs@acm.org
  • 17. CMMi TS :: SG2 El diseño del producto o componentes debe incluir información para su implementación y demás fases del ciclo de vida del producto como son la instalación y mantenimiento. Además, la documentación del diseño provee una referencia que soporta el entendimiento del diseño con los agentes relevantes. 17 javiergs@acm.org
  • 18. CMMi TS :: SP2.1 Desarrollar el diseño del producto o componentes Diseño preliminar ó arquitectónico. Define los elementos estructurales y de coordinación del producto o componente. Considera cualidades deseables Se debe evaluar el uso de productos comerciales o el reutilizar productos existentes para los componentes del producto. Considera el establecimiento de un framework que de soporte a familias de productos. Subpracticas: RUP y aplicación de patrones 18 javiergs@acm.org
  • 19. CMMi TS :: SP2.2 Establecer el Paquete Técnico Component Modelos Diagrams 19 javiergs@acm.org
  • 20. CMMi TS :: SP2.3 Diseñar las interfaces del producto y componentes en base a los criterios establecidos 20 javiergs@acm.org
  • 21. CMMi TS :: SP2.4 Evaluar, en base a criterios establecidos, si los componentes se desarrollarán, comprarán o reutilizarán La decisión entre desarrollar, comprar o reutilizar comienza en los primeros diseños y se completa a medida que los diseños se van detallando y refinando. Patrones y anti patrones 21 javiergs@acm.org
  • 22. CMMi TS :: SG3 Implementación del diseño del producto CMMi TS :: SP3.1 implementar (incluye pruebas) CMMi TS :: SP3.2 Documentar Hablemos de Trazabilidad 22 javiergs@acm.org
  • 23. Práctica en Equipo ¿Cómo? 23 javiergs@acm.org
  • 25. Antecedentes Los “cambios” son mis amigos … Necesidades requerimientos producto 25 javiergs@acm.org
  • 26. El modelo LEGO La “creatividad” es positiva … … componentes 26 javiergs@acm.org
  • 27. Arquitectura… y de software… 27 javiergs@acm.org
  • 28. El arquitecto Arquitectura de software NO IMPLICA DETALLES DE IMPLEMENTACION Arquitecto Obtener Información del problema y diseñar solución que satisfaga requerimiento (funcionales, no funcionales) PERO Apoyándose en patrones, modelos y Framework ADEMAS DE Participar activamente en el desarrollo. PERO no es un desarrollador Generar lineamientos GENERALES a considerarse en la creación de FAMILIAS de productos. 28 javiergs@acm.org
  • 29. ¿Por qué una arquitectura? construcción de la casa del perro construcción de una casa una persona estructura simple proceso simple Un equipo herramientas simples Modelado Procesos bien definidos Conocimiento teórico limitado Herramientas poderosas A medida que los sistemas crecen Los algoritmos y las estructuras de datos dejan de ser el mayor problema. 29 javiergs@acm.org
  • 30. casas vs software 30 javiergs@acm.org
  • 31. Conceptos estilo arquitectónico Orientada a eventos SOA tipo o clase de arquitectura física lógica tecnológica 31 javiergs@acm.org
  • 32. Estilos ¿Arquitectura ? Columnas: ¿maya ó azteca? Dórico, Pirámides en ángulo Jónico, perfecto y columnas de piedra y Corintio Egipto mayor detalle y elaboración. Satisfacer a los dioses y a grandes y extravagantes, un placer a la vista. uno mismo (simetría y azoteas son impresionantes y detalladas naturaleza): Roca, madera en la estructura interna y clásico ventanales emplomados. Fuego, Poder y Belleza china Gótico 32 javiergs@acm.org
  • 33. Tipos Aplicación o física Datos negocio Clase o tipo Estilos arquitectónicos arquitectura componente patrón reglas 33 javiergs@acm.org
  • 34. Cualidades Arquitectónicas Estáticas: Modificabilidad, Portabilidad, Reusabilidad, Integrabilidad, Verificabilidad. Dinámicas: Desempeño, Disponibilidad, Funcionalidad, Usabilidad. Arquitectónicas: Integridad Conceptual, Correctitud, Completitud, Factibilidad económica 34 javiergs@acm.org
  • 35. Modelo de Aplicación 35 javiergs@acm.org
  • 36. Idioms Patrón de bajo nivel Soluciona problemas específicos de implementación en un lenguaje de programación Describe como implementar componentes o relaciones aplicando el lenguaje Ejemplos: Convenciones de nombres Formato para el código fuente Manejo de memoria Etc. 36 javiergs@acm.org
  • 37. Patrones de Diseño Patrones de medio nivel, organizan la funcionalidad de subsistemas de manera independiente. Describe esquemas comunes de comunicación entre componentes para la solución de problemas generales en un contexto particular. Patrones de Creación Patrones Estructurales Patrones de Comportamiento 37 javiergs@acm.org
  • 38. Gang of Four 38 javiergs@acm.org
  • 39. De Monitos a Código 39 javiergs@acm.org
  • 40. Práctica en Equipo 40 javiergs@acm.org
  • 41. El modelo LEGO a) Relaciones b) Mini-componentes incluyentes c) Autonomía d) Estándar e) El “cambio” es mi amigo f) Creatividad g) Producto predecible 41 javiergs@acm.org
  • 42. Hablando de Relaciones a) Ser a) Observar b) Usar b) Encubrir a… c) Tener c) Decorar a… d) Soy único e) Yo construyo a… f) Trabajar con … g) Soy parte de … 42 javiergs@acm.org
  • 43. Observer 43 javiergs@acm.org
  • 44. Facade 44 javiergs@acm.org
  • 45. Decorator 45 javiergs@acm.org
  • 46. Builder 46 javiergs@acm.org
  • 47. Strategy 47 javiergs@acm.org
  • 48. Composite 48 javiergs@acm.org
  • 49. Memento 49 javiergs@acm.org
  • 50. Chain of Responsability 50 javiergs@acm.org
  • 51. Patrones con Patrones 51 javiergs@acm.org
  • 52. Patrones de Arquitectura Patrones de alto nivel, applicable a la especificación fundamental del sistema de software Ejemplos: Distributed Layered Event-driven MVC Frame-based IR-centric Batch Subsumption Pipes and filters Disposable Repository-centric Blackboard Interpreter Rule-based 52 javiergs@acm.org
  • 53. Antipatrones Antipatrones aplicados en desarrollo Lava Flow Spaghetti code Poltergeists: muchas clases God class: the blob Golden Hammer Aplicados a la arquitectura Reinventando la rueda Stovepipeline System Stovepipeline Enterprise Vendor Lock-in Aplicados a la gestión Mythical Man Month Death March Project Analysis paralysis Corncob 53 javiergs@acm.org
  • 54. Práctica en Equipo 54 javiergs@acm.org
  • 56. RUP 56 javiergs@acm.org
  • 57. Fundamento Necesidad Notación requerimientos modelos Proceso (diagramas) metodología Herramientas Producto 57 javiergs@acm.org
  • 58. Ciclo de Vida fases Fuente: Jacobson et al., 2000 58 javiergs@acm.org
  • 59. Diagramas Los diagramas expresan gráficamente partes de un modelo desde cierta perspectiva Diagramas de Componentes Modelo(s) Estáticos Dinámicos De Estructura De funcionalidad De arquitectura De Comportamiento 59 javiergs@acm.org
  • 60. Relación Modelo de Casos de Uso verificado por especificado por realizado por Modelo de distribuido por Prueba Modelo de Análisis Modelo de implementado por Diseño Modelo de Despliegue Modelo de Implementación 60 javiergs@acm.org
  • 61. Agrupando Modelos 61 javiergs@acm.org
  • 62. Modelando Casos de Uso Clases Actividades Nombre Estados Atributos Secuencias Métodos Objetos IEEE SRS 62 javiergs@acm.org
  • 63. OOSE UML Cada modelos es examinado o Construir modelos que representan al manipulado por un grupo de stakeholders sistema Objetos, tipos, clases código cambiante sistemático modelo informal Problema sistema real OO-SE complejo Requerimientos – Analisis – Diseño - Implementacion -- Pruebas abstracto - iteraciones - concreto 63 javiergs@acm.org
  • 64. OOSE OO-SE Comportamiento, mensajes Características, estados objetos encapsulamiento transición Modelan y codifican casos generalización/especialización (herencia) de uso relaciones asociación (objetos) dependencia (import) Generalización (herencia) de actores y casos paquetes código pruebas automáticas 64 javiergs@acm.org
  • 65. Práctica en Equipo 65 javiergs@acm.org
  • 66. Casos y Actividad Práctica javiergs@acm.org
  • 67. Práctica en Equipo 67 javiergs@acm.org
  • 68. Conclusiones y Referencias javiergs@acm.org
  • 69. AHORRO DE RECURSOS 69 javiergs@acm.org
  • 70. CALIDAD 70 javiergs@acm.org
  • 71. RUP es un BUFFET 71 javiergs@acm.org
  • 72. REFERENCIAS Software Architecture in Practice, Len Bass, Adisson Wesley 2003. Software Reuse: Architecture, Process and Organization for Business Success, Ivar Jacobson, ACM Press Design Patterns, Head First, Eric Freeman & Elisabeth Freeman CMMI Versión 1.1 SEI, 2002 72 javiergs@acm.org
  • 73. Javier González Sánchez javiergs@acm.org / in / javiergs http://javiergs.com/ciisa2008 73