Вы находитесь на странице: 1из 36

Modelo de 3 capas

G AB R IEL C A R VAJ AL P. C A M I LO R I V E R A R . F E L I PE S U AZ O O. I N G E NIE RA D E S O F TWAR E I I

Agenda
Introduccin Resea histrica

Arquitectura de software

Arquitectura monoltica Arquitectura de capas

Modelo de capas Modelo cliente servidor (2 capas) Modelo 3 capas Definicin de capa y caractersticas Capa de datos Capa reglas de negocio Capa de presentacin

Ejemplo

Conclusin

Introduccin
En los inicios de la informtica, la programacin se consideraba un arte y se desarrollaba como tal, debido a la dificultad que entraaba para la mayora de las personas.

Con el tiempo se han ido descubriendo y desarrollando formas y guas generales, con base a las cuales se puedan resolver los problemas.

A estas, se les ha denominado Arquitectura de Software, porque, a semejanza de los planos de un edificio o construccin, estas indican la estructura, funcionamiento e interaccin entre las partes del software.

Resea histrica
En los aos 1960 ya se acercaba el concepto de arquitectura de software en los crculos de investigacin (por ejemplo, por Edsger Dijkstra).

No obstante, toma popularidad en los aos 1990 tras reconocerse la denominada crisis del software y como tema de inters de la incipiente disciplina de la ingeniera del software.

Resea histrica
En un artculo de 1987 titulado No Silver Bullet: Essence and Accidents of Software Engineering, compara a los proyectos de software con el hombre lobo: de ser algo familiar, de pronto se convierten en una pesadilla.

Resea histrica
En dicho escrito, el autor resalta algunas para ese tiempo potenciales balas de plata, que eliminan este terror. Entre ellas, manifiesta la importancia que tienen los buenos diseadores en el desarrollo de software.

Arquitecturas de software
La arquitectura de software es un conjunto de decisiones que proporcionan un marco de referencia necesario para guiar la construccin de un software

Permite a los programadores, analistas y todo el conjunto de desarrolladores del software compartir una misma lnea de trabajo y cubrir todos los objetivos y restricciones de la aplicacin.

Es considerada el nivel ms alto en el diseo de la arquitectura de un sistema puesto que establecen la estructura,funcionamiento e interaccin entre las partes del software.

Arquitecturas de software
A su vez forma la columna vertebral para construir un sistema de software, es en gran medida responsable de permitir ciertos atributos de calidad del sistema entre los que se destacan la confiabilidad y el rendimiento del software. Adems es un modelo abstracto reutilizable que puede transferirse de un sistema a otro y que representa un medio de comunicacin y discusin entre participantes del proyecto Permite la interaccin e intercambio entre los desarrolladores con el objetivo final de establecer el intercambio de conocimientos y puntos de vista entre ellos.

Arquitecturas de software

Tipo de arquitectura
Para llevar a cabo la arquitectura de un software se sigue un conjunto de patrones arquitectnicos, entre los cuales podemos encontrar: Arquitectura Monoltica Arquitectura Cliente-Servidor Arquitectura modelo entre capas.

Arquitectura Monoltica
Es la arquitectura de los primeros sistemas operativos constituidos fundamentalmente por un solo programa compuesto de un conjunto de rutinas entrelazadas de tal forma que cada una puede llamar a cualquier otra.

Arquitectura Monoltica
Las caractersticas fundamentales de este tipo de arquitectura son:

Construccin del programa final a base de mdulos compilados separadamente que se unen a travs del ligador. Buena definicin de parmetros de enlace entre las distintas rutinas existentes, que puede provocar mucho acoplamiento. Carecen de protecciones y privilegios al entrar a rutinas que manejan diferentes aspectos de los recursos de la computadora, como memoria, disco, etc. Generalmente estn hechos a medida, por lo que son eficientes y rpidos en su ejecucin y gestin, pero por lo mismo carecen de flexibilidad para soportar diferentes ambientes de trabajo o tipos de aplicaciones.

Modelo en capas
Definicin
Son arquitecturas de software, cuyo objetivo primordial es la separacin de la lgica de negocios - lgica del diseo.

Ventajas:
Desarrollo se puede llevar a cabo en capas, por lo que en caso de que sobrevenga algn cambio, slo se ataca la capa requerida. Separacin de funciones. Facilidad de mantenimiento

Modelo en capas
Diferencia entre capa y nivel
Capa Forma en que la solucin es segmentada desde el punto de vista lgico (Ej: presentacin, lgica negocio y datos) Forma en que las capas lgicas se encuentran distribuidas de forma fsica

Nivel

Modelo en capas Diferencia entre capa y nivel


Ejemplo: Un sistema de tres capas (presentacin, lgica del negocio, datos) que residen en dos ordenadores. Se dice que la arquitectura de la solucin es de tres capas y dos niveles.

Modelo en capas Caractersticas


En toda arquitectura de capa los elementos agrupados en una misma capa pueden comunicarse entre s. Existen variantes en cuanto a las comunicaciones permitidas entre elementos de capas diferentes:
Arquitectura top-down de capas.

Arquitectura bottom-up de capas.


Arquitectura bidireccional de capas.

Modelo en capas
Caractersticas

Arquitectura top-down de capas:

Capa 1

Capa 2
Capa 3
Una arquitectura top-down es laxa (o no estricta) si los elementos de una capa i+1 pueden enviar solicitudes de servicio directamente a un elemento de cualquiera de las i capas inferiores.

Modelo en capas
Caractersticas

Arquitectura bottom-up de capas:

Capa 1
Capa 2 Capa 3
Una arquitectura bottom-up tambin puede ser no estricta si el elemento de la capa i puede notificar a cualquier elemento de cualquier capa superior a la capa i.

Modelo en capas
Caractersticas

Arquitectura bidireccional de capas En su forma ms comn involucra dos pilas de N capas que se comunican entre s. El ejemplo ms conocido es el de los protocolos en Redes de Computadores.

Arquitectura
Cliente - servidor (2 capas)
Una arquitectura distribuida que permite a los usuarios finales obtener acceso a la informacin de forma transparente an en entornos multiplataforma.

Arquitectura Cliente - servidor


Front-End: Consiste en la capa donde el usuario interacta con su PC. Back-End: Es el servidor de bases de datos como Oracle o SQL-Server.

Arquitectura
Cliente - servidor (2 capas)
Caractersticas bsicas:

Combinacin de un cliente que interacta con el usuario, y un

servidor que interacta con los recursos compartidos. Se establece una relacin entre procesos distintos, los cuales pueden ser ejecutados en la misma mquina o en mquinas diferentes distribuidas a lo largo de la red. Clara distincin de las funciones servicio. La relacin establecida puede ser de muchos a uno, en la que un servidor puede dar servicio a muchos clientes, regulando el acceso a recursos compartidos.

Arquitectura
Cliente - servidor (2 capas)
El ambiente es heterogneo. La plataforma de hardware y el sistema
operativo del cliente y del servidor no son siempre la misma. (Independencia de la plataforma)

La escalabilidad tanto horizontal como vertical.

La escalabilidad horizontal permite agregar ms estaciones de trabajo


(clientes) activas sin afectar significativamente el rendimiento, mientras que la escalabilidad vertical permite mejorar las caractersticas del servidor o agregar mltiples servidores.

Arquitectura 3 capas

Arquitectura 3 capas
Capa de Datos
Realizar transacciones con bases de datos y/o otros sistemas. Procurar la consistencia de datos y precisin de los mismos.

Definicin de consultas a la base de datos.


Uso de procedimientos almacenados y/o triggers.

Modelo 3 capas
Capa de Reglas de Negocio
Define todas las reglas del negocio que se deben cumplir para una correcta ejecucin del software.

Contiene lgica del sistema, estructuras de datos y objetos para la manipulacin de datos.
Corazn del sistema. (Comunicacin)
Procesamiento de datos ingresada o solicitada por el usuario en la capa de presentacin. Peticin y envo de informacin a la capa de datos.

Modelo 3 capas
Capa presentacin
Capa que interacta con el usuario (tambin se la denomina "capa de usuario"),

Presenta el sistema al usuario


Comunica la informacin y captura la informacin del usuario en un mnimo de proceso. (Verificacin datos)

Es conocida como interfaz grfica.


Esta capa se comunica nicamente con la capa de negocio.

Modelo 3 capas Ventajas


Alta cohesin y bajo acoplamiento. Uso del principio divide y vencers. Capas segn funcionalidad. Modularidad.

Modelo 3 capas Desventajas


Dificultad establecer un balance entre capas y subcapas. Prdida de eficiencia. Realizacin de trabajo redundante entre capas. Alta dependencia entre capas que contradice el objetivo principal del modelo

Otras arquitecturas de software


Orientada a servicios. Dirigida por eventos. Mquinas virtuales.

Ejemplo
Capa Interfaz

Ejemplo
Capa reglas del negocio

Ejemplo
Capa de datos

Conclusin
La arquitectura de software, con alrededor de 15 aos de vida (si consideramos su nacimiento a partir de 1992), ha emergido como una

disciplina de gran importancia dentro de la ingeniera de software.

Una arquitectura adecuada es pieza clave para lograr tanto los requerimientos funcionales como no funcionales de un sistema. Por otro lado, una arquitectura no adecuada puede ser catastrfica.

Conclusin
La arquitectura tambin juega un papel importante en otros aspectos del desarrollo de software:

Mejora la comprensin de sistemas grandes y complejos. Permite una mejor comunicacin entre los diferentes interesados

(stakeholders) en el sistema.

Mejora las posibilidades de reuso.

Proporciona planos para la construccin.


Toma en cuenta la posible evolucin del sistema.

Preguntas...

Вам также может понравиться