Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Diseo de Sistemas
Temas a Tratar
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 Lecciones Aprendidas en Consultora
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 ms alto de un sistema en su ambiente. Arquitectura es la organizacin fundamental de un sistema descrita en:
Sus componentes. Relacin entre ellos y con el ambiente. Principios que guan su diseo y evolucin.
+ 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.
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 ClienteServidor 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)
Portal de Servicios Integrados Cluster de Servidores de Aplicaciones
+ Requerimientos
Sistema Batch
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
Discusin
+ Existe alguna diferencia entre arquitectura y diseo
de software?
reas de Enfoque
Arquitectura
Discusin
+ Cuales son los principios fundamentales en los
SunTone AM:
Adicionalmente se producen: Matriz Tecnolgica de Layers y Tiers + Template de Arquitectura
+
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
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
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. Son no-funcionales pero observables.
+ Familias de
Calidades Sistmicas
+ Manifiestas + Operacionales + Desarrollo + Evolutivas
Serviceability. Esfuerzo para actualizar el sistema para reparar + Testability. Esfuerzo invertido para detectar y errores. aislar errores.
cuando se migra a una infraestructura + Mantainability. Esfuerzo diferente. 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 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.
Lecciones Aprendidas
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.