Beruflich Dokumente
Kultur Dokumente
2011
CONTENIDO
Que es Arquitectura de Software? Rol y Responsabilidades del Arquitecto Arquitectura Vs. Diseo Estrategias de Definicin de Arquitectura Ejemplo de Definicin de Arquitecturas Calidades Sistmicas y Calidad de Servicio Consejos
ARQUITECTURA DE SOFTWARE
Que es una arquitectura?
No estamos seguros, pero la reconocemos cuando vemos una IEEE-1471-FAQ
ARQUITECTURA DE SOFTWARE
+ Software Architecture in IEEE 1471 Practice - Kazman El nivel conceptual ms alto de un sistema en su ambiente. La estructura de
estructuras de un sistema, la cual abarca componentes de software, propiedades externas visibles de estos componentes y sus relaciones.
ARQUITECTURA DE SOFTWARE
Estructura de los componentes de un sistema, sus interrelaciones, y principios y directivas que gobiernan su diseo y evolucin en el tiempo.
David Garlan and Dewayne Perry, 1995
DILEMA ..
Discusin
+ Definir la arquitectura en los proyectos actuales es
crtico...
EVOLUCIN DE ARQUITECTURAS
Dos factores primarios en la ingeniera de software que han incrementado la importancia de la arquitectura:
EVOLUCIN DE ARQUITECTURAS
Aplicaciones Monolticas
Interfaces grficas de usuario (GUI). Servicios de presentacin, negocios y persistencia en la misma mquina. No hay concurrencia de usuarios. Alto acoplamiento entre tiers.
Arquitectura Cliente-Servidor
+ Clientes pesados, no estndar + Conexiones dedicadas a BD + Protocolos pesados + Ejecucin remota de SQLs + Alta administracin
+ Bajo rendimiento
+ Alto trfico de red + Baja accesibilidad
EVOLUCIN DE ARQUITECTURAS
Arquitectura Cliente-Servidor Mejorada Lgica de negocios en BD Clientes pesados, no estndar. Conexiones dedicadas a la BD. Mejora en rendimiento Alta administracin Baja escalabilidad Baja flexibilidad Baja portabilidad Arquitectura de 3 niveles
+ Reutilizacin de lgica de negocio
para diferentes clientes o sistemas. + Mejora la escalabilidad. + Mejora la flexibilidad. + Independencia de la base de datos.
EVOLUCIN DE ARQUITECTURAS
Arquitectura de N-niveles
100.000+
+ Bajo costo de administracin de clientes. + Alta accesibilidad. + Alta flexibilidad. + Alta disponibilidad y tolerancia a fallos. + Alta escalabilidad. + Independencia de DB
EVOLUCIN DE ARQUITECTURAS
Visin de Arquitectura Orientada a Servicios (SOA)
Sistema Batch
Portal de Servicios Integrados Cluster de Servidores de Aplicaciones
+ Requerimientos
Arquitectnicos
+ Heterogeneidad
+ Escalabilidad + Disponibilidad
Base de Datos
Servidor de Procesos + Distribucin (BPM) Aplicaciones + Manejabilidad de Procesos Legadas + Administracin y monitoreo de procesos,
servicios e infraestructura
Liderar el proceso de arquitectura. Producir los artefactos necesarios: Documento de descripcin de arquitectura Modelos y prototipos de arquitectura.
DILEMA ..
Discusin
+ Existe alguna diferencia entre arquitectura y diseo
de software?
reas de Enfoque
Arquitectura
+ Basada en Modelos.
+ Mejores prcticas de diseo.
SunTone AM:
Adicionalmente se producen: Matriz Tecnolgica de Layers y Tiers + Template de Arquitectura
+
DEFINICIN DE ARQUITECTURA EN UP
Fase de Inicio
+
DEFINICIN DE ARQUITECTURA EN UP
Fase de Elaboracin
+
Con respecto a la arquitectura, en la fase de elaboracin se establece: Arquitectura lnea base. Entregables: Documento de Definicin de Arquitectura. Prototipo evolutivo de arquitectura. Guas y Estndares de Diseo.
Logical View
Implementation View
Analysts/Designers Structure
End-user Functionality
Deployment View
System engineering System topology Delivery, installation communication
DEFINICIN DE ARQUITECTURA EN UP
Definir arquitectura candidata
Entidad que presta el hosting de los servicios de banca personal en Internet para un grupo de bancos.
DILEMA ..
Discusin
+ Los requerimientos no funcionales son fuentes comunes
de riesgo
CALIDADES SISTMICAS
+ El manejo inadecuado de los requerimientos no
CALIDADES SISTMICAS
Definicin
Propiedades que establecen la calidad de servicio (QoS) que un sistema expone. Son globales a toda la arquitectura Influencian el diseo.
+ Familias de
Calidades Sistmicas
+ Manifiestas
+ Operacionales + Desarrollo + Evolutivas
+ Testability. Esfuerzo
cuando se migra a una infraestructura + Mantainability. Esfuerzo diferente. ahorrado para revisar y corregir errores.
CONSEJOS
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 definicin de arquitectura. Documente y comunique la arquitectura y lineamientos de diseo y logre aceptacin. No la imponga. Sea firme con las decisiones, valore impactos e identifique riesgos.
CONSEJOS
Valore alternativas de arquitectura y diseo tomando en cuenta las calidades sistmicas y relacin costo-beneficio.
Instancie los mecanismos arquitectnicos definidos incrementalmente. No los instancie en bloque. Reutilice frameworks, patrones de diseo y mejores prcticas. Sea racional en el uso de tecnologas.
Tenga siempre presente que requerimientos de seguridad, integracin 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.