1 introducción a la arquitectura de sistema maximiliano déboli director de desarrollo mvp azure...

Post on 25-Jan-2016

218 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

Introducción a la Arquitecturade Sistema

Maximiliano DéboliDirector De DesarrolloMVP AzureLagashmdeboli@lagash.com

2

¿Qué es la arquitectura de software?

• Conjunto de decisiones importantes acerca de la organización de un sistema

• Selección de elementos estructurales y las interfaces que componen al sistema

• Funcionalidad, facilidad de uso, capacidad, rendimiento, la reutilización, la comprensión, limitaciones económicas y la tecnología, intercambios y estética

3

Fowler• El mayor nivel de desglose de un sistema en sus partes.

• Las decisiones que son difíciles de cambiar.

• Existen múltiples arquitecturas en un sistema.

• Que es arquitectónicamente importante que puede cambiar la vida de un sistema.

• La arquitectura se reduce a cualquier cosa que sea importante.

4

Consideraciones relevantes a la arquitectura

• Como va a ser desplegada la aplicación en producción.

• Como los usuarios utilizar la aplicación.

• Cuales son los atributos de calidad, tales como la seguridad, rendimiento, simultaneidad, etc.

• Cuales son las tendencias arquitectónicas que pudieran afectarnos.

5

Objetivos de la arquitectura•Exponer la estructura del sistema, pero ocultar los detalles de implementación

• Hacer posibles todos los casos de uso.

• Trate de abordar las preocupaciones de las diversas partes interesadas

• Manejar al mismo tiempo los requerimientos funcionales y de calidad

6

Esce

nario

s

Atrib

utos

de

calid

ad

Requ

erim

ient

os/R

estr

icci

ones

Tran

sver

sale

s

Mob

ile

Tipos de aplicaciones

RIA

Rich

Clie

nt

Serv

ice

Aplic

ació

n w

eb

N …

Clie

nt S

erve

r

Estilos de arquitectura

Com

pone

nt-B

ased

Laye

red

Arch

itect

ure

Mes

sage

Bus

MVC

Arc

hite

ctur

e

Obj

ect O

rient

ed

N …

Marco de Arquitectura

•Caching•Comunication•Concurrency and transactions•Configuration Management•Coupling and Cohesion•Data Access•Exception Management

•Layering•Logging and instrumentation•State Management•Structure•Validation•Workflow

7

Tipos de Aplicaciones• Aplicaciones para dispositivos móviles

• Rich Client para aplicaciones que se ejecutarán en una PC cliente.

• RIA para aplicaciones desplegadas en internet con apoyo de interfaces ricas de usuario y soporte de media

• Servicios para apoyar comunicaciones entre componentes débilmente acoplados.

• Aplicaciones web para escenarios completamente conectados

8

Estrategia de despliegue

•Restricciones de Red y protocolos.

• En entornos poco flexibles tener en cuenta restricciones.

• Tener en cuenta atributos de calidad como la seguridad, rendimiento y mantenibilidad.

• Políticas y procedimientos.

• Especificar los requisitos y limitaciones en la arquitectura y la infraestructura.

9

Estilos de arquitectura

• Conjunto de principios.

• Normas que especifican los tipos de componentes que puede utilizar para montar un sistema.

• Limitaciones en la forma en que se ensamblan y las hipótesis sobre el significado de cómo ponerlos juntos.

10

Tecnología apropiada

• Tipo de aplicación que queremos desarrollar.

• Preferencia ante diferentes opciones.

• Políticas de la organización.

• Limitaciones de la infraestructura.

• Habilidades de los recursos.

11

Atributos de calidad

• Los atributos de calidad deben estar separados de los requerimientos funcionales.

• Desde una perspectiva técnica, implementar atributos de calidad, es la diferencia entre un sistema bueno ó malo.

• Dos tipos de atributos de calidad. Los que se pueden medir en run-time. Los que solo se pueden medir inspeccionando.

12

Atributos de calidad

• Cual es el atributo de calidad clave para nuestro sistema? Identificarlo en la etapa de diseño.

• ¿Cuáles son los requisitos fundamentales para hacer frente a estos atributos? ¿Son realmente cuantificable?

• ¿Cuáles son los criterios de aceptación para estos atributos?

13

Funciones transversalesAutenticación

Autorización

Cache

Comunicación

Manejo de excepciones

Instrumentación y logueo

14

Diseñando la Arquitectura• Diseño ágil e incremental.

• ¿Cuáles son las partes fundamentales de la arquitectura que representan el mayor riesgo?

• ¿Cuáles son las partes de la arquitectura que tienen más probabilidades de cambiar, o cuyo diseño se puede retrasar hasta más tarde con poco impacto?

• ¿Cuáles son sus supuestos básicos, y cómo va a probarlos?

15

Principios claves de la Arquitectura

• Diseñar la arquitectura para adaptarse a los cambios.

• Modelado para el análisis y la reducción de riesgos.

• Modelos y puntos de vista son una buena herramienta de comunicación y colaboración.

• Identificar las principales decisiones de ingeniería. Invertir en conseguir estas decisiones clave desde el primer momento para que el diseño es más flexible y adaptable al cambio.

16

Enfoque incremental e iterativoConsidere la posibilidad de utilizar un enfoque incremental iterativo y refinado de la arquitectura.

• No tratar de hacerlo bien y completo de una vez.

• Iterativamente agregar detalles al diseño a través de múltiples pasos.

• Probar constantemente el diseño: ¿Qué necesidades explícitas o implícitas reúne esta arquitectura? ¿Cuáles son los principales riesgos con este enfoque arquitectónico? ¿De qué manera esta arquitectura es una mejora con respecto a la línea de base o el último candidato de arquitectura?

17

Arquitecturas de referencia y candidatos

La base de la arquitectura describe el sistema actual que es la forma actual de su sistema. Si se trata de uno nuevo, su base inicial es la primera de alto nivel.

• Tipo de Aplicación.

• Despliegue de la arquitectura.

• La arquitectura en si misma

• Opciones de tecnologías.

• Atributos de calidad

18

Architectural SpikesUna Spike de arquitectura es una prueba de extremo a extremo de un pequeño segmento de la aplicación.

Reducir riesgos y testear diferentes caminos y alternativas.

A medida que evoluciona su arquitectura, puede utilizar spikes para explorar diferentes escenarios sin afectar el actual diseño.

Un spike de arquitectura se traducirá a un candidato de arquitectura que puede ser cotejado con la línea base.

19

Architectural Spikes

• ¿Esta arquitectura introduce nuevos riesgos?

• ¿Esta arquitectura ayuda a mitigar riesgos adicionales ya conocidos?

• ¿Esta arquitectura posee requisitos adicionales?

• ¿Esta arquitectura permitirá casos de uso importantes?

• ¿Esta arquitectura esta enfocada a nuestros atributos de calidad?

20

Casos de uso arquitectonicamente importantes

• Son importantes para el éxito y la aceptación de la aplicación desplegada.

• Son suficientes para testear la utilidad de la arquitectura.

Después de haber determinado los casos de uso importantes se pueden utilizar para evaluar el éxito o el fracaso de arquitecturas candidatas .

21

Análisis y evaluación de arquitecturas

• Pruebe su diseño contra casos de uso que son importantes para el éxito de su aplicación, y que hagan uso de una parte importante del diseño.

• Usar escenarios para analizar su diseño con un enfoque en la calidad atributos.

top related