SlideShare ist ein Scribd-Unternehmen logo
1 von 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!

Weitere ähnliche Inhalte

Was ist angesagt?

Métricas de Proceso y proyecto de software
Métricas de Proceso y proyecto de softwareMétricas de Proceso y proyecto de software
Métricas de Proceso y proyecto de software
Lorena Quiñónez
 
Diagramas de componentes exposicion martes
Diagramas de componentes exposicion  martesDiagramas de componentes exposicion  martes
Diagramas de componentes exposicion martes
Jackson Marshelo
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de software
Liliana Pacheco
 
Proceso Unificado De Rational
Proceso Unificado De RationalProceso Unificado De Rational
Proceso Unificado De Rational
Julio Delgadillo
 
Tecnicas de estimacion de software
Tecnicas de estimacion de softwareTecnicas de estimacion de software
Tecnicas de estimacion de software
Ades27
 
Proyecto de software
Proyecto de softwareProyecto de software
Proyecto de software
monik1002
 

Was ist angesagt? (20)

Artículo Estándares de Calidad en los Sistemas de Información
Artículo Estándares de Calidad en los Sistemas de InformaciónArtículo Estándares de Calidad en los Sistemas de Información
Artículo Estándares de Calidad en los Sistemas de Información
 
Arquitecturas de software - Parte 1
Arquitecturas de software - Parte 1Arquitecturas de software - Parte 1
Arquitecturas de software - Parte 1
 
Diseño de-la-arquitectura-de-software
Diseño de-la-arquitectura-de-softwareDiseño de-la-arquitectura-de-software
Diseño de-la-arquitectura-de-software
 
PRESENTACIÓN RUP
PRESENTACIÓN RUPPRESENTACIÓN RUP
PRESENTACIÓN RUP
 
Las Mediciones de Software y sus Aplicaciomes
Las Mediciones de Software y sus AplicaciomesLas Mediciones de Software y sus Aplicaciomes
Las Mediciones de Software y sus Aplicaciomes
 
Software Architecture Patterns
Software Architecture PatternsSoftware Architecture Patterns
Software Architecture Patterns
 
Herramientas case
Herramientas caseHerramientas case
Herramientas case
 
Metodología rup final
Metodología rup finalMetodología rup final
Metodología rup final
 
Rup (iteraciones)
Rup (iteraciones)Rup (iteraciones)
Rup (iteraciones)
 
Métricas de Proceso y proyecto de software
Métricas de Proceso y proyecto de softwareMétricas de Proceso y proyecto de software
Métricas de Proceso y proyecto de software
 
Diagramas de componentes exposicion martes
Diagramas de componentes exposicion  martesDiagramas de componentes exposicion  martes
Diagramas de componentes exposicion martes
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de software
 
Ingeniería Web
Ingeniería WebIngeniería Web
Ingeniería Web
 
Proceso Unificado De Rational
Proceso Unificado De RationalProceso Unificado De Rational
Proceso Unificado De Rational
 
Arquitectura del software
Arquitectura del softwareArquitectura del software
Arquitectura del software
 
Tecnicas de estimacion de software
Tecnicas de estimacion de softwareTecnicas de estimacion de software
Tecnicas de estimacion de software
 
Diseño de Software
Diseño de SoftwareDiseño de Software
Diseño de Software
 
V model (software engineering)
V model (software engineering)V model (software engineering)
V model (software engineering)
 
SE2018_Lec 21_ Software Configuration Management (SCM)
SE2018_Lec 21_ Software Configuration Management (SCM)SE2018_Lec 21_ Software Configuration Management (SCM)
SE2018_Lec 21_ Software Configuration Management (SCM)
 
Proyecto de software
Proyecto de softwareProyecto de software
Proyecto de software
 

Ähnlich wie Arquitectura 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
Avanet
 
Ado.net entity framework
Ado.net entity frameworkAdo.net entity framework
Ado.net entity framework
Cein
 
Dev dotstar read_principios
Dev dotstar read_principiosDev dotstar read_principios
Dev dotstar read_principios
Jordan Diaz
 
Tarea semana 1
Tarea semana 1Tarea semana 1
Tarea semana 1
preciadoag
 

Ähnlich wie 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
 

Mehr von 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 Netduino
Sorey García
 
GWAB: Azure Mobile Services
GWAB: Azure Mobile ServicesGWAB: Azure Mobile Services
GWAB: Azure Mobile Services
Sorey 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 Windows
Sorey 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 8
Sorey 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 Desarrolladores
Sorey 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 Javascript
Sorey García
 
Windows Phone 8 en Campus Party
Windows Phone 8 en Campus PartyWindows Phone 8 en Campus Party
Windows Phone 8 en Campus Party
Sorey García
 

Mehr von 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
 

Kürzlich hochgeladen

Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
NancyLoaa
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
zulyvero07
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficios
JonathanCovena1
 

Kürzlich hochgeladen (20)

MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficios
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° grado
 
Estrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxEstrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptx
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática4    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática4    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 

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!