SlideShare una empresa de Scribd logo
1 de 51
Arquitectura de Software
Sorey Bibiana García Zapata
Siguiendo mi enfoque pedagógico personal, someteré el
   tema de la arquitectura de software a la ya típica
    comparación con la ingeniería civil y el rol de los
             arquitectos de edificaciones.

 La razón de este enfoque es simple, una realidad poco
   conocida o comprendida, es más fácil de asimilar,
cuando es mostrada a través de un símil con otra que si
    conocemos, o bien, con otra que puede intuirse
       coherentemente usando el sentido común.
Empecemos por un par de ideas simples….
La arquitectura es un instrumento cuya función principal es
la de intervenir en favor del hombre.

James M Fitch
La arquitectura debe ser una respuesta, no una imposición. La mayoría de los
arquitectos que construyen edificios extraños asegura que lo hace porque ahora
                         la tecnología lo hace posible. Eso me parece absurdo.

                            Poder hacer una cosa no legitima hacerla.




  Necesitamos soluciones para los problemas reales, no inventar
          problemas para poder empatar con nuevas soluciones
                                                               Glenn Murcutt
Esta última comparación podrá
no gustarle a muchos arquitectos
profesionales, pero en realidad
tiene mucho sentido, en
tecnología, tanto como en otros
escenarios…

“Poder hacer una cosa no
legitima hacerla”




 Necesitamos soluciones para los problemas reales, no inventar
    problemas para poder empatar con nuevas soluciones!
Viéndolo de esa forma, en realidad el rol de un
arquitecto de edificaciones y un arquitecto de
 software parece enfrentar los mismos retos
Por lo que es claro, que se
debe contar, con un conjunto
     básico de habilidades y
  conocimientos para ejercer
            este tipo de roles
Y es que no es lo
mismo construir
esto…
Que esto!
O esto!
Que se necesita para construir algo asi?
Que tal esto?
Y esto?
O esto?
Cada escenario plantea retos,
 condiciones y necesidades
         diferentes!
          Que tal si los vemos otra vez,
          mientras nos preguntamos…



    Que herramientas, personas,
presupuesto, conocimiento y tiempo
 necesitamos para cada escenario?
Pues bien, podemos decir sin miedo
   a equivocarnos, que todas las
consideraciones que se nos ocurran
      con respecto a definir la
   arquitectura de edificaciones,
   deberán ser tenidas en cuenta
 también al momento de definir la
      arquitectura de software
Conocen la Mansión
      Winchester?
En 1884, Sarah L. Winchester enviuda
quedando en sus manos la herencia del
acaudalado heredero de los rifles Winchester.

Pero tras tan inmensa fortuna, y según una
vidente de la época a la que la desdichada
viuda consultó, las almas perdidas de aquellos
que murieron frente a alguno de estos rifles se
encontraban en pena.

Años atrás había perdido también a su hija
Annie y ahora, la muerte de su marido terminó
por desequilibrarla.

Sarah compró un extenso terreno en
California, e hizo levantar una casa que hubo
de estar construyéndose hasta el mismo día de
su muerte, 38 años después, en 1922. Ya que
según aquella vidente, sólo así las almas
encontrarían donde morar mientras no
hallaran el reposo eterno.
La arquitectura de esta
mansión sorprende a todos y
   se escapa a los límites de la
   razón. Y no es tanto porque
esta mansión estilo victoriano
  tenga 160 habitaciones, tres
    ascensores, 47 chimeneas,
sistema de alcantarillado y de
 calefacción, luces de gas que
   se encienden apretando un
botón, (todo esto adelantado
   a su época), sino porque en
       ella se puede encontrar
   ventanas de dan a paredes,
      escaleras que no llevan a
     ninguna parte, puertas en
   medio de las ventanas en la
           fachada de los pisos
    superiores y otras rarezas.
Pero…


Qué tiene que ver
esta historia con la
 Arquitectura de
    Software?
Pues bien, resulta que esta
  situación en el contexto del
 desarrollo de software, es más
   común de lo que debería…

   Cuando un desarrollador es
asignado a la tarea de mantener y
 evolucionar un sistema legado,
 cuya arquitectura tiene fallas o
incluso que simplemente no está
 documentada, elige reconstruir
 partes o crear sus propias rutas
       dentro del código…
Lo que ocurre finalmente es que las aplicaciones de
 software con el tiempo, terminan convirtiéndose en
una colcha de retazos o bien, en un laberinto como la
Mansión Winchester, en donde si no tienes un guía y te
 pierdes, nadie te asegura que vuelvan a encontrarte.
quot;Programar sin una arquitectura en mente es
como explorar una gruta sólo con una linterna: no
  sabes dónde estás, dónde has estado ni hacia
                  dónde vas”

                   Danny Thorpe
De aquí, que la arquitectura represente
entonces, la base de un sistema de software
 y que deba ser construida pensando tanto
en satisfacer las necesidades actuales, como
en proporcionar al software las capacidades
 necesarias para permitir su mantenimiento
y evolución de acuerdo a las necesidades del
   negocio y las solicitudes de los clientes.
Cuando se piensa en la arquitectura de un sistema,
 debe tomarse en cuenta primero, lo más crítico e
                  importante…




 Y luego complementar para satisfacer las necesidades
               generales del sistema
El arquitecto de software es
entonces, el encargado de
establecer a que nivel, con que
estrategia, y que herramientas
son necesarias para realizar
una implementación que
satisfaga los requisitos
funcionales y no funcionales
de los sistemas.
Y además que debe ser una
persona capaz de identificar las
necesidades de los negocios, las
    habilidades de su equipo de
    trabajo y la viabilidad de las
 tecnologías disponibles para el
          desarrollo de software
Un buen arquitecto debe
estar en capacidad de
entender todas las
condiciones a las que se
verá sometido un
sistema y proponer una
solución acorde a cada
escenario en particular.
Por tanto, la madurez de un
arquitecto dará a las
aplicaciones de software que
tenga a su cargo, una
especificación coherente, para
enfrentar un conjunto de
riesgos mucho más reducido,
que en el caso de un
arquitecto aprendiz
Y es que…


“Desarrollar software de calidad
basado en requisitos y caminar
sobre el agua son cosas muy
fáciles...

si ambos están congelados“




Pero esa no es la situación que se presenta en el desarrollo
de software; construir software por el contrario es un
escenario evolutivo y cambiante, situación para la cual un
arquitecto de software debe estar preparado.
Ahora bien, a diferencia
de los arquitectos de
edificaciones, los
arquitectos de software
son los encargados de
construir la base de la
arquitectura de los
proyectos…
Esta es una de las razones por las que
es fácil pensar en que un Arquitecto de
   Edificaciones puede ser bueno sin
   tener que haber pegado jamás un
 ladrillo sobre otro, pero no podemos
  pensar lo mismo de un Ingeniero de
  Software que no haya programado
                 jamás…

                                                                      IDEAS ’09
  XII Conferencia Iberoamericana de Ingeniería de Requisitos y Ambientes de Software
Ahora bien, al igual que los trabajadores de una obra, un equipo
de desarrollo debe tener las habilidades necesarias para realizar
desarrollo del sistema y seguir la indicaciones del arquitecto,
buscando el éxito del proyecto.
Otra parte de nuestro símil está a
en los planos y maquetas usados
por los arquitectos para
especificar y detallar la forma en
que las edificaciones serán
construidas.
Al igual que ellos, los arquitectos de software
      usan modelos que representan las
 especificaciones y necesidades técnicas de
                 los sistemas.
La construcción de estos artefactos, en ambos
contextos requiere de herramientas, habilidades
y conocimientos, y servirá como guía de la en el
            proceso de construcción
Y así como los planos, diseños y
maquetas muestran diferentes
   vistas de un mismo lugar…
…de forma global…
…como una visión completa…
…parcialmente…
…específicamente…
…o bien,
 con un alto nivel de detalle…
…los diagramas a través de los
cuales se representa el diseño y
distribución del software, pueden
mostrar diferentes vistas de un
mismo sistema y de las
condiciones que
existen en el
entorno donde
se depliega
El modelo 4 + 1 vistas, es una propuesta que establece las
    diferentes perspectivas a través de las cuales se puede
representar el diseño y arquitectura de un sistema de software




   Kruchten P. Architectural Blueprints—The “4+1” View Model of Software Architecture. IEEE Software,
                                     November 1995, 12 (6), pp.42-50.
Esta propuesta presenta su propio esquema de modelado, pero
    como bien sabemos, la notación más reconocida para el
      modelamiento de sistemas de software es el UML *




   * UML es un lenguaje de modelado visual que se usa para especificar, visualizar, construir y
  documentar artefactos de un sistema de software, y se usa para entender, diseñar, configurar,
              mantener y controlar la información sobre los sistemas a construir.
Sin embargo, cada una de las vistas del
 modelo 4 + 1, puede equiparse contra
      uno o varios diagramas de UML




         Vista         UML
         Escenarios    Casos de Uso
         Lógica        Clases, de Estados y Colaboración
         Desarrollo    Componentes
         Física        Despliegue
         Procesos      Actividad, Estados, Secuencia


           http://jgarzas.googlepages.com/4mas1
De esta forma es
posible representar
las diferentes
perspectivas de un
sistema desde 2
propuestas de trabajo
conocidas y
enfocadas a satisfacer
las necesidades de los
diferentes
participantes del
proceso de desarrollo
Esta es una visión inicial acerca de la
arquitectura de software, para
 profundizar en ella debemos detallar
de una forma mas específica, cada uno
          de los conceptos que hemos
                         mencionado.
     Sin embargo eso será en una próxima oportunidad
Gracias!!!
                                                   ‘
No olvides visitar mi blog y dejarme tus comentarios
              http://soreygarcia.blogspot.com
                                      Hasta pronto!

Más contenido relacionado

La actualidad más candente

Arquitecturas de software exposicion
Arquitecturas de software   exposicionArquitecturas de software   exposicion
Arquitecturas de software exposicionjuca piro
 
Metodologia xp
Metodologia xpMetodologia xp
Metodologia xpCrisCobol
 
Tareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosTareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosnenyta08
 
CUADRO COMPARATIVO DE LOS MODELOS DE CICLO DE VIDA DE SOFTWARE
CUADRO COMPARATIVO DE LOS MODELOS DE CICLO DE VIDA DE SOFTWARECUADRO COMPARATIVO DE LOS MODELOS DE CICLO DE VIDA DE SOFTWARE
CUADRO COMPARATIVO DE LOS MODELOS DE CICLO DE VIDA DE SOFTWAREFreddy Aguilar
 
Software Development Methodologies.pptx
Software Development Methodologies.pptxSoftware Development Methodologies.pptx
Software Development Methodologies.pptxMohamedElshaikh10
 
Modelamiento de software
Modelamiento de softwareModelamiento de software
Modelamiento de softwaresairarcf
 
Ejemplo plan de desarrollo de software rup
Ejemplo plan de desarrollo de software rupEjemplo plan de desarrollo de software rup
Ejemplo plan de desarrollo de software rupXochitl Saucedo Muñoz
 
Tecnicas de estimacion de software
Tecnicas de estimacion de softwareTecnicas de estimacion de software
Tecnicas de estimacion de softwareAdes27
 
Fundamentos y metodos de analisis de requerimientos.
Fundamentos y metodos de  analisis de requerimientos.Fundamentos y metodos de  analisis de requerimientos.
Fundamentos y metodos de analisis de requerimientos.raquel yendez avila
 
BPMN 2.0 en el Proceso de Desarrollo de Software
BPMN 2.0 en el Proceso de Desarrollo de SoftwareBPMN 2.0 en el Proceso de Desarrollo de Software
BPMN 2.0 en el Proceso de Desarrollo de SoftwareJohan Robles Solano
 
Fundamentos de la arquitectura de software
Fundamentos de la arquitectura de softwareFundamentos de la arquitectura de software
Fundamentos de la arquitectura de softwareRoger Villegas
 
Lenguajes de programación lógica
Lenguajes de programación lógicaLenguajes de programación lógica
Lenguajes de programación lógicaDarwin_Cusme
 
Presentacion herramientas CASE
Presentacion herramientas CASEPresentacion herramientas CASE
Presentacion herramientas CASEdavidsande
 

La actualidad más candente (20)

Modelo 4+1
Modelo 4+1Modelo 4+1
Modelo 4+1
 
Arquitecturas de software exposicion
Arquitecturas de software   exposicionArquitecturas de software   exposicion
Arquitecturas de software exposicion
 
Metodologia xp
Metodologia xpMetodologia xp
Metodologia xp
 
Tareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosTareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientos
 
problemas del software
problemas del softwareproblemas del software
problemas del software
 
Gestión de proyecto de software
Gestión de proyecto de softwareGestión de proyecto de software
Gestión de proyecto de software
 
CUADRO COMPARATIVO DE LOS MODELOS DE CICLO DE VIDA DE SOFTWARE
CUADRO COMPARATIVO DE LOS MODELOS DE CICLO DE VIDA DE SOFTWARECUADRO COMPARATIVO DE LOS MODELOS DE CICLO DE VIDA DE SOFTWARE
CUADRO COMPARATIVO DE LOS MODELOS DE CICLO DE VIDA DE SOFTWARE
 
Software Development Methodologies.pptx
Software Development Methodologies.pptxSoftware Development Methodologies.pptx
Software Development Methodologies.pptx
 
Modelamiento de software
Modelamiento de softwareModelamiento de software
Modelamiento de software
 
Ejemplo plan de desarrollo de software rup
Ejemplo plan de desarrollo de software rupEjemplo plan de desarrollo de software rup
Ejemplo plan de desarrollo de software rup
 
13.diseño de web apps
13.diseño de web apps13.diseño de web apps
13.diseño de web apps
 
Tecnicas de estimacion de software
Tecnicas de estimacion de softwareTecnicas de estimacion de software
Tecnicas de estimacion de software
 
Fundamentos y metodos de analisis de requerimientos.
Fundamentos y metodos de  analisis de requerimientos.Fundamentos y metodos de  analisis de requerimientos.
Fundamentos y metodos de analisis de requerimientos.
 
Herramientas case
Herramientas caseHerramientas case
Herramientas case
 
BPMN 2.0 en el Proceso de Desarrollo de Software
BPMN 2.0 en el Proceso de Desarrollo de SoftwareBPMN 2.0 en el Proceso de Desarrollo de Software
BPMN 2.0 en el Proceso de Desarrollo de Software
 
1-Unidad 1. Arquitectura de Diseño
1-Unidad 1. Arquitectura de Diseño1-Unidad 1. Arquitectura de Diseño
1-Unidad 1. Arquitectura de Diseño
 
Principios diseño del software
Principios diseño del software Principios diseño del software
Principios diseño del software
 
Fundamentos de la arquitectura de software
Fundamentos de la arquitectura de softwareFundamentos de la arquitectura de software
Fundamentos de la arquitectura de software
 
Lenguajes de programación lógica
Lenguajes de programación lógicaLenguajes de programación lógica
Lenguajes de programación lógica
 
Presentacion herramientas CASE
Presentacion herramientas CASEPresentacion herramientas CASE
Presentacion herramientas CASE
 

Similar a Arquitectura De Software Para Dummies

Ingenieria De Software Para Dummies
Ingenieria De Software Para DummiesIngenieria De Software Para Dummies
Ingenieria De Software Para DummiesSorey García
 
Estrategias Avanet: Ingeniería de Software
Estrategias Avanet: Ingeniería de SoftwareEstrategias Avanet: Ingeniería de Software
Estrategias Avanet: Ingeniería de SoftwareAvanet
 
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
 
Fundamentos de Diseño - Grupo Delta
Fundamentos de Diseño - Grupo DeltaFundamentos de Diseño - Grupo Delta
Fundamentos de Diseño - Grupo DeltaNicola Pizzi Castro
 
Ado.net entity framework
Ado.net entity frameworkAdo.net entity framework
Ado.net entity frameworkCein
 
Dev dotstar read_principios
Dev dotstar read_principiosDev dotstar read_principios
Dev dotstar read_principiosJordan Diaz
 
Ingeniería de software y el paradigma orientado a objetos
Ingeniería de software y el paradigma orientado a objetosIngeniería de software y el paradigma orientado a objetos
Ingeniería de software y el paradigma orientado a objetosWilfredo Mogollón
 
Investigación de ingeniería de software
Investigación de ingeniería de software Investigación de ingeniería de software
Investigación de ingeniería de software ingenieriadsoftware
 
Guía de creación arquitectónica para universidades en mundos virtuales
Guía de creación arquitectónica para universidades en mundos virtualesGuía de creación arquitectónica para universidades en mundos virtuales
Guía de creación arquitectónica para universidades en mundos virtualesCamilo Andrés Suárez
 
14 arquitectura de sistemas
14 arquitectura de sistemas14 arquitectura de sistemas
14 arquitectura de sistemasLuis Vidal
 
IngenieriaSOFTWARE _ Presentacion2022.pdf
IngenieriaSOFTWARE _ Presentacion2022.pdfIngenieriaSOFTWARE _ Presentacion2022.pdf
IngenieriaSOFTWARE _ Presentacion2022.pdfAnaliaEC
 
Software diseño de obras civiles
Software diseño de obras civilesSoftware diseño de obras civiles
Software diseño de obras civilesAlejandra Rojas
 
Tarea semana 1
Tarea semana 1Tarea semana 1
Tarea semana 1preciadoag
 

Similar a Arquitectura De Software Para Dummies (20)

Ingenieria De Software Para Dummies
Ingenieria De Software Para DummiesIngenieria De Software Para Dummies
Ingenieria De Software Para Dummies
 
Estrategias Avanet: Ingeniería de Software
Estrategias Avanet: Ingeniería de SoftwareEstrategias Avanet: Ingeniería de Software
Estrategias Avanet: Ingeniería de Software
 
Patrones
PatronesPatrones
Patrones
 
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
 
Agilidad y lean
Agilidad y leanAgilidad y lean
Agilidad y lean
 
Fundamentos de Diseño - Grupo Delta
Fundamentos de Diseño - Grupo DeltaFundamentos de Diseño - Grupo Delta
Fundamentos de Diseño - Grupo Delta
 
Ado.net entity framework
Ado.net entity frameworkAdo.net entity framework
Ado.net entity framework
 
Diseño arquitectonico
Diseño arquitectonico Diseño arquitectonico
Diseño arquitectonico
 
Diseño de software
Diseño de softwareDiseño de software
Diseño de software
 
Dev dotstar read_principios
Dev dotstar read_principiosDev dotstar read_principios
Dev dotstar read_principios
 
Ingeniería de software y el paradigma orientado a objetos
Ingeniería de software y el paradigma orientado a objetosIngeniería de software y el paradigma orientado a objetos
Ingeniería de software y el paradigma orientado a objetos
 
Investigación de ingeniería de software
Investigación de ingeniería de software Investigación de ingeniería de software
Investigación de ingeniería de software
 
Guía de creación arquitectónica para universidades en mundos virtuales
Guía de creación arquitectónica para universidades en mundos virtualesGuía de creación arquitectónica para universidades en mundos virtuales
Guía de creación arquitectónica para universidades en mundos virtuales
 
No Silver Bullet
No Silver BulletNo Silver Bullet
No Silver Bullet
 
14 arquitectura de sistemas
14 arquitectura de sistemas14 arquitectura de sistemas
14 arquitectura de sistemas
 
Diseño de software
Diseño de softwareDiseño de software
Diseño de software
 
IngenieriaSOFTWARE _ Presentacion2022.pdf
IngenieriaSOFTWARE _ Presentacion2022.pdfIngenieriaSOFTWARE _ Presentacion2022.pdf
IngenieriaSOFTWARE _ Presentacion2022.pdf
 
Software diseño de obras civiles
Software diseño de obras civilesSoftware diseño de obras civiles
Software diseño de obras civiles
 
Tarea semana 1
Tarea semana 1Tarea semana 1
Tarea semana 1
 
Tareasemana1
Tareasemana1Tareasemana1
Tareasemana1
 

Más de Sorey García

Mision inspiración para docentes
Mision inspiración para docentesMision inspiración para docentes
Mision inspiración para docentesSorey García
 
NetConfUY: Maximizando la productividad del desarrollo móvil
NetConfUY: Maximizando la productividad del desarrollo móvilNetConfUY: Maximizando la productividad del desarrollo móvil
NetConfUY: Maximizando la productividad del desarrollo móvilSorey García
 
Introducción a Xamarin Forms con XAML
Introducción a Xamarin Forms con XAMLIntroducción a Xamarin Forms con XAML
Introducción a Xamarin Forms con XAMLSorey García
 
WIE: El poder de transformar al mundo con tecnología
WIE: El poder de transformar al mundo con tecnologíaWIE: El poder de transformar al mundo con tecnología
WIE: El poder de transformar al mundo con tecnologíaSorey García
 
TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...
TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...
TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...Sorey García
 
Internet de las Cosas y Netduino
Internet de las Cosas y NetduinoInternet de las Cosas y Netduino
Internet de las Cosas y NetduinoSorey García
 
Misión: Inspiración
Misión: InspiraciónMisión: Inspiración
Misión: InspiraciónSorey García
 
Tendencias de movilidad en el mercado masivo y empresarial
Tendencias de movilidad en el mercado masivo y empresarialTendencias de movilidad en el mercado masivo y empresarial
Tendencias de movilidad en el mercado masivo y empresarialSorey García
 
[Avanet] Fiesta del Libro y la Cultura Medellín
[Avanet] Fiesta del Libro y la Cultura Medellín[Avanet] Fiesta del Libro y la Cultura Medellín
[Avanet] Fiesta del Libro y la Cultura MedellínSorey García
 
MVP Open Day - Best Practices/Experiences
MVP Open Day - Best Practices/Experiences MVP Open Day - Best Practices/Experiences
MVP Open Day - Best Practices/Experiences Sorey García
 
GWAB: Azure Mobile Services
GWAB: Azure Mobile ServicesGWAB: Azure Mobile Services
GWAB: Azure Mobile ServicesSorey García
 
Similitudes y deferencias en UX para Windows Phone y Windows
Similitudes y deferencias en UX para Windows Phone y WindowsSimilitudes y deferencias en UX para Windows Phone y Windows
Similitudes y deferencias en UX para Windows Phone y WindowsSorey García
 
Taller MVVM Imagine Camp Medellín (Intermedio)
Taller MVVM Imagine Camp Medellín (Intermedio)Taller MVVM Imagine Camp Medellín (Intermedio)
Taller MVVM Imagine Camp Medellín (Intermedio)Sorey García
 
Estrategias para desarrollo crossplatform en Windows Phone 8 y Windows 8
Estrategias para desarrollo crossplatform en Windows Phone 8 y Windows 8Estrategias para desarrollo crossplatform en Windows Phone 8 y Windows 8
Estrategias para desarrollo crossplatform en Windows Phone 8 y Windows 8Sorey García
 
Conociendo el ecosistema de Windows Phone 8 y Windows 8
Conociendo el ecosistema de Windows Phone 8 y Windows 8Conociendo el ecosistema de Windows Phone 8 y Windows 8
Conociendo el ecosistema de Windows Phone 8 y Windows 8Sorey García
 
Hackaton Globant - Windows Phone (snnipets and tips)
Hackaton Globant - Windows Phone (snnipets and tips)Hackaton Globant - Windows Phone (snnipets and tips)
Hackaton Globant - Windows Phone (snnipets and tips)Sorey García
 
Windows Phone 8: Tips de Diseño para Desarrolladores
Windows Phone 8: Tips de Diseño para DesarrolladoresWindows Phone 8: Tips de Diseño para Desarrolladores
Windows Phone 8: Tips de Diseño para DesarrolladoresSorey García
 
JSConfCo: Desarrollo de Aplicaciones para Windows Store con HTML5 y Javascript
JSConfCo: Desarrollo de Aplicaciones para Windows Store con HTML5 y JavascriptJSConfCo: Desarrollo de Aplicaciones para Windows Store con HTML5 y Javascript
JSConfCo: Desarrollo de Aplicaciones para Windows Store con HTML5 y JavascriptSorey García
 
Windows Phone 8 en Campus Party
Windows Phone 8 en Campus PartyWindows Phone 8 en Campus Party
Windows Phone 8 en Campus PartySorey García
 

Más de Sorey García (20)

Mision inspiración para docentes
Mision inspiración para docentesMision inspiración para docentes
Mision inspiración para docentes
 
NetConfUY: Maximizando la productividad del desarrollo móvil
NetConfUY: Maximizando la productividad del desarrollo móvilNetConfUY: Maximizando la productividad del desarrollo móvil
NetConfUY: Maximizando la productividad del desarrollo móvil
 
Introducción a Xamarin Forms con XAML
Introducción a Xamarin Forms con XAMLIntroducción a Xamarin Forms con XAML
Introducción a Xamarin Forms con XAML
 
WIE: El poder de transformar al mundo con tecnología
WIE: El poder de transformar al mundo con tecnologíaWIE: El poder de transformar al mundo con tecnología
WIE: El poder de transformar al mundo con tecnología
 
TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...
TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...
TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...
 
Internet de las Cosas y Netduino
Internet de las Cosas y NetduinoInternet de las Cosas y Netduino
Internet de las Cosas y Netduino
 
Misión: Inspiración
Misión: InspiraciónMisión: Inspiración
Misión: Inspiración
 
Codies.Launch()
Codies.Launch()Codies.Launch()
Codies.Launch()
 
Tendencias de movilidad en el mercado masivo y empresarial
Tendencias de movilidad en el mercado masivo y empresarialTendencias de movilidad en el mercado masivo y empresarial
Tendencias de movilidad en el mercado masivo y empresarial
 
[Avanet] Fiesta del Libro y la Cultura Medellín
[Avanet] Fiesta del Libro y la Cultura Medellín[Avanet] Fiesta del Libro y la Cultura Medellín
[Avanet] Fiesta del Libro y la Cultura Medellín
 
MVP Open Day - Best Practices/Experiences
MVP Open Day - Best Practices/Experiences MVP Open Day - Best Practices/Experiences
MVP Open Day - Best Practices/Experiences
 
GWAB: Azure Mobile Services
GWAB: Azure Mobile ServicesGWAB: Azure Mobile Services
GWAB: Azure Mobile Services
 
Similitudes y deferencias en UX para Windows Phone y Windows
Similitudes y deferencias en UX para Windows Phone y WindowsSimilitudes y deferencias en UX para Windows Phone y Windows
Similitudes y deferencias en UX para Windows Phone y Windows
 
Taller MVVM Imagine Camp Medellín (Intermedio)
Taller MVVM Imagine Camp Medellín (Intermedio)Taller MVVM Imagine Camp Medellín (Intermedio)
Taller MVVM Imagine Camp Medellín (Intermedio)
 
Estrategias para desarrollo crossplatform en Windows Phone 8 y Windows 8
Estrategias para desarrollo crossplatform en Windows Phone 8 y Windows 8Estrategias para desarrollo crossplatform en Windows Phone 8 y Windows 8
Estrategias para desarrollo crossplatform en Windows Phone 8 y Windows 8
 
Conociendo el ecosistema de Windows Phone 8 y Windows 8
Conociendo el ecosistema de Windows Phone 8 y Windows 8Conociendo el ecosistema de Windows Phone 8 y Windows 8
Conociendo el ecosistema de Windows Phone 8 y Windows 8
 
Hackaton Globant - Windows Phone (snnipets and tips)
Hackaton Globant - Windows Phone (snnipets and tips)Hackaton Globant - Windows Phone (snnipets and tips)
Hackaton Globant - Windows Phone (snnipets and tips)
 
Windows Phone 8: Tips de Diseño para Desarrolladores
Windows Phone 8: Tips de Diseño para DesarrolladoresWindows Phone 8: Tips de Diseño para Desarrolladores
Windows Phone 8: Tips de Diseño para Desarrolladores
 
JSConfCo: Desarrollo de Aplicaciones para Windows Store con HTML5 y Javascript
JSConfCo: Desarrollo de Aplicaciones para Windows Store con HTML5 y JavascriptJSConfCo: Desarrollo de Aplicaciones para Windows Store con HTML5 y Javascript
JSConfCo: Desarrollo de Aplicaciones para Windows Store con HTML5 y Javascript
 
Windows Phone 8 en Campus Party
Windows Phone 8 en Campus PartyWindows Phone 8 en Campus Party
Windows Phone 8 en Campus Party
 

Último

PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxOscarEduardoSanchezC
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docxAgustinaNuez21
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxMartín Ramírez
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxJUANSIMONPACHIN
 
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfLA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfNataliaMalky1
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfcoloncopias5
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfsamyarrocha1
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPELaura Chacón
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfvictorbeltuce
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfAlfredoRamirez953210
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxYeseniaRivera50
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024gharce
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOweislaco
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressionsConsueloSantana3
 

Último (20)

PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 
Earth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversaryEarth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversary
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docx
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
 
Sesión La luz brilla en la oscuridad.pdf
Sesión  La luz brilla en la oscuridad.pdfSesión  La luz brilla en la oscuridad.pdf
Sesión La luz brilla en la oscuridad.pdf
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
 
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfLA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdf
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPE
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
 
TL/CNL – 2.ª FASE .
TL/CNL – 2.ª FASE                       .TL/CNL – 2.ª FASE                       .
TL/CNL – 2.ª FASE .
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressions
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 

Arquitectura De Software Para Dummies

  • 1. Arquitectura de Software Sorey Bibiana García Zapata
  • 2. Siguiendo mi enfoque pedagógico personal, someteré el tema de la arquitectura de software a la ya típica comparación con la ingeniería civil y el rol de los arquitectos de edificaciones. La razón de este enfoque es simple, una realidad poco conocida o comprendida, es más fácil de asimilar, cuando es mostrada a través de un símil con otra que si conocemos, o bien, con otra que puede intuirse coherentemente usando el sentido común.
  • 3. Empecemos por un par de ideas simples….
  • 4. La arquitectura es un instrumento cuya función principal es la de intervenir en favor del hombre. James M Fitch
  • 5. La arquitectura debe ser una respuesta, no una imposición. La mayoría de los arquitectos que construyen edificios extraños asegura que lo hace porque ahora la tecnología lo hace posible. Eso me parece absurdo. Poder hacer una cosa no legitima hacerla. Necesitamos soluciones para los problemas reales, no inventar problemas para poder empatar con nuevas soluciones Glenn Murcutt
  • 6. Esta última comparación podrá no gustarle a muchos arquitectos profesionales, pero en realidad tiene mucho sentido, en tecnología, tanto como en otros escenarios… “Poder hacer una cosa no legitima hacerla” Necesitamos soluciones para los problemas reales, no inventar problemas para poder empatar con nuevas soluciones!
  • 7. Viéndolo de esa forma, en realidad el rol de un arquitecto de edificaciones y un arquitecto de software parece enfrentar los mismos retos
  • 8. Por lo que es claro, que se debe contar, con un conjunto básico de habilidades y conocimientos para ejercer este tipo de roles
  • 9. Y es que no es lo mismo construir esto…
  • 12. Que se necesita para construir algo asi?
  • 16. Cada escenario plantea retos, condiciones y necesidades diferentes! Que tal si los vemos otra vez, mientras nos preguntamos… Que herramientas, personas, presupuesto, conocimiento y tiempo necesitamos para cada escenario?
  • 17.
  • 18. Pues bien, podemos decir sin miedo a equivocarnos, que todas las consideraciones que se nos ocurran con respecto a definir la arquitectura de edificaciones, deberán ser tenidas en cuenta también al momento de definir la arquitectura de software
  • 19. Conocen la Mansión Winchester?
  • 20. En 1884, Sarah L. Winchester enviuda quedando en sus manos la herencia del acaudalado heredero de los rifles Winchester. Pero tras tan inmensa fortuna, y según una vidente de la época a la que la desdichada viuda consultó, las almas perdidas de aquellos que murieron frente a alguno de estos rifles se encontraban en pena. Años atrás había perdido también a su hija Annie y ahora, la muerte de su marido terminó por desequilibrarla. Sarah compró un extenso terreno en California, e hizo levantar una casa que hubo de estar construyéndose hasta el mismo día de su muerte, 38 años después, en 1922. Ya que según aquella vidente, sólo así las almas encontrarían donde morar mientras no hallaran el reposo eterno.
  • 21. La arquitectura de esta mansión sorprende a todos y se escapa a los límites de la razón. Y no es tanto porque esta mansión estilo victoriano tenga 160 habitaciones, tres ascensores, 47 chimeneas, sistema de alcantarillado y de calefacción, luces de gas que se encienden apretando un botón, (todo esto adelantado a su época), sino porque en ella se puede encontrar ventanas de dan a paredes, escaleras que no llevan a ninguna parte, puertas en medio de las ventanas en la fachada de los pisos superiores y otras rarezas.
  • 22. Pero… Qué tiene que ver esta historia con la Arquitectura de Software?
  • 23. Pues bien, resulta que esta situación en el contexto del desarrollo de software, es más común de lo que debería… Cuando un desarrollador es asignado a la tarea de mantener y evolucionar un sistema legado, cuya arquitectura tiene fallas o incluso que simplemente no está documentada, elige reconstruir partes o crear sus propias rutas dentro del código…
  • 24. Lo que ocurre finalmente es que las aplicaciones de software con el tiempo, terminan convirtiéndose en una colcha de retazos o bien, en un laberinto como la Mansión Winchester, en donde si no tienes un guía y te pierdes, nadie te asegura que vuelvan a encontrarte.
  • 25. quot;Programar sin una arquitectura en mente es como explorar una gruta sólo con una linterna: no sabes dónde estás, dónde has estado ni hacia dónde vas” Danny Thorpe
  • 26. De aquí, que la arquitectura represente entonces, la base de un sistema de software y que deba ser construida pensando tanto en satisfacer las necesidades actuales, como en proporcionar al software las capacidades necesarias para permitir su mantenimiento y evolución de acuerdo a las necesidades del negocio y las solicitudes de los clientes.
  • 27. Cuando se piensa en la arquitectura de un sistema, debe tomarse en cuenta primero, lo más crítico e importante… Y luego complementar para satisfacer las necesidades generales del sistema
  • 28. El arquitecto de software es entonces, el encargado de establecer a que nivel, con que estrategia, y que herramientas son necesarias para realizar una implementación que satisfaga los requisitos funcionales y no funcionales de los sistemas.
  • 29. Y además que debe ser una persona capaz de identificar las necesidades de los negocios, las habilidades de su equipo de trabajo y la viabilidad de las tecnologías disponibles para el desarrollo de software
  • 30. Un buen arquitecto debe estar en capacidad de entender todas las condiciones a las que se verá sometido un sistema y proponer una solución acorde a cada escenario en particular.
  • 31. Por tanto, la madurez de un arquitecto dará a las aplicaciones de software que tenga a su cargo, una especificación coherente, para enfrentar un conjunto de riesgos mucho más reducido, que en el caso de un arquitecto aprendiz
  • 32. Y es que… “Desarrollar software de calidad basado en requisitos y caminar sobre el agua son cosas muy fáciles... si ambos están congelados“ Pero esa no es la situación que se presenta en el desarrollo de software; construir software por el contrario es un escenario evolutivo y cambiante, situación para la cual un arquitecto de software debe estar preparado.
  • 33. Ahora bien, a diferencia de los arquitectos de edificaciones, los arquitectos de software son los encargados de construir la base de la arquitectura de los proyectos…
  • 34. Esta es una de las razones por las que es fácil pensar en que un Arquitecto de Edificaciones puede ser bueno sin tener que haber pegado jamás un ladrillo sobre otro, pero no podemos pensar lo mismo de un Ingeniero de Software que no haya programado jamás… IDEAS ’09 XII Conferencia Iberoamericana de Ingeniería de Requisitos y Ambientes de Software
  • 35. Ahora bien, al igual que los trabajadores de una obra, un equipo de desarrollo debe tener las habilidades necesarias para realizar desarrollo del sistema y seguir la indicaciones del arquitecto, buscando el éxito del proyecto.
  • 36. Otra parte de nuestro símil está a en los planos y maquetas usados por los arquitectos para especificar y detallar la forma en que las edificaciones serán construidas.
  • 37. Al igual que ellos, los arquitectos de software usan modelos que representan las especificaciones y necesidades técnicas de los sistemas.
  • 38. La construcción de estos artefactos, en ambos contextos requiere de herramientas, habilidades y conocimientos, y servirá como guía de la en el proceso de construcción
  • 39. Y así como los planos, diseños y maquetas muestran diferentes vistas de un mismo lugar…
  • 41. …como una visión completa…
  • 44. …o bien, con un alto nivel de detalle…
  • 45. …los diagramas a través de los cuales se representa el diseño y distribución del software, pueden mostrar diferentes vistas de un mismo sistema y de las condiciones que existen en el entorno donde se depliega
  • 46. El modelo 4 + 1 vistas, es una propuesta que establece las diferentes perspectivas a través de las cuales se puede representar el diseño y arquitectura de un sistema de software Kruchten P. Architectural Blueprints—The “4+1” View Model of Software Architecture. IEEE Software, November 1995, 12 (6), pp.42-50.
  • 47. Esta propuesta presenta su propio esquema de modelado, pero como bien sabemos, la notación más reconocida para el modelamiento de sistemas de software es el UML * * UML es un lenguaje de modelado visual que se usa para especificar, visualizar, construir y documentar artefactos de un sistema de software, y se usa para entender, diseñar, configurar, mantener y controlar la información sobre los sistemas a construir.
  • 48. Sin embargo, cada una de las vistas del modelo 4 + 1, puede equiparse contra uno o varios diagramas de UML Vista UML Escenarios Casos de Uso Lógica Clases, de Estados y Colaboración Desarrollo Componentes Física Despliegue Procesos Actividad, Estados, Secuencia http://jgarzas.googlepages.com/4mas1
  • 49. De esta forma es posible representar las diferentes perspectivas de un sistema desde 2 propuestas de trabajo conocidas y enfocadas a satisfacer las necesidades de los diferentes participantes del proceso de desarrollo
  • 50. Esta es una visión inicial acerca de la arquitectura de software, para profundizar en ella debemos detallar de una forma mas específica, cada uno de los conceptos que hemos mencionado. Sin embargo eso será en una próxima oportunidad
  • 51. Gracias!!! ‘ No olvides visitar mi blog y dejarme tus comentarios http://soreygarcia.blogspot.com Hasta pronto!