Sie sind auf Seite 1von 28

Fundamentos de

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

Plataforma actual de las aplicaciones


Data
Access

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

Aplicaciones por capas


Seguridad

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

Caso prctico: Definiendo una


arquitectura

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

Cada mecanismo est asociado al mbito de


comunicacin entre los componentes, servicios
y/o sistemas.

Tranferencia de Objetos de Negocio


entre aplicaciones

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 Lgica de Negocios


La parte mas importante
de la aplicacion por la
funcionalidad que
brinda.
Partes de esta Capa:
Interfaces de Servicio
Flujos de Trabajo
Componentes Empresariales
Entidades Empresariales

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

Das könnte Ihnen auch gefallen