Documentos de Académico
Documentos de Profesional
Documentos de Cultura
de software
Grupo de Construcción de Software
Facultad de Ingeniería
Universidad de los Andes
Agenda
¾ Historia sobre la evolución de las tecnologías
y arquitecturas de software
Necesidades empresariales
Atributos de Calidad
Del problema a la arquitectura
Contenedores
Evolución de la Ingeniera de
Software
Desde una perspectiva Tecnológica:
Computación Distribuida
Terminal/Host/PC
Batch
DBServer
Pregunta
Qué elementos considera usted han generado
los cambios tecnológicos?
La Era Batch
Requerimientos
Integración de datos
Independencia de datos
Entidades
Cliente pesado: la mayor parte de la
aplicación del lado del cliente
Seguridad: quién accede los datos?
Servidor ligero: repositorio de datos
Manejo de datos
Adición o modificación de un requerimiento
El servidor es el responsable funcional afecta los clientes
El cliente conoce el modelo de datos y la
estructura de almacenamiento
Vulnerabilidad del sistema
Tráfico en la red importante
El servidor es un punto de entrada al
Control de concurrencia sistema
El cliente es responsable
Ejemplo: CBBD
Pérdida de información por
actualizaciones
Entidades
Cliente ligero: se concentra en la
presentación
Seguridad: quién accede los datos?
Servidor pesado:
la mayor parte de la aplicación del
lado del servidor
Adición o modificación de un requerimiento
repositorio de datos + lógica
funcional no afecta los clientes
(procedimientos almacenados en BD)
Manejo de datos
Vulnerabilidad del sistema
El servidor es el responsable y ofrece El servidor es un punto de entrada al
“métodos” para su manejo sistema
Tráfico en la red menor vs. c/s dos niveles
Control de concurrencia
Ejemplo: SMBD
Servidor es responsable
Utilización de la funcionalidad SMBD
Era de la Computación
distribuida
Aumento en las expectativas de los usuarios
comienzo de la computación distribuida
Era Cliente/Servidor multicapas
Integración de aplicaciones
Corba/ DCOM
Atributos de calidad
DBServer
Lógica aplicación
(componentes)
Datos
Manejo de datos
Adición o modificación de un requerimiento
Responsabilidad de todos: deseo de funcional puede afectar a todos los peers
compartir “información”
Localización no predefinida de datos
Vulnerabilidad del sistema
Depende de la configuración
Tráfico en la red relativo
Agenda
9 Historia sobre la evolución de las tecnologías
y arquitecturas de software
¾ Necesidades empresariales
Atributos de Calidad
Del problema a la arquitectura
Contenedores
Pregunta
Qué elementos considera usted han generado los cambios
tecnológicos?
Tecnología
Desarrollo de software
Resultados obtenidos
Estudios Relacionados
Chaos Report (Standish Group
Tiempo Alcance Report -1995)
Usabilidad
Diagnóstico del problema
Problemas técnicos
Resolver problemas que no existen
Requerimientos y especificaciones incompletas
Visión del problema centrada en tecnología
Nuevas tecnologías
Agenda
9 Historia sobre la evolución de las tecnologías
y arquitecturas de software
9 Necesidades empresariales
¾ Atributos de Calidad
Del problema a la arquitectura
Contenedores
Atributos de calidad
Atributo de calidad: característica de un componente o sistema
Categorías
Funcionalidad: aunque es el más importante no es el único
Disponibilidad
Eficiencia-Desempeño
Cantidad de comunicación entre componentes
Funcionalidad ofrecida por cada componente
Localización de recursos compartidos
Mantenibilidad
Determinada por la forma como se divide la funcionalidad
Un sistema es mantenible(modificable) si un cambio involucra el menor
número posible de elementos
Portabilidad
Aislar dependencia del sistema
Atributos de calidad & Arquitectura
de Software
Los atributos de calidad deben ser diseñados y
evaluados en la definición de una arquitectura
Negocio
time to market: tiempo para desarrollar vs. la oportunidad de
venderlo
Costo/beneficio: construir una arquitectura flexible es más
costosa que una arquitectura rígida
Tiempo de vida del producto
Segmento objetivo
Arquitectura
integridad conceptual: visión que unifica el diseño del sistema
en todos sus niveles
Atributos de calidad
Problemas
Definición: el sistema es modificable con respecto a un conjunto
de cambios pero no modificable con respecto a otros.
Sobre qué atributo específicamente se discute. Ejemplo: falla
del sistema concierne la disponibilidad, la seguridad,
usabilidad?
Vocabulario cambia según el atributo. Ejemplo: desempeño –
evento, seguridad – ataque, disponibilidad - falla
Solución
Escenarios de atributos de calidad (2 primeros) –revisar
ejemplo pag. 84 escenario de desempeño
Centrarse en lo que concierne el atributo y no en los términos
utilizados
Escenario de desempeño
Artefacto
Estimulo Sistema Respuesta
Inicio de Transacciones
transacciones procesadas
Ambiente Medida Rta.
Bajo operaciones Promedio de latencia
normales dos segundos
Fuente
Usuario
Agenda
9 Historia sobre la evolución de las tecnologías
y arquitecturas de software
9 Necesidades empresariales
9 Atributos de Calidad
¾ Del problema a la arquitectura
Contenedores
Requerimientos
funcionales
Propiedades deseables
Localización: dado un elemento del problema, se
puede localizar su representación en el programa
mundo
mundo
MM
programa
Requerimientos
funcionales
Requerimientos
no funcionales
Propiedades deseables
Aislamiento: un cambio en un elemento del
programa tiene una frontera de impacto
conocida
programa
Propiedades deseables
Flexibilidad: las decisiones arquitecturales se pueden
tomar tarde en el ciclo de vida
diseño construcción arranque
mundo
mundo
MM
programa
Requerimientos
funcionales
Arquitecturas Arquitecturas
rígidas flexibles
Propiedades deseables
Reutilización: los elementos del programa son
fácilmente utilizables en otros programa
programa-1 programa-2
Propiedades deseables
Evolución: la arquitectura del programa no se deteriora
debido a la evolución del problema
evolución
Propiedades deseables
Enseñable: es clara la transformación de los elementos
del problema en elementos de la solución
Requerimientos
funcionales
Preguntas
1. ¿Cómo podemos ofrecer las propiedades
deseables de una arquitectura? De ideas
para cada una de estas propiedades:
Localización, Aislamiento, Flexibilidad,
Reutilización, Evolución.
Agenda
9 Historia sobre la evolución de las tecnologías
y arquitecturas de software
9 Necesidades empresariales
9 Atributos de Calidad
9 Del problema a la arquitectura
¾ Contenedores
Complejidad en Arquitectura de
Software
Los enfoques actuales ó modelos
arquitectónicos de la industria enfrentan el
manejo de complejidad
Evolución a arquitecturas multi-capas
Necesidades de Negocio
Avances en la tecnología
Atributos de calidad
Propiedades deseables
Aplicación =
Lógica + Lógica No
empresarial de gran
Funcional funcional
escala
- Integración (EAI, MOM, Connector)
- Acceso concurrente
- Transacciones distribuidas (ACID)
- Manejo de memoria
- Seguridad
¿Esto quién lo hace? - Alta disponibilidad
- Manejo de threads
- Pool de conexiones
- Escalabilidad
Aplicación empresarial =
Lógica Lógica No
+
de gran escala Funcional funcional
.NET
- Seguridad.
- Alta disponibilidad
- Manejo de threads.
- Pool de conexiones.
- Escalabilidad
Vista arquitectónica de
despliegue
Componente
Clases Descriptor
Encapsula los
algoritos del
+ del componente
negocio (Archivo XML)
Contenedor
Manejo de Integracion
recursos Legacy Connector a
(pools) Systems CRM, ERP
Manejo de Manejo de Modulo de Modulo de
Transacciones Concurrencia Clustering load balancing
Componente
Clases Descriptor
Encapsula los
algoritos del
+ del componente
negocio (Archivo XML)
Preguntas
Qué papel juegan los contenedores y
modelos de componentes para garantizar
estas propiedades
La presentación dice que un contenedor
maneja el ciclo de vida de un componente.
¿Qué quiere decir esto?
Abstracción arquitectónica del desarrollo
centrado en componentes (CBD)
Modelo Abstracto
Definición de los servicios implementados por el componente
Define las relaciones entre los componentes
Modelo de programación
Define la naturaleza del componente (Transitorio, Compartido,
Persistente)
Modelo de despliegue
Considera la distribución lógica del componente, parametrización
de los requerimientos no-funcionales.
Modelo de ejecución
Define los mecanismos y protocolos empleados por la plataforma
de ejecución de componentes para comunicarse con los
componentes. Ciclo de vida
Estructura multicapas de la
arquitectura
Presentación
Persistencia
Integración
Del negocio
Servicios
Datos y
Capa
Capa
Capa
Capa
Aplicación
Corporativa
Multi-capas
Manejo
Seguridad Clustering
Transaccional
Plataforma de
Componentes
Integración Replicacion Persistencia Distribuidos
Servidor de Aplicaciones
Preguntas
La presentación habla de un modelo de programación que define la
naturaleza de un componente (Transitorio, Compartido, Persistente)
¿Qué impacto pueden tener estos aspectos sobre el ciclo de vida de un
componente?
¿Las reglas del negocio no deben estar muy separadas de los datos o
viceversa? ¿Qué perdemos y ganamos con esta decisión?
Referencias
Arias Jorge. Tutorial: Arquitectura de Software Bajo
Implementaciones .NET & J2EE. 2005