Académique Documents
Professionnel Documents
Culture Documents
Análisis y Diseño
Sesión: 04
gzambranol@usmp.pe
Semestre: 2011_I
Objetivos
• Conceptos de arquitectura de software y
su importancia
Is comprised of
re a e
p li
multiple
c
t ed
Contribute to
f
Design
Best Practices
Support the
Design Standards
Design Standards Best Practices
use of Patterns
Paradigmas de Diseño, continua...
10100001111101010101
• Bajo Nivel (Binario)
– Tarjetas perforadas
• Describen paso-a-paso el
procedimiento exacto
para resolver un
problema.
• La realidad debe
modelarse con base en
las capacidades del
lenguaje.
• Difícil de comprender
para no-programadores.
Paradigmas de Diseño, continua...
– Descripción de arquitectura
– Prototipo arquitectónico
¿Por qué es importante definir una
arquitectura?
Premisa:
• Las arquitecturas de los sistemas, existen indiferente si han sido
definidas formalmente o no.
• Presentación
• Lógica negocio • Presentación
• Persistencia • Lógica de negocio • Persistencia
Evolución de las arquitecturas, continua...
Presentación
Clientes GUI Procedimientos Negocio
Semilivianos Almacenados (EJB, CORBA, COM+)
Evolución de las arquitecturas, continua...
100.000+
Lógica de
Despliegue de Presentación negocios
contenido
Procesos fragmentados
• Aplicaciones publicadas en
diferentes departamentos y
unidades de negocios
Portal de
Servicios Integrados
Sistema
Batch Cluster de
Servidores de
Aplicaciones
Requerimientos
Arquitectónicos Base de
Datos
• Heterogeneidad Servidor de
• Escalabilidad Procesos
• Disponibilidad (BPM) Aplicaciones
Legadas
• Distribución
• Manejabilidad de Procesos
• Administración y monitoreo de procesos,
servicios e infraestructura
¿Qué es un Arquitecto de Software?
• Rational Unified Process • SUN SL-425:
Arquitecto es un rol en un
proyecto de desarrollo de El arquitecto:
software el cual tiene las – Visualiza el comportamiento
siguientes responsabilidades: 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 trabajan en conjunto.
necesarios: Documento
de descripción de – Responsable de integrar los
arquitectura requerimientos no-funcionales
(NRFs) en el sistema.
– Modelos y prototipos de
arquitectura.
Arquitectura vs. Diseño
Arquitectura Diseño
Código
Implementación
Diseño
Arquitectura
Artefactos de Arquitectura
Rational Unified Process:
En el proceso de definición de arquitectura se producen:
• Arquitectura Inicial.
• Arquitectura de Referencia.
• Documento de Descripción de arquitectura (SAD):
– Subsistemas
– Componentes
– Arquitectura Runtime.
• No se pueden satisfacer
completamente por un
componente.
Calidades Sistémicas, continua…
Calidades Manifiestas:
• Observables por los usuarios del sistema.
Calidades Manifiestas:
Observables cuando el sistema está operando en producción:
Calidades Evolutivas:
Relacionadas con el comportamiento del sistema cuando es actualizado.
Elementos de un patrón:
Nombre
• Define un vocabulario de diseño
• Facilita abstracción
Problema
• Describe cuando aplicar el patrón MVC
• Conjunto de fuerzas: objetivos y restricciones
• Prerrequisitos
Solución
• Elementos que constituyen el diseño (template)
• Forma canónica para resolver fuerzas
Consecuencias
• Resultados, extensiones
Recursos de Arquitectura y Diseño, continua…
Organización de Patrones
Propósitos:
– Identificar relaciones entre patrones
Catálogos de Patrones
• Como arquitecto se debe familiarizar
con la mayor cantidad de patrones
posibles:
Catálogos de Patrones
• Un arquitecto experimentado
reutiliza:
– Arquitecturas de sistemas
exitosos.
– Frameworks conceptuales y
tecnológicos.
– Componentes y librerías.
Comentario Problemas Soluciones Fase de Desarrollo
Patrones de llamadas
entre objetos (similar a
Relacionados a la Problemas arquitectónicos,
los patrones de diseño),
Patrones de interacción de objetos adaptabilidad a requerimientos
decisiones y criterios Diseño inicial
Arquitectura dentro o entre niveles cambiantes, performance,
arquitectónicos,
arquitectónicos modularidad, acoplamiento
empaquetado de
funcionalidad
Requerimientos no funcionales
Escenarios, tácticas, frameworks
Performance
Disponibilidad
Modificabilidad
Seguridad
Verificabilidad (Testability)
Gestionabilidad (instrumentación, management,
estado)
Usabilidad
Framework
Definición de Framework
Características
• Define la arquitectura para una familia de subsistemas
• Provee bloques básicos de construcción y adaptadores.
Ejemplos de Frameworks:
Tecnológicos: Conceptuales:
• Struts y Java Server Faces (JSF) • Definición de arquitecturas.
para Interfaces Web.
• eTom (enhanced
• Mapeos objeto-relacionales.
Telecomunication Operations
• Enterprise Java Beans para Map), es un marco referencial
construcción de servicios de de procesos para la industria
negocios. de las telecomunicaciones.
Costo fijo
Costo fijo
Tiempo Tiempo
Desarrollo Iterativo e Incremental, continua…
Riesgo
Riesgo de un
proceso en
cascada
Reducción de Riesgo
Riesgo de un
proceso iterativo
Tiempo
Desarrollo Conducido por las Calidades
Sistémicas
• Las calidades sistémicas son requerimientos no
funcionales, los cuales definen la calidad de servicio que un
sistema expone.
• Algunos ejemplos:
– Rendimiento
– Confiabilidad
– Escalabilidad
– Seguridad
Definición
• Los modelos son mecanismos primarios de comunicación entre todos
los participantes de un proyecto de software. Reflejan un aspecto
particular de un sistema y abstraen detalles no relevantes.
Tipos Aplicación
• Documentos de texto
• Diagramas UML
• Prototipos Negocios
Objetivos
Middleware
• Comunicación
• Resolver Problemas
• Pruebas de Concepto Sistema
Definición de Arquitectura en RUP
Fase de Inicio
• Durante la fase de inicio se
establece:
– Requerimientos no-funcionales.
– Arquitectura inicial, la cual se
considera viable para el proyecto.
– Lista de Riesgos y Restricciones.
• Entregables:
– Documento de Visión
– Arquitectura Inicial
– Plan de la siguiente fase
Definición de Arquitectura en RUP, continua…
Fase de Elaboración
• Durante esta fase se crean:
– Arquitectura línea base.
– 80% de los requerimientos
del sistema.
– Plan de iteraciones para la
fase de construcción.
• Entregables:
– Requerimientos del Sistema.
– Documento de Definición de
Arquitectura.
– Prototipo evolutivo de
arquitectura.
– Guías y Estándares.
– Plan de Iteraciones.
Definición de Arquitectura en RUP, continua…
Use-Case View
- Estabilidad +
Volatilidad
+ -
Definición de Arquitectura en SunTone AM,
continua…
Layers Tiers
Layers Tiers
DAO
Business Factory Oracle DAO
Delegate Factory
Action
Session Facade Composite Entity
Front Controller
View DAO
Service Value OracleDAO
JSF Components
Locator Object
Definición de Arquitectura en Iterative
Founding Method
Definición
• Metodología con un enfoque de retorno
a la inversión (ROI) informado, en el
cual el software es desarrollado y
puesto en producción, en trozos de
funcionalidades que agregan valor al
usuario, cuidadosamente priorizados,
llamados MMFs (Minimum Marketable
Features).
• Descompone la arquitectura en
elementos arquitectónicos (AEs).
Definición de Arquitectura en Iterative
Founding Method, continua…
Principios Arquitectónicos
• El proceso de creación de arquitectura, debe ser un proceso
de creación de valor.
• Descompone la arquitectura en elementos arquitectónicos
(AEs).
• Disminuye los costos de implementación de los AEs en un
modelo de secuencia.
• Crea la arquitectura de software incrementalmente acorde a
un proceso secuencial dirigido por el retorno a la inversión
(ROI).
Refinar y Seleccionar
la Arquitectura
Prototipar la
Arquitectura
Respecto al arquitecto
• Es un rol crítico en los proyectos, se focaliza en la calidad de servicio
y lidera el proceso de definición y la implementación de la
arquitectura.
• El arquitecto reutiliza arquitectura exitosas, frameworks y patrones
de diseño.
• No es un diseñador en un proyecto.
Conclusiones y Recomendaciones
Respecto al Proceso de Definición de Arquitectura
• El proceso de definición de arquitectura debe ser un proceso
incremental de creación de valor.
• Defina solo los entregables necesarios para definir la arquitectura
acorde a las necesidades y trace la estrategia adecuada.
Output Vista
Modelo
Input Controlador
Model
• Dos arquitecturas:
– Model-1: JSPs para presentación y control y JavaBeans
para la lógica
– Model-2: Model-View-Controller = JavaBeans-JSPs-
Servlets
Fuente: http://www.programacion.com/articulo/manual_basico_de_struts_155
TRAZABILIDAD CON UML
Análisis Diseño
JSP
<<Build>>
Boundary
Form
JSP_Client
(from JSP) (from JSP_Client)
TRAZABILIDAD CON UML
Análisis Diseño
C o ntrol
TRAZABILIDAD CON UML
Análisis Diseño
Bean
Entity
ClaseDAO
Universidad de San Martín de Porres
Análisis y Diseño
Fin de la sesión: 04
gzambranol@usmp.pe
Semestre: 2011_I