Beruflich Dokumente
Kultur Dokumente
Arquitectura de Software
Ing. Jhedson Ninahuaman
jninahuaman@distancia.upla.edu.pe
Agenda
Introduccin a la arquitectura de los
sistemas de informacin.
Definiendo un objeto de negocio.
Desarrollo basado en componentes.
Introduccin a la
arquitectura de los
sistemas de informacin
Introduccin
Por qu hablar de arquitectura?
En la medida que el tamao de los sistemas
crecen, los algoritmos y las estructuras de
datos dejan de convertirse en el mayor
problema.
El nuevo reto es disear y especificar la
estructura global del sistema.
Definiciones
Arquitectura se refiere a una
representacin abstracta de los mdulos /
componentes de un sistema y su entorno.
Idealmente, la arquitectura no incluye
detalles de implementacin.
Definiciones
Rol del Arquitecto.
El arquitecto obtiene informacin sobre el
problema y disea una solucin que satisfaga los
requisitos funcionales y los no funcionales,
manteniendo flexibilidad cuando los requisitos
cambien.
Se apoya en patrones, modelos y frameworks.
Participa activamente en todas las fases del
desarrollo.
Establece lineamientos generales que deben ser
tomados en cuenta en el desarrollo de nuevos
proyectos.
Definiciones
Atributos de calidad de la arquitectura
Rendi
miento
Flexibi
lidad
Escala
bilidad
Mante
nibilid
ad
Seguri
dad
Arquitec
tura
Oportu
nidad
Reusa
bilidad
Portab
ilidad
Dispon
ibilida
d
Compa
tibilida
d
Qu es una arquitectura y qu
aporta a un sistema?
La arquitectura rene las principales
caractersticas el software y del sistema en
relacin con el software, se plasma aspectos
como:
El Qu? (requisitos funcionales) y el Cmo?
(requisitos no funcionales).
Estilos arquitectnicos en los que ser implementado el
Software: objetos, capas, repositorios, etc.
Patrones que sern usados (DAO, MVC, etc).
Distribucin fsica.
.
Accessing
Data
Containing and
Connecting Logic
Logic to Web
Browser
Using
Logic
Defining
Logic
Objects
Web Browser
Logic to Logic
Web
Services
Binary
Communication
Standalone Client
Distributed
Transactions, etc.
Remote Logic
Queued
Messaging
Administracin Operativa
Comunicaciones
Usuarios
Capa de Presentacin
Agentes Servicios
Capa de Negocio
Procesos
Componentes
Entidades
Interfaces Servicios
de Negocio
de Negocio
de Negocio
Agentes Servicios
Interfaces Servicios
Capa de Datos
Agentes Servicios
Origen de Datos
Servicios
Ciclo de Vida del software
Definiendo un Objeto de
Negocio
Entidades: persistencia de
objetos de negocio
Entidades de Negocio
Las entidades de negocio exponen:
Descriptores de acceso a propiedades.
Descriptores de acceso a colecciones para subcolecciones
de datos relacionados
public class Usuario{
private int idUsuarioField;
public int IdUsuario()
{
get{
return idUsuarioField;
}
set{
idUsuarioField = value;
}
}
Transferencia de objetos de
negocio
Entre la comunicacin de componentes
dentro de un modelo distribuido, se debe
seleccionar uno de los siguientes
mecanismos:
Serializacin XML
Serializacin Binaria
Desarrollo basado en
componentes
Generalidades
El desarrollo basado en componentes, se
basa en los siguiente principios:
Una mejor granularidad de los componentes de la
aplicacin.
Mejora el mantenimiento a nivel de cada capa de la
aplicacin.
Permite diversas formas de implementacin por el
lado del cliente.
Permite una mayor integracin entre sistemas, de
forma transparente al usuario final.
Acoplamiento / Desacoplamiento
El acoplamiento, se basa en trabajar bajo
una fuerte dependencia entre las
implementaciones de los componentes de
un sistema, haciendo compleja su
mantenibilidad.
El desacoplamiento, permite construir
componentes del sistema de forma
independiente, estableciendo contratos
(interfaces) para la comunicacin entre
stas. (base para SOA)
Diseo de componentes de
negocio
Es la parte mas importante de la aplicacion
por la funcionalidad que brinda.
Se basa en la implementacin de los
siguientes elementos:
Interfaces de Servicio
Procesos de Negocio (Flujos)
Componentes de Negocio
Entidades Empresariales
Lgica de Negocio
Involucra la construccin de operaciones de
flujo de negocio asociado a acciones
puntuales, de un flujo simple y bajo la
administracin una o varias transacciones.
Por lo general una lgica de negocio se
implementa bajo la concepcin de un caso
de uso, al igual que los procesos de
negocio.
Procesos de Negocio
Involucra acciones de integracin y
conjunto de pasos, asociados a un flujo
de negocio.
Se recomienda el uso de Workflows
para:
Administrar un proceso que conlleve varios pasos y
transacciones de ejecucin larga.
Exponer una interfaz que implemente un proceso
empresarial que habilite la aplicacin para establecer
una conversacin o un contrato con otros servicios.
Responsabilidad de la capa de
Negocio
Gestionar la comunicacin con el cliente o
servicio externo.
Gestionar las transacciones.
Gestionar el flujo lgico de los datos,
reflejando un caso de uso.
Integrar la comunicacin entre los
diversos orgenes de datos.
Controlar la participacin de otros
sistemas dentro del flujo lgico.
Distribucin de
Responsabilidades
Capa de Datos
Capa de Negocios
Capa de Presentacin
Capa de Datos
Manejar el
Almacenamiento de
los Datos a Utilizar.
Partes de esta Capa:
Componentes lgicos de
acceso a datos
Agentes de Servicios
Capa de Presentacin
Componentes
necesarios para
habilitar la
interactuacin del
usuario con la
aplicacin
Partes de esta Capa:
Componentes de interfaz de
usuario
Componentes de proceso de
usuario
Implementando un modelo
basado en componente