SlideShare una empresa de Scribd logo
1 de 31
ArquitecturasqueCreceny Arquitecturasque No Agustín Ramos Fonseca
¿QuéesArquitectura?
¿De quéformaspuedecrecer un sistema de software? En la cantidad de…  Usuariosque lo usan Datosquemaneja. Transaccionesqueprocesa. Funcionalidadqueimplementa. Contextos en los queesusado. Plataformasquesoporta.
Metáforas
Un Organismo Vivo
El procesobiológicoquelleva a un organismo a desarrollarsu forma característica. Morphogénesis
Se origina (unacélula) Se forma Madura Cambia constantemente. Alcanza la vejez, y muere. ...¿Puedecrearse software así? ¿Québeneficiostraería? Ciclo de vida
Especialización y restricciones
Especialización y restricciones En lasetapasembrionarias, muchascriaturas son muyparecidas. Conformepasa el tiempo, se daneventosquedan forma y restringen el conjunto de eventosquepuedenocurrirdespues, asícomolasformasque se puedenalcanzar... En software… ¿porquétomardecisionesanticipadas?
El desarrollodepende del contexto En software…                                           ¿Cuáles el contextoadecuado? El entorno socio-económico y tecnológico en el cual se inserta… ¿Moraleja? ¡Release It!
Diseño de Lenguajes
¿Quéconstituye un lenguaje? Un vocabulario if, for, public, myVar Unasintaxis válido:  public void do() {} Inválido: void public do() {} Unasemántica
Dos extremos Lenguajes con muchascaracterísticas(Muycompletos). Un ampliovocabulario. Unasintaxismuyelaborada. Lenguajespequeñosperoextensibles. ¿Cuálesmejor?
Growing a Language Guy Steele, OOPSLA 1998 “A language design can no longer be a thing. It must be a pattern—a pattern for growth—a pattern for growing the pattern for defining the patterns that programmers can use for their real work and their main goal.” “So I think the sole way to win is to plan for growth with help from users... Parts of the language must be designed to help the task of growth. “
Christopher Alexandery las 15 propiedades
No comprendimos a Alexander Élhablaba de esto.
No comprendimos a Alexander Perointerpretamosesto
Esto no puedecrecer
Poresoreformulósuteoría “The Nature of Order” (4 tomos) "living structure, wherever it appears, is composed of fundamental structural features  -- roughly fifteen of them, at least."
Las 15 propiedades 1. Levels of scale. 2. Strong centers. 3. Boundaries. 4. Alternating repetition. 5. Positive space. 6. Good shape. 7. Local symmetries. 8. Deep interlock and ambiguity. . 9. Contrast. 10. Gradients. 11. Roughness. 12. Echoes. 13. The Void. 14. Simplicity and Inner Calm. 15. Not-separateness.
Ejemplo: Niveles de Escala
En software Unaarquitectura micro-kernel
Principios
Modularización Sin unabuenamodularización, los sistemas son rígidos(difíciles de cambiar) ¿Quéesunabuenamodularización? ModularizaciónEfectiva 	http://slidesha.re/9siQFY Modular Architecture http://modularity.kirkk.com/ Diseñaexplícitamentetusmódulos, y cuidaquesuspropiedades se mantengan
Ortogonalidad Las responsabilidades de los componentesdebentenerfronterasbiendefinidas. Solo de estamanera se logra la flexibilidad y reversibilidadrequerida.
DecisionesReversibles Cuando se tomaunadecisióntecnológica, esnecesarioevaluarsiestapodríacambiar en un futuro. De serasídebemosintroducir los mecanismosnecesariosparalograrrevertir la decisión. Abstracciones. Componentesdébilmenteacoplados. Intermediarios(Adapter, Proxy, etc)
PatronesArquitectónicos
CQRS Command Query Responsibility Segregation
Actores No hay un solo hilo de control. “Objetos” que se comunican con mensajesasíncronos. No hay estadocompartido. Cuando un mensajeesrecibido, un actor puede Cambiarsuestadointerno. Crearmásactores. Enviarmásmensajes ¿Quéofrece? Escalabilidad. Es un modelo natural de cómputodistribuido. Tolerancia a fallas. Cuando un actor no funciona, se creaunonuevo en sulugar.
Actores ¿Con quéexperimentar? Erlang Scala Akka (librería Java) Gpars (Groovy)
¡Gracias! Agustín Ramos Fonseca @MachinesAreUs zentimental.software@gmail.com

Más contenido relacionado

Similar a Arquitecturas que crecen y arquitecturas que no

Inteligencia artificial
Inteligencia artificialInteligencia artificial
Inteligencia artificiallei_quiza
 
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
 
ModelacióN, SimulacióN, TéCnicas Auxiliares De AnáLisis
ModelacióN, SimulacióN, TéCnicas Auxiliares De AnáLisisModelacióN, SimulacióN, TéCnicas Auxiliares De AnáLisis
ModelacióN, SimulacióN, TéCnicas Auxiliares De AnáLisisAlejandra Esther
 
El rol de Analista de Sistemas, los mundos y las tecnicas
El rol de Analista de Sistemas, los mundos y las tecnicasEl rol de Analista de Sistemas, los mundos y las tecnicas
El rol de Analista de Sistemas, los mundos y las tecnicasAlejandra Esther
 
Taller ingenieria de software
Taller ingenieria de softwareTaller ingenieria de software
Taller ingenieria de softwareAvanet
 
SISTEMAS EXPERTOS
SISTEMAS EXPERTOSSISTEMAS EXPERTOS
SISTEMAS EXPERTOStecnica66
 
robotica y sistemas expertos
robotica y sistemas expertosrobotica y sistemas expertos
robotica y sistemas expertostecnica66
 
Todavía no he desayunado
Todavía no he desayunadoTodavía no he desayunado
Todavía no he desayunadoUX Nights
 
Hci curso comsocial-2014
Hci curso comsocial-2014Hci curso comsocial-2014
Hci curso comsocial-2014Tm-CS
 
Ado.net entity framework
Ado.net entity frameworkAdo.net entity framework
Ado.net entity frameworkCein
 
CONCEPTOS BASICOS DE LA INFORMATICA
CONCEPTOS BASICOS DE LA INFORMATICACONCEPTOS BASICOS DE LA INFORMATICA
CONCEPTOS BASICOS DE LA INFORMATICAdavid smith
 
Sistema experto para determinar la personalidad de un individuo
Sistema experto para determinar la personalidad de un individuoSistema experto para determinar la personalidad de un individuo
Sistema experto para determinar la personalidad de un individuoBndy Quilcate
 
Inteligencia artificial aplicada a la salud en el seguimiento de pacientes cr...
Inteligencia artificial aplicada a la salud en el seguimiento de pacientes cr...Inteligencia artificial aplicada a la salud en el seguimiento de pacientes cr...
Inteligencia artificial aplicada a la salud en el seguimiento de pacientes cr...Jose Avila De Tomas
 
Lo que odiamos de la agilidad
Lo que odiamos de la agilidadLo que odiamos de la agilidad
Lo que odiamos de la agilidadLeonardo Soto
 
Universo Agile
Universo AgileUniverso Agile
Universo Agilelucsat
 
Sistemica docente (gestalt)
Sistemica docente (gestalt)Sistemica docente (gestalt)
Sistemica docente (gestalt)Ese Lobo
 

Similar a Arquitecturas que crecen y arquitecturas que no (20)

Inteligencia artificial
Inteligencia artificialInteligencia artificial
Inteligencia artificial
 
El TAO de la programación
El TAO de la programaciónEl TAO de la programación
El TAO de la programación
 
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
 
ModelacióN, SimulacióN, TéCnicas Auxiliares De AnáLisis
ModelacióN, SimulacióN, TéCnicas Auxiliares De AnáLisisModelacióN, SimulacióN, TéCnicas Auxiliares De AnáLisis
ModelacióN, SimulacióN, TéCnicas Auxiliares De AnáLisis
 
El rol de Analista de Sistemas, los mundos y las tecnicas
El rol de Analista de Sistemas, los mundos y las tecnicasEl rol de Analista de Sistemas, los mundos y las tecnicas
El rol de Analista de Sistemas, los mundos y las tecnicas
 
Módulo 2
Módulo 2Módulo 2
Módulo 2
 
Taller ingenieria de software
Taller ingenieria de softwareTaller ingenieria de software
Taller ingenieria de software
 
Gaceta
GacetaGaceta
Gaceta
 
SISTEMAS EXPERTOS
SISTEMAS EXPERTOSSISTEMAS EXPERTOS
SISTEMAS EXPERTOS
 
robotica y sistemas expertos
robotica y sistemas expertosrobotica y sistemas expertos
robotica y sistemas expertos
 
Ii corte presentacion iii
Ii corte presentacion iiiIi corte presentacion iii
Ii corte presentacion iii
 
Todavía no he desayunado
Todavía no he desayunadoTodavía no he desayunado
Todavía no he desayunado
 
Hci curso comsocial-2014
Hci curso comsocial-2014Hci curso comsocial-2014
Hci curso comsocial-2014
 
Ado.net entity framework
Ado.net entity frameworkAdo.net entity framework
Ado.net entity framework
 
CONCEPTOS BASICOS DE LA INFORMATICA
CONCEPTOS BASICOS DE LA INFORMATICACONCEPTOS BASICOS DE LA INFORMATICA
CONCEPTOS BASICOS DE LA INFORMATICA
 
Sistema experto para determinar la personalidad de un individuo
Sistema experto para determinar la personalidad de un individuoSistema experto para determinar la personalidad de un individuo
Sistema experto para determinar la personalidad de un individuo
 
Inteligencia artificial aplicada a la salud en el seguimiento de pacientes cr...
Inteligencia artificial aplicada a la salud en el seguimiento de pacientes cr...Inteligencia artificial aplicada a la salud en el seguimiento de pacientes cr...
Inteligencia artificial aplicada a la salud en el seguimiento de pacientes cr...
 
Lo que odiamos de la agilidad
Lo que odiamos de la agilidadLo que odiamos de la agilidad
Lo que odiamos de la agilidad
 
Universo Agile
Universo AgileUniverso Agile
Universo Agile
 
Sistemica docente (gestalt)
Sistemica docente (gestalt)Sistemica docente (gestalt)
Sistemica docente (gestalt)
 

Más de Agustin Ramos

Exploring Elixir Codebases with Archeometer
Exploring Elixir Codebases with ArcheometerExploring Elixir Codebases with Archeometer
Exploring Elixir Codebases with ArcheometerAgustin Ramos
 
From Elixir to Akka (and back) - ElixirConf Mx 2017
From Elixir to Akka (and back) - ElixirConf Mx 2017From Elixir to Akka (and back) - ElixirConf Mx 2017
From Elixir to Akka (and back) - ElixirConf Mx 2017Agustin Ramos
 
Pairwise and property based testing
Pairwise and property based testingPairwise and property based testing
Pairwise and property based testingAgustin Ramos
 
Sistemas Tolerantes a Fallas
Sistemas Tolerantes a FallasSistemas Tolerantes a Fallas
Sistemas Tolerantes a FallasAgustin Ramos
 
¿En qué la estamos regando en pruebas de software?
¿En qué la estamos regando en pruebas de software?¿En qué la estamos regando en pruebas de software?
¿En qué la estamos regando en pruebas de software?Agustin Ramos
 
Programación funcional con haskell
Programación funcional con haskellProgramación funcional con haskell
Programación funcional con haskellAgustin Ramos
 
Técnicas basadas en matriz de estructura de diseño
Técnicas basadas en matriz de estructura de diseñoTécnicas basadas en matriz de estructura de diseño
Técnicas basadas en matriz de estructura de diseñoAgustin Ramos
 
Acercándose a la entrega continua
Acercándose a la entrega continuaAcercándose a la entrega continua
Acercándose a la entrega continuaAgustin Ramos
 
Modelos de paralelismo y concurrencia
Modelos de paralelismo y concurrenciaModelos de paralelismo y concurrencia
Modelos de paralelismo y concurrenciaAgustin Ramos
 
Arqueología de software
Arqueología de softwareArqueología de software
Arqueología de softwareAgustin Ramos
 
Desarrollo Dirigido por Comportamiento (con Cucumber y Groovy)
Desarrollo Dirigido por Comportamiento (con Cucumber y Groovy)Desarrollo Dirigido por Comportamiento (con Cucumber y Groovy)
Desarrollo Dirigido por Comportamiento (con Cucumber y Groovy)Agustin Ramos
 
BDD - Desarrollo dirigido por comportamiento
BDD - Desarrollo dirigido por comportamientoBDD - Desarrollo dirigido por comportamiento
BDD - Desarrollo dirigido por comportamientoAgustin Ramos
 
La nueva imagen del gurú - El maestro artesano dentro del ingeniero
La nueva imagen del gurú - El maestro artesano dentro del ingenieroLa nueva imagen del gurú - El maestro artesano dentro del ingeniero
La nueva imagen del gurú - El maestro artesano dentro del ingenieroAgustin Ramos
 
Modularización efectiva - domando a la hidra
Modularización efectiva - domando a la hidraModularización efectiva - domando a la hidra
Modularización efectiva - domando a la hidraAgustin Ramos
 

Más de Agustin Ramos (15)

Exploring Elixir Codebases with Archeometer
Exploring Elixir Codebases with ArcheometerExploring Elixir Codebases with Archeometer
Exploring Elixir Codebases with Archeometer
 
From Elixir to Akka (and back) - ElixirConf Mx 2017
From Elixir to Akka (and back) - ElixirConf Mx 2017From Elixir to Akka (and back) - ElixirConf Mx 2017
From Elixir to Akka (and back) - ElixirConf Mx 2017
 
Pairwise and property based testing
Pairwise and property based testingPairwise and property based testing
Pairwise and property based testing
 
Sistemas Tolerantes a Fallas
Sistemas Tolerantes a FallasSistemas Tolerantes a Fallas
Sistemas Tolerantes a Fallas
 
¿En qué la estamos regando en pruebas de software?
¿En qué la estamos regando en pruebas de software?¿En qué la estamos regando en pruebas de software?
¿En qué la estamos regando en pruebas de software?
 
Programación funcional con haskell
Programación funcional con haskellProgramación funcional con haskell
Programación funcional con haskell
 
Técnicas basadas en matriz de estructura de diseño
Técnicas basadas en matriz de estructura de diseñoTécnicas basadas en matriz de estructura de diseño
Técnicas basadas en matriz de estructura de diseño
 
Acercándose a la entrega continua
Acercándose a la entrega continuaAcercándose a la entrega continua
Acercándose a la entrega continua
 
Modelos de paralelismo y concurrencia
Modelos de paralelismo y concurrenciaModelos de paralelismo y concurrencia
Modelos de paralelismo y concurrencia
 
Arqueología de software
Arqueología de softwareArqueología de software
Arqueología de software
 
Hola OSGi
Hola OSGiHola OSGi
Hola OSGi
 
Desarrollo Dirigido por Comportamiento (con Cucumber y Groovy)
Desarrollo Dirigido por Comportamiento (con Cucumber y Groovy)Desarrollo Dirigido por Comportamiento (con Cucumber y Groovy)
Desarrollo Dirigido por Comportamiento (con Cucumber y Groovy)
 
BDD - Desarrollo dirigido por comportamiento
BDD - Desarrollo dirigido por comportamientoBDD - Desarrollo dirigido por comportamiento
BDD - Desarrollo dirigido por comportamiento
 
La nueva imagen del gurú - El maestro artesano dentro del ingeniero
La nueva imagen del gurú - El maestro artesano dentro del ingenieroLa nueva imagen del gurú - El maestro artesano dentro del ingeniero
La nueva imagen del gurú - El maestro artesano dentro del ingeniero
 
Modularización efectiva - domando a la hidra
Modularización efectiva - domando a la hidraModularización efectiva - domando a la hidra
Modularización efectiva - domando a la hidra
 

Último

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
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
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
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
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
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
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
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
 
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
 
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
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
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
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...Luis Olivera
 

Último (20)

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
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
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
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
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
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
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .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
 
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
 
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
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
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
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...
 

Arquitecturas que crecen y arquitecturas que no

  • 3. ¿De quéformaspuedecrecer un sistema de software? En la cantidad de… Usuariosque lo usan Datosquemaneja. Transaccionesqueprocesa. Funcionalidadqueimplementa. Contextos en los queesusado. Plataformasquesoporta.
  • 6. El procesobiológicoquelleva a un organismo a desarrollarsu forma característica. Morphogénesis
  • 7. Se origina (unacélula) Se forma Madura Cambia constantemente. Alcanza la vejez, y muere. ...¿Puedecrearse software así? ¿Québeneficiostraería? Ciclo de vida
  • 9. Especialización y restricciones En lasetapasembrionarias, muchascriaturas son muyparecidas. Conformepasa el tiempo, se daneventosquedan forma y restringen el conjunto de eventosquepuedenocurrirdespues, asícomolasformasque se puedenalcanzar... En software… ¿porquétomardecisionesanticipadas?
  • 10. El desarrollodepende del contexto En software… ¿Cuáles el contextoadecuado? El entorno socio-económico y tecnológico en el cual se inserta… ¿Moraleja? ¡Release It!
  • 12. ¿Quéconstituye un lenguaje? Un vocabulario if, for, public, myVar Unasintaxis válido: public void do() {} Inválido: void public do() {} Unasemántica
  • 13. Dos extremos Lenguajes con muchascaracterísticas(Muycompletos). Un ampliovocabulario. Unasintaxismuyelaborada. Lenguajespequeñosperoextensibles. ¿Cuálesmejor?
  • 14. Growing a Language Guy Steele, OOPSLA 1998 “A language design can no longer be a thing. It must be a pattern—a pattern for growth—a pattern for growing the pattern for defining the patterns that programmers can use for their real work and their main goal.” “So I think the sole way to win is to plan for growth with help from users... Parts of the language must be designed to help the task of growth. “
  • 15. Christopher Alexandery las 15 propiedades
  • 16. No comprendimos a Alexander Élhablaba de esto.
  • 17. No comprendimos a Alexander Perointerpretamosesto
  • 19. Poresoreformulósuteoría “The Nature of Order” (4 tomos) "living structure, wherever it appears, is composed of fundamental structural features -- roughly fifteen of them, at least."
  • 20. Las 15 propiedades 1. Levels of scale. 2. Strong centers. 3. Boundaries. 4. Alternating repetition. 5. Positive space. 6. Good shape. 7. Local symmetries. 8. Deep interlock and ambiguity. . 9. Contrast. 10. Gradients. 11. Roughness. 12. Echoes. 13. The Void. 14. Simplicity and Inner Calm. 15. Not-separateness.
  • 24. Modularización Sin unabuenamodularización, los sistemas son rígidos(difíciles de cambiar) ¿Quéesunabuenamodularización? ModularizaciónEfectiva http://slidesha.re/9siQFY Modular Architecture http://modularity.kirkk.com/ Diseñaexplícitamentetusmódulos, y cuidaquesuspropiedades se mantengan
  • 25. Ortogonalidad Las responsabilidades de los componentesdebentenerfronterasbiendefinidas. Solo de estamanera se logra la flexibilidad y reversibilidadrequerida.
  • 26. DecisionesReversibles Cuando se tomaunadecisióntecnológica, esnecesarioevaluarsiestapodríacambiar en un futuro. De serasídebemosintroducir los mecanismosnecesariosparalograrrevertir la decisión. Abstracciones. Componentesdébilmenteacoplados. Intermediarios(Adapter, Proxy, etc)
  • 28. CQRS Command Query Responsibility Segregation
  • 29. Actores No hay un solo hilo de control. “Objetos” que se comunican con mensajesasíncronos. No hay estadocompartido. Cuando un mensajeesrecibido, un actor puede Cambiarsuestadointerno. Crearmásactores. Enviarmásmensajes ¿Quéofrece? Escalabilidad. Es un modelo natural de cómputodistribuido. Tolerancia a fallas. Cuando un actor no funciona, se creaunonuevo en sulugar.
  • 30. Actores ¿Con quéexperimentar? Erlang Scala Akka (librería Java) Gpars (Groovy)
  • 31. ¡Gracias! Agustín Ramos Fonseca @MachinesAreUs zentimental.software@gmail.com