Está en la página 1de 24

Fundamentos de Definición

de Arquitectura de Software
Valerio Herrera, Luis E.
Tecnico Informatico
luis_enrique_valerio@hotmail.com

I.S.T.P. TECNOSUR

17 de Abril del 2019 – Chincha Alta


Contenido

+ Que es Arquitectura de Software?


+ Rol y Responsabilidades del Arquitecto
+ Arquitectura Vs. Diseño
+ Estrategias de Definición de Arquitectura
+ Ejemplo de Definición de Arquitecturas
+ Calidades Sistémicas y Calidad de Servicio
+ Lecciones Aprendidas en Consultoría

2
Arquitectura de Software

+ Que es una arquitectura?

+ “No estamos seguros, pero la reconocemos cuando


vemos una”
+ IEEE-1471-FAQ

3
Arquitectura de Software
+ IEEE 1471 + Software Architecture in
Practice - Kazman
El nivel conceptual más alto de
un sistema en su ambiente. “La estructura de
estructuras de un sistema,
+ Arquitectura es la organización
la cual abarca
componentes de software,
fundamental de un sistema propiedades externas
descrita en: visibles de estos
– Sus componentes. componentes y sus
– Relación entre ellos y con el relaciones”.
ambiente.
– Principios que guían su diseño y
evolución.
4
Evolución de Arquitecturas

+ Dos factores primarios en la ingeniería de software


que han incrementado la importancia de la
arquitectura:

5
Evolución de Arquitecturas
+ Aplicaciones Monolíticas Arquitectura Cliente-Servidor

+ Interfaces gráficas de usuario (GUI). + Clientes pesados, no estándar


+ Servicios de presentación, negocios + Conexiones dedicadas a BD
y persistencia en la misma máquina. + Protocolos pesados
+ Ejecución remota de SQLs
+ No hay concurrencia de usuarios.
+ Alto acoplamiento entre tiers. + Alta administración
+ Bajo rendimiento
+ Alto tráfico de red
+ Baja accesibilidad

6
Evolución de Arquitecturas
+ Arquitectura Cliente-Servidor Arquitectura de 3 niveles
Mejorada
+ Reutilización de lógica de negocio para
+ Lógica de negocios en BD diferentes clientes o sistemas.
+ Clientes pesados, no estándar. + Mejora la escalabilidad.
+ Conexiones dedicadas a la BD. + Mejora la flexibilidad.
+ Mejora en rendimiento + Independencia de la base de datos.
+ Alta administración
+ Baja escalabilidad
+ Baja flexibilidad
+ Baja portabilidad

7
Evolución de Arquitecturas
+ Arquitectura de N-niveles

100.000+

+ Bajo costo de administración de clientes.


+ Alta accesibilidad.
+ Alta flexibilidad.
+ Alta disponibilidad y tolerancia a fallos.
+ Alta escalabilidad.
+ Independencia de DB

8
Evolución de Arquitecturas
+ Visión de Arquitectura Orientada a Servicios (SOA)

Portal de
Servicios Integrados
Sistema
+ Requerimientos Batch Cluster de
Arquitectónicos Servidores de
Aplicaciones

+ Heterogeneidad Base de
+ Escalabilidad Datos
+ Disponibilidad Servidor de
+ Distribución Procesos
(BPM) Aplicaciones
+ Manejabilidad de Procesos
Legadas
+ Administración y monitoreo de procesos,
servicios e infraestructura

9
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
– Producir los artefactos necesarios: elementos del sistema
Documento de descripción de trabajan en conjunto.
arquitectura – Responsable de integrar los
– Modelos y prototipos de requerimientos no-funcionales
arquitectura. (NRFs) en el sistema.

10
Arquitectura Vs. Diseño
+ La arquitectura y el diseño difieren en tres áreas:
Arquitectura Diseño
Nivel de Alto nivel Bajo nivel. Enfoque
Abstracción específico en detalles
Entregables Planear subsistemas, interfaces Diseño detallado
con sistemas externos, componentes.
servicios horizontales,
frameworks, componentes Especificaciones de
reutilizables, prototipo codificación
arquitectónico
Áreas de Selección de tecnologías, Requerimientos
Enfoque Requerimientos no funcionales funcionales
(QoS),
11
Manejo de riesgos
Arquitectura Vs. Diseño
+ La arquitectura envuelve un conjunto de decisiones
estratégicas de diseño, lineamientos, reglas y
patrones que restringen el diseño y la implementación
de un software.
Las decisiones
de arquitectura
Código causan un alto
Implementación impacto en los
proyectos de IT
Diseño

Arquitectura

12
Arquitectura y Procesos de Desarrollo
Principios Fundamentales de Procesos Modernos

+ Desarrollo iterativo e incremental.


+ Conducido por las calidades sistémicas.
+ Centrado en la arquitectura.
+ Dirigido por los casos de uso.
+ Basada en Modelos.
+ Mejores prácticas de diseño.

13
Arquitectura y Procesos de Desarrollo
+ Que es un Proceso de Arquitectura?

+ Rational Unified Process:


+ Secuencia de actividades
que conllevan a la
producción de artefactos
arquitectónicos:

– Descripción de arquitectura
– Prototipo arquitectónico

14
Arquitectura y Procesos de Desarrollo
Rational Unified Process: SunTone AM:
En el proceso de definición de Adicionalmente se producen:
arquitectura se producen:
+ Matriz Tecnológica de Layers
+ Arquitectura Inicial. y Tiers
+ Arquitectura de Referencia. + Template de Arquitectura
+ Documento de Descripción de
arquitectura (SAD):
– Subsistemas
– Componentes
– Arquitectura Runtime.

+ Guías para el proyecto y


estándares de Diseño.
15
Definición 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

16
Definición de Arquitectura en RUP
Fase de Elaboración
+ Con respecto a la arquitectura, en la
fase de elaboración se establece:
– Arquitectura línea base.

+ Entregables:
– Documento de Definición de
Arquitectura.
– Prototipo evolutivo de arquitectura.
– Guías y Estándares de Diseño.

17
Definición de Arquitectura en RUP
+ Modelo de Vista 4+1
+ Framework para Descripción de Arquitectura, basado en vistas
lógicas y físicas UML y una vista funcional de casos de uso.

Logical View Implementation View

Analysts/Designers End-user Programmers


Structure Functionality Software management

Use-Case View

Process View Deployment View


System integrators System engineering
Performance System topology
Scalability Delivery, installation
Throughput communication
18
Definición de Arquitectura en RUP
Definir arquitectura
candidata

Evaluar Req.
No Funcionales (NFR)

Refinar y Seleccionar
la Arquitectura

Prototipar la
Arquitectura

Valorar Calidades Ajustar


Sistémicas Arquitectura

19
Definición de Arquitectura en SunTone AM
+ Metodología de desarrollo de software análoga al Unified
Process (UP) con un fuerte énfasis en Calidad de Servicio y
Patrones de diseño.

+ El cubo: framework conceptual, el cual provee una vista


tridimensional:
– Tiers lógicos
– Layers tecnológicos
– Calidades sistémicas

20
Definición de Arquitectura en SunTone AM

21
Definición de Arquitectura en SunTone
+ Principios Arquitectónicos
+ La arquitectura es primariamente necesaria para crear
un framework para el desarrollo basado en patrones y
para la entrega de calidades sistémicas predecibles.

Presentation Business Business Database Integration


Integration
Action Factory

DAO
Business Factory Oracle DAO
Delegate Factory
Action
Session Facade Composite Entity
Front Controller
View DAO
Service Value OracleDAO
JSF Components
Locator Object

22
Definición de Arquitectura en IFM
+ Principios Arquitectónicos
+ El proceso de creación de arquitectura debe ser un
proceso de creación de valor.

+ La arquitectura se descompone en elementos


arquitectónicos (AEs).

+ La arquitectura se crea incrementalmente acorde a un


proceso secuencial dirigido por el ROI.

23
Definición de Arquitectura en IFM
+ Principios Arquitectónicos
+ La instanciación de los elementos arquitectónicos
(AEs) se realiza incrementalmente acorde a la
secuencia de MMFs, determinada por el ROI.
AE 1

AE 3

AE 7 AE 7

AE 8 AE 2 AE 8

MMF A MMF B MMF C

24

También podría gustarte