SlideShare una empresa de Scribd logo
1 de 38
Arquitectura de Software
Diseño de Sistemas
Temas a Tratar
• Que es Arquitectura de Software?
• Rol y Responsabilidades del Arquitecto
• Arquitectura Vs. Diseño
• Estrategias de Definición de Arquitectura
• Ejemplo de Definición de Arquitecturas
• Calidades Sistémicas y Calidad de Servicio
• Lecciones Aprendidas en Consultoría
Arquitectura de Software
•Que es una arquitectura?
•“No estamos seguros, pero la reconocemos
cuando vemos una”
•IEEE-1471-FAQ
Arquitectura de Software
• IEEE 1471
El nivel conceptual más
alto de un sistema en su
ambiente.
• Arquitectura es la
organización fundamental
de un sistema descrita en:
▫ Sus componentes.
▫ Relación entre ellos y con
el ambiente.
▫ Principios que guían su
diseño y evolución.
+ Software Architecture in
Practice - Kazman
“La estructura de
estructuras de un sistema,
la cual abarca
componentes de software,
propiedades externas
visibles de estos
componentes y sus
relaciones”.
Discusión
+ Definir la arquitectura en los proyectos actuales es
crítico...
Evolución de Arquitecturas
• Dos factores primarios en la ingeniería de
software que han incrementado la importancia
de la arquitectura:
Evolución de Arquitecturas
• Aplicaciones Monolíticas
• Interfaces gráficas de usuario
(GUI).
• Servicios de presentación,
negocios y persistencia en la
misma máquina.
• No hay concurrencia de usuarios.
• Alto acoplamiento entre tiers.
Arquitectura Cliente-Servidor
+ Clientes pesados, no estándar
+ Conexiones dedicadas a BD
+ Protocolos pesados
+ Ejecución remota de SQLs
+ Alta administración
+ Bajo rendimiento
+ Alto tráfico de red
+ Baja accesibilidad
Evolución de Arquitecturas
• Arquitectura Cliente-
Servidor
Mejorada
• Lógica de negocios en BD
• Clientes pesados, no estándar.
• Conexiones dedicadas a la BD.
• Mejora en rendimiento
• Alta administración
• Baja escalabilidad
• Baja flexibilidad
• Baja portabilidad
Arquitectura de 3 niveles
+ Reutilización de lógica de negocio para
diferentes clientes o sistemas.
+ Mejora la escalabilidad.
+ Mejora la flexibilidad.
+ Independencia de la base de datos.
Evolución de Arquitecturas
• Arquitectura de N-niveles
100.000+
+ Bajo costo de administración de clientes.
+ Alta accesibilidad.
+ Alta flexibilidad.
+ Alta disponibilidad y tolerancia a fallos.
+ Alta escalabilidad.
+ Independencia de DB
Evolución de Arquitecturas
• Visión de Arquitectura Orientada a Servicios (SOA)
Cluster de
Servidores de
Aplicaciones
Aplicaciones
Legadas
Servidor de
Procesos
(BPM)
Base de
Datos
Sistema
Batch
Portal de
Servicios Integrados
+ Requerimientos
Arquitectónicos
+ Heterogeneidad
+ Escalabilidad
+ Disponibilidad
+ Distribución
+ Manejabilidad de Procesos
+ Administración y monitoreo de procesos,
servicios e infraestructura
Que es un Arquitecto de Software?
• Rational Unified Process
Arquitecto es un rol en un proyecto
de desarrollo de software el cual es
responsable de:
– Liderar el proceso de
arquitectura.
– Producir los artefactos
necesarios: Documento de
descripción de arquitectura
– Modelos y prototipos de
arquitectura.
• SUN SL-425:
El arquitecto:
– Visualiza el comportamiento
del sistema.
– Crea los planos del sistema.
– Define la forma en la cual los
elementos del sistema
trabajan en conjunto.
– Responsable de integrar los
requerimientos no-funcionales
(NRFs) en el sistema.
Discusión
+ Existe alguna diferencia entre arquitectura y diseño
de software?
Arquitectura Vs. Diseño
Arquitectura Diseño
Nivel de
Abstracción
Alto nivel Bajo nivel. Enfoque
específico en detalles
Entregables Planear subsistemas, interfaces
con sistemas externos,
servicios horizontales,
frameworks, componentes
reutilizables, prototipo
arquitectónico
Diseño detallado
componentes.
Especificaciones de
codificación
Áreas de
Enfoque
Selección de tecnologías,
Requerimientos no funcionales
(QoS),
Manejo de riesgos
Requerimientos
funcionales
+ La arquitectura y el diseño difieren en tres áreas:
Arquitectura Vs. Diseño
• La arquitectura envuelve un conjunto de
decisiones estratégicas de diseño,
lineamientos, reglas y patrones que
restringen el diseño y la implementación de
un software.
Las decisiones
de arquitectura
causan un alto
impacto en los
proyectos de IT
Arquitectura
Diseño
Implementación
Código
Discusión
+ Cuales son los principios fundamentales en los
métodos de desarrollo de software modernos?
Arquitectura y Procesos de Desarrollo
Principios Fundamentales de Procesos Modernos
+ Desarrollo iterativo e incremental.
+ Conducido por las calidades sistémicas.
+ Centrado en la arquitectura.
+ Dirigido por los casos de uso.
+ Basada en Modelos.
+ Mejores prácticas de diseño.
Arquitectura y Procesos de Desarrollo
• Que es un Proceso de
Arquitectura?
• Rational Unified Process:
• Secuencia de actividades
que conllevan a la
producción de artefactos
arquitectónicos:
▫ Descripción de arquitectura
▫ Prototipo arquitectónico
Arquitectura y Procesos de Desarrollo
Rational Unified Process:
En el proceso de definición de
arquitectura se producen:
+ Arquitectura Inicial.
+ Arquitectura de Referencia.
+ Documento de Descripción de
arquitectura (SAD):
– Subsistemas
– Componentes
– Arquitectura Runtime.
+ Guías para el proyecto y
estándares de Diseño.
SunTone AM:
Adicionalmente se producen:
+ Matriz Tecnológica de Layers
y Tiers
+ Template de Arquitectura
Definición de Arquitectura en RUP
Fase de Inicio
+ Con respecto a la arquitectura, en la
fase de inicio de los proyectos se
establece:
– Requerimientos no-funcionales
– Lista de riesgos y restricciones
– Arquitectura inicial
Definición de Arquitectura en RUP
Fase de Elaboración
+ Con respecto a la arquitectura, en la
fase de elaboración se establece:
– Arquitectura línea base.
+ Entregables:
– Documento de Definición de
Arquitectura.
– Prototipo evolutivo de arquitectura.
– Guías y Estándares de Diseño.
Definición de Arquitectura en RUP
• Modelo de Vista 4+1
• Framework para Descripción de Arquitectura, basado en
vistas lógicas y físicas UML y una vista funcional de casos de
uso.
Process View Deployment View
Logical View
Use-Case View
Implementation View
End-user
Functionality
Programmers
Software management
Performance
Scalability
Throughput
System integrators
System topology
Delivery, installation
communication
System engineering
Analysts/Designers
Structure
Definición de Arquitectura en RUP
Definir arquitectura
candidata
Evaluar Req.
No Funcionales (NFR)
Refinar y Seleccionar
la Arquitectura
Prototipar la
Arquitectura
Valorar Calidades
Sistémicas
Ajustar
Arquitectura
Ejemplo de Definición de Arquitectura
• eBank Trusted Hosting
• Workshop de Arquitectura y Diseño de Aplicaciones J2EE
• Curso WS50I - Lucasian Labs Ltda.
• Entidad que presta el hosting
de los servicios de banca
personal en Internet
para un grupo de bancos.
Ejemplo de Definición de Arquitectura
• Dado un conjunto de requerimientos primarios
Ejemplo de Definición de Arquitectura
• Identificación de requerimientos funcionales y
de calidad de servicio (QoS)
Ejemplo de Definición de Arquitectura
• Identificación de supuestos, riesgos y
restricciones
Ejemplo de Definición de Arquitectura
• Identificación de Actores y Casos de Uso
primarios
Ejemplo de Definición de Arquitectura
• Arquitectura Lógica. Identificación de tiers
lógicos, subsistemas y paquetes
Ejemplo de Definición de Arquitectura
• Diseño de Arquitectura Runtime. Diagrama de
Despliegue.
Ejemplo de Definición de Arquitectura
• Plataforma Tecnológica. Definición de la
matriz tecnológica de layers y tiers
Discusión
+ Los requerimientos no funcionales son fuentes
comunes de riesgo…
Calidades Sistémicas
+ El manejo inadecuado de los requerimientos no
funcionales, es una de las fuentes más importante
de riesgo en los proyectos:
– Reglas de negocio de alta complejidad.
– Calidades sistémicas
 Seguridad
 Rendimiento
 Escalabilidad
 Disponibilidad
 Extensibilidad
+ La calidad de servicio (QoS = Quality Of Service) es
un riesgo primario relacionado con la arquitectura.
Calidades Sistémicas
• Definición
• Propiedades que establecen la
calidad de servicio (QoS) que
un sistema expone.
• Son globales a toda la
arquitectura
• Influencian el diseño.
• Son no-funcionales pero
observables.
+Familias de
Calidades
Sistémicas
+ Manifiestas
+ Operacionales
+ Desarrollo
+ Evolutivas
Calidades Sistémicas - Manifiestas
• Observables por los usuarios del sistema.
• Performance. Tiempo de respuesta desde el punto de vista
del usuario.
• Reliability. Grado de probabilidad de realizar operaciones
correctamente.
• Availability. Porcentaje de tiempo que un sistema puede
procesar solicitudes.
Calidades Sistémicas - Operacionales
• Throughput. Solicitudes
atendidas por unidad de tiempo.
• Manageability. Cantidad
inversa de esfuerzo para realizar
labores administrativas.
• Serviceability. Esfuerzo para
actualizar el sistema para reparar
errores.
+ Security. Prevención de uso
indeseado, por abuso o uso
inapropiado:
– Identidad
– Autoridad
– Confidencialidad
– Auditabilidad
– Integridad
+ Testability. Esfuerzo
invertido para detectar y
aislar errores.
Observables cuando el sistema está operando en producción.
Calidades Sistémicas - Evolutivas
• Relacionadas con el comportamiento del
sistema cuando sufre algún cambio.
+ Escalability. La habilidad para
soportar la calidad de servicio
requerida conforme la carga aumenta.
+ Flexibility. Esfuerzo ahorrado cuando
se hace un cambio de configuración.
+ Portability. Esfuerzo ahorrado
cuando se migra a una infraestructura
diferente.
+ Reusability. Esfuerzo ganado
en la utilización de componentes
existentes.
+ Extensibility. Esfuerzo ahorrado
para adicionar nuevas
funcionalidades.
+ Mantainability. Esfuerzo
ahorrado para revisar y corregir
errores.
Lecciones Aprendidas
• Defina una persona o un grupo de personas experimentadas,
encargadas de definir y validar arquitectura de sus proyectos.
• Establezca los requerimientos de calidad de servicio con los
expertos del dominio y con los usuarios finales.
• Involucre al equipo de trabajo en el proceso de definición de
arquitectura.
• Documente y comunique la arquitectura y
lineamientos de diseño y logre aceptación.
No la imponga.
• Sea firme con las decisiones, valore impactos
e identifique riesgos.
Lecciones Aprendidas
• Valore alternativas de arquitectura y diseño tomando en cuenta las
calidades sistémicas y relación costo-beneficio.
• Instancie los mecanismos arquitectónicos definidos incrementalmente. No
los instancie en bloque.
• Reutilice frameworks, patrones de diseño y mejores prácticas. Sea racional
en el uso de tecnologías.
• Tenga siempre presente que requerimientos
de seguridad, integración con sistemas
externos, canales de comunicaciones
con poco ancho de banda,
crecimiento del volumen de
usuario, expectativas de cambios de
requerimientos son fuentes comunes de riesgo.

Más contenido relacionado

La actualidad más candente

Cuadro comparativo entre moprosoft y cmmi
Cuadro comparativo entre moprosoft y cmmi Cuadro comparativo entre moprosoft y cmmi
Cuadro comparativo entre moprosoft y cmmi
Darthuz Kilates
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicas
landeta_p
 
2.2 relación de cmm con psp y tsp
2.2 relación de cmm con psp  y tsp2.2 relación de cmm con psp  y tsp
2.2 relación de cmm con psp y tsp
eeelllkkk
 
Ingeniería de requisitos
Ingeniería de requisitosIngeniería de requisitos
Ingeniería de requisitos
Zuleima
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de software
Liliana Pacheco
 

La actualidad más candente (20)

Rup disciplinas
Rup disciplinasRup disciplinas
Rup disciplinas
 
Ciclo Vida del Software
Ciclo Vida del SoftwareCiclo Vida del Software
Ciclo Vida del Software
 
Modelos de calidad CMMI - Moprosoft
Modelos de calidad CMMI - MoprosoftModelos de calidad CMMI - Moprosoft
Modelos de calidad CMMI - Moprosoft
 
Cuadro comparativo entre moprosoft y cmmi
Cuadro comparativo entre moprosoft y cmmi Cuadro comparativo entre moprosoft y cmmi
Cuadro comparativo entre moprosoft y cmmi
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicas
 
2.2 relación de cmm con psp y tsp
2.2 relación de cmm con psp  y tsp2.2 relación de cmm con psp  y tsp
2.2 relación de cmm con psp y tsp
 
Ingeniería de requisitos
Ingeniería de requisitosIngeniería de requisitos
Ingeniería de requisitos
 
Principios diseño del software
Principios diseño del software Principios diseño del software
Principios diseño del software
 
Ingenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareIngenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de software
 
Iso 25000
Iso 25000Iso 25000
Iso 25000
 
Fundamentos de ingenieria del software (2)
Fundamentos de ingenieria del software (2)Fundamentos de ingenieria del software (2)
Fundamentos de ingenieria del software (2)
 
Metodologias agiles Programacion Xtrema
Metodologias agiles Programacion Xtrema Metodologias agiles Programacion Xtrema
Metodologias agiles Programacion Xtrema
 
Prototipos
PrototiposPrototipos
Prototipos
 
Analisis y diseño de sistemas preguntas de repaso
Analisis y diseño de sistemas preguntas de repasoAnalisis y diseño de sistemas preguntas de repaso
Analisis y diseño de sistemas preguntas de repaso
 
Estrategias prueba de software
Estrategias prueba de softwareEstrategias prueba de software
Estrategias prueba de software
 
PSW Unidad 1 PROCESO DE SOFTWARE
PSW Unidad 1 PROCESO DE SOFTWAREPSW Unidad 1 PROCESO DE SOFTWARE
PSW Unidad 1 PROCESO DE SOFTWARE
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de software
 
Arquitectura de sistemas distribuidos
Arquitectura de sistemas distribuidosArquitectura de sistemas distribuidos
Arquitectura de sistemas distribuidos
 
MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de software
 

Similar a Arquitecturas de software exposicion

Clase7 unidad1
Clase7 unidad1Clase7 unidad1
Clase7 unidad1
zurda21
 
050608 architect academy webcast 1
050608 architect academy webcast 1050608 architect academy webcast 1
050608 architect academy webcast 1
juliank13
 
1_1 Introduccion
1_1 Introduccion1_1 Introduccion
1_1 Introduccion
landeta_p
 
Actividad remedial_Maria_Albarran
Actividad remedial_Maria_AlbarranActividad remedial_Maria_Albarran
Actividad remedial_Maria_Albarran
Marijoalbarranb
 
Desarrollo de software orientado a la web
Desarrollo de software orientado a la webDesarrollo de software orientado a la web
Desarrollo de software orientado a la web
fredycollaguazo
 

Similar a Arquitecturas de software exposicion (20)

Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de software
 
Arquitectura de Software
Arquitectura de SoftwareArquitectura de Software
Arquitectura de Software
 
Clase7
Clase7Clase7
Clase7
 
Clase7 unidad1
Clase7 unidad1Clase7 unidad1
Clase7 unidad1
 
Sesión03 2014 proceso desarrollo sw
Sesión03 2014 proceso desarrollo swSesión03 2014 proceso desarrollo sw
Sesión03 2014 proceso desarrollo sw
 
Introducción a la Arquitectura de Software
Introducción a la Arquitectura de SoftwareIntroducción a la Arquitectura de Software
Introducción a la Arquitectura de Software
 
Sesión 3: Modelos prescriptivos de proceso de software
Sesión 3: Modelos prescriptivos de proceso de softwareSesión 3: Modelos prescriptivos de proceso de software
Sesión 3: Modelos prescriptivos de proceso de software
 
Sesión 3: Modelos prescriptivos de proceso
Sesión 3: Modelos prescriptivos de procesoSesión 3: Modelos prescriptivos de proceso
Sesión 3: Modelos prescriptivos de proceso
 
050608 architect academy webcast 1
050608 architect academy webcast 1050608 architect academy webcast 1
050608 architect academy webcast 1
 
3. modelos prescriptivos de proceso
3. modelos prescriptivos de proceso3. modelos prescriptivos de proceso
3. modelos prescriptivos de proceso
 
1_1 Introduccion
1_1 Introduccion1_1 Introduccion
1_1 Introduccion
 
Ciclo de Vida y roles
Ciclo de Vida y roles Ciclo de Vida y roles
Ciclo de Vida y roles
 
Fundamentos de la arquitectura del software
Fundamentos de la arquitectura del softwareFundamentos de la arquitectura del software
Fundamentos de la arquitectura del software
 
Actividad remedial_Maria_Albarran
Actividad remedial_Maria_AlbarranActividad remedial_Maria_Albarran
Actividad remedial_Maria_Albarran
 
Conceptosdemodelado.pdf
Conceptosdemodelado.pdfConceptosdemodelado.pdf
Conceptosdemodelado.pdf
 
Ciclo de vida
Ciclo de vidaCiclo de vida
Ciclo de vida
 
2017.10.16-senati-powerpoint sesion8.pptx
2017.10.16-senati-powerpoint sesion8.pptx2017.10.16-senati-powerpoint sesion8.pptx
2017.10.16-senati-powerpoint sesion8.pptx
 
Desarrollo de software orientado a la web
Desarrollo de software orientado a la webDesarrollo de software orientado a la web
Desarrollo de software orientado a la web
 
Ingeniería de software - definiciones
Ingeniería de software - definicionesIngeniería de software - definiciones
Ingeniería de software - definiciones
 
avanttic Webinar Hoja de Ruta SOA
avanttic Webinar Hoja de Ruta SOA avanttic Webinar Hoja de Ruta SOA
avanttic Webinar Hoja de Ruta SOA
 

Último

PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdfPROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
EduardoJosVargasCama1
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 

Último (20)

PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdfPROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
prostitución en España: una mirada integral!
prostitución en España: una mirada integral!prostitución en España: una mirada integral!
prostitución en España: una mirada integral!
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
Los dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la VerdadLos dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la Verdad
 
AEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxAEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptx
 
Usos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicasUsos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicas
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
La Evaluacion Formativa SM6 Ccesa007.pdf
La Evaluacion Formativa SM6  Ccesa007.pdfLa Evaluacion Formativa SM6  Ccesa007.pdf
La Evaluacion Formativa SM6 Ccesa007.pdf
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
Desarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresDesarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por Valores
 

Arquitecturas de software exposicion

  • 2. Temas a Tratar • Que es Arquitectura de Software? • Rol y Responsabilidades del Arquitecto • Arquitectura Vs. Diseño • Estrategias de Definición de Arquitectura • Ejemplo de Definición de Arquitecturas • Calidades Sistémicas y Calidad de Servicio • Lecciones Aprendidas en Consultoría
  • 3. Arquitectura de Software •Que es una arquitectura? •“No estamos seguros, pero la reconocemos cuando vemos una” •IEEE-1471-FAQ
  • 4. Arquitectura de Software • IEEE 1471 El nivel conceptual más alto de un sistema en su ambiente. • Arquitectura es la organización fundamental de un sistema descrita en: ▫ Sus componentes. ▫ Relación entre ellos y con el ambiente. ▫ Principios que guían su diseño y evolución. + Software Architecture in Practice - Kazman “La estructura de estructuras de un sistema, la cual abarca componentes de software, propiedades externas visibles de estos componentes y sus relaciones”.
  • 5. Discusión + Definir la arquitectura en los proyectos actuales es crítico...
  • 6. Evolución de Arquitecturas • Dos factores primarios en la ingeniería de software que han incrementado la importancia de la arquitectura:
  • 7. Evolución de Arquitecturas • Aplicaciones Monolíticas • Interfaces gráficas de usuario (GUI). • Servicios de presentación, negocios y persistencia en la misma máquina. • No hay concurrencia de usuarios. • Alto acoplamiento entre tiers. Arquitectura Cliente-Servidor + Clientes pesados, no estándar + Conexiones dedicadas a BD + Protocolos pesados + Ejecución remota de SQLs + Alta administración + Bajo rendimiento + Alto tráfico de red + Baja accesibilidad
  • 8. Evolución de Arquitecturas • Arquitectura Cliente- Servidor Mejorada • Lógica de negocios en BD • Clientes pesados, no estándar. • Conexiones dedicadas a la BD. • Mejora en rendimiento • Alta administración • Baja escalabilidad • Baja flexibilidad • Baja portabilidad Arquitectura de 3 niveles + Reutilización de lógica de negocio para diferentes clientes o sistemas. + Mejora la escalabilidad. + Mejora la flexibilidad. + Independencia de la base de datos.
  • 9. Evolución de Arquitecturas • Arquitectura de N-niveles 100.000+ + Bajo costo de administración de clientes. + Alta accesibilidad. + Alta flexibilidad. + Alta disponibilidad y tolerancia a fallos. + Alta escalabilidad. + Independencia de DB
  • 10. Evolución de Arquitecturas • Visión de Arquitectura Orientada a Servicios (SOA) Cluster de Servidores de Aplicaciones Aplicaciones Legadas Servidor de Procesos (BPM) Base de Datos Sistema Batch Portal de Servicios Integrados + Requerimientos Arquitectónicos + Heterogeneidad + Escalabilidad + Disponibilidad + Distribución + Manejabilidad de Procesos + Administración y monitoreo de procesos, servicios e infraestructura
  • 11. Que es un Arquitecto de Software? • Rational Unified Process Arquitecto es un rol en un proyecto de desarrollo de software el cual es responsable de: – Liderar el proceso de arquitectura. – Producir los artefactos necesarios: Documento de descripción de arquitectura – Modelos y prototipos de arquitectura. • SUN SL-425: El arquitecto: – Visualiza el comportamiento del sistema. – Crea los planos del sistema. – Define la forma en la cual los elementos del sistema trabajan en conjunto. – Responsable de integrar los requerimientos no-funcionales (NRFs) en el sistema.
  • 12. Discusión + Existe alguna diferencia entre arquitectura y diseño de software?
  • 13. Arquitectura Vs. Diseño Arquitectura Diseño Nivel de Abstracción Alto nivel Bajo nivel. Enfoque específico en detalles Entregables Planear subsistemas, interfaces con sistemas externos, servicios horizontales, frameworks, componentes reutilizables, prototipo arquitectónico Diseño detallado componentes. Especificaciones de codificación Áreas de Enfoque Selección de tecnologías, Requerimientos no funcionales (QoS), Manejo de riesgos Requerimientos funcionales + La arquitectura y el diseño difieren en tres áreas:
  • 14. Arquitectura Vs. Diseño • La arquitectura envuelve un conjunto de decisiones estratégicas de diseño, lineamientos, reglas y patrones que restringen el diseño y la implementación de un software. Las decisiones de arquitectura causan un alto impacto en los proyectos de IT Arquitectura Diseño Implementación Código
  • 15. Discusión + Cuales son los principios fundamentales en los métodos de desarrollo de software modernos?
  • 16. Arquitectura y Procesos de Desarrollo Principios Fundamentales de Procesos Modernos + Desarrollo iterativo e incremental. + Conducido por las calidades sistémicas. + Centrado en la arquitectura. + Dirigido por los casos de uso. + Basada en Modelos. + Mejores prácticas de diseño.
  • 17. Arquitectura y Procesos de Desarrollo • Que es un Proceso de Arquitectura? • Rational Unified Process: • Secuencia de actividades que conllevan a la producción de artefactos arquitectónicos: ▫ Descripción de arquitectura ▫ Prototipo arquitectónico
  • 18. Arquitectura y Procesos de Desarrollo Rational Unified Process: En el proceso de definición de arquitectura se producen: + Arquitectura Inicial. + Arquitectura de Referencia. + Documento de Descripción de arquitectura (SAD): – Subsistemas – Componentes – Arquitectura Runtime. + Guías para el proyecto y estándares de Diseño. SunTone AM: Adicionalmente se producen: + Matriz Tecnológica de Layers y Tiers + Template de Arquitectura
  • 19. Definición de Arquitectura en RUP Fase de Inicio + Con respecto a la arquitectura, en la fase de inicio de los proyectos se establece: – Requerimientos no-funcionales – Lista de riesgos y restricciones – Arquitectura inicial
  • 20. Definición de Arquitectura en RUP Fase de Elaboración + Con respecto a la arquitectura, en la fase de elaboración se establece: – Arquitectura línea base. + Entregables: – Documento de Definición de Arquitectura. – Prototipo evolutivo de arquitectura. – Guías y Estándares de Diseño.
  • 21. Definición de Arquitectura en RUP • Modelo de Vista 4+1 • Framework para Descripción de Arquitectura, basado en vistas lógicas y físicas UML y una vista funcional de casos de uso. Process View Deployment View Logical View Use-Case View Implementation View End-user Functionality Programmers Software management Performance Scalability Throughput System integrators System topology Delivery, installation communication System engineering Analysts/Designers Structure
  • 22. Definición de Arquitectura en RUP Definir arquitectura candidata Evaluar Req. No Funcionales (NFR) Refinar y Seleccionar la Arquitectura Prototipar la Arquitectura Valorar Calidades Sistémicas Ajustar Arquitectura
  • 23. Ejemplo de Definición de Arquitectura • eBank Trusted Hosting • Workshop de Arquitectura y Diseño de Aplicaciones J2EE • Curso WS50I - Lucasian Labs Ltda. • Entidad que presta el hosting de los servicios de banca personal en Internet para un grupo de bancos.
  • 24. Ejemplo de Definición de Arquitectura • Dado un conjunto de requerimientos primarios
  • 25. Ejemplo de Definición de Arquitectura • Identificación de requerimientos funcionales y de calidad de servicio (QoS)
  • 26. Ejemplo de Definición de Arquitectura • Identificación de supuestos, riesgos y restricciones
  • 27. Ejemplo de Definición de Arquitectura • Identificación de Actores y Casos de Uso primarios
  • 28. Ejemplo de Definición de Arquitectura • Arquitectura Lógica. Identificación de tiers lógicos, subsistemas y paquetes
  • 29. Ejemplo de Definición de Arquitectura • Diseño de Arquitectura Runtime. Diagrama de Despliegue.
  • 30. Ejemplo de Definición de Arquitectura • Plataforma Tecnológica. Definición de la matriz tecnológica de layers y tiers
  • 31. Discusión + Los requerimientos no funcionales son fuentes comunes de riesgo…
  • 32. Calidades Sistémicas + El manejo inadecuado de los requerimientos no funcionales, es una de las fuentes más importante de riesgo en los proyectos: – Reglas de negocio de alta complejidad. – Calidades sistémicas  Seguridad  Rendimiento  Escalabilidad  Disponibilidad  Extensibilidad + La calidad de servicio (QoS = Quality Of Service) es un riesgo primario relacionado con la arquitectura.
  • 33. Calidades Sistémicas • Definición • Propiedades que establecen la calidad de servicio (QoS) que un sistema expone. • Son globales a toda la arquitectura • Influencian el diseño. • Son no-funcionales pero observables. +Familias de Calidades Sistémicas + Manifiestas + Operacionales + Desarrollo + Evolutivas
  • 34. Calidades Sistémicas - Manifiestas • Observables por los usuarios del sistema. • Performance. Tiempo de respuesta desde el punto de vista del usuario. • Reliability. Grado de probabilidad de realizar operaciones correctamente. • Availability. Porcentaje de tiempo que un sistema puede procesar solicitudes.
  • 35. Calidades Sistémicas - Operacionales • Throughput. Solicitudes atendidas por unidad de tiempo. • Manageability. Cantidad inversa de esfuerzo para realizar labores administrativas. • Serviceability. Esfuerzo para actualizar el sistema para reparar errores. + Security. Prevención de uso indeseado, por abuso o uso inapropiado: – Identidad – Autoridad – Confidencialidad – Auditabilidad – Integridad + Testability. Esfuerzo invertido para detectar y aislar errores. Observables cuando el sistema está operando en producción.
  • 36. Calidades Sistémicas - Evolutivas • Relacionadas con el comportamiento del sistema cuando sufre algún cambio. + Escalability. La habilidad para soportar la calidad de servicio requerida conforme la carga aumenta. + Flexibility. Esfuerzo ahorrado cuando se hace un cambio de configuración. + Portability. Esfuerzo ahorrado cuando se migra a una infraestructura diferente. + Reusability. Esfuerzo ganado en la utilización de componentes existentes. + Extensibility. Esfuerzo ahorrado para adicionar nuevas funcionalidades. + Mantainability. Esfuerzo ahorrado para revisar y corregir errores.
  • 37. Lecciones Aprendidas • Defina una persona o un grupo de personas experimentadas, encargadas de definir y validar arquitectura de sus proyectos. • Establezca los requerimientos de calidad de servicio con los expertos del dominio y con los usuarios finales. • Involucre al equipo de trabajo en el proceso de definición de arquitectura. • Documente y comunique la arquitectura y lineamientos de diseño y logre aceptación. No la imponga. • Sea firme con las decisiones, valore impactos e identifique riesgos.
  • 38. Lecciones Aprendidas • Valore alternativas de arquitectura y diseño tomando en cuenta las calidades sistémicas y relación costo-beneficio. • Instancie los mecanismos arquitectónicos definidos incrementalmente. No los instancie en bloque. • Reutilice frameworks, patrones de diseño y mejores prácticas. Sea racional en el uso de tecnologías. • Tenga siempre presente que requerimientos de seguridad, integración con sistemas externos, canales de comunicaciones con poco ancho de banda, crecimiento del volumen de usuario, expectativas de cambios de requerimientos son fuentes comunes de riesgo.