Sei sulla pagina 1di 44

Septiembre 27 a Octubre 01 de 2005

Bogot, Colombia
Fundamentos de Definicin
de Arquitectura de Software
Mauricio Naranjo
Chief Architect
mnaranjo@lucasian.com

Lucasian Labs Ltda.



XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
2
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


XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
3
Arquitectura de Software
+Que es una arquitectura?

+No estamos seguros, pero la reconocemos cuando
vemos una
+IEEE-1471-FAQ
XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
4
+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.
Arquitectura de Software
+ 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.


XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
5
Discusin

+ Definir la arquitectura en los proyectos actuales es
crtico...

XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
6
+Dos factores primarios en la ingeniera de software
que han incrementado la importancia de la
arquitectura:


Evolucin de Arquitecturas
XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
7
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

XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
8
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.

XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
9
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
XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
10
Evolucin de Arquitecturas
+Visin 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
Arquitectnicos

+ Heterogeneidad
+ Escalabilidad
+ Disponibilidad
+ Distribucin
+ Manejabilidad de Procesos
+ Administracin y monitoreo de procesos,
servicios e infraestructura

XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
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 descripcin 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.
XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
12
Discusin

+ Existe alguna diferencia entre arquitectura y diseo
de software?

XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
13
Arquitectura Vs. Diseo
+ La arquitectura y el diseo difieren en tres reas:
Arquitectura Diseo
Nivel de
Abstraccin
Alto nivel Bajo nivel. Enfoque
especfico en detalles
Entregables Planear subsistemas, interfaces
con sistemas externos,
servicios horizontales,
frameworks, componentes
reutilizables, prototipo
arquitectnico
Diseo detallado
componentes.

Especificaciones de
codificacin
reas de
Enfoque
Seleccin de tecnologas,
Requerimientos no funcionales
(QoS),
Manejo de riesgos
Requerimientos
funcionales
XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
14
Arquitectura Vs. Diseo
+La arquitectura envuelve un conjunto de decisiones
estratgicas de diseo, lineamientos, reglas y
patrones que restringen el diseo y la implementacin
de un software.
Las decisiones
de arquitectura
causan un alto
impacto en los
proyectos de IT
Arquitectura
Diseo
Implementacin
Cdigo
XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
15
Discusin

+ Cuales son los principios fundamentales en los
mtodos de desarrollo de software modernos?

XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
16
Arquitectura y Procesos de Desarrollo
Principios Fundamentales de Procesos Modernos

+ Desarrollo iterativo e incremental.
+ Conducido por las calidades sistmicas.
+ Centrado en la arquitectura.
+ Dirigido por los casos de uso.
+ Basada en Modelos.
+ Mejores prcticas de diseo.
XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
17
Arquitectura y Procesos de Desarrollo
+ Que es un Proceso de Arquitectura?

+ Rational Unified Process:
+ Secuencia de actividades
que conllevan a la
produccin de artefactos
arquitectnicos:

Descripcin de arquitectura
Prototipo arquitectnico
XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
18
Arquitectura y Procesos de Desarrollo
Rational Unified Process:
En el proceso de definicin de
arquitectura se producen:

+ Arquitectura Inicial.
+ Arquitectura de Referencia.
+ Documento de Descripcin de
arquitectura (SAD):
Subsistemas
Componentes
Arquitectura Runtime.

+ Guas para el proyecto y
estndares de Diseo.
SunTone AM:
Adicionalmente se producen:

+ Matriz Tecnolgica de Layers
y Tiers
+ Template de Arquitectura

XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
19
Definicin 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

XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
20
Definicin de Arquitectura en RUP
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.

XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
21
Definicin de Arquitectura en RUP
+ Modelo de Vista 4+1
+ Framework para Descripcin de Arquitectura, basado en vistas
lgicas y fsicas 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
XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
22
Definicin de Arquitectura en RUP
Definir arquitectura
candidata
Evaluar Req.
No Funcionales (NFR)
Refinar y Seleccionar
la Arquitectura
Prototipar la
Arquitectura
Valorar Calidades
Sistmicas
Ajustar
Arquitectura
XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
23
Definicin de Arquitectura en SunTone AM
+ Metodologa de desarrollo de software anloga al Unified
Process (UP) con un fuerte nfasis en Calidad de Servicio y
Patrones de diseo.

+ El cubo: framework conceptual, el cual provee una vista
tridimensional:
Tiers lgicos
Layers tecnolgicos
Calidades sistmicas



XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
24
Definicin de Arquitectura en SunTone AM
XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
25
Definicin de Arquitectura en SunTone
+Principios Arquitectnicos
+La arquitectura es primariamente necesaria para crear
un framework para el desarrollo basado en patrones y
para la entrega de calidades sistmicas predecibles.

Business
Session Facade
Composite Entity
Database Integration
DAO
Factory
Oracle DAO
Factory
OracleDAO
DAO
Value
Object
Business
Integration
Business
Delegate
Service
Locator
Presentation
Front Controller
Action Factory
Action
View
JSF Components
XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
26
Definicin de Arquitectura en IFM
+Principios Arquitectnicos
+El proceso de creacin de arquitectura debe ser un
proceso de creacin de valor.

+La arquitectura se descompone en elementos
arquitectnicos (AEs).

+La arquitectura se crea incrementalmente acorde a un
proceso secuencial dirigido por el ROI.

XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
27
Definicin de Arquitectura en IFM
MMF A
AE 1
AE 3
AE 7
AE 8
MMF B
AE 2
MMF C
AE 7
AE 8
+Principios Arquitectnicos
+La instanciacin de los elementos arquitectnicos
(AEs) se realiza incrementalmente acorde a la
secuencia de MMFs, determinada por el ROI.


XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
28
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
de los servicios de banca
personal en Internet
para un grupo de bancos.
XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
29
Ejemplo de Definicin de
Arquitectura
+Dado un conjunto de requerimientos primarios
XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
30
Ejemplo de Definicin de
Arquitectura
+Identificacin de requerimientos funcionales y de
calidad de servicio (QoS)
XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
31
Ejemplo de Definicin de
Arquitectura
+Identificacin de supuestos, riesgos y restricciones
XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
32
Ejemplo de Definicin de
Arquitectura
+Identificacin de Actores y Casos de Uso primarios
XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
33
Ejemplo de Definicin de
Arquitectura
+Arquitectura Lgica. Identificacin de tiers lgicos,
subsistemas y paquetes
XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
34
Ejemplo de Definicin de
Arquitectura
+Diseo de Arquitectura Runtime. Diagrama de
Despliegue.
XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
35
Ejemplo de Definicin de
Arquitectura
+Plataforma Tecnolgica. Definicin de la matriz
tecnolgica de layers y tiers
XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
36
Discusin

+ Los requerimientos no funcionales son fuentes
comunes de riesgo

XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
37
Calidades Sistmicas
+ El manejo inadecuado de los requerimientos no
funcionales, es una de las fuentes ms importante
de riesgo en los proyectos:
Reglas de negocio de alta complejidad.
Calidades sistmicas
Seguridad
Rendimiento
Escalabilidad
Disponibilidad
Extensibilidad

+ La calidad de servicio (QoS = Quality Of Service) es
un riesgo primario relacionado con la arquitectura.

XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
38
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
XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
39
Calidades Sistmicas -
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.
XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
40
Calidades Sistmicas -
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. Prevencin 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 produccin.
XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
41
Calidades Sistmicas - Evolutivas
+Relacionadas con el comportamiento del sistema
cuando sufre algn cambio.

+ Escalability. La habilidad para
soportar la calidad de servicio
requerida conforme la carga aumenta.

+ Flexibility. Esfuerzo ahorrado cuando
se hace un cambio de configuracin.

+ Portability. Esfuerzo ahorrado
cuando se migra a una infraestructura
diferente.


+ Reusability. Esfuerzo ganado
en la utilizacin de componentes
existentes.

+ Extensibility. Esfuerzo ahorrado
para adicionar nuevas
funcionalidades.

+ Mantainability. Esfuerzo
ahorrado para revisar y corregir
errores.
XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
42
Lecciones Aprendidas en
Consultora
+ 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.

XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
43
Lecciones Aprendidas en
Consultora
+ 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.

XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005
44
Fundamentos de Definicin de
Arquitectura de Software
Mauricio Naranjo
Chief Architect
mnaranjo@lucasian.com

Lucasian Labs Ltda.
www.lucasian.com

Potrebbero piacerti anche