SlideShare una empresa de Scribd logo
1 de 75
Descargar para leer sin conexión
Arquitectura de Software
Juan Bernardo Quintero
Definiciones de Arquitectura de Software
La Arquitectura de Software es a grandes rasgos, una vista del sistema
que incluye los componentes principales del mismo, la conducta de esos
componentes según se la percibe desde el resto del sistema y las formas
en que los componentes interactúan y se coordinan para alcanzar la
misión del sistema.
Clements:
La Arquitectura de Software es la organización fundamental de un sistema
encarnada en sus componentes, las relaciones entre ellos y el ambiente y
los principios que orientan su diseño y evolución.
IEEE 1471-2000:
Ingeniería de Software es La aplicación de una estrategia sistemática,
disciplinada y cuantificable al desarrollo, aplicación y mantenimiento del
software; esto es, la aplicación de la ingeniería al software.
http://www.sei.cmu.edu/architecture/definitions.html
IEEE 610.12.1990:
Una normativa madura
Igual en la academia y en la industria
Diseño de software con UML
Naturalmente vinculada con ingeniería & ciclo de vida
Ocurre en algún punto entre la elicitación de requerimientos y la
especificación de casos de uso, o entre éstos y el diseño
Naturalmente vinculada a metodología (RUP)
Naturalmente relacionada con modelado Orientado a Objetos
Hay vínculo “natural” entre requerimientos (casos de uso) y clases
Las herramientas arquitectónicas generan el código de la aplicación
La Arquitectura no es…
Vista estructural de alto nivel
Define estilo o combinación de estilos para una solución
Se concentra en requerimientos no funcionales
Los requerimientos funcionales se satisfacen mediante modelado y
diseño de aplicación
Esencial para éxito o fracaso de un proyecto
Arquitectura es…
Arquitectura estructural – SEI – Carnegie Mellon
Garlan, Shaw, Clements
Variantes con modelos de datos (Medvidovic), radicales, formales (Moriconi-SRI),
etc
Arquitectura como etapa de la ingeniería de software orientada a
objetos
James Rumbaugh, Grady Booch, Ivar Jacobson (“los 3…”), Craig Larman…
Arquitectura basada en patrones – SEI
Redefinición de estilos como patrones POSA
Microsoft Patterns & Practices
Arquitectura procesual y metodologías
Kazman, Bass (SEI)
Variantes de arquitectura basada en escenarios
Corrientes principales
Definir los módulos principales
Definir las responsabilidades que tendrá cada uno de estos
módulos
Definir la interacción que existirá entre dichos módulos:
Control y flujo de datos
Secuenciación de la información
Protocolos de interacción y comunicación
Ubicación en el hardware
Arquitectura de Software
Evolución del Desarrollo de Software
Según el Reporte Caos
2000
1998
1995
1994
28%
23% 49%
26%
28% 46%
27%
40% 33%
16%
31% 53%
Éxito
Problemático
Fracaso
El proyecto se aborta o el sistema no se llega a utilizar
Desbordamiento de agendas o costes. Las funcionalidades no cubren las expectativas. Problemas
funcionales
Proyecto realizado en el tiempo previsto, con los costes previstos, con la funcionalidad esperada y
ofreciendo un funcionamiento correcto.
2004 29%
19% 53%
Éxito en Proyectos de Software
Según el Standish Group
Increasing Volume
Data
Code
Aspects (functional and non-functional)
Increasing evolutivity
of the business part (globalization, concentrations, reorganizations, increasing
competition, …)
of the execution platform
Increasing heterogeneity
languages and paradigms
data handling and access protocols
operating systems and middleware platforms
technologies
- The arrival rate of new technologies is increasing
- This rate is not likely to decrease in the future
- Old technologies don't die, they just hide within deep software layers
Origen de los Problemas
Procedural
technology
Component
technology
Object
technology
Objects,
Classes,
Methods
Procedures
Beans,
Session Beans,
Components,
Containers,
Packages,
Interfaces,
Use cases,
Scenarii,Services,
Frameworks,
Applications,
Patterns,
etc.
1980 1995
Origen de los Problemas
Simplifying or increasing complexity
En la actualidad son cuatro los factores que imprimen un ritmo
acelerado a la industria del hardware:
1. Incremento constante de la capacidad de operación
2. Miniaturización
3. Reducción de costes para la producción de hardware
4. Avance de las comunicaciones entre sistemas.
La consecuencia es obvia:
1. Ordenadores potentes
2. Que pueden llevarse en el bolsillo
3. En permanente conexión con grandes sistemas, redes de
comunicación públicas, sistemas de localización GPS, etc.
Evolución Acelerada del Hardware
Evolución Acelerada del Hardware
La Ley de Moore expresa que
aproximadamente cada dos
años se duplica el número de
transistores en un circuito
integrado.
Dicha ley explica la evolución
del hardware
Pero ¿Cuál es el efecto de la
ley de Moore en el desarrollo
de software? En 1978, un vuelo comercial entre Nueva York y París costaba cerca de
900 dólares y tardaba 7 horas. Si se hubieran aplicado los mismos
principios de la Ley de Moore a la industria de la aviación comercial de la
misma forma que se han aplicado a la industria de los semiconductores
desde 1978, ese vuelo habría costado cerca de un centavo de dólar y
habría tardado menos de 1 segundo en realizarse.
Incremento de tasa de surgimiento de tecnologías
Esta rata no parece decrementarse en el futuro
“Las tecnologías viejas no mueren, solo se ocultan en capas mas
profundas del software”
Los sistemas cada vez son más complejos
(Efectos)
La Arquitectura de Software como disciplina
(El Iceberg de la usabilidad)
Según Dick Berry de IBM, el diseño de un sistema tiene 3
elementos:
la presentación de la información
la funcionalidad de la aplicación
la Arquitectura del Software
Adopción de la Arquitectura de Software
como disciplina
The technology adoption lifecycle: Everett Rogers
Diffusion of Innovations - 1957
Evolución de la Arquitectura de Software
Monolítica C/S a 3 capas C/S a N capas SOA
C/S
 Mainframes de gran tamaño. En 1946 ENIAC
- Superficie de 160 m2
- Peso 30 toneladas,
- Procesamiento de 30.000 instrucciones/seg.
 Sistemas operativos propietarios.
 Solo texto.
 Terminales “brutas” con teclado y pantalla por ejemplo de ámbar que se
conectan físicamente a un Mainframe.
Arquitectura Monolíticas
Arquitectura Monolíticas
Arquitectura Monolíticas
Disminución del tamaño de los Mainframes que empezaron a ser
llamados Server.
Aparición de Windows.
Fortalecimiento de las redes LAN.
Conviven diferentes sistemas operativos:
Los servidores usaban frecuentemente Unix.
Los clientes usaban frecuentemente Windows.
C/S a Dos Capas
C/S a Dos Capas
C/S a Dos Capas
C/S a Dos Capas (Thin Client vs. Fat Client)
Cliente Grueso (Denso) vs. Cliente Fino (Delgado)
vs.
Disminución del costo y masificación de los computadores. En
2002 un Pentium IV a 2 Ghz.
Superficie de 217 mm2
5.300 MTOPS (“Millions of theoretical operations per second)
Aparición comercial de Internet.
Fortalecimiento de las redes WAN.
Conviven diferentes:
Tipos de maquinas.
Sistemas operativos.
Protocolos de comunicaciones.
C/S a Tres Capas
C/S a Tres Capas
C/S a Tres Capas
C/S a Tres Capas
Interpretación de la
Arquitectura J2EE en EJB 2.0
Artificio de escalabilidad en
PHP similar a EJB 2.0
C/S a Tres Capas
Microsoft Technologies for Three-Tier Applications
Masificación de Internet y de las comunicaciones inalámbrica.
Aparición dispositivos móviles para ejecutar aplicaciones.
Integración de negocios e interoperabilidad.
Conviven diferentes:
Plataformas.
Middleware.
Arquitecturas.
C/S a N Capas
C/S a N Capas
C/S a N Capas
HTTP con clientes Thin/Fat
C/S a N Capas con RIA
C/S a N Capas
Tipos de Clientes en Java
Nombre Quiénes la componen Dónde se ubica
Capa Cliente Aplicaciones cliente, applets,
aplicaciones y otras GUIs PC Cliente
Capa de
Presentación JSP, Servlet y otras UIs Servidor J2EE
Capa de
Negocios EJBs y otros objetos de negocios Servidor J2EE
Capa de
Integración JMS, JDBC Servidor J2EE
Capa de
Recursos Bases de Datos, Sistemas Externos Servidor BD
C/S a N Capas
J2EE Web Server Architecture
C/S a N Capas (From Two-Tier to N-Tier)
Multitier Architecture
Servicio Servicio Servicio
Servicio Servicio Servicio
Bus
Acuerdos / Esquemas
Acuerdos / Esquemas
Arquitectura Orientada a Servicios
Comunicación
Comunicación
Una aproximación para construir sistemas usando servicios los
cuales se adhieren a 4 pilares:
Los limites son explícitos
Los servicios son Autónomos
Los servicios comparten esquemas y contratos, no clases
La compatibilidad de los servicios, se determina basados en las políticas
Arquitectura Orientada a Servicios
SOA: Beneficios de TI
Arquitectura Hoy en Día
Propuesta SOA
"The ideal architect should be a person of letters, a mathematician,
familiar with historical studies, a diligent student of philosophy,
acquainted with music, not ignorant of medicine, learned in the
responses of jurisconsults, familiar with astronomy and astronomical
calculations.“
Vitruvius, circa 25 BC
Competencias del Arquitecto
The software architect role is responsible for the software
architecture, which includes the key technical decisions that
constrain the overall design and implementation for the project.
El Arquitecto de Software según RUP
The software architect has overall
responsibility for driving the major
technical decisions, expressed as
the software architecture. This
typically includes identifying and
documenting the architecturally
significant aspects of the system,
including requirements, design,
implementation, and deployment
"views" of the system.
The architect is also responsible for
providing rationale for these
decisions, balancing the concerns of
the various stakeholders, driving
down technical risks, and ensuring
that decisions are effectively
communicated, validated, and
adhered to.
El Arquitecto de Software según RUP
Tipos de Arquitectos
Preocupaciones del Arquitecto
Lack of skilled
Technical
Architecture
resources
Are current IT
Systems aligned
with business
process?
What technologies
products/vendors
Should select to
enact my business
solutions?
How do I ensure
that my technology
decisions are
pragmatic and
implementable
Quality of IT
Service?
IT Costs?
IT ROI?
What is the impact
of new technology
on business / IT
system?
Responsabilidades del Arquitecto
Competencias del Arquitecto de Software
Propuestas Arquitectónicas
Propuesta de Zachman
Scope (Ballpark) view
Owners View (Enterprise Model)
Designers View (System Model)
Builder’s View (Technology Model)
Out of Context View (Detailed Model)
Operational View (Functioning)
Data
(What)
Function
(How)
Network
(Where)
People
(Who)
Time
(When)
Motivation
(Why)
Propuesta de Zachman
Propuesta de Kruchten (4 + 1)
Vista de
Diseño
Vista de
Despliegue
Vista de
Procesos
Vista de
Implementación
Vista de
Casos de Uso
•vocabulario
•funcionalidad
•comportamiento
•funcionamiento
•capacidad de crecimiento
•rendimiento
•topología del sistema
•distribución
•entrega e instalación
•ensamblado del sistema
•gestión de configuraciones
lógicos físicos
4+1 Vistas de Kruchten
Vista de
Diseño
Vista de
Despliegue
Vista de
Procesos
Vista de
Implementación
Vista de
Casos de Uso
•Diagramas de Clases
•Diagramas de Objetos
•Diagramas de Casos de Uso
•Diagramas de Clases (clases activas)
•Diagramas de Objetos (clases activas)
•Diagramas de Despliegue
•Diagramas de Componentes
Aspectos Estáticos:
Aspectos
Dinámicos
•Diagramas de Interacción
•Diagramas de Estado
•Diagramas de Actividades
Propuesta de Kruchten (4 + 1)
4+1 Vistas de Kruchten
Negocio:
Describe el funcionamiento interno del negocio central de la
organización.
Aplicación:
Muestra las aplicaciones de la organización, su funcionalidad y
relaciones.
Información:
Describe la información que maneja la organización y cómo está
ligada a los circuitos de trabajo.
Tecnología:
Describe la estructura de hardware y software de base que da
soporte informático a la organización.
Propuesta de Microsoft
Perspectivas de la Arquitectura
Propuesta de Microsoft
Es usada para definir los requerimientos funcionales y la visión que los
usuarios del negocio tienen de la aplicación y describir el modelo de
negocio que la arquitectura debe cubrir. Esta vista muestra los
subsistemas y módulos en los que se divide la aplicación y la
funcionalidad que brinda dentro de cada uno de ellos.
Casos de Uso, Diagramas de Actividad, Procesos de Negocio,
Entidades del Negocio, etc.
Vista Conceptual
Muestra los componentes principales de diseño y sus relaciones de
forma independiente de los detalles técnicos y de cómo la funcionalidad
será implementada en la plataforma de ejecución. Los arquitectos crean
modelos de diseño de la aplicación, los cuales son vistas lógicas del
modelo funcional y que describen la solución.
Realización de los Casos de Uso, subsistemas, paquetes y clases de
los casos de uso más significativos arquitectónicamente.
Vista Lógica
Propuesta de Microsoft
Vista Lógica
 En la actualidad, uno de los
patrones de diseño más utilizado
para cualquier tipo aplicaciones
es el de Capas (Layers en inglés)
donde, básicamente, se divide los
elementos de diseño en paquetes
de Interfaz de Usuario, Lógica de
Negocio y Acceso a Datos y
Servicios.
 Diagrama de Paquetes.
Propuesta de Microsoft
Ilustra la distribución del procesamiento entre los distintos equipos que
conforman la solución, incluyendo los servicios y procesos de base. Los
elementos definidos en la vista lógica se "mapean" a componentes de
software (servicios, procesos, etc.) o de hardware que definen más
precisamente como se ejecutará la solución.
Diagrama de Despliegue.
Vista Física
Propuesta de Microsoft
Describe cómo se implementan los componentes físicos mostrados en
vista de distribución agrupándolos en subsistemas organizados en
capas y jerarquías, ilustra, además las dependencias entre éstos.
Básicamente, se describe el mapeo desde los paquetes y clases del
modelo de diseño a subsistemas y componentes físicos.
Diagrama de Componentes.
Vista Implementación
Propuesta de Microsoft
Propuesta de Microsoft
Implementación en la Arquitectura
Implementación en la Arquitectura
Propuesta de Microsoft
Vistas y Diagramas de UML
Importancia de la Arquitectura de Software
Criticidad de las decisiones tempranas de arquitectura
Alto nivel de abstracción
Vinculada con requerimientos no funcionales
Fuerte impulso en la academia y la industria
Herramientas arquitectónicas aún en proceso de definición y
desarrollo
Metodologías arquitectónicas, en proceso de elaboración preliminar
Resta elaborar: tácticas arquitectónicas, métodos basados en
arquitectura, vínculo entre conceptos de arquitectura, DSLs,
factorías, building blocks, …
Conclusiones generales
Falta de criterio unificado
No hay un modelo de proceso de punta a punta
Desarrollo en paralelo de conceptos antagónicos o no
coordinados
Métodos ágiles
Metodologías de ciclo de vida
Patrones, estilos y tácticas
Apropiación nominal de la AS por estrategias que no
implementan principios arquitectónicos pero se benefician de
su prestigio
Poca masa crítica de herramientas y lenguajes de modelado
arquitectónico (de alto nivel, con conectores de primera clase)
Problemas pendientes en AS
 Posicionamiento en ciclo de vida
(AS en RUP)
 Atributos de calidad & escenarios
 [Primitivas de atributo]
 Architecture Based Design (ABD)
 Tácticas Arquitectónicas
 Comparación de alternativas
(SACAM)
 Diseño basado en atributos (ADD)
 Ventajas y desventajas (ATAM)
 Elección de arquitectura
 Análisis de arquitectura (SAAM)
 Quality Attribute Workshop (QAW)
 Revisión activa de diseño parcial
(ARID)
 Análisis de costo/beneficio (CBAM)
 Reformulación: UML & RUP
Metodologías arquitectónicas
Decisiones tempranas
Barry Boehm, 1995
- Si un proyecto no ha logrado una arquitectura del sistema, incluyendo su justificación, el
proyecto no debe empezar el desarrollo en gran escala. Si se especifica la arquitectura
como un elemento a entregar, se la puede usar a lo largo de los procesos de desarrollo y
mantenimiento [Boe95].
Análisis de consistencia antes de elaborar el diseño
(y escribir el código)
Sistematización de la experiencia
Homogeneización del lenguaje (IEEE 1471)
Herramientas para la evolución
Re-utilización
Beneficios
Carlos Billy Reynoso. Introducción a la Arquitectura de Software. Universidad de
Buenos Aires http://www.willydev.net/descargas/prev/IntroArq.pdf
Paul Reed. Reference Architecture: The best of best practices. IBM
http://www.ibm.com/developerworks/rational/library/2774.html
Amit Unde, Becoming an Architect in a System Integrator. Microsoft Corporation.
http://msdn.microsoft.com/en-us/architecture/cc505970.aspx
Pattern-Oriented Software Architecture, A System of Patterns, Volume 1, Frank
Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Michael Stal,
Wiley & Sons, 1996, ISBN 0 471 95869
Patterns-Oriented Software Architecture, Volume 2 : Concurrent and Networked
Objects, Douglas Schmidt, Michael Stal, Hans Rohnert, Frank Buschmann, 2000)
Vitalie Temnenco. TOGAF or not TOGAF: Extending Enterprise Architecture
beyond RUP. IBM
http://www.ibm.com/developerworks/rational/library/jan07/temnenco/index.html
Referencias
Adrián Lasso. Arquitectura de Software. Microsoft Corporation.
http://www.microsoft.com/spanish/msdn/comunidad/mtj.net/voices/art110.asp
Michael Platt. Microsoft Architecture Overview. Microsoft Corporation.
http://msdn.microsoft.com/architecture/overview/default.aspx?pull=/library/en-
us/dnea/html/eaarchover.asp
Carlos Reynoso y Nicolás Kicillof. Estilos y Patrones en la Estrategia de
Arquitectura de Microsoft. Universidad de Buenos Aires.
http://www.microsoft.com/spanish/msdn/arquitectura/roadmap_arq/lenguaje.asp
Desarrollo de Software Basado en Componentes (Luis F. Iribarne Martınez, U.
de Almerias, Tesis Doctoral, Capitulo 1 )
Interoperabilidad e Integración, Forum de Desarrolladores Corporativos, Madrid,
Diciembre del 2002.
Referencias

Más contenido relacionado

La actualidad más candente

Requerimientos no funcionales
Requerimientos no funcionalesRequerimientos no funcionales
Requerimientos no funcionalesAngel Minga
 
El Proceso de Diseño de interfaces de usuario. Roger Pressman
El Proceso de Diseño de interfaces de usuario. Roger PressmanEl Proceso de Diseño de interfaces de usuario. Roger Pressman
El Proceso de Diseño de interfaces de usuario. Roger PressmanJuan Pablo Bustos Thames
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicaslandeta_p
 
Diagramas de implementacion
Diagramas de implementacionDiagramas de implementacion
Diagramas de implementacionZonickX
 
METODOLOGÍA UWE (UML-BASED WEB ENGINEERING)
METODOLOGÍA UWE (UML-BASED WEB ENGINEERING) METODOLOGÍA UWE (UML-BASED WEB ENGINEERING)
METODOLOGÍA UWE (UML-BASED WEB ENGINEERING) Germán Sánchez
 
Unidad 2. metodologías de desarrollo DE SOFTWARE
Unidad 2. metodologías de desarrollo DE SOFTWAREUnidad 2. metodologías de desarrollo DE SOFTWARE
Unidad 2. metodologías de desarrollo DE SOFTWAREPablo Daniel Bazan Carmona
 
1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseñolandeta_p
 
IEEE 1471-2000: Documento de arquitectura de software
IEEE 1471-2000: Documento de arquitectura de softwareIEEE 1471-2000: Documento de arquitectura de software
IEEE 1471-2000: Documento de arquitectura de softwareJesús Navarro
 
Ingenieria de requerimientos
Ingenieria de requerimientosIngenieria de requerimientos
Ingenieria de requerimientosTensor
 
Planeacion y elaboración de proyectos de software
Planeacion y elaboración de proyectos de softwarePlaneacion y elaboración de proyectos de software
Planeacion y elaboración de proyectos de softwareTtomas Carvajal
 
MODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMicky Jerzy
 

La actualidad más candente (20)

Requerimientos no funcionales
Requerimientos no funcionalesRequerimientos no funcionales
Requerimientos no funcionales
 
El Proceso de Diseño de interfaces de usuario. Roger Pressman
El Proceso de Diseño de interfaces de usuario. Roger PressmanEl Proceso de Diseño de interfaces de usuario. Roger Pressman
El Proceso de Diseño de interfaces de usuario. Roger Pressman
 
Metodología WEB UWE
Metodología WEB UWEMetodología WEB UWE
Metodología WEB UWE
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicas
 
Diagramas de implementacion
Diagramas de implementacionDiagramas de implementacion
Diagramas de implementacion
 
METODOLOGÍA UWE (UML-BASED WEB ENGINEERING)
METODOLOGÍA UWE (UML-BASED WEB ENGINEERING) METODOLOGÍA UWE (UML-BASED WEB ENGINEERING)
METODOLOGÍA UWE (UML-BASED WEB ENGINEERING)
 
Uml (presentación 6)
Uml (presentación 6)Uml (presentación 6)
Uml (presentación 6)
 
Metodologia Diseño Web
Metodologia Diseño WebMetodologia Diseño Web
Metodologia Diseño Web
 
Unidad 2. metodologías de desarrollo DE SOFTWARE
Unidad 2. metodologías de desarrollo DE SOFTWAREUnidad 2. metodologías de desarrollo DE SOFTWARE
Unidad 2. metodologías de desarrollo DE SOFTWARE
 
Ciclo Vida del Software
Ciclo Vida del SoftwareCiclo Vida del Software
Ciclo Vida del Software
 
Diseño arquitectónico
Diseño arquitectónicoDiseño arquitectónico
Diseño arquitectónico
 
1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño
 
Estilos Arquitectonicos-Capas
Estilos Arquitectonicos-CapasEstilos Arquitectonicos-Capas
Estilos Arquitectonicos-Capas
 
Metodología rup
Metodología rupMetodología rup
Metodología rup
 
IEEE 1471-2000: Documento de arquitectura de software
IEEE 1471-2000: Documento de arquitectura de softwareIEEE 1471-2000: Documento de arquitectura de software
IEEE 1471-2000: Documento de arquitectura de software
 
Ingenieria de requerimientos
Ingenieria de requerimientosIngenieria de requerimientos
Ingenieria de requerimientos
 
Planeacion y elaboración de proyectos de software
Planeacion y elaboración de proyectos de softwarePlaneacion y elaboración de proyectos de software
Planeacion y elaboración de proyectos de software
 
MODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWARE
 
Uml presentacion
Uml   presentacionUml   presentacion
Uml presentacion
 
Diagrama de Componentes
Diagrama de ComponentesDiagrama de Componentes
Diagrama de Componentes
 

Similar a Arquitectura de software

Arquitectura de software y Generación de computadores.
Arquitectura de software y Generación de computadores.Arquitectura de software y Generación de computadores.
Arquitectura de software y Generación de computadores.Juan Franco
 
diseño de arquitectura de un sistema de informacion
diseño de arquitectura de un sistema de informaciondiseño de arquitectura de un sistema de informacion
diseño de arquitectura de un sistema de informacionzulaymaylin
 
Administracion de redes 1
Administracion de redes 1Administracion de redes 1
Administracion de redes 1maryr_
 
Diseño de sistemas de informacion
Diseño de sistemas de informacionDiseño de sistemas de informacion
Diseño de sistemas de informacionJhonderson
 
Clasegestión
ClasegestiónClasegestión
Clasegestiónvmichetti
 
Clase gestión
Clase gestiónClase gestión
Clase gestiónvmichetti
 
Taller 1_ Review Internetworking
Taller 1_ Review InternetworkingTaller 1_ Review Internetworking
Taller 1_ Review InternetworkingDaniel Pardo
 
Ingenieria Del Software2872
Ingenieria Del Software2872Ingenieria Del Software2872
Ingenieria Del Software2872blanquita918
 
Ingenieria Del Software2872
Ingenieria Del Software2872Ingenieria Del Software2872
Ingenieria Del Software2872blanquita918
 
Ingenieria Del Software2872
Ingenieria Del Software2872Ingenieria Del Software2872
Ingenieria Del Software2872msc080277
 
Diseño de una red
Diseño de una redDiseño de una red
Diseño de una redLiipe Mdz
 
Clase De Fds22
Clase De Fds22Clase De Fds22
Clase De Fds22masa832
 
Tarea semana 1
Tarea semana 1Tarea semana 1
Tarea semana 1preciadoag
 

Similar a Arquitectura de software (20)

Arquitectura de software y Generación de computadores.
Arquitectura de software y Generación de computadores.Arquitectura de software y Generación de computadores.
Arquitectura de software y Generación de computadores.
 
diseño de arquitectura de un sistema de informacion
diseño de arquitectura de un sistema de informaciondiseño de arquitectura de un sistema de informacion
diseño de arquitectura de un sistema de informacion
 
Modelo osi[1]
Modelo osi[1]Modelo osi[1]
Modelo osi[1]
 
Administracion de redes 1
Administracion de redes 1Administracion de redes 1
Administracion de redes 1
 
Cap 7 ingenieria del software
Cap 7 ingenieria del softwareCap 7 ingenieria del software
Cap 7 ingenieria del software
 
Diseño de sistemas de informacion
Diseño de sistemas de informacionDiseño de sistemas de informacion
Diseño de sistemas de informacion
 
Clasegestión
ClasegestiónClasegestión
Clasegestión
 
Clase gestión
Clase gestiónClase gestión
Clase gestión
 
Taller 1_ Review Internetworking
Taller 1_ Review InternetworkingTaller 1_ Review Internetworking
Taller 1_ Review Internetworking
 
ingenieria del software
ingenieria del softwareingenieria del software
ingenieria del software
 
Ingenieria Del Software2872
Ingenieria Del Software2872Ingenieria Del Software2872
Ingenieria Del Software2872
 
Ingenieria Del Software2872
Ingenieria Del Software2872Ingenieria Del Software2872
Ingenieria Del Software2872
 
Ingenieria Del Software2872
Ingenieria Del Software2872Ingenieria Del Software2872
Ingenieria Del Software2872
 
Video movie
Video movieVideo movie
Video movie
 
Diseño de una red
Diseño de una redDiseño de una red
Diseño de una red
 
Clase De Fds22
Clase De Fds22Clase De Fds22
Clase De Fds22
 
Osi tpc-modelos
Osi tpc-modelosOsi tpc-modelos
Osi tpc-modelos
 
Tarea semana 1
Tarea semana 1Tarea semana 1
Tarea semana 1
 
Tareasemana1
Tareasemana1Tareasemana1
Tareasemana1
 
Arquitectura multicapa
Arquitectura multicapaArquitectura multicapa
Arquitectura multicapa
 

Más de Gary Araujo Viscarra

Arquitecturacomponentes 141027205348-conversion-gate01
Arquitecturacomponentes 141027205348-conversion-gate01Arquitecturacomponentes 141027205348-conversion-gate01
Arquitecturacomponentes 141027205348-conversion-gate01Gary Araujo Viscarra
 
14704374 arquitectura-basada-en-componentes
14704374 arquitectura-basada-en-componentes14704374 arquitectura-basada-en-componentes
14704374 arquitectura-basada-en-componentesGary Araujo Viscarra
 
Tema1 desarrollo de software basado en componentes
Tema1 desarrollo de software basado en componentesTema1 desarrollo de software basado en componentes
Tema1 desarrollo de software basado en componentesGary Araujo Viscarra
 
2.1.4.7 lab establishing a console session with tera term
2.1.4.7 lab   establishing a console session with tera term2.1.4.7 lab   establishing a console session with tera term
2.1.4.7 lab establishing a console session with tera termGary Araujo Viscarra
 

Más de Gary Araujo Viscarra (7)

Arquitecturacomponentes 141027205348-conversion-gate01
Arquitecturacomponentes 141027205348-conversion-gate01Arquitecturacomponentes 141027205348-conversion-gate01
Arquitecturacomponentes 141027205348-conversion-gate01
 
14704374 arquitectura-basada-en-componentes
14704374 arquitectura-basada-en-componentes14704374 arquitectura-basada-en-componentes
14704374 arquitectura-basada-en-componentes
 
Tesis luis iribarne
Tesis luis iribarneTesis luis iribarne
Tesis luis iribarne
 
Tema1 desarrollo de software basado en componentes
Tema1 desarrollo de software basado en componentesTema1 desarrollo de software basado en componentes
Tema1 desarrollo de software basado en componentes
 
Estructura practico investigacion
Estructura practico investigacionEstructura practico investigacion
Estructura practico investigacion
 
Educacion especial i
Educacion especial iEducacion especial i
Educacion especial i
 
2.1.4.7 lab establishing a console session with tera term
2.1.4.7 lab   establishing a console session with tera term2.1.4.7 lab   establishing a console session with tera term
2.1.4.7 lab establishing a console session with tera term
 

Último

Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.ALEJANDROLEONGALICIA
 
CFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric ProjectCFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric ProjectCarlos Delgado
 
Sistema de gestión de turnos para negocios
Sistema de gestión de turnos para negociosSistema de gestión de turnos para negocios
Sistema de gestión de turnos para negociosfranchescamassielmor
 
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...Arquitecto Alejandro Gomez cornejo muñoz
 
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIACLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIAMayraOchoa35
 
Biología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptxBiología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptxluisvalero46
 
SOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidadSOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidadANDECE
 
Físicas 1: Ecuaciones Dimensionales y Vectores
Físicas 1: Ecuaciones Dimensionales y VectoresFísicas 1: Ecuaciones Dimensionales y Vectores
Físicas 1: Ecuaciones Dimensionales y VectoresSegundo Silva Maguiña
 
Diagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptxDiagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptxHarryArmandoLazaroBa
 
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...esandoval7
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxLuisvila35
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Francisco Javier Mora Serrano
 
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdfLEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdfAdelaHerrera9
 
Descubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialDescubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialyajhairatapia
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023ANDECE
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasSegundo Silva Maguiña
 
Trabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruanaTrabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruana5extraviado
 
Sistema de Gestión de Freelancers (Base de Datos)
Sistema de Gestión de Freelancers (Base de Datos)Sistema de Gestión de Freelancers (Base de Datos)
Sistema de Gestión de Freelancers (Base de Datos)dianamateo1513
 
Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEANDECE
 

Último (20)

Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.
 
CFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric ProjectCFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric Project
 
Sistema de gestión de turnos para negocios
Sistema de gestión de turnos para negociosSistema de gestión de turnos para negocios
Sistema de gestión de turnos para negocios
 
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
 
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIACLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
 
Biología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptxBiología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptx
 
SOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidadSOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidad
 
Físicas 1: Ecuaciones Dimensionales y Vectores
Físicas 1: Ecuaciones Dimensionales y VectoresFísicas 1: Ecuaciones Dimensionales y Vectores
Físicas 1: Ecuaciones Dimensionales y Vectores
 
Diagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptxDiagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptx
 
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
 
MATPEL COMPLETO DESDE NIVEL I AL III.pdf
MATPEL COMPLETO DESDE NIVEL I AL III.pdfMATPEL COMPLETO DESDE NIVEL I AL III.pdf
MATPEL COMPLETO DESDE NIVEL I AL III.pdf
 
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdfLEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
 
Descubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialDescubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundial
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la Ingenierías
 
Trabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruanaTrabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruana
 
Sistema de Gestión de Freelancers (Base de Datos)
Sistema de Gestión de Freelancers (Base de Datos)Sistema de Gestión de Freelancers (Base de Datos)
Sistema de Gestión de Freelancers (Base de Datos)
 
Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSE
 

Arquitectura de software

  • 1. Arquitectura de Software Juan Bernardo Quintero
  • 2.
  • 3.
  • 4. Definiciones de Arquitectura de Software La Arquitectura de Software es a grandes rasgos, una vista del sistema que incluye los componentes principales del mismo, la conducta de esos componentes según se la percibe desde el resto del sistema y las formas en que los componentes interactúan y se coordinan para alcanzar la misión del sistema. Clements: La Arquitectura de Software es la organización fundamental de un sistema encarnada en sus componentes, las relaciones entre ellos y el ambiente y los principios que orientan su diseño y evolución. IEEE 1471-2000: Ingeniería de Software es La aplicación de una estrategia sistemática, disciplinada y cuantificable al desarrollo, aplicación y mantenimiento del software; esto es, la aplicación de la ingeniería al software. http://www.sei.cmu.edu/architecture/definitions.html IEEE 610.12.1990:
  • 5. Una normativa madura Igual en la academia y en la industria Diseño de software con UML Naturalmente vinculada con ingeniería & ciclo de vida Ocurre en algún punto entre la elicitación de requerimientos y la especificación de casos de uso, o entre éstos y el diseño Naturalmente vinculada a metodología (RUP) Naturalmente relacionada con modelado Orientado a Objetos Hay vínculo “natural” entre requerimientos (casos de uso) y clases Las herramientas arquitectónicas generan el código de la aplicación La Arquitectura no es…
  • 6. Vista estructural de alto nivel Define estilo o combinación de estilos para una solución Se concentra en requerimientos no funcionales Los requerimientos funcionales se satisfacen mediante modelado y diseño de aplicación Esencial para éxito o fracaso de un proyecto Arquitectura es…
  • 7. Arquitectura estructural – SEI – Carnegie Mellon Garlan, Shaw, Clements Variantes con modelos de datos (Medvidovic), radicales, formales (Moriconi-SRI), etc Arquitectura como etapa de la ingeniería de software orientada a objetos James Rumbaugh, Grady Booch, Ivar Jacobson (“los 3…”), Craig Larman… Arquitectura basada en patrones – SEI Redefinición de estilos como patrones POSA Microsoft Patterns & Practices Arquitectura procesual y metodologías Kazman, Bass (SEI) Variantes de arquitectura basada en escenarios Corrientes principales
  • 8. Definir los módulos principales Definir las responsabilidades que tendrá cada uno de estos módulos Definir la interacción que existirá entre dichos módulos: Control y flujo de datos Secuenciación de la información Protocolos de interacción y comunicación Ubicación en el hardware Arquitectura de Software
  • 9.
  • 10. Evolución del Desarrollo de Software Según el Reporte Caos 2000 1998 1995 1994 28% 23% 49% 26% 28% 46% 27% 40% 33% 16% 31% 53% Éxito Problemático Fracaso El proyecto se aborta o el sistema no se llega a utilizar Desbordamiento de agendas o costes. Las funcionalidades no cubren las expectativas. Problemas funcionales Proyecto realizado en el tiempo previsto, con los costes previstos, con la funcionalidad esperada y ofreciendo un funcionamiento correcto. 2004 29% 19% 53%
  • 11. Éxito en Proyectos de Software Según el Standish Group
  • 12. Increasing Volume Data Code Aspects (functional and non-functional) Increasing evolutivity of the business part (globalization, concentrations, reorganizations, increasing competition, …) of the execution platform Increasing heterogeneity languages and paradigms data handling and access protocols operating systems and middleware platforms technologies - The arrival rate of new technologies is increasing - This rate is not likely to decrease in the future - Old technologies don't die, they just hide within deep software layers Origen de los Problemas
  • 14. En la actualidad son cuatro los factores que imprimen un ritmo acelerado a la industria del hardware: 1. Incremento constante de la capacidad de operación 2. Miniaturización 3. Reducción de costes para la producción de hardware 4. Avance de las comunicaciones entre sistemas. La consecuencia es obvia: 1. Ordenadores potentes 2. Que pueden llevarse en el bolsillo 3. En permanente conexión con grandes sistemas, redes de comunicación públicas, sistemas de localización GPS, etc. Evolución Acelerada del Hardware
  • 15. Evolución Acelerada del Hardware La Ley de Moore expresa que aproximadamente cada dos años se duplica el número de transistores en un circuito integrado. Dicha ley explica la evolución del hardware Pero ¿Cuál es el efecto de la ley de Moore en el desarrollo de software? En 1978, un vuelo comercial entre Nueva York y París costaba cerca de 900 dólares y tardaba 7 horas. Si se hubieran aplicado los mismos principios de la Ley de Moore a la industria de la aviación comercial de la misma forma que se han aplicado a la industria de los semiconductores desde 1978, ese vuelo habría costado cerca de un centavo de dólar y habría tardado menos de 1 segundo en realizarse.
  • 16. Incremento de tasa de surgimiento de tecnologías Esta rata no parece decrementarse en el futuro “Las tecnologías viejas no mueren, solo se ocultan en capas mas profundas del software” Los sistemas cada vez son más complejos (Efectos)
  • 17. La Arquitectura de Software como disciplina (El Iceberg de la usabilidad) Según Dick Berry de IBM, el diseño de un sistema tiene 3 elementos: la presentación de la información la funcionalidad de la aplicación la Arquitectura del Software
  • 18. Adopción de la Arquitectura de Software como disciplina The technology adoption lifecycle: Everett Rogers Diffusion of Innovations - 1957
  • 19.
  • 20. Evolución de la Arquitectura de Software Monolítica C/S a 3 capas C/S a N capas SOA C/S
  • 21.  Mainframes de gran tamaño. En 1946 ENIAC - Superficie de 160 m2 - Peso 30 toneladas, - Procesamiento de 30.000 instrucciones/seg.  Sistemas operativos propietarios.  Solo texto.  Terminales “brutas” con teclado y pantalla por ejemplo de ámbar que se conectan físicamente a un Mainframe. Arquitectura Monolíticas
  • 24. Disminución del tamaño de los Mainframes que empezaron a ser llamados Server. Aparición de Windows. Fortalecimiento de las redes LAN. Conviven diferentes sistemas operativos: Los servidores usaban frecuentemente Unix. Los clientes usaban frecuentemente Windows. C/S a Dos Capas
  • 25. C/S a Dos Capas
  • 26. C/S a Dos Capas
  • 27. C/S a Dos Capas (Thin Client vs. Fat Client) Cliente Grueso (Denso) vs. Cliente Fino (Delgado) vs.
  • 28. Disminución del costo y masificación de los computadores. En 2002 un Pentium IV a 2 Ghz. Superficie de 217 mm2 5.300 MTOPS (“Millions of theoretical operations per second) Aparición comercial de Internet. Fortalecimiento de las redes WAN. Conviven diferentes: Tipos de maquinas. Sistemas operativos. Protocolos de comunicaciones. C/S a Tres Capas
  • 29. C/S a Tres Capas
  • 30. C/S a Tres Capas
  • 31. C/S a Tres Capas Interpretación de la Arquitectura J2EE en EJB 2.0 Artificio de escalabilidad en PHP similar a EJB 2.0
  • 32. C/S a Tres Capas Microsoft Technologies for Three-Tier Applications
  • 33. Masificación de Internet y de las comunicaciones inalámbrica. Aparición dispositivos móviles para ejecutar aplicaciones. Integración de negocios e interoperabilidad. Conviven diferentes: Plataformas. Middleware. Arquitecturas. C/S a N Capas
  • 34. C/S a N Capas
  • 35. C/S a N Capas HTTP con clientes Thin/Fat
  • 36. C/S a N Capas con RIA
  • 37. C/S a N Capas Tipos de Clientes en Java
  • 38. Nombre Quiénes la componen Dónde se ubica Capa Cliente Aplicaciones cliente, applets, aplicaciones y otras GUIs PC Cliente Capa de Presentación JSP, Servlet y otras UIs Servidor J2EE Capa de Negocios EJBs y otros objetos de negocios Servidor J2EE Capa de Integración JMS, JDBC Servidor J2EE Capa de Recursos Bases de Datos, Sistemas Externos Servidor BD C/S a N Capas J2EE Web Server Architecture
  • 39. C/S a N Capas (From Two-Tier to N-Tier) Multitier Architecture
  • 40. Servicio Servicio Servicio Servicio Servicio Servicio Bus Acuerdos / Esquemas Acuerdos / Esquemas Arquitectura Orientada a Servicios Comunicación Comunicación
  • 41. Una aproximación para construir sistemas usando servicios los cuales se adhieren a 4 pilares: Los limites son explícitos Los servicios son Autónomos Los servicios comparten esquemas y contratos, no clases La compatibilidad de los servicios, se determina basados en las políticas Arquitectura Orientada a Servicios
  • 45.
  • 46. "The ideal architect should be a person of letters, a mathematician, familiar with historical studies, a diligent student of philosophy, acquainted with music, not ignorant of medicine, learned in the responses of jurisconsults, familiar with astronomy and astronomical calculations.“ Vitruvius, circa 25 BC Competencias del Arquitecto
  • 47. The software architect role is responsible for the software architecture, which includes the key technical decisions that constrain the overall design and implementation for the project. El Arquitecto de Software según RUP
  • 48. The software architect has overall responsibility for driving the major technical decisions, expressed as the software architecture. This typically includes identifying and documenting the architecturally significant aspects of the system, including requirements, design, implementation, and deployment "views" of the system. The architect is also responsible for providing rationale for these decisions, balancing the concerns of the various stakeholders, driving down technical risks, and ensuring that decisions are effectively communicated, validated, and adhered to. El Arquitecto de Software según RUP
  • 50. Preocupaciones del Arquitecto Lack of skilled Technical Architecture resources Are current IT Systems aligned with business process? What technologies products/vendors Should select to enact my business solutions? How do I ensure that my technology decisions are pragmatic and implementable Quality of IT Service? IT Costs? IT ROI? What is the impact of new technology on business / IT system?
  • 53.
  • 55. Propuesta de Zachman Scope (Ballpark) view Owners View (Enterprise Model) Designers View (System Model) Builder’s View (Technology Model) Out of Context View (Detailed Model) Operational View (Functioning) Data (What) Function (How) Network (Where) People (Who) Time (When) Motivation (Why)
  • 57. Propuesta de Kruchten (4 + 1) Vista de Diseño Vista de Despliegue Vista de Procesos Vista de Implementación Vista de Casos de Uso •vocabulario •funcionalidad •comportamiento •funcionamiento •capacidad de crecimiento •rendimiento •topología del sistema •distribución •entrega e instalación •ensamblado del sistema •gestión de configuraciones lógicos físicos 4+1 Vistas de Kruchten
  • 58. Vista de Diseño Vista de Despliegue Vista de Procesos Vista de Implementación Vista de Casos de Uso •Diagramas de Clases •Diagramas de Objetos •Diagramas de Casos de Uso •Diagramas de Clases (clases activas) •Diagramas de Objetos (clases activas) •Diagramas de Despliegue •Diagramas de Componentes Aspectos Estáticos: Aspectos Dinámicos •Diagramas de Interacción •Diagramas de Estado •Diagramas de Actividades Propuesta de Kruchten (4 + 1) 4+1 Vistas de Kruchten
  • 59. Negocio: Describe el funcionamiento interno del negocio central de la organización. Aplicación: Muestra las aplicaciones de la organización, su funcionalidad y relaciones. Información: Describe la información que maneja la organización y cómo está ligada a los circuitos de trabajo. Tecnología: Describe la estructura de hardware y software de base que da soporte informático a la organización. Propuesta de Microsoft Perspectivas de la Arquitectura
  • 60. Propuesta de Microsoft Es usada para definir los requerimientos funcionales y la visión que los usuarios del negocio tienen de la aplicación y describir el modelo de negocio que la arquitectura debe cubrir. Esta vista muestra los subsistemas y módulos en los que se divide la aplicación y la funcionalidad que brinda dentro de cada uno de ellos. Casos de Uso, Diagramas de Actividad, Procesos de Negocio, Entidades del Negocio, etc. Vista Conceptual
  • 61. Muestra los componentes principales de diseño y sus relaciones de forma independiente de los detalles técnicos y de cómo la funcionalidad será implementada en la plataforma de ejecución. Los arquitectos crean modelos de diseño de la aplicación, los cuales son vistas lógicas del modelo funcional y que describen la solución. Realización de los Casos de Uso, subsistemas, paquetes y clases de los casos de uso más significativos arquitectónicamente. Vista Lógica Propuesta de Microsoft
  • 62. Vista Lógica  En la actualidad, uno de los patrones de diseño más utilizado para cualquier tipo aplicaciones es el de Capas (Layers en inglés) donde, básicamente, se divide los elementos de diseño en paquetes de Interfaz de Usuario, Lógica de Negocio y Acceso a Datos y Servicios.  Diagrama de Paquetes. Propuesta de Microsoft
  • 63. Ilustra la distribución del procesamiento entre los distintos equipos que conforman la solución, incluyendo los servicios y procesos de base. Los elementos definidos en la vista lógica se "mapean" a componentes de software (servicios, procesos, etc.) o de hardware que definen más precisamente como se ejecutará la solución. Diagrama de Despliegue. Vista Física Propuesta de Microsoft
  • 64. Describe cómo se implementan los componentes físicos mostrados en vista de distribución agrupándolos en subsistemas organizados en capas y jerarquías, ilustra, además las dependencias entre éstos. Básicamente, se describe el mapeo desde los paquetes y clases del modelo de diseño a subsistemas y componentes físicos. Diagrama de Componentes. Vista Implementación Propuesta de Microsoft
  • 66. Implementación en la Arquitectura Propuesta de Microsoft
  • 68.
  • 69. Importancia de la Arquitectura de Software Criticidad de las decisiones tempranas de arquitectura Alto nivel de abstracción Vinculada con requerimientos no funcionales Fuerte impulso en la academia y la industria Herramientas arquitectónicas aún en proceso de definición y desarrollo Metodologías arquitectónicas, en proceso de elaboración preliminar Resta elaborar: tácticas arquitectónicas, métodos basados en arquitectura, vínculo entre conceptos de arquitectura, DSLs, factorías, building blocks, … Conclusiones generales
  • 70. Falta de criterio unificado No hay un modelo de proceso de punta a punta Desarrollo en paralelo de conceptos antagónicos o no coordinados Métodos ágiles Metodologías de ciclo de vida Patrones, estilos y tácticas Apropiación nominal de la AS por estrategias que no implementan principios arquitectónicos pero se benefician de su prestigio Poca masa crítica de herramientas y lenguajes de modelado arquitectónico (de alto nivel, con conectores de primera clase) Problemas pendientes en AS
  • 71.  Posicionamiento en ciclo de vida (AS en RUP)  Atributos de calidad & escenarios  [Primitivas de atributo]  Architecture Based Design (ABD)  Tácticas Arquitectónicas  Comparación de alternativas (SACAM)  Diseño basado en atributos (ADD)  Ventajas y desventajas (ATAM)  Elección de arquitectura  Análisis de arquitectura (SAAM)  Quality Attribute Workshop (QAW)  Revisión activa de diseño parcial (ARID)  Análisis de costo/beneficio (CBAM)  Reformulación: UML & RUP Metodologías arquitectónicas
  • 72. Decisiones tempranas Barry Boehm, 1995 - Si un proyecto no ha logrado una arquitectura del sistema, incluyendo su justificación, el proyecto no debe empezar el desarrollo en gran escala. Si se especifica la arquitectura como un elemento a entregar, se la puede usar a lo largo de los procesos de desarrollo y mantenimiento [Boe95]. Análisis de consistencia antes de elaborar el diseño (y escribir el código) Sistematización de la experiencia Homogeneización del lenguaje (IEEE 1471) Herramientas para la evolución Re-utilización Beneficios
  • 73.
  • 74. Carlos Billy Reynoso. Introducción a la Arquitectura de Software. Universidad de Buenos Aires http://www.willydev.net/descargas/prev/IntroArq.pdf Paul Reed. Reference Architecture: The best of best practices. IBM http://www.ibm.com/developerworks/rational/library/2774.html Amit Unde, Becoming an Architect in a System Integrator. Microsoft Corporation. http://msdn.microsoft.com/en-us/architecture/cc505970.aspx Pattern-Oriented Software Architecture, A System of Patterns, Volume 1, Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Michael Stal, Wiley & Sons, 1996, ISBN 0 471 95869 Patterns-Oriented Software Architecture, Volume 2 : Concurrent and Networked Objects, Douglas Schmidt, Michael Stal, Hans Rohnert, Frank Buschmann, 2000) Vitalie Temnenco. TOGAF or not TOGAF: Extending Enterprise Architecture beyond RUP. IBM http://www.ibm.com/developerworks/rational/library/jan07/temnenco/index.html Referencias
  • 75. Adrián Lasso. Arquitectura de Software. Microsoft Corporation. http://www.microsoft.com/spanish/msdn/comunidad/mtj.net/voices/art110.asp Michael Platt. Microsoft Architecture Overview. Microsoft Corporation. http://msdn.microsoft.com/architecture/overview/default.aspx?pull=/library/en- us/dnea/html/eaarchover.asp Carlos Reynoso y Nicolás Kicillof. Estilos y Patrones en la Estrategia de Arquitectura de Microsoft. Universidad de Buenos Aires. http://www.microsoft.com/spanish/msdn/arquitectura/roadmap_arq/lenguaje.asp Desarrollo de Software Basado en Componentes (Luis F. Iribarne Martınez, U. de Almerias, Tesis Doctoral, Capitulo 1 ) Interoperabilidad e Integración, Forum de Desarrolladores Corporativos, Madrid, Diciembre del 2002. Referencias