1. Arquitectura de Software

28
Ing. Jhedson Ninahuaman [email protected] Fundamentos de Arquitectura de Software

description

habla de como esta formado un software y sus características rincipales

Transcript of 1. Arquitectura de Software

Page 1: 1. Arquitectura de Software

Ing. Jhedson [email protected]

Fundamentos de

Arquitectura de Software

Page 2: 1. Arquitectura de Software

Introducción a la arquitectura de los sistemas de información.

Definiendo un objeto de negocio.

Desarrollo basado en componentes.

Agenda

Page 3: 1. Arquitectura de Software

Introducción a la

arquitectura de los

sistemas de información

Page 4: 1. Arquitectura de Software

¿Por qué hablar de arquitectura?

En la medida que el tamaño de los sistemas crecen, los algoritmos y las estructuras de datos dejan de convertirse en el mayor problema.

El nuevo reto es diseñar y especificar la estructura global del sistema.

Introducción

Page 5: 1. Arquitectura de Software

Arquitectura se refiere a una representación abstracta de los módulos / componentes de un sistema y su entorno.

Idealmente, la arquitectura no incluye detalles de implementación.

Definiciones

Page 6: 1. Arquitectura de Software

Rol del Arquitecto.El arquitecto obtiene información sobre el problema y diseña una solución 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

Page 7: 1. Arquitectura de Software

Atributos de calidad de la arquitectura

Arquitectura

Rendimiento

Escalabilidad

Mantenibilid

ad

Reusabilidad

Compatibilida

dDisponibilida

d

Portabilidad

Oportunidad

Seguridad

Flexibilidad

Definiciones

Page 8: 1. Arquitectura de Software

La arquitectura reúne las principales características el software y del sistema en relación con el software, se plasma aspectos como:

El ¿Qué? (requisitos funcionales) y el ¿Cómo? (requisitos no funcionales).

Estilos arquitectónicos en los que será implementado el Software: objetos, capas, repositorios, etc.

Patrones que serán usados (DAO, MVC, etc).

Distribución física.

….

¿Qué es una arquitectura y qué

aporta a un sistema?

Page 9: 1. Arquitectura de Software

Co

nta

inin

g a

nd

Co

nn

ecti

ng

Lo

gic

Defi

nin

g

Lo

gic

Logic to LogicLogic to Web

Browser

Accessin

g

Data

Data

Access

Web

Services

Binary

Communication

Distributed

Transactions, etc.

Queued

Messaging

Usin

g

Lo

gic

Web Browser Standalone Client

Objects

Remote Logic

Plataforma actual de las aplicaciones

Page 10: 1. Arquitectura de Software

Origen de DatosServicios

Capa de Datos

Capa de Presentación

Capa de Negocio

Procesos

de Negocio

Componentes

de Negocio

Entidades

de Negocio

Ciclo de Vida del software

Ad

min

istr

ació

n O

pe

rativa

Co

mu

nic

acio

ne

s

Agentes Servicios

Agentes Servicios

Interfaces Servicios

Agentes Servicios

Interfaces Servicios

Seguridad

Usuarios

Aplicaciones por capas

Page 11: 1. Arquitectura de Software

Caso práctico: Definiendo unaarquitectura

Page 12: 1. Arquitectura de Software

Definiendo un Objeto de

Negocio

Page 13: 1. Arquitectura de Software

Entidades: persistencia de

objetos de negocio

Page 14: 1. Arquitectura de Software

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;

}

}

}

Entidades de Negocio

Page 15: 1. Arquitectura de Software

Entre la comunicación de componentes dentro de un modelo distribuido, se debe seleccionar uno de los siguientes mecanismos:

Serialización XML

Serialización Binaria

Cada mecanismo está asociado al ámbito de comunicación entre los componentes, servicios y/o sistemas.

Transferencia de objetos de

negocio

Page 16: 1. Arquitectura de Software

Tranferencia de Objetos de Negocioentre aplicaciones

Page 17: 1. Arquitectura de Software

Desarrollo basado en

componentes

Page 18: 1. Arquitectura de Software

El desarrollo basado en componentes, se basa en los siguiente principios:

Una mejor granularidad de los componentes de la aplicación.

Mejora el mantenimiento a nivel de cada capa de la aplicación.

Permite diversas formas de implementación por el lado del cliente.

Permite una mayor integración entre sistemas, de forma transparente al usuario final.

Generalidades

Page 19: 1. Arquitectura de Software

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 comunicación entre éstas. (base para SOA)

Acoplamiento / Desacoplamiento

Page 20: 1. Arquitectura de Software

Es la parte mas importante de la aplicacion por la funcionalidad que brinda.

Se basa en la implementación de los siguientes elementos:

Interfaces de Servicio

Procesos de Negocio (Flujos)

Componentes de Negocio

Entidades Empresariales

Diseño de componentes de

negocio

Page 21: 1. Arquitectura de Software

Involucra la construcción de operaciones de flujo de negocio asociado a acciones puntuales, de un flujo simple y bajo la administración una o varias transacciones.

Por lo general una lógica de negocio se implementa bajo la concepción de un caso de uso, al igual que los procesos de negocio.

Lógica de Negocio

Page 22: 1. Arquitectura de Software

Involucra acciones de integración 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 ejecución larga.

Exponer una interfaz que implemente un proceso empresarial que habilite la aplicación para establecer

una conversación o un contrato con otros servicios.

Procesos de Negocio

Page 23: 1. Arquitectura de Software

Gestionar la comunicación con el cliente o servicio externo.

Gestionar las transacciones.

Gestionar el flujo lógico de los datos, reflejando un caso de uso.

Integrar la comunicación entre los diversos orígenes de datos.

Controlar la participación de otros sistemas dentro del flujo lógico.

Responsabilidad de la capa de

Negocio

Page 24: 1. Arquitectura de Software

Capa de Datos

Capa de Negocios

Capa de Presentación

Distribución de

Responsabilidades

Page 25: 1. Arquitectura de Software

Manejar el Almacenamiento de los Datos a Utilizar.

Partes de esta Capa:Componentes lógicos de acceso a datos

Agentes de Servicios

Capa de Datos

Page 26: 1. Arquitectura de Software

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 Lógica de Negocios

Page 27: 1. Arquitectura de Software

Componentes necesarios para habilitar la interactuación del usuario con la aplicación

Partes de esta Capa:Componentes de interfaz de usuario

Componentes de proceso de usuario

Capa de Presentación

Page 28: 1. Arquitectura de Software

Implementando un modelobasado en componente