SlideShare une entreprise Scribd logo
1  sur  34
Télécharger pour lire hors ligne
Arquitectura de Software
   (Arquitectura de Software para Practicantes)




           Universidad de los Andes
                  Demián Gutierrez
                    Marzo 2013
                                                  1
¿Qué es Diseño de Software?



            Diseño es el proceso creativo de
        transformar un problema en una solución.
            La descripción de esa solución
              también es llamada diseño. *


          El diseño de software es el proceso de
      concebir (modelar) y especificar los detalles
               de como el sistema cumplirá
        las especificaciones de requerimientos
                 establecidas en el análisis

                         *Pfleeger, 1998              2
¿Qué es Diseño de Software?


               Diseño = Proceso Creativo
                    Diseño = Solución

               No hay UNA única solución


      No existe una solución completamente óptima
     Sólo hay soluciones buenas, mediocres, malas...

   La evaluación y elección depende del cliente, de los
     requerimientos, del criterio del diseñador, del
                    contexto, etcétera
                                                          3
¿Qué es Diseño de Software?
(Son muchas las cosas que se pueden diseñar)


                                  Diseño de
                                  Procesos /
                                 Interacción,
                                   etcétera
                                                       Diseño de los
      Diseño de la
                                                        modelos de
      Interfaz H/M
                                                           datos




                               Requerimientos
                                del Sistema
                                  (¿qué?)



     Diseño de las                ¿cómo?
                                                       Diseño de la
     Interfaces con
                                                       Arquitectura
          otros
                         El objetivo del diseño es     del Software
        Sistemas
                              “implementar”
                      los requerimientos del usuario                   4
¿Arquitectura?




            ¿arquitectura?



                             5
¿Arquitectura?




   La Arquitectura de un Sistema define
  la división y estructura de un sistema
      en subsistemas y establece un
    marco de control, comunicación y
      cooperación entre los distintos
                subsistemas

                                           6
¿Arquitectura?




      La Arquitectura de Software es la
     organización fundamental de un
          sistema encarnada en sus
    componentes, las relaciones entre
    ellos y el ambiente y los principios
    que orientan su diseño y evolución


                     *IEEE                 7
¿Arquitectura?

   Una Arquitectura de Software describe:
      Un conjunto de elementos / componentes que
                 conforman un sistema
              (con sus responsabilidades)

      Un conjunto de conectores entre componentes
    (comunicación, coordinación, control, cooperación)


      Restricciones que definen cómo se integran los
           componentes para formar el sistema

          Adaptado de: Shaw M., Garland D., Software Architecture   8
¿En que afecta una buena / mala
Arquitectura de Software?




       ¿cuál es el impacto
        de la arquitectura
         en un sistema?


                                  9
¿En que afecta una buena / mala
Arquitectura de Software?




            ¿propiedades
             emergentes
           de un sistema?


                                  10
¿En que afecta una buena / mala
Arquitectura de Software?


      Confiabilidad     Rendimiento       Extensibilidad




                         Eficiencia
      Seguridad                             Escalabilidad
                      Memoria/Ejecución




       Portabilidad     Disponibilidad    Reusabilidad



                      ¿qué falta aquí?
                                                            11
¿En que afecta una buena / mala
Arquitectura de Software?




                                  Facilidad de
      Mantenibilidad
                                    Prueba




  Estos dos aspectos están relacionados
  con un concepto que es muy importante
                                                 12
¿En que afecta una buena / mala
Arquitectura de Software?



         ¿Calidad Interna?

       Fácil de Entender
       Fácil de Cambiar
     Barato de Desarrollar
      Barato de Mantener
                                  13
¿En que afecta una buena / mala
Arquitectura de Software?

         ¿Calidad Interna?




 Son buenos para comer, pero nadie quiere
  que su aplicación se transforme en esto   14
Modelar Arquitectura de Software




          Una herramienta
              modelar
            y pensar en
           Arquitectura

                                   15
Diagramas de Bloques
Una herramienta simple para modelar Arquitectura de Software




                  Bloque /                           Bloque /
                Componente                         Componente
                     1                                  3


                                                               Conexiones:
    Bloques: partes,            Bloque /                        relaciones
       módulos,               Componente                      estructurales,
     componentes,                  4                          dependencias,
    subsistemas, etc                                         comunicaciones,
                                                           flujos de datos, etc



                   Bloque /                          Bloque /
                 Componente                        Componente
                      2                                 n




                                                                                  16
Arquitectura de Software
(Un Ejemplo)


    Sistema de
       Visión                                            Controlador de
                                       Controlador del
                                                            la Mano
                                           Brazo
                                                           Articulada



    Sistema de
   Identificación                Sistema de
    de Objetos                  Selección de
                                Empaquetado




                                                               Controlador de
  Sistema robótico de control    Sistema de
                                                                  la Cinta
       de empaquetado           Empaquetado
                                                               Transportadora
     Fuente: Sommerville /
    Ingeniería del Software                                                     17
Arquitectura de Software
(Un Ejemplo)




         Nos ayuda a pensar en términos abstractos
          sin preocuparse mucho por la notación      18
Componentes / Partes de un Sistema




                  ¿cohesión?


            ¿responsabilidades?


               ¿acoplamiento?
                                     19
Distintos Niveles de Abstracción




   ¿en qué distintos niveles de
   abstracción se puede pensar
          en términos de
     arquitectura / ingeniería
           de software?


                                   20
Distintos Niveles de Abstracción


    Objetivos de Negocio,




                                           Más cerca de la implementación
 Objetivos de la Organización
     Propuesta de Valor




                          B            D




                  A                C


                                                                            21
Distintos Niveles de Abstracción

           B             D




                                             Más cerca de la implementación
   A                 C



                             C


               C.1               C.2




                                 C.3   C.4



                                                                              22
Distintos Niveles de Abstracción

  C.1           C.2




                                   Más cerca de la implementación
                C.3        C.4




                                                                    23
¿Arquitectura?
--INTERMEDIO: Otra Definición ---


         Estructura y Componentes* del sistema
        desde el punto de vista del programador


  Jerarquía y funciones de cada componente* de software


  Estructuras de datos empleadas por cada componente*


          Flujos de datos entre los componentes*

      * También se puede ver desde el punto de vista de Clases / Objetos   24
Distintos Niveles de Abstracción




                                                                                Más cerca de la implementación
            public class Producto {

                private String codigo;
                private String nombre;

                private Money   precio;

                public Producto(String codigo, String nombre, Money precio) {
                  this.codigo = codigo;
                  this.nombre = nombre;
                  this.precio = precio;
                }

                // ... más código ...
            }
                                                                                                                 25
Distintos Niveles de Abstracción




        En todos los niveles
     hay aspectos y decisiones
          importantes de
      Arquitectura de Software


                ¿decisiones?       26
Distintos Niveles de Abstracción

       Un Arquitecto / Ingeniero
         de Software debería
           sentirse cómodo
     trabajando a cualquier nivel
       de abstracción, desde el
       más alto, entendiéndose
     con el negocio hasta el nivel
    más bajo, es decir, codificando
                   ¿por qué?          27
Distintos Niveles de Abstracción




       ¿Puede existir un cargo de
          Arquitecto Junior?



                   ¿por qué?        28
Diseño Arquitectónico




        ¿la arquitectura es una fase
              de un proyecto?

                        ...

           ¿tiene un comienzo y
        un fin claramente definido?

                                       29
¿Qué es Diseño de Software?

   Definición de
  Requerimientos



             Diseño de Sistema
               y de Software     ¿?
                           Implementación
                            y Pruebas de
                              Unidades


                                        Integración y
                                         Prueba del
      ¿esto tiene                          Sistema
  NECESARIAMENTE
  que ser en cascada?
           ;-)
                                                         Operación y
                                                        Mantenimiento
                                                                        30
¿Qué es Diseño de Software?

   Definición de                   La Arquitectura de Software
  Requerimientos
                                  es algo que se trabaja y refina
                                   continuamente a lo largo de
             Diseño de Sistema         todo el ciclo de vida
               y de Software        de un sistema de software

                           Implementación
                            y Pruebas de
                              Unidades


                                        Integración y
                                         Prueba del
      ¿esto tiene                          Sistema
  NECESARIAMENTE
  que ser en cascada?
           ;-)
                                                         Operación y
                                                        Mantenimiento
                                                                        31
Diseño Arquitectónico




        un mapa del curso
               ...


                            32
Diseño Arquitectónico

                                              Arquitectura
                                              del Software
    Diseño
 Arquitectónico




                      Estilos                 Frameworks
                  Arquitectónicos              (Marcos)




                                Patrones de                   Bibliotecas /
                                  Diseño                     Componentes


                                                Clases /
                                               Funciones
 En general, estos elementos se                 (SOLID)
      verán mas adelante                                                      33
Gracias




   ¡Gracias!


               34

Contenu connexe

Tendances

Arquitectura software.taxonomias.construccion.002
Arquitectura software.taxonomias.construccion.002Arquitectura software.taxonomias.construccion.002
Arquitectura software.taxonomias.construccion.002Jose Emilio Labra Gayo
 
Arquitectura software.taxonomias.comportamiento.001
Arquitectura software.taxonomias.comportamiento.001Arquitectura software.taxonomias.comportamiento.001
Arquitectura software.taxonomias.comportamiento.001Jose Emilio Labra Gayo
 
CUADRO COMPARATIVO
CUADRO COMPARATIVOCUADRO COMPARATIVO
CUADRO COMPARATIVOChris023
 
El Rol de un Arquitecto de Software
El Rol de un Arquitecto de SoftwareEl Rol de un Arquitecto de Software
El Rol de un Arquitecto de SoftwareSorey García
 
Patrones estructurales
Patrones estructuralesPatrones estructurales
Patrones estructuralesJuan Camilo
 
Principios Ingenieria
Principios IngenieriaPrincipios Ingenieria
Principios Ingenieriatoryneutral
 
El Proceso de Diseño de interfaces de usuario. Roger Pressman
El Proceso de Diseño de interfaces de usuario. Roger PressmanEl Proceso de Diseño de interfaces de usuario. Roger Pressman
El Proceso de Diseño de interfaces de usuario. Roger PressmanJuan Pablo Bustos Thames
 
Introducción a la ingeniería dirigida por modelos
Introducción a la ingeniería dirigida por modelosIntroducción a la ingeniería dirigida por modelos
Introducción a la ingeniería dirigida por modelosVicente García Díaz
 
Mod 1 introducción a la programación
Mod 1 introducción a la programaciónMod 1 introducción a la programación
Mod 1 introducción a la programaciónPedro Montecinos Gaete
 
Desarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a ObjetosDesarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a ObjetosDat@center S.A
 
Evaluación a interfaces - Test de usuarios,evaluación heurística y eye-tracking
Evaluación a interfaces - Test de usuarios,evaluación heurística y eye-trackingEvaluación a interfaces - Test de usuarios,evaluación heurística y eye-tracking
Evaluación a interfaces - Test de usuarios,evaluación heurística y eye-trackingPercy Negrete
 
Patrones comportamiento
Patrones comportamientoPatrones comportamiento
Patrones comportamientoJuan Camilo
 

Tendances (20)

Arquitectura software.taxonomias.construccion.002
Arquitectura software.taxonomias.construccion.002Arquitectura software.taxonomias.construccion.002
Arquitectura software.taxonomias.construccion.002
 
Arquitectura software.taxonomias.comportamiento.001
Arquitectura software.taxonomias.comportamiento.001Arquitectura software.taxonomias.comportamiento.001
Arquitectura software.taxonomias.comportamiento.001
 
CUADRO COMPARATIVO
CUADRO COMPARATIVOCUADRO COMPARATIVO
CUADRO COMPARATIVO
 
Metodos especificos
Metodos especificosMetodos especificos
Metodos especificos
 
El Rol de un Arquitecto de Software
El Rol de un Arquitecto de SoftwareEl Rol de un Arquitecto de Software
El Rol de un Arquitecto de Software
 
Patrones estructurales
Patrones estructuralesPatrones estructurales
Patrones estructurales
 
Diseño de interfaz de usuario
Diseño de interfaz de usuarioDiseño de interfaz de usuario
Diseño de interfaz de usuario
 
Principios Ingenieria
Principios IngenieriaPrincipios Ingenieria
Principios Ingenieria
 
El Proceso de Diseño de interfaces de usuario. Roger Pressman
El Proceso de Diseño de interfaces de usuario. Roger PressmanEl Proceso de Diseño de interfaces de usuario. Roger Pressman
El Proceso de Diseño de interfaces de usuario. Roger Pressman
 
12.diseño basado en patrones
12.diseño basado en patrones12.diseño basado en patrones
12.diseño basado en patrones
 
Modelamiento software
Modelamiento softwareModelamiento software
Modelamiento software
 
Juan velasquez
Juan velasquezJuan velasquez
Juan velasquez
 
Introducción a la ingeniería dirigida por modelos
Introducción a la ingeniería dirigida por modelosIntroducción a la ingeniería dirigida por modelos
Introducción a la ingeniería dirigida por modelos
 
Mod 1 introducción a la programación
Mod 1 introducción a la programaciónMod 1 introducción a la programación
Mod 1 introducción a la programación
 
Desarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a ObjetosDesarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a Objetos
 
Principios de Ingenieria
Principios de IngenieriaPrincipios de Ingenieria
Principios de Ingenieria
 
MDE & DSLs
MDE & DSLsMDE & DSLs
MDE & DSLs
 
Modelado, Ingenieria de Software
Modelado, Ingenieria de SoftwareModelado, Ingenieria de Software
Modelado, Ingenieria de Software
 
Evaluación a interfaces - Test de usuarios,evaluación heurística y eye-tracking
Evaluación a interfaces - Test de usuarios,evaluación heurística y eye-trackingEvaluación a interfaces - Test de usuarios,evaluación heurística y eye-tracking
Evaluación a interfaces - Test de usuarios,evaluación heurística y eye-tracking
 
Patrones comportamiento
Patrones comportamientoPatrones comportamiento
Patrones comportamiento
 

En vedette (20)

Clase 12b uml_clases_ejemplos
Clase 12b uml_clases_ejemplosClase 12b uml_clases_ejemplos
Clase 12b uml_clases_ejemplos
 
Separata2
Separata2Separata2
Separata2
 
Clase 10 mvc
Clase 10 mvcClase 10 mvc
Clase 10 mvc
 
Clase 01 presentacion
Clase 01 presentacionClase 01 presentacion
Clase 01 presentacion
 
Clase 08b ejemplo_capas_cleda
Clase 08b ejemplo_capas_cledaClase 08b ejemplo_capas_cleda
Clase 08b ejemplo_capas_cleda
 
Clase 07b patrones_diseno_ejemplo
Clase 07b patrones_diseno_ejemploClase 07b patrones_diseno_ejemplo
Clase 07b patrones_diseno_ejemplo
 
Clase 13 uml_paquetes
Clase 13 uml_paquetesClase 13 uml_paquetes
Clase 13 uml_paquetes
 
Clase 05d cobertura de codigo
Clase 05d cobertura de codigoClase 05d cobertura de codigo
Clase 05d cobertura de codigo
 
Clase 01 agilidad
Clase 01 agilidadClase 01 agilidad
Clase 01 agilidad
 
Clase 05a calidad verificacion validacion
Clase 05a calidad verificacion validacionClase 05a calidad verificacion validacion
Clase 05a calidad verificacion validacion
 
Hg mini manual
Hg mini manualHg mini manual
Hg mini manual
 
Clase 05b pruebas introduccion
Clase 05b pruebas introduccionClase 05b pruebas introduccion
Clase 05b pruebas introduccion
 
Clase 09a frameworks_ejemplo
Clase 09a frameworks_ejemploClase 09a frameworks_ejemplo
Clase 09a frameworks_ejemplo
 
Clase 08c ejemplo_maquina_virtual
Clase 08c ejemplo_maquina_virtualClase 08c ejemplo_maquina_virtual
Clase 08c ejemplo_maquina_virtual
 
Caso n°1
Caso n°1Caso n°1
Caso n°1
 
Unidad2 relaciones
Unidad2 relacionesUnidad2 relaciones
Unidad2 relaciones
 
Metodología Y Tecnología de Programación (I Bimestre)
Metodología Y Tecnología de Programación (I Bimestre)Metodología Y Tecnología de Programación (I Bimestre)
Metodología Y Tecnología de Programación (I Bimestre)
 
Simbolos_Uml
Simbolos_UmlSimbolos_Uml
Simbolos_Uml
 
Clase 12a uml_clases
Clase 12a uml_clasesClase 12a uml_clases
Clase 12a uml_clases
 
Patrones Arquitecturales: Pipes & Filters
Patrones Arquitecturales: Pipes & FiltersPatrones Arquitecturales: Pipes & Filters
Patrones Arquitecturales: Pipes & Filters
 

Similaire à Clase 06 diseno_arquitectura

Fundamentos, Garantías y Técnicas en el diseño de software
Fundamentos, Garantías y Técnicas en el diseño de softwareFundamentos, Garantías y Técnicas en el diseño de software
Fundamentos, Garantías y Técnicas en el diseño de softwareGerardo Valera
 
Fundamentos para el diseño de un software
Fundamentos para el diseño de un softwareFundamentos para el diseño de un software
Fundamentos para el diseño de un softwaressalzar
 
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREDISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREjose_rob
 
Fundamentos basicos del diseño de software
Fundamentos basicos del diseño de softwareFundamentos basicos del diseño de software
Fundamentos basicos del diseño de softwareJesús Molleda
 
Diseno de software_-_gabriel_gonzalez
Diseno de software_-_gabriel_gonzalezDiseno de software_-_gabriel_gonzalez
Diseno de software_-_gabriel_gonzalezGabrielGonzalez463
 
Tm01 el modelado en el desarrollo de software
Tm01 el modelado en el desarrollo de softwareTm01 el modelado en el desarrollo de software
Tm01 el modelado en el desarrollo de softwareJulio Pari
 
Edwin alexande mata escobar
Edwin alexande mata escobarEdwin alexande mata escobar
Edwin alexande mata escobarEdwin Alexander
 
DiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del SoftwareDiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del Softwarelcastillo110
 
Fundamentos básicos para el Diseño de Software - Alejandro Coronado 26776116
Fundamentos básicos para el Diseño de Software - Alejandro Coronado 26776116Fundamentos básicos para el Diseño de Software - Alejandro Coronado 26776116
Fundamentos básicos para el Diseño de Software - Alejandro Coronado 26776116AlejandroCoronado26
 
Ingeniería del Software de Gestión. Tema 4
Ingeniería del Software de Gestión. Tema 4Ingeniería del Software de Gestión. Tema 4
Ingeniería del Software de Gestión. Tema 4Enrique Barreiro
 
Aspect Oriented Programming Middleware
Aspect Oriented Programming MiddlewareAspect Oriented Programming Middleware
Aspect Oriented Programming MiddlewareLenin Lozano
 
Pteg g-grupox-lista8-9-13-20- 49-visita3-expo cap 7 tema ingenieria del software
Pteg g-grupox-lista8-9-13-20- 49-visita3-expo cap 7 tema ingenieria del softwarePteg g-grupox-lista8-9-13-20- 49-visita3-expo cap 7 tema ingenieria del software
Pteg g-grupox-lista8-9-13-20- 49-visita3-expo cap 7 tema ingenieria del softwaresara272016
 

Similaire à Clase 06 diseno_arquitectura (20)

Presentacion
PresentacionPresentacion
Presentacion
 
Fundamentos, Garantías y Técnicas en el diseño de software
Fundamentos, Garantías y Técnicas en el diseño de softwareFundamentos, Garantías y Técnicas en el diseño de software
Fundamentos, Garantías y Técnicas en el diseño de software
 
Fundamentos para el diseño de un software
Fundamentos para el diseño de un softwareFundamentos para el diseño de un software
Fundamentos para el diseño de un software
 
Adrian adrianza
Adrian adrianzaAdrian adrianza
Adrian adrianza
 
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREDISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
 
Fundamentos
FundamentosFundamentos
Fundamentos
 
Fundamentos basicos del diseño de software
Fundamentos basicos del diseño de softwareFundamentos basicos del diseño de software
Fundamentos basicos del diseño de software
 
Diseno de software_-_gabriel_gonzalez
Diseno de software_-_gabriel_gonzalezDiseno de software_-_gabriel_gonzalez
Diseno de software_-_gabriel_gonzalez
 
Unidad v diseno_isbuap2020
Unidad v diseno_isbuap2020Unidad v diseno_isbuap2020
Unidad v diseno_isbuap2020
 
Tm01 el modelado en el desarrollo de software
Tm01 el modelado en el desarrollo de softwareTm01 el modelado en el desarrollo de software
Tm01 el modelado en el desarrollo de software
 
Software
SoftwareSoftware
Software
 
Arquitecturas de software
Arquitecturas de softwareArquitecturas de software
Arquitecturas de software
 
2017.10.16-senati-powerpoint sesion8.pptx
2017.10.16-senati-powerpoint sesion8.pptx2017.10.16-senati-powerpoint sesion8.pptx
2017.10.16-senati-powerpoint sesion8.pptx
 
Edwin alexande mata escobar
Edwin alexande mata escobarEdwin alexande mata escobar
Edwin alexande mata escobar
 
DiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del SoftwareDiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del Software
 
Fundamentos básicos para el Diseño de Software - Alejandro Coronado 26776116
Fundamentos básicos para el Diseño de Software - Alejandro Coronado 26776116Fundamentos básicos para el Diseño de Software - Alejandro Coronado 26776116
Fundamentos básicos para el Diseño de Software - Alejandro Coronado 26776116
 
Ingeniería del Software de Gestión. Tema 4
Ingeniería del Software de Gestión. Tema 4Ingeniería del Software de Gestión. Tema 4
Ingeniería del Software de Gestión. Tema 4
 
1127082.ppt
1127082.ppt1127082.ppt
1127082.ppt
 
Aspect Oriented Programming Middleware
Aspect Oriented Programming MiddlewareAspect Oriented Programming Middleware
Aspect Oriented Programming Middleware
 
Pteg g-grupox-lista8-9-13-20- 49-visita3-expo cap 7 tema ingenieria del software
Pteg g-grupox-lista8-9-13-20- 49-visita3-expo cap 7 tema ingenieria del softwarePteg g-grupox-lista8-9-13-20- 49-visita3-expo cap 7 tema ingenieria del software
Pteg g-grupox-lista8-9-13-20- 49-visita3-expo cap 7 tema ingenieria del software
 

Plus de Demián Gutierrez

Estructuras de Datos Espaciales (Topico Especial)
Estructuras de Datos Espaciales (Topico Especial)Estructuras de Datos Espaciales (Topico Especial)
Estructuras de Datos Espaciales (Topico Especial)Demián Gutierrez
 
Clase 05c niveles de pruebas
Clase 05c niveles de pruebasClase 05c niveles de pruebas
Clase 05c niveles de pruebasDemián Gutierrez
 
Clase 04b requerimientos documentacion
Clase 04b requerimientos documentacionClase 04b requerimientos documentacion
Clase 04b requerimientos documentacionDemián Gutierrez
 

Plus de Demián Gutierrez (7)

Estructuras de Datos Espaciales (Topico Especial)
Estructuras de Datos Espaciales (Topico Especial)Estructuras de Datos Espaciales (Topico Especial)
Estructuras de Datos Espaciales (Topico Especial)
 
Clase 14b uml_actividades
Clase 14b uml_actividadesClase 14b uml_actividades
Clase 14b uml_actividades
 
Clase 14a uml_estados
Clase 14a uml_estadosClase 14a uml_estados
Clase 14a uml_estados
 
Clase 11 uml_casos_de_uso
Clase 11 uml_casos_de_usoClase 11 uml_casos_de_uso
Clase 11 uml_casos_de_uso
 
Clase 05c niveles de pruebas
Clase 05c niveles de pruebasClase 05c niveles de pruebas
Clase 05c niveles de pruebas
 
Clase 04b requerimientos documentacion
Clase 04b requerimientos documentacionClase 04b requerimientos documentacion
Clase 04b requerimientos documentacion
 
Clase 02 Scrum
Clase 02 ScrumClase 02 Scrum
Clase 02 Scrum
 

Dernier

Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
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
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 

Dernier (20)

Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
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
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 

Clase 06 diseno_arquitectura

  • 1. Arquitectura de Software (Arquitectura de Software para Practicantes) Universidad de los Andes Demián Gutierrez Marzo 2013 1
  • 2. ¿Qué es Diseño de Software? Diseño es el proceso creativo de transformar un problema en una solución. La descripción de esa solución también es llamada diseño. * El diseño de software es el proceso de concebir (modelar) y especificar los detalles de como el sistema cumplirá las especificaciones de requerimientos establecidas en el análisis *Pfleeger, 1998 2
  • 3. ¿Qué es Diseño de Software? Diseño = Proceso Creativo Diseño = Solución No hay UNA única solución No existe una solución completamente óptima Sólo hay soluciones buenas, mediocres, malas... La evaluación y elección depende del cliente, de los requerimientos, del criterio del diseñador, del contexto, etcétera 3
  • 4. ¿Qué es Diseño de Software? (Son muchas las cosas que se pueden diseñar) Diseño de Procesos / Interacción, etcétera Diseño de los Diseño de la modelos de Interfaz H/M datos Requerimientos del Sistema (¿qué?) Diseño de las ¿cómo? Diseño de la Interfaces con Arquitectura otros El objetivo del diseño es del Software Sistemas “implementar” los requerimientos del usuario 4
  • 5. ¿Arquitectura? ¿arquitectura? 5
  • 6. ¿Arquitectura? La Arquitectura de un Sistema define la división y estructura de un sistema en subsistemas y establece un marco de control, comunicación y cooperación entre los distintos subsistemas 6
  • 7. ¿Arquitectura? La Arquitectura de Software es la organización fundamental de un sistema encarnada en sus componentes, las relaciones entre ellos y el ambiente y los principios que orientan su diseño y evolución *IEEE 7
  • 8. ¿Arquitectura? Una Arquitectura de Software describe: Un conjunto de elementos / componentes que conforman un sistema (con sus responsabilidades) Un conjunto de conectores entre componentes (comunicación, coordinación, control, cooperación) Restricciones que definen cómo se integran los componentes para formar el sistema Adaptado de: Shaw M., Garland D., Software Architecture 8
  • 9. ¿En que afecta una buena / mala Arquitectura de Software? ¿cuál es el impacto de la arquitectura en un sistema? 9
  • 10. ¿En que afecta una buena / mala Arquitectura de Software? ¿propiedades emergentes de un sistema? 10
  • 11. ¿En que afecta una buena / mala Arquitectura de Software? Confiabilidad Rendimiento Extensibilidad Eficiencia Seguridad Escalabilidad Memoria/Ejecución Portabilidad Disponibilidad Reusabilidad ¿qué falta aquí? 11
  • 12. ¿En que afecta una buena / mala Arquitectura de Software? Facilidad de Mantenibilidad Prueba Estos dos aspectos están relacionados con un concepto que es muy importante 12
  • 13. ¿En que afecta una buena / mala Arquitectura de Software? ¿Calidad Interna? Fácil de Entender Fácil de Cambiar Barato de Desarrollar Barato de Mantener 13
  • 14. ¿En que afecta una buena / mala Arquitectura de Software? ¿Calidad Interna? Son buenos para comer, pero nadie quiere que su aplicación se transforme en esto 14
  • 15. Modelar Arquitectura de Software Una herramienta modelar y pensar en Arquitectura 15
  • 16. Diagramas de Bloques Una herramienta simple para modelar Arquitectura de Software Bloque / Bloque / Componente Componente 1 3 Conexiones: Bloques: partes, Bloque / relaciones módulos, Componente estructurales, componentes, 4 dependencias, subsistemas, etc comunicaciones, flujos de datos, etc Bloque / Bloque / Componente Componente 2 n 16
  • 17. Arquitectura de Software (Un Ejemplo) Sistema de Visión Controlador de Controlador del la Mano Brazo Articulada Sistema de Identificación Sistema de de Objetos Selección de Empaquetado Controlador de Sistema robótico de control Sistema de la Cinta de empaquetado Empaquetado Transportadora Fuente: Sommerville / Ingeniería del Software 17
  • 18. Arquitectura de Software (Un Ejemplo) Nos ayuda a pensar en términos abstractos sin preocuparse mucho por la notación 18
  • 19. Componentes / Partes de un Sistema ¿cohesión? ¿responsabilidades? ¿acoplamiento? 19
  • 20. Distintos Niveles de Abstracción ¿en qué distintos niveles de abstracción se puede pensar en términos de arquitectura / ingeniería de software? 20
  • 21. Distintos Niveles de Abstracción Objetivos de Negocio, Más cerca de la implementación Objetivos de la Organización Propuesta de Valor B D A C 21
  • 22. Distintos Niveles de Abstracción B D Más cerca de la implementación A C C C.1 C.2 C.3 C.4 22
  • 23. Distintos Niveles de Abstracción C.1 C.2 Más cerca de la implementación C.3 C.4 23
  • 24. ¿Arquitectura? --INTERMEDIO: Otra Definición --- Estructura y Componentes* del sistema desde el punto de vista del programador Jerarquía y funciones de cada componente* de software Estructuras de datos empleadas por cada componente* Flujos de datos entre los componentes* * También se puede ver desde el punto de vista de Clases / Objetos 24
  • 25. Distintos Niveles de Abstracción Más cerca de la implementación public class Producto { private String codigo; private String nombre; private Money precio; public Producto(String codigo, String nombre, Money precio) { this.codigo = codigo; this.nombre = nombre; this.precio = precio; } // ... más código ... } 25
  • 26. Distintos Niveles de Abstracción En todos los niveles hay aspectos y decisiones importantes de Arquitectura de Software ¿decisiones? 26
  • 27. Distintos Niveles de Abstracción Un Arquitecto / Ingeniero de Software debería sentirse cómodo trabajando a cualquier nivel de abstracción, desde el más alto, entendiéndose con el negocio hasta el nivel más bajo, es decir, codificando ¿por qué? 27
  • 28. Distintos Niveles de Abstracción ¿Puede existir un cargo de Arquitecto Junior? ¿por qué? 28
  • 29. Diseño Arquitectónico ¿la arquitectura es una fase de un proyecto? ... ¿tiene un comienzo y un fin claramente definido? 29
  • 30. ¿Qué es Diseño de Software? Definición de Requerimientos Diseño de Sistema y de Software ¿? Implementación y Pruebas de Unidades Integración y Prueba del ¿esto tiene Sistema NECESARIAMENTE que ser en cascada? ;-) Operación y Mantenimiento 30
  • 31. ¿Qué es Diseño de Software? Definición de La Arquitectura de Software Requerimientos es algo que se trabaja y refina continuamente a lo largo de Diseño de Sistema todo el ciclo de vida y de Software de un sistema de software Implementación y Pruebas de Unidades Integración y Prueba del ¿esto tiene Sistema NECESARIAMENTE que ser en cascada? ;-) Operación y Mantenimiento 31
  • 32. Diseño Arquitectónico un mapa del curso ... 32
  • 33. Diseño Arquitectónico Arquitectura del Software Diseño Arquitectónico Estilos Frameworks Arquitectónicos (Marcos) Patrones de Bibliotecas / Diseño Componentes Clases / Funciones En general, estos elementos se (SOLID) verán mas adelante 33
  • 34. Gracias ¡Gracias! 34