SlideShare una empresa de Scribd logo
1 de 35
Descargar para leer sin conexión
Arquitectura de Software




octubre de 2007
Seis mejores Prácticas
•   Desarrollo Iterativo
•   Administrar Requerimientos
• Usar Arquitecturas basadas en
  Componentes
•   Modelado Visual (UML)
•   Verificar Continuamente la Calidad
•   Administrar el Cambio
Centrado en la Arquitectura
         Proyección de la organización y
         estructura de un sistema enfocándose
               en aspectos particulares



¿Qué es la Arquitectura de un Sistema?

 La descripción del Sistema a través de vistas
  utilizando diagramas y modelos

¿Con qué notación?
Centrado en la Arquitectura

¿Por qué es importante?

•   Permite una comunicación efectiva entre las
    personas involucradas
                     (diseñador, desarrollador).
•   Promueve el reuso del software.
•   Permite la prueba individual e integración
    gradual de los componentes.
•   Permite crear sistemas flexibles y tolerantes
    a cambios.
Arquitectura : Vistas
                   Proceso Unificado
                 1999

•   Vista de Modelo de Casos de Uso
•   Vista de Modelo de Análisis
•   Vista de Modelo de Diseño
•   Vista de Modelo de Despliegue
•   Vista de Modelo de Implementación
Arquitectura : Vistas
                            (RUP)
        Krutchen 2000
• Vista de los Casos de Uso
• Vista Lógica
• Vista de Procesos
• Vista de Implementación
• Vista de Entrega.
Arquitectura de Software: Modelo de las “4+1 Vistas”


                    Vista Lógica                Vista de
                                                Implementación

                                                                       Programadores
    Analistas/Diseñadores      Usuario Final                          Administradores
    Estructura                 Funcionalidad                              de Software
                                  Vista de Casos de Uso


                  Vista de Procesos            Vista de Despliegue

    Integradores del Sistema                                   Ingeniería del Sistema
    Rendimiento                                           Topología del Sistema
    Escalabilidad                                         Entrega, Instalación
    Throughput
Arquitectura: Vistas

Para modelar un sistema desde diferentes
vistas se debe responder:

           ¿Qué vistas se requiere?


Para cada vista:


          ¿Qué artefactos producir?
Arquitectura: Vistas
• Vista de los Casos de Uso:
 Esta vista contiene los escenarios o casos de
 uso claves, para cada uno de los cuales se
 describen las secuencias de interacción entre
 objetos y procesos.
           Diagramas de Casos de Uso

    Se complementa con vistas del Área Dinámica
                  Diagramas de Actividad,
                  Diagramas de Interacción,
                  Diagramas de Estado.
Review: Analysis and Design is Use-Case Driven
 • Los Casos de Uso definidos para un
   sistema son la base para el proceso
   entero de desarrollo.
 • Beneficio de los Casos de Uso:
   – Concisos, simples y comprensibles para la gran
     variedad de involucrados.
   – Ayudan a sincronizar el contenido de los diferentes
     modelos.


                                       Verificar Balance
               Cliente



                           Depositar
Concepto: Realización de Casos de Uso
   Modelo de Casos de Uso                  Modelo de Diseño


    Caso de Uso                       Realización de Caso de Uso




                       Diagramas de            Diagramas de
                        Secuencia              Colaboración



    Caso de Uso

                              Diagramas de Clase
Arquitectura: Vistas
• Vista Lógica o de Diseño:
 Es una abstracción del modelo de diseño e
 identificación a gran escala del diseño de
 paquetes, subsistemas y clases
              Diagramas de Clases y Objetos
                     Diagramas ER

   Se complementa con vistas del Área Dinámica
          Diagramas de Actividad,
          Diagramas de Interacción,
          Diagramas de Estado.
Arquitectura: Vista Lógica
Diagrama
de Clases
Arquitectura: Vista Lógica
Arquitectura: Vistas

• Vista de Procesos:
  • Toma en cuenta algunos requerimientos
    no-funcionales: Rendimiento,
    disponibilidad, integridad del sistema,
    tolerancia a fallas.
  • Captura aspectos de Sincronización y
    Concurrencia del diseño.
  • Control de los procesos concurrentes.
Arquitectura: Vista de Procesos
Arquitectura: Vistas
• Vista de Implementación o Desarrollo:
 La vista de Implementación se enfoca en la
 organización de los módulos del software actual
 en el ambiente de desarrollo de software.
         Diagramas de Componentes

     Se complementa con vistas del Área Dinámica
               Diagramas de Actividad,
               Diagramas de Interacción,
               Diagramas de Estado.
Arquitectura: Vistas de
       Implementación
• Diagrama de componentes
Arquitectura: Vistas

• Vista Física o de Despliegue:
  • Describe mapping del SW al HW y refleja
    su aspecto distribuido.
         Diagramas de Despliegue
     Se complementa con vistas del Área Dinámica
               Diagramas de Actividad,
               Diagramas de Interacción,
               Diagramas de Estado.
Arquitectura: Vista de
          Despliegue
• Diagrama de Despliegue
Arquitectura de Software
– Es la organización o estructura de los
  componentes significativos dentro del
  sistema, lo cuales interactúan, a través de
                              an
  interfaces. Los componentes pueden ser
  usados para formar componentes más
  grandes
  • ¿Cuáles son las partes principales?
  • ¿Cómo colaboran?
  • ¿Se tiene un marco en el cual el resto de los
    componentes puede ser agregado?.
Arquitectura de Software
– La Arquitectura del Software es la
  organización fundamental de un sistema
  formada por sus componentes, las
  relaciones entre ellos y el contexto en el
  que se implantarán, y los principios que
  orientan su diseño y evolución. IEEE
  Std 1471-2000
Arquitectura de Software

¿Cómo diseñarla?
    A partir de los escenarios significativos del proyecto

    Considerando la plataforma sobre la cual se construirá
    el sistema:
          sistema operativo,               Una secuencia
          manejador de bases de datos,      específica de
          sistemas existentes,              acciones que
          etc                        Una solución a
                                              ilustra los
                                        un problema
                                          comportamientos
    Utilizando la experiencia          común en un
          arquitecturas previas        contexto dado
        patrones de diseño.
Arquitectura de Software
• ¿Cómo especificarla?
  – En dos etapas:
     • Nivel General: se especifican los aspectos generales del
       sistema a construir (middleware, sistemas existentes, etc.)
     • Nivel Específico: a través de diferentes vistas de los
       modelos:
         –   casos de uso
         –   clases y componentes
         –   subsistemas
         –   colaboraciones
         –   interfaces
         –   nodos
Arquitectura de Software de
                      conjunto
                                                   subsistemas
                                                  que comparten
                                                  el mismo grado
Nivel general (arquitectura por niveles)          de generalidad

     El sistema es descrito en términos de varios niveles,
                                                  niveles
     donde los subsistemas pertenecientes a un nivel
     dado, sólo pueden referenciar a los componentes del
     nivel inmediatamente inferior
     Los subsistemas de los niveles superiores son
     construidos a partir de los subsistemas de los niveles
     inferiores.
Evolución de Arquitecturas
• Aplicaciones                         Arquitectura Cliente-
  Monolíticas                            Servidor

•   Interfaces gráficas de usuario     •   Clientes pesados, no estándar
    (GUI).                             •   Conexiones dedicadas a BD
•   Servicios de presentación,         •   Protocolos pesados
    negocios y persistencia en la
                                       •   Ejecución remota de SQLs
    misma máquina.
•   No hay concurrencia de usuarios.   •   Alta administración
•   Alto acoplamiento entre tiers.     •   Bajo rendimiento
                                       •   Alto tráfico de red
                                       •   Baja accesibilidad
Evolución de Arquitecturas
• Arquitectura C/S                 Arquitectura de 3 niveles
  Mejorada
                                   •   Reutilización de lógica de negocio
•   Lógica de negocios en BD           para diferentes clientes o sistemas.
•   Clientes pesados, no estándar. •   Mejora la escalabilidad.
•   Conexiones dedicadas a la BD. •    Mejora la flexibilidad.
•   Mejora en rendimiento
                                   •   Independencia de la base de datos.
•   Alta administración
•   Baja escalabilidad
•   Baja flexibilidad
•   Baja portabilidad
Arquitecto de Software

• Arquitecto es un rol en un proyecto de
desarrollo de software el cual es
responsable de:

  • Liderar el proceso de arquitectura.
  • Producir los artefactos necesarios:
    Documento de descripción de arquitectura
  • Modelos y prototipos de arquitectura.
• La Arquitectura de Software abarca las
  decisiones más significativas acerca de la
  organización de un sistema de software
   – La selección de los elementos estructurales
    que componen un sistema y sus interfaces
  – El comportamiento expresado en términos de
    colaboración entre estos elementos
  – La composición de estos elementos en
    subsistemas
  – El estilo arquitectónico que guía su
    organización, sus elementos e interfaces y su
    composición
            Grady Booch, Philippe Kruchten, Rich Reitman, Kurt Bittner; Rational Software
            (derived from Mary Shaw)
Arquitectura Vs. Diseño
• La arquitectura y el diseño difieren en tres áreas:
                                Arquitectura                 Diseño
   Nivel de        Alto nivel                        Bajo nivel. Enfoque
   Abstracción                                       específico en detalles
   Entregables     Planear subsistemas, interfaces   Diseño detallado
                   con sistemas externos,            componentes.
                   servicios horizontales,
                   frameworks, componentes           Especificaciones de
                   reutilizables, prototipo          codificación
                   arquitectónico
   Áreas de        Selección de tecnologías,         Requerimientos
   Enfoque         Requerimientos no funcionales     funcionales
                   (QoS),
                   Manejo de riesgos
Arquitectura Vs. Diseño
• La arquitectura envuelve un conjunto de decisiones
  estratégicas de diseño, lineamientos, reglas y
  patrones que restringen el diseño y la
  implementación de un software.
                                 Las decisiones
                                 de arquitectura
            Código               causan un alto
        Implementación           impacto en los
                                 proyectos de IT
            Diseño

         Arquitectura
Definición de Arquitectura en
            RUP
Fase de Inicio
• Con respecto a la
  arquitectura, en la fase de
  inicio de los proyectos se
  establece:

  – Requerimientos no-
    funcionales
  – Lista de riesgos y
    restricciones
  – Arquitectura inicial
Definición de Arquitectura en
            RUP
Fase de Elaboración
• Con respecto a la arquitectura,
  en la fase de elaboración se
  establece:
  – Arquitectura línea base.

• Entregables:
  – Documento de Definición de
    Arquitectura.
  – Prototipo evolutivo de arquitectura.
  – Guías y Estándares de Diseño.
RUP en 10 Pasos

Rushton Prince. “Implementing RUP in 10
steps” . (2005):
    Definir un Caso de Desarrollo para el proyecto.
    Identificar los casos de uso o funcionalidades para
    el proyecto.
    Clasificar los casos de uso según los niveles de
    riesgo.

   Clasificar los artefactos por disciplinas.
   Iterar a través de las disciplinas de RUP para crear
   los artefactos necesarios para recopilar la
   información necesaria para el desarrollo del proyecto.
RUP en 10 Pasos

Rushton Prince. “Implementing RUP in 10
steps” . (2005):
     Iterar a través de las disciplinas de RUP para
     detallar cada uno de estos artefactos.
    Cumplir el objetivo de la Fase de Inicio: Alcance del
    proyecto.
    Cumplir el objetivo de la Fase de Elaboración: Línea
    Base de la Arquitectura.

   Cumplir el objetivo de la Fase de Construcción:
   Primer release del Producto.
   Cumplir el objetivo de la Fase de Transición: Integrar
   el producto a la realidad del negocio.

Más contenido relacionado

La actualidad más candente

Diseño de arquitectura del software
Diseño de arquitectura del softwareDiseño de arquitectura del software
Diseño de arquitectura del softwaredeahesy najera garcia
 
Arquitecturas de software - Parte 2
Arquitecturas de software - Parte 2Arquitecturas de software - Parte 2
Arquitecturas de software - Parte 2Marta Silvia Tabares
 
Arquitecturas de software - Parte 1
Arquitecturas de software - Parte 1Arquitecturas de software - Parte 1
Arquitecturas de software - Parte 1Marta Silvia Tabares
 
Conceptos y principios de diseño
Conceptos y principios de diseñoConceptos y principios de diseño
Conceptos y principios de diseñoNataly Adelaida
 
Diseño del software
Diseño del softwareDiseño del software
Diseño del softwareduberlisg
 
2 1 1_diseño arquitectónico
2 1 1_diseño arquitectónico2 1 1_diseño arquitectónico
2 1 1_diseño arquitectónicolandeta_p
 
4 1 personalizacion de metodologias
4 1 personalizacion de metodologias4 1 personalizacion de metodologias
4 1 personalizacion de metodologiaslandeta_p
 
Especificación de Arquitectura de Software
Especificación de Arquitectura de SoftwareEspecificación de Arquitectura de Software
Especificación de Arquitectura de SoftwareSoftware Guru
 
Arquitectura del sistema
Arquitectura del sistemaArquitectura del sistema
Arquitectura del sistemapierre R.
 
¿Qué es la arquitectura de software?
¿Qué es la arquitectura de software?¿Qué es la arquitectura de software?
¿Qué es la arquitectura de software?Israel Rey
 

La actualidad más candente (20)

Arquitecturas de software
Arquitecturas de softwareArquitecturas de software
Arquitecturas de software
 
Diseño de arquitectura del software
Diseño de arquitectura del softwareDiseño de arquitectura del software
Diseño de arquitectura del software
 
Arquitecturas de software - Parte 2
Arquitecturas de software - Parte 2Arquitecturas de software - Parte 2
Arquitecturas de software - Parte 2
 
8.conceptos de diseño
8.conceptos de diseño8.conceptos de diseño
8.conceptos de diseño
 
Conceptos basicos arquitectura de software
Conceptos basicos arquitectura de softwareConceptos basicos arquitectura de software
Conceptos basicos arquitectura de software
 
Arquitecturas de software - Parte 1
Arquitecturas de software - Parte 1Arquitecturas de software - Parte 1
Arquitecturas de software - Parte 1
 
Conceptos y principios de diseño
Conceptos y principios de diseñoConceptos y principios de diseño
Conceptos y principios de diseño
 
3 1 mde mda
3 1 mde mda3 1 mde mda
3 1 mde mda
 
Diseño arquitectónico
Diseño arquitectónicoDiseño arquitectónico
Diseño arquitectónico
 
Proceso de diseño
Proceso de diseñoProceso de diseño
Proceso de diseño
 
Diseño del software
Diseño del softwareDiseño del software
Diseño del software
 
2 1 1_diseño arquitectónico
2 1 1_diseño arquitectónico2 1 1_diseño arquitectónico
2 1 1_diseño arquitectónico
 
Principios diseño del software
Principios diseño del software Principios diseño del software
Principios diseño del software
 
Apache Servicemix
Apache ServicemixApache Servicemix
Apache Servicemix
 
4 1 personalizacion de metodologias
4 1 personalizacion de metodologias4 1 personalizacion de metodologias
4 1 personalizacion de metodologias
 
10.el diseño en el nivel de componentes
10.el diseño en el nivel de componentes10.el diseño en el nivel de componentes
10.el diseño en el nivel de componentes
 
Especificación de Arquitectura de Software
Especificación de Arquitectura de SoftwareEspecificación de Arquitectura de Software
Especificación de Arquitectura de Software
 
Arquitectura del sistema
Arquitectura del sistemaArquitectura del sistema
Arquitectura del sistema
 
¿Qué es la arquitectura de software?
¿Qué es la arquitectura de software?¿Qué es la arquitectura de software?
¿Qué es la arquitectura de software?
 
Arquitectura
ArquitecturaArquitectura
Arquitectura
 

Destacado

Arquitectura de información
Arquitectura de informaciónArquitectura de información
Arquitectura de informaciónProfe Goyes
 
Modelado de aplicaciones en UML con EA
Modelado de aplicaciones en UML con EAModelado de aplicaciones en UML con EA
Modelado de aplicaciones en UML con EAEmmerson Miranda
 
Bpm
BpmBpm
BpmUJAP
 
El lenguaje de modelado unificado
El lenguaje de modelado unificadoEl lenguaje de modelado unificado
El lenguaje de modelado unificadoaioria2525
 
Tecnicas.de.ingenieria.de.software
Tecnicas.de.ingenieria.de.softwareTecnicas.de.ingenieria.de.software
Tecnicas.de.ingenieria.de.softwarejuankexmisiodj
 
Tecnicas de ingenieria de software
Tecnicas de ingenieria de softwareTecnicas de ingenieria de software
Tecnicas de ingenieria de software'Jorge Martinez
 
Arquitectura de aplicaciones
Arquitectura de aplicacionesArquitectura de aplicaciones
Arquitectura de aplicacionesJulio Pari
 
Ejemplo de Archimate. Depositario Central de Valores en México
Ejemplo de Archimate. Depositario Central de Valores en MéxicoEjemplo de Archimate. Depositario Central de Valores en México
Ejemplo de Archimate. Depositario Central de Valores en MéxicoDavid Solis
 
Vistas Arquitectonicas Ingenieria de Software
Vistas Arquitectonicas Ingenieria de SoftwareVistas Arquitectonicas Ingenieria de Software
Vistas Arquitectonicas Ingenieria de SoftwareRoberth Loaiza
 
Diagramas Causa Efecto
Diagramas Causa EfectoDiagramas Causa Efecto
Diagramas Causa Efectohhmosquera
 
diagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistemadiagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistemaUniversidad Tecnológica
 

Destacado (16)

Arquitectura de información
Arquitectura de informaciónArquitectura de información
Arquitectura de información
 
Modelado de aplicaciones en UML con EA
Modelado de aplicaciones en UML con EAModelado de aplicaciones en UML con EA
Modelado de aplicaciones en UML con EA
 
Uml
UmlUml
Uml
 
Bpm
BpmBpm
Bpm
 
El lenguaje de modelado unificado
El lenguaje de modelado unificadoEl lenguaje de modelado unificado
El lenguaje de modelado unificado
 
Tecnicas.de.ingenieria.de.software
Tecnicas.de.ingenieria.de.softwareTecnicas.de.ingenieria.de.software
Tecnicas.de.ingenieria.de.software
 
Tecnicas de ingenieria de software
Tecnicas de ingenieria de softwareTecnicas de ingenieria de software
Tecnicas de ingenieria de software
 
Diagramas
DiagramasDiagramas
Diagramas
 
Arquitectura de aplicaciones
Arquitectura de aplicacionesArquitectura de aplicaciones
Arquitectura de aplicaciones
 
Ejemplo de Archimate. Depositario Central de Valores en México
Ejemplo de Archimate. Depositario Central de Valores en MéxicoEjemplo de Archimate. Depositario Central de Valores en México
Ejemplo de Archimate. Depositario Central de Valores en México
 
Vistas Arquitectonicas Ingenieria de Software
Vistas Arquitectonicas Ingenieria de SoftwareVistas Arquitectonicas Ingenieria de Software
Vistas Arquitectonicas Ingenieria de Software
 
02 rup
02 rup02 rup
02 rup
 
Diagramas Causa Efecto
Diagramas Causa EfectoDiagramas Causa Efecto
Diagramas Causa Efecto
 
Qué es el modelado de negocios
Qué es el modelado de negociosQué es el modelado de negocios
Qué es el modelado de negocios
 
diagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistemadiagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistema
 
UML: CASOS DE USO
UML: CASOS DE USOUML: CASOS DE USO
UML: CASOS DE USO
 

Similar a Clase7 unidad1

Ingenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareIngenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareJosé Antonio Sandoval Acosta
 
Metodología rup final
Metodología rup finalMetodología rup final
Metodología rup finalMariaC7
 
arquitectura de software 1 parte.pdf
arquitectura de software 1 parte.pdfarquitectura de software 1 parte.pdf
arquitectura de software 1 parte.pdfjhonademirpalominopa
 
Arquitecturas de software exposicion
Arquitecturas de software   exposicionArquitecturas de software   exposicion
Arquitecturas de software exposicionjuca piro
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de softwareLiliana Pacheco
 
Capitulo 3 arquitecturas_de_desarrollo_web
Capitulo 3 arquitecturas_de_desarrollo_webCapitulo 3 arquitecturas_de_desarrollo_web
Capitulo 3 arquitecturas_de_desarrollo_webgabiar1708
 
Arquitecturas
ArquitecturasArquitecturas
Arquitecturasenlinea70
 
Sesión 3: Modelos prescriptivos de proceso
Sesión 3: Modelos prescriptivos de procesoSesión 3: Modelos prescriptivos de proceso
Sesión 3: Modelos prescriptivos de procesoCoesi Consultoria
 
Sesión 3: Modelos prescriptivos de proceso de software
Sesión 3: Modelos prescriptivos de proceso de softwareSesión 3: Modelos prescriptivos de proceso de software
Sesión 3: Modelos prescriptivos de proceso de softwareLuis Fernández
 
Curso de Ingeniería de Software - Capitulo4
Curso de Ingeniería de Software - Capitulo4Curso de Ingeniería de Software - Capitulo4
Curso de Ingeniería de Software - Capitulo4Eddie Malca
 
Unidad 2 - Arquitectura.pptx
Unidad 2 - Arquitectura.pptxUnidad 2 - Arquitectura.pptx
Unidad 2 - Arquitectura.pptxRunayli
 
Desarrollo De Software Para Internet
Desarrollo De Software Para InternetDesarrollo De Software Para Internet
Desarrollo De Software Para Internetsamgeo
 
Universidad estatal de bolivar
Universidad estatal de bolivarUniversidad estatal de bolivar
Universidad estatal de bolivarChino CT
 
Universidad estatal de bolivar
Universidad estatal de bolivarUniversidad estatal de bolivar
Universidad estatal de bolivarChino CT
 
Universidad estatal de bolivar
Universidad estatal de bolivarUniversidad estatal de bolivar
Universidad estatal de bolivarrolex_ueb
 

Similar a Clase7 unidad1 (20)

Ingenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareIngenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de software
 
Metodología rup final
Metodología rup finalMetodología rup final
Metodología rup final
 
arquitectura de software 1 parte.pdf
arquitectura de software 1 parte.pdfarquitectura de software 1 parte.pdf
arquitectura de software 1 parte.pdf
 
1127082.ppt
1127082.ppt1127082.ppt
1127082.ppt
 
Arquitecturas de software exposicion
Arquitecturas de software   exposicionArquitecturas de software   exposicion
Arquitecturas de software exposicion
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de software
 
Capitulo 3 arquitecturas_de_desarrollo_web
Capitulo 3 arquitecturas_de_desarrollo_webCapitulo 3 arquitecturas_de_desarrollo_web
Capitulo 3 arquitecturas_de_desarrollo_web
 
Arquitecturas
ArquitecturasArquitecturas
Arquitecturas
 
Sesión 3: Modelos prescriptivos de proceso
Sesión 3: Modelos prescriptivos de procesoSesión 3: Modelos prescriptivos de proceso
Sesión 3: Modelos prescriptivos de proceso
 
Sesión 3: Modelos prescriptivos de proceso de software
Sesión 3: Modelos prescriptivos de proceso de softwareSesión 3: Modelos prescriptivos de proceso de software
Sesión 3: Modelos prescriptivos de proceso de software
 
3. modelos prescriptivos de proceso
3. modelos prescriptivos de proceso3. modelos prescriptivos de proceso
3. modelos prescriptivos de proceso
 
Rup
RupRup
Rup
 
Rup tony
Rup tonyRup tony
Rup tony
 
Curso de Ingeniería de Software - Capitulo4
Curso de Ingeniería de Software - Capitulo4Curso de Ingeniería de Software - Capitulo4
Curso de Ingeniería de Software - Capitulo4
 
Sesion1 adsi
Sesion1 adsiSesion1 adsi
Sesion1 adsi
 
Unidad 2 - Arquitectura.pptx
Unidad 2 - Arquitectura.pptxUnidad 2 - Arquitectura.pptx
Unidad 2 - Arquitectura.pptx
 
Desarrollo De Software Para Internet
Desarrollo De Software Para InternetDesarrollo De Software Para Internet
Desarrollo De Software Para Internet
 
Universidad estatal de bolivar
Universidad estatal de bolivarUniversidad estatal de bolivar
Universidad estatal de bolivar
 
Universidad estatal de bolivar
Universidad estatal de bolivarUniversidad estatal de bolivar
Universidad estatal de bolivar
 
Universidad estatal de bolivar
Universidad estatal de bolivarUniversidad estatal de bolivar
Universidad estatal de bolivar
 

Clase7 unidad1

  • 2. Seis mejores Prácticas • Desarrollo Iterativo • Administrar Requerimientos • Usar Arquitecturas basadas en Componentes • Modelado Visual (UML) • Verificar Continuamente la Calidad • Administrar el Cambio
  • 3. Centrado en la Arquitectura Proyección de la organización y estructura de un sistema enfocándose en aspectos particulares ¿Qué es la Arquitectura de un Sistema? La descripción del Sistema a través de vistas utilizando diagramas y modelos ¿Con qué notación?
  • 4. Centrado en la Arquitectura ¿Por qué es importante? • Permite una comunicación efectiva entre las personas involucradas (diseñador, desarrollador). • Promueve el reuso del software. • Permite la prueba individual e integración gradual de los componentes. • Permite crear sistemas flexibles y tolerantes a cambios.
  • 5. Arquitectura : Vistas Proceso Unificado 1999 • Vista de Modelo de Casos de Uso • Vista de Modelo de Análisis • Vista de Modelo de Diseño • Vista de Modelo de Despliegue • Vista de Modelo de Implementación
  • 6. Arquitectura : Vistas (RUP) Krutchen 2000 • Vista de los Casos de Uso • Vista Lógica • Vista de Procesos • Vista de Implementación • Vista de Entrega.
  • 7. Arquitectura de Software: Modelo de las “4+1 Vistas” Vista Lógica Vista de Implementación Programadores Analistas/Diseñadores Usuario Final Administradores Estructura Funcionalidad de Software Vista de Casos de Uso Vista de Procesos Vista de Despliegue Integradores del Sistema Ingeniería del Sistema Rendimiento Topología del Sistema Escalabilidad Entrega, Instalación Throughput
  • 8. Arquitectura: Vistas Para modelar un sistema desde diferentes vistas se debe responder: ¿Qué vistas se requiere? Para cada vista: ¿Qué artefactos producir?
  • 9. Arquitectura: Vistas • Vista de los Casos de Uso: Esta vista contiene los escenarios o casos de uso claves, para cada uno de los cuales se describen las secuencias de interacción entre objetos y procesos. Diagramas de Casos de Uso Se complementa con vistas del Área Dinámica Diagramas de Actividad, Diagramas de Interacción, Diagramas de Estado.
  • 10. Review: Analysis and Design is Use-Case Driven • Los Casos de Uso definidos para un sistema son la base para el proceso entero de desarrollo. • Beneficio de los Casos de Uso: – Concisos, simples y comprensibles para la gran variedad de involucrados. – Ayudan a sincronizar el contenido de los diferentes modelos. Verificar Balance Cliente Depositar
  • 11. Concepto: Realización de Casos de Uso Modelo de Casos de Uso Modelo de Diseño Caso de Uso Realización de Caso de Uso Diagramas de Diagramas de Secuencia Colaboración Caso de Uso Diagramas de Clase
  • 12. Arquitectura: Vistas • Vista Lógica o de Diseño: Es una abstracción del modelo de diseño e identificación a gran escala del diseño de paquetes, subsistemas y clases Diagramas de Clases y Objetos Diagramas ER Se complementa con vistas del Área Dinámica Diagramas de Actividad, Diagramas de Interacción, Diagramas de Estado.
  • 15. Arquitectura: Vistas • Vista de Procesos: • Toma en cuenta algunos requerimientos no-funcionales: Rendimiento, disponibilidad, integridad del sistema, tolerancia a fallas. • Captura aspectos de Sincronización y Concurrencia del diseño. • Control de los procesos concurrentes.
  • 17. Arquitectura: Vistas • Vista de Implementación o Desarrollo: La vista de Implementación se enfoca en la organización de los módulos del software actual en el ambiente de desarrollo de software. Diagramas de Componentes Se complementa con vistas del Área Dinámica Diagramas de Actividad, Diagramas de Interacción, Diagramas de Estado.
  • 18. Arquitectura: Vistas de Implementación • Diagrama de componentes
  • 19. Arquitectura: Vistas • Vista Física o de Despliegue: • Describe mapping del SW al HW y refleja su aspecto distribuido. Diagramas de Despliegue Se complementa con vistas del Área Dinámica Diagramas de Actividad, Diagramas de Interacción, Diagramas de Estado.
  • 20. Arquitectura: Vista de Despliegue • Diagrama de Despliegue
  • 21. Arquitectura de Software – Es la organización o estructura de los componentes significativos dentro del sistema, lo cuales interactúan, a través de an interfaces. Los componentes pueden ser usados para formar componentes más grandes • ¿Cuáles son las partes principales? • ¿Cómo colaboran? • ¿Se tiene un marco en el cual el resto de los componentes puede ser agregado?.
  • 22. Arquitectura de Software – La Arquitectura del Software es la organización fundamental de un sistema formada por sus componentes, las relaciones entre ellos y el contexto en el que se implantarán, y los principios que orientan su diseño y evolución. IEEE Std 1471-2000
  • 23. Arquitectura de Software ¿Cómo diseñarla? A partir de los escenarios significativos del proyecto Considerando la plataforma sobre la cual se construirá el sistema: sistema operativo, Una secuencia manejador de bases de datos, específica de sistemas existentes, acciones que etc Una solución a ilustra los un problema comportamientos Utilizando la experiencia común en un arquitecturas previas contexto dado patrones de diseño.
  • 24. Arquitectura de Software • ¿Cómo especificarla? – En dos etapas: • Nivel General: se especifican los aspectos generales del sistema a construir (middleware, sistemas existentes, etc.) • Nivel Específico: a través de diferentes vistas de los modelos: – casos de uso – clases y componentes – subsistemas – colaboraciones – interfaces – nodos
  • 25. Arquitectura de Software de conjunto subsistemas que comparten el mismo grado Nivel general (arquitectura por niveles) de generalidad El sistema es descrito en términos de varios niveles, niveles donde los subsistemas pertenecientes a un nivel dado, sólo pueden referenciar a los componentes del nivel inmediatamente inferior Los subsistemas de los niveles superiores son construidos a partir de los subsistemas de los niveles inferiores.
  • 26. Evolución de Arquitecturas • Aplicaciones Arquitectura Cliente- Monolíticas Servidor • Interfaces gráficas de usuario • Clientes pesados, no estándar (GUI). • Conexiones dedicadas a BD • Servicios de presentación, • Protocolos pesados negocios y persistencia en la • Ejecución remota de SQLs misma máquina. • No hay concurrencia de usuarios. • Alta administración • Alto acoplamiento entre tiers. • Bajo rendimiento • Alto tráfico de red • Baja accesibilidad
  • 27. Evolución de Arquitecturas • Arquitectura C/S Arquitectura de 3 niveles Mejorada • Reutilización de lógica de negocio • Lógica de negocios en BD para diferentes clientes o sistemas. • Clientes pesados, no estándar. • Mejora la escalabilidad. • Conexiones dedicadas a la BD. • Mejora la flexibilidad. • Mejora en rendimiento • Independencia de la base de datos. • Alta administración • Baja escalabilidad • Baja flexibilidad • Baja portabilidad
  • 28. Arquitecto de Software • Arquitecto es un rol en un proyecto de desarrollo de software el cual es responsable de: • Liderar el proceso de arquitectura. • Producir los artefactos necesarios: Documento de descripción de arquitectura • Modelos y prototipos de arquitectura.
  • 29. • La Arquitectura de Software abarca las decisiones más significativas acerca de la organización de un sistema de software – La selección de los elementos estructurales que componen un sistema y sus interfaces – El comportamiento expresado en términos de colaboración entre estos elementos – La composición de estos elementos en subsistemas – El estilo arquitectónico que guía su organización, sus elementos e interfaces y su composición Grady Booch, Philippe Kruchten, Rich Reitman, Kurt Bittner; Rational Software (derived from Mary Shaw)
  • 30. Arquitectura Vs. Diseño • La arquitectura y el diseño difieren en tres áreas: Arquitectura Diseño Nivel de Alto nivel Bajo nivel. Enfoque Abstracción específico en detalles Entregables Planear subsistemas, interfaces Diseño detallado con sistemas externos, componentes. servicios horizontales, frameworks, componentes Especificaciones de reutilizables, prototipo codificación arquitectónico Áreas de Selección de tecnologías, Requerimientos Enfoque Requerimientos no funcionales funcionales (QoS), Manejo de riesgos
  • 31. Arquitectura Vs. Diseño • La arquitectura envuelve un conjunto de decisiones estratégicas de diseño, lineamientos, reglas y patrones que restringen el diseño y la implementación de un software. Las decisiones de arquitectura Código causan un alto Implementación impacto en los proyectos de IT Diseño Arquitectura
  • 32. Definición de Arquitectura en RUP Fase de Inicio • Con respecto a la arquitectura, en la fase de inicio de los proyectos se establece: – Requerimientos no- funcionales – Lista de riesgos y restricciones – Arquitectura inicial
  • 33. Definición de Arquitectura en RUP Fase de Elaboración • Con respecto a la arquitectura, en la fase de elaboración se establece: – Arquitectura línea base. • Entregables: – Documento de Definición de Arquitectura. – Prototipo evolutivo de arquitectura. – Guías y Estándares de Diseño.
  • 34. RUP en 10 Pasos Rushton Prince. “Implementing RUP in 10 steps” . (2005): Definir un Caso de Desarrollo para el proyecto. Identificar los casos de uso o funcionalidades para el proyecto. Clasificar los casos de uso según los niveles de riesgo. Clasificar los artefactos por disciplinas. Iterar a través de las disciplinas de RUP para crear los artefactos necesarios para recopilar la información necesaria para el desarrollo del proyecto.
  • 35. RUP en 10 Pasos Rushton Prince. “Implementing RUP in 10 steps” . (2005): Iterar a través de las disciplinas de RUP para detallar cada uno de estos artefactos. Cumplir el objetivo de la Fase de Inicio: Alcance del proyecto. Cumplir el objetivo de la Fase de Elaboración: Línea Base de la Arquitectura. Cumplir el objetivo de la Fase de Construcción: Primer release del Producto. Cumplir el objetivo de la Fase de Transición: Integrar el producto a la realidad del negocio.