Vous êtes sur la page 1sur 44

Fundamentos de Definicin

de Arquitectura de Software
Mauricio Naranjo
Chief Architect
mnaranjo@lucasian.com
Lucasian Labs Ltda.

Septiembre 27 a Octubre 01 de 2005


Bogot, Colombia

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

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

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.

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

Discusin
+ Definir la arquitectura en los proyectos actuales es

crtico...

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

Evolucin de Arquitecturas
+ Dos factores primarios en la ingeniera de software

que han incrementado la importancia de la


arquitectura:

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

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

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

diferentes clientes o sistemas.


+ Mejora la escalabilidad.
+ Mejora la flexibilidad.
+ Independencia de la base de datos.

+ Alta administracin
+ Baja escalabilidad
+ Baja flexibilidad
+ Baja portabilidad

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

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

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

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

Cluster de
Servidores de
Aplicaciones

Que es un Arquitecto de Software?

Rational Unified Process

SUN SL-425:

Arquitecto es un rol en un proyecto de El arquitecto:


desarrollo de software el cual es
Visualiza el comportamiento
responsable de:
del sistema.
Crea los planos del sistema.
Liderar el proceso de arquitectura. Define la forma en la cual los
elementos del sistema
Producir los artefactos necesarios:
trabajan en conjunto.
Documento de descripcin de
Responsable de integrar los
arquitectura
requerimientos no-funcionales
Modelos y prototipos de
(NRFs) en el sistema.
arquitectura.

11

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

Discusin
+ Existe alguna diferencia entre arquitectura y diseo

de software?

12

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

Arquitectura Vs. Diseo


+ La arquitectura y el diseo difieren en tres reas:
Arquitectura
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.

Seleccin de tecnologas,
Requerimientos no funcionales
(QoS),
Manejo de riesgos

Requerimientos
funcionales

reas de
Enfoque

13

Diseo

Especificaciones de
codificacin

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

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.
Cdigo
Implementacin
Diseo

Las decisiones
de arquitectura
causan un alto
impacto en los
proyectos de IT

Arquitectura

14

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

Discusin
+ Cuales son los principios fundamentales en los

mtodos de desarrollo de software modernos?

15

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

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.

16

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

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

17

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

Arquitectura y Procesos de Desarrollo


Rational Unified Process:

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.

Guas para el proyecto y


estndares de Diseo.

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

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

19

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

Definicin de Arquitectura en RUP


Fase de Elaboracin

20

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

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.

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

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

Definicin de Arquitectura en RUP


Definir arquitectura
candidata
Evaluar Req.
No Funcionales (NFR)
Refinar y Seleccionar
la Arquitectura
Prototipar la
Arquitectura
Valorar Calidades
Sistmicas

22

Ajustar
Arquitectura

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

Definicin de Arquitectura en SunTone AM

23

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

Definicin de Arquitectura en SunTone AM

24

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

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.
Presentation
Action Factory

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

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

DAO
OracleDAO

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.

26

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

Definicin de Arquitectura en IFM


+ Principios Arquitectnicos
+ La instanciacin de los elementos arquitectnicos

(AEs) se realiza incrementalmente acorde a la


secuencia de MMFs, determinada por el ROI.
AE 1
AE 3
AE 7

AE 7

27

AE 8

AE 2

AE 8

MMF A

MMF B

MMF C

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

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.

28

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

Ejemplo de Definicin de
Arquitectura
+ Dado un conjunto de requerimientos primarios

29

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

Ejemplo de Definicin de
Arquitectura
+ Identificacin de requerimientos funcionales y de

calidad de servicio (QoS)

30

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

Ejemplo de Definicin de
Arquitectura
+ Identificacin de supuestos, riesgos y restricciones

31

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

Ejemplo de Definicin de
Arquitectura
+ Identificacin de Actores y Casos de Uso primarios

32

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

Ejemplo de Definicin de
Arquitectura
+ Arquitectura Lgica. Identificacin de tiers lgicos,

subsistemas y paquetes

33

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

Ejemplo de Definicin de
Arquitectura
+ Diseo de Arquitectura Runtime. Diagrama de

Despliegue.

34

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

Ejemplo de Definicin de
Arquitectura
+ Plataforma Tecnolgica. Definicin de la matriz

tecnolgica de layers y tiers

35

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

Discusin
+ Los requerimientos no funcionales son fuentes

comunes de riesgo

36

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

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.


37

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

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

+ Familias de

Calidades
Sistmicas
+ Manifiestas
+ Operacionales
+ Desarrollo
+ Evolutivas

observables.

38

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

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.

39

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

Calidades Sistmicas Operacionales

Observables cuando el sistema est operando en produccin.


+ Throughput. Solicitudes atendidas + Security. Prevencin de uso

por unidad de tiempo.


+ Manageability. Cantidad inversa de

esfuerzo para realizar labores


administrativas.
+ Serviceability. Esfuerzo para

actualizar el sistema para reparar


errores.

40

indeseado, por abuso o uso


inapropiado:
Identidad
Autoridad
Confidencialidad
Auditabilidad
Integridad

+ Testability. Esfuerzo

invertido para detectar y


aislar errores.

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

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

+ Reusability. Esfuerzo ganado en

la utilizacin de componentes
existentes.
+ Extensibility. Esfuerzo ahorrado

para adicionar nuevas


funcionalidades.

cuando se migra a una infraestructura + Mantainability. Esfuerzo


diferente.
ahorrado para revisar y corregir
errores.
XXV Saln de Informtica Arquitecturas Empresariales de Software Septiembre 28-Octubre 01 de 2005

41

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.
42

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

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.
43

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

Fundamentos de Definicin de
Arquitectura de Software
Mauricio Naranjo
Chief Architect
mnaranjo@lucasian.com
Lucasian Labs Ltda.
www.lucasian.com

44

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

Vous aimerez peut-être aussi