Académique Documents
Professionnel Documents
Culture Documents
de Arquitectura de Software
Mauricio Naranjo
Chief Architect
mnaranjo@lucasian.com
Lucasian Labs Ltda.
Agenda Conferencia
+ 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
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
Evolucin de Arquitecturas
+ Aplicaciones Monolticas
+ Interfaces grficas de usuario (GUI).
+ Servicios de presentacin, negocios
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
Arquitectura de 3 niveles
Mejorada
+ Reutilizacin de lgica de negocio para
+ 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
Evolucin de Arquitecturas
+ Arquitectura de N-niveles
100.000+
Evolucin de Arquitecturas
+ Visin de Arquitectura Orientada a Servicios (SOA)
+ Requerimientos
Sistema
Batch
Portal de
Servicios Integrados
Arquitectnicos
+ Heterogeneidad
+ Escalabilidad
Base de
Datos
+ Disponibilidad
Servidor de
Procesos
+ Distribucin
(BPM) Aplicaciones
+ Manejabilidad de Procesos
Legadas
+ Administracin y monitoreo de procesos,
servicios e infraestructura
10
Cluster de
Servidores de
Aplicaciones
SUN SL-425:
11
Discusin
+ Existe alguna diferencia entre arquitectura y diseo
de software?
12
Alto nivel
Entregables
Diseo detallado
componentes.
Seleccin de tecnologas,
Requerimientos no funcionales
(QoS),
Manejo de riesgos
Requerimientos
funcionales
reas de
Enfoque
13
Diseo
Especificaciones de
codificacin
Las decisiones
de arquitectura
causan un alto
impacto en los
proyectos de IT
Arquitectura
14
Discusin
+ Cuales son los principios fundamentales en los
15
16
que conllevan a la
produccin de artefactos
arquitectnicos:
Descripcin de arquitectura
Prototipo arquitectnico
17
SunTone AM:
En el proceso de definicin de
arquitectura se producen:
Adicionalmente se producen:
Matriz Tecnolgica de Layers
y Tiers
+ Template de Arquitectura
+
Arquitectura Inicial.
+ Arquitectura de Referencia.
+ Documento de Descripcin de
arquitectura (SAD):
+
18
Subsistemas
Componentes
Arquitectura Runtime.
Requerimientos no-funcionales
Lista de riesgos y restricciones
Arquitectura inicial
19
20
Entregables:
Documento de Definicin de
Arquitectura.
Prototipo evolutivo de arquitectura.
Guas y Estndares de Diseo.
Logical View
Analysts/Designers
Structure
Implementation View
Programmers
Software management
End-user
Functionality
Use-Case View
Process View
System integrators
Performance
Scalability
Throughput
21
Deployment View
System engineering
System topology
Delivery, installation
communication
22
Ajustar
Arquitectura
23
24
Business
Integration
Business
Database Integration
DAO
Factory
Business
Delegate
Action
Session Facade
Oracle DAO
Factory
Composite Entity
Front Controller
View
JSF Components
25
Service
Locator
Value
Object
DAO
OracleDAO
arquitectnicos (AEs).
+ La arquitectura se crea incrementalmente acorde a un
26
AE 7
27
AE 8
AE 2
AE 8
MMF A
MMF B
MMF C
Ejemplo de Definicin de
Arquitectura
+ eBank Trusted Hosting
+ Workshop de Arquitectura y Diseo de Aplicaciones J2EE
+ Curso WS50I - Lucasian Labs Ltda.
+ Entidad que presta el hosting
28
Ejemplo de Definicin de
Arquitectura
+ Dado un conjunto de requerimientos primarios
29
Ejemplo de Definicin de
Arquitectura
+ Identificacin de requerimientos funcionales y de
30
Ejemplo de Definicin de
Arquitectura
+ Identificacin de supuestos, riesgos y restricciones
31
Ejemplo de Definicin de
Arquitectura
+ Identificacin de Actores y Casos de Uso primarios
32
Ejemplo de Definicin de
Arquitectura
+ Arquitectura Lgica. Identificacin de tiers lgicos,
subsistemas y paquetes
33
Ejemplo de Definicin de
Arquitectura
+ Diseo de Arquitectura Runtime. Diagrama de
Despliegue.
34
Ejemplo de Definicin de
Arquitectura
+ Plataforma Tecnolgica. Definicin de la matriz
35
Discusin
+ Los requerimientos no funcionales son fuentes
comunes de riesgo
36
Calidades Sistmicas
+ El manejo inadecuado de los requerimientos no
Seguridad
Rendimiento
Escalabilidad
Disponibilidad
Extensibilidad
Calidades Sistmicas
+ Definicin
+ Propiedades que establecen la
+ Familias de
Calidades
Sistmicas
+ Manifiestas
+ Operacionales
+ Desarrollo
+ Evolutivas
observables.
38
usuario.
+ Reliability. Grado de probabilidad de realizar operaciones
correctamente.
+ Availability. Porcentaje de tiempo que un sistema puede
procesar solicitudes.
39
40
+ Testability. Esfuerzo
la utilizacin de componentes
existentes.
+ Extensibility. Esfuerzo ahorrado
41
Lecciones Aprendidas en
Consultora
+ Defina una persona o un grupo de personas experimentadas,
arquitectura.
+ Documente y comunique la arquitectura y
e identifique riesgos.
42
Lecciones Aprendidas en
Consultora
+ Valore alternativas de arquitectura y diseo tomando en cuenta las
Fundamentos de Definicin de
Arquitectura de Software
Mauricio Naranjo
Chief Architect
mnaranjo@lucasian.com
Lucasian Labs Ltda.
www.lucasian.com
44