SlideShare una empresa de Scribd logo
UNIVERSIDAD NACIONAL DE TRUJILLO
FACULTAD DE CIENCIAS FISICA Y MATEMATICAS
INGENIERIA INFORMÁTICA

TOPICOS ESPECIALES EN INGENIERIA DE SOFTWARE

TEMA

:

“PROGRAMACION EN TRES CAPAS”

ALUMNO

:

Morales Castillo, José Antonio

DOCENTE

:

Díaz Pulido, José Arturo

Trujillo - Perú
2014
INDICE
Pág.
DEDICATORIA………………………………………………………………………….. 3
INTRODUCCION……………………………………………………………………...... 4

CAPITULO I
ASPECTOS GENERALES…………….……...................................................... 5
1.1 CONCEPTO……………………………………………………………………….. 5
1.2 CARACTERITICAS……………………………………………………………….. 6

CAPITULO II
CAPAS O NIVELES……………..…………………………………………………….. 7
2.1 CAPA DE PRESENTACIÓN……………….……………………………………. 7
2.2 CAPA DE NEGOCIOS ……………………………………..……………………. 7
2.3 CAPA DE DATOS………………………………………………………………… 8

CAPITULO III
VENTAJAS Y DESVENTAJA…………………………………………………………. 9

CAPITULO IV
TECNOLOGÍAS QUE IMPLEMENTAN LA PROGRAMACIÓN EN
CAPAS…………………………………………………………………………………..10
CONCLUSIONES……………………………………………………………………….11
BIBLIOGRAFIA…………………………………………………………………………12
DEDICATORIA

El presente trabajo está dedicado a
todas las personas que de una u
otra manera nos motivan a seguir
adelante día a día
INTRODUCCION
En el presente documento se trata de explicar ¿Qué es un modelo de
programación en 3 capas?, para poder entender de que se trata debemos
entender la arquitectura de un aplicación la cual consiste básicamente en la forma
en que son diseñadas las aplicaciones, en aspecto físico como lógico, el diseño
físico de una aplicaron se refiere al lugar donde encontraremos las piezas de la
aplicación, el diseño lógico por otro lado es la especificación de la estructura y
componentes de aplicación sin tener en cuenta donde estos serán localizados los
software o la estructura física de la aplicación.
Se debe entender además el concepto de cliente-servidor el cual consiste en su
forma elemental a una aplicación en la cual dos o más procesos trabajan juntos
para completar una tarea. El proceso Cliente solicita al proceso servidor la
ejecución de una acción, dando origen de esta forma al proceso “cooperativo”. Si
bien trabajan juntos pueden o no estar en una maquina en particular.
Ahora pasaremos a ver lo que es el modelo de tres capas, por lógica es el sucesor
al modelo de dos capas el cual estaba constituido por Front-end y Back end,
entendido cada uno de ellos como: Front end capa donde el usuario interactúa con
su PC, el Back end corresponde a un servidor de base de datos como SQL Server
u Oracle.
El modelo a tres capas implementa una o más capas adicionales las cuales están
encargadas de encapsular las reglas del negocio asociadas con el sistema y las
separa de la presentación y el código de la Base de datos.
Un modelo de tres capas tiene como destino final ayudar a construir componentes
físicos a partir de los niveles lógicos, estos niveles están conformados por varios
componentes, por tanto pueden suplir a muchos servicios.
CAPITULO I: ASPECTOS GENERALES

1.1.

CONCEPTO:

La programación por capas es un estilo de programación en la que el
objetivo Principal es la separación de lógica de negocios de la lógica de
diseño.
La programación en capas es la técnica más efectiva en aplicaciones
empresariales, debido a la fácil administración que implica el dividir los
componentes de la aplicación en capas y la rapidez que esto implica en
programas orientados a cliente-servidor. Esta arquitectura consiste en
dividir los componentes primarios de la aplicación, programarlos por
separado y después unirlos en tiempo de ejecución.
La programación en capas no es una técnica rígida que debe
implementarse solamente de una forma, sino que los desarrolladores de
proyectos tienen múltiples maneras de implementarla según las tecnologías
y tendencias que se utilicen.
La satisfacción de los requerimientos del usuario es la base para escoger el
modelo de implementación a seguir. La tendencia a utilizar el modelo de
programación en capas es grande cuando se trata principalmente de
aplicaciones empresariales donde se deben manejar gran cantidad de
subsistemas y módulos, así como generar reportes lo suficientemente
complejos como para necesitar un orden estricto a la hora de desarrollar el
proyecto.
Dentro del concepto de programación en capas, existen dos términos
esenciales para el mejor entendimiento de los conceptos relativos a esta
metodología, es aquí donde radica la importancia de la cohesión y el
acoplamiento dentro de una aplicación generada mediante este método.

Cohesión: Este término es utilizado para describir el comportamiento que
deben tener los módulos y objetos de un sistema o subsistema,
comportamiento que describe la forma en que deben trabajar los objetos y
módulos entre si, con alta cohesión para que trabajando en conjunto los
módulos y objetos puedan alcanzar un solo propósito de manera más eficaz
y rápida.
Determina que las operaciones de un objeto deben trabajar en conjunto
para alcanzar un propósito común. Es deseable que haya alta cohesión.

Acoplamiento: Se refiere al grado de dependencia que existe entre los
módulos. Este grado de dependencia debe ser considerablemente bajo ya
que el trabajo se divide en módulos para que cada uno tenga un
funcionamiento específico y puede ser más factible la implementación por
separado de cada uno. En caso de haber alto acoplamiento entre módulos
no se estaría alcanzando el principal objetivo de este modelo, el cual es
dividir una tarea grande en varias pequeñas, ya que los módulos actuarían
como uno solo al estar altamente acoplados entre sí y se perdería el
objetivo primordial de dividir el proyecto.

1.2

CARACTERÍSTICAS:


Se asegura avanzar en la programación del proyecto de una forma
ordenada, lo cual beneficia en cuanto a reducción de costo por tiempo,
debido a que se podrá avanzar de manera más segura en el desarrollo
del proyecto.



La aplicación al ser dividida en módulos y capas pueden ser tratados de
manera independiente y hasta en forma paralela.



Permite que el software sea escalable, mantenible, consistente y que
tenga mucho un aspecto mucho más profesional de desarrollo
CAPITULO II: CAPAS O NIVELES

2.1.

CAPA DE PRESENTACIÓN (IU):
La presentación del programa ante el usuario, debe manejar interfaces que
cumplan con el objetivo principal de este componente, el cual es facilitar al
usuario la interacción con la aplicación. Para esto se utilizan patrones
predefinidos para cada tipo de aplicación y para cada necesidad del usuario.
La interfaz debe ser amigable y fácil de utilizar, ya que el usuario final es el que
se va a encargar de utilizar el sistema y de dar retroalimentación al equipo de
desarrollo en caso de que haya algo que mejorar.
Las interfaces deben ser consistentes con la in formación que se requiere,
no se deben utilizar más campos de los necesarios, así como la información
requerida tiene que ser especificada de manera clara y concisa, no debe
haber más que lo necesario en cada formulario y por último, las interfaces
deben satisfacer los requerimientos del usuario, por lo cual no se debe
excluir información solicitada por el usuario final y no se debe incluir
información no solicitada por el mismo.
Dentro de la parte técnica, la capa de presentación contiene los objetos
encargados de comunicar al usuario con el sistema mediante el intercambio
de información, capturando y desplegando los datos necesarios para
realizar alguna tarea. En esta capa los datos se procesan de manera
superficial por ejemplo, para determinar la validez de su formato o para
darles algún orden específico. Esta capa se comunica únicamente con la capa
de Reglas de Negocio o Control.

2.2

CAPA DE NEGOCIOS:
Es llamada capa de reglas de negocio porque en esta se definen todas las
reglas que se deben cumplir para una correcta ejecución del programa.
Es aquí donde se encuentra toda la lógica del programa, así como las
estructuras de datos y objetos encargados para la manipulación de los
datos existentes, así como el procesamiento de la información ingresada o
solicitada por el usuario en la capa de presentación.
Representa el corazón de la aplicación ya que se comunica con todas las
demás capas para poder llevar a cabo las tareas. Por ejemplo, mediante la capa
de presentación obtiene la información ingresada por el usuario, y despliega los
resultados. Si la aplicación se comunica con otros sistemas que actúan en
conjunto, lo hace mediante esta capa. También se comunica con la capa de
datos para obtener información existente o ingresar nuevos datos.
Recibe los datos que ingresó el usuario del sistema mediante la capa de
presentación, luego los procesa y crea objetos según lo que se necesite
hacer con estos datos; esta acción se denomina encapsulamiento.
Al encapsular los datos, el programa asegura mantener la consistencia de
los mismos, así como obtener información precisa de las bases de datos e
ingresar en las mismas, solamente la información necesaria, asegurando
así no tener datos duplicados ni en las bases de datos, ni en los reportes
solicitados por el usuario.

2.3

CAPA DE DATOS:
Es la encargada de realizar transacciones con bases de datos y con otros
sistemas para obtener o ingresar información al sistema.
El manejo de los datos debe realizarse de forma tal que haya consistencia
en los mismos, de tal forma los datos que se ingresan así como los que se
extraen de las bases de datos, deben ser consistentes y precisos.
Es en esta capa donde se definen las consultas a realizar en la base de
datos, tanto las consultas simples como las consultas complejas para
generación de reportes más específicos.
Esta capa envía la información directamente a la capa de reglas de negocio
para que sea procesada e ingresada en objetos según se necesite, esta
acción se denomina encapsulamiento.
CAPITULO III: VENTAJAS Y DESVENTAJAS

3.1.

VENTAJAS:


Al implementar este modelo de programación, se asegura un trabajo de
forma ordenada y separada, debido a que sigue el principio de “divide y
vencerás”.



Cada capa está dividida según su funcionalidad cuando se quiere modificar
el sistema basta con cambiar un objeto o conjunto de objetos de una capa.
Esto se llama modularidad.



Reutilización de capas.



Dependencias se limitan a intra-capa



Darle seguridad y versatilidad al sistema



Es más ordenado



Clara distribución de las responsabilidades.



Podemos cambiar de repositorio de datos sin afectar al resto de la
aplicación.



Los componentes de la aplicación pueden ser desarrollados en cualquier
lenguaje.




Los componentes pueden estar distribuidos en múltiples servidores.



La D.B. es solo vista desde la capa intermedia y no desde todos los clientes.



Los drivers del D.B. No tienen que estar en los clientes.



Mejora la administración de los recursos cuando existe mucha concurrencia.



3.2

Los componentes son independientes.

Permite reutilización real del software y construir aplicaciones escalables

DESVENTAJAS:


Perdida de eficiencia



Realización de trabajo innecesario o redundante entre capas.



Gasto de espacio de la aplicación debido a la expansión de las capas



Alta dependencia entre los objetos y capas que contradice el objetivo
principal del modelo
CAPITULO IV: TECNOLOGÍAS QUE IMPLEMENTAN LA PROGRAMACIÓN EN
CAPAS
En la actualidad, la mayoría de las programas comerciales web que se desarrollan se
hacen usando dos tecnologías: la herramienta Visual Studio .Net de Microsoft y
tecnologías Java como lo son Spring e Hibernate.

4.4

MICROSOFT VISUAL STUDIO.NET
Esta plataforma o framework implementa la capa de presentación usando su
propia tecnología de HTML llamada ASPX, que provee una gran variedad de
herramientas para crear interfaces gráficas visibles en de la mayoría de los
navegadores de Internet
La capa de datos es accesada mediante herramientas conocidas como Data
Set y Data Reader, que fueron creadas con el fin de poder mapear con cierta
facilidad los objetos y entidades del lenguaje con las tablas que hay en las bases
de datos del programa.

4.5

TECNOLOGÍAS JAVA: SPRING Y HIBERNATE.
La máquina virtual Java también ha implementado su forma de programación en
capas usando dos plataformas llamadas Spring e Hibernate.
La primera es una herramienta que facilita la creación de aplicaciones Java
creada con el fin de facilitar el menor acoplamiento entre los objetos, ya que el
programa se construye por medio de interfaces y no clases, se puede entonces
cambiar en el futuro la implementación de un objeto sin alterar la funcionalidad
general del programa.
La capa de presentación se implementa por mediante las herramientas JSP,
Servlets y Scriptlets con las que se construyen y conectan las interfaces gráficas
con la capa de lógica del negocio.
La otra herramienta Hibernate, funciona para mapear las tablas de las bases de
datos con los objetos creados en Java, esta herramienta sin embargo es más
especializada y eficiente que la de Microsoft debido a que es la técnica más
cercana a mapear realmente los objetos con las tablas de la base de datos.
CONCLUSIONES:


La arquitectura de 3 niveles nos permite tener una mayor facilidad para
solucionar los problemas debido a la separación de capas.



La programación en capas ha sido una de las últimas tendencias en cuanto a
software comercial se refiere.



No todos los equipos ni empresas desarrolladoras usan un sistema rígido, ni
existe una forma estricta en la que tenga que implementarse el modelo de
capas, cada quién debe hacerlo según sus necesidades, alcances y lo más
importante; las tendencias y nuevas tecnologías que vayan surgiendo.



No importa el lenguaje de programación usada, o el tipo de implementación
que se le dé al modelo; se debe buscar una alta cohesión y un bajo
acoplamiento dentro de los objetos y capas para lograr que la aplicación sea
fácilmente desarmable y sea más sencillo realizar mejoras y actualizaciones al
sistema.



Se tiene facilidad para el cambio de interfaz debido a las diferentes
tecnologias
BIBLIOGRAFIA:



http://espanol.answers.yahoo.com/question/index?qid=20070407094903AA9
2GT8



http://es.wikipedia.org/wiki/Programaci%C3%B3n_por_capas



http://es.sandramarramirez.wikia.com/wiki/Programaci%C3%B3n_por_Capas
BarCelona 1992.



http://es.wikipedia.org/wiki/Programaci%C3%B3n_por_capas



http://www.di-mare.com/adolfo/cursos/2007-2/pp-3capas.pdf

Más contenido relacionado

PDF
Monografia Programación 3 Niveles
PPT
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
DOCX
Ejemplo arquitectura 3 capas con access
PPTX
Fundamentos
PDF
Modelo vista controlador #ihcpfgigs_Diseñoweb
DOCX
Modelo vista controlador vas Programacion por n capas
PPTX
Diseño estructurado
PPTX
Arquitectura
Monografia Programación 3 Niveles
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
Ejemplo arquitectura 3 capas con access
Fundamentos
Modelo vista controlador #ihcpfgigs_Diseñoweb
Modelo vista controlador vas Programacion por n capas
Diseño estructurado
Arquitectura

La actualidad más candente (20)

PDF
ers para una pagina de viajes
DOCX
Arquitectura del proyecto
PPTX
Aplicaciones n capas en visual net
PPTX
APLICACIONES N-CAPAS EN VISUAL NET
DOCX
Modelado
PPT
Modelado de sistemas software
PPTX
Diseño fisico
PPTX
Diseño detallado
PDF
Diseño logico de una base de datos
DOCX
Cristobal
PDF
PPSX
Diseño estructurado
PPTX
Aplicaciones en n capas en visual net
DOC
Manual técnico
PPT
Arquitectura de aplicaciones
PDF
Diseño de software
PPTX
Diapositivas de n capas en visual net 2017
DOCX
Trabajo analisis y diseño de sistemas
PPTX
Metodología de Diseño Estructurado.pptx
PPTX
Jose marcano analisis y diseño de sistemas
ers para una pagina de viajes
Arquitectura del proyecto
Aplicaciones n capas en visual net
APLICACIONES N-CAPAS EN VISUAL NET
Modelado
Modelado de sistemas software
Diseño fisico
Diseño detallado
Diseño logico de una base de datos
Cristobal
Diseño estructurado
Aplicaciones en n capas en visual net
Manual técnico
Arquitectura de aplicaciones
Diseño de software
Diapositivas de n capas en visual net 2017
Trabajo analisis y diseño de sistemas
Metodología de Diseño Estructurado.pptx
Jose marcano analisis y diseño de sistemas
Publicidad

Similar a Monografia top sw (20)

DOCX
PROGRAMACION POR CAPAS-UNT
DOCX
N-CAPAS EN VISUAL NET
PPT
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
DOC
3 capas
DOC
Arquitectura en capas
PPTX
APLICACIÓN N-CAPAS VISUAL.NET
PPTX
Programación en capass
DOCX
Modelado
PPTX
Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)
DOC
C:\Documents And Settings\Administrador\Escritorio\Sistemas\Universidad Austr...
PDF
Presente Y Futuro De Los Si
PPT
Arquitectura 2
PPT
Arquitectura
DOC
Unidad 1
PPT
Unidad 1. Desarrollo de Aplicaciones Distribuidas
PPT
A charla12 arq.3-capas
PPTX
Copia de unidad 7 diseã‘o_estructructurado_de_datos_microsoft_access.
PPTX
Unidad # 7 diseño estructurado de datos
PPTX
Unidad 7 diseã‘o_estructructurado_de_datos_microsoft_access.
PPTX
Unidad 7 diseño estructructurado de datos microsoft access.
PROGRAMACION POR CAPAS-UNT
N-CAPAS EN VISUAL NET
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
3 capas
Arquitectura en capas
APLICACIÓN N-CAPAS VISUAL.NET
Programación en capass
Modelado
Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)
C:\Documents And Settings\Administrador\Escritorio\Sistemas\Universidad Austr...
Presente Y Futuro De Los Si
Arquitectura 2
Arquitectura
Unidad 1
Unidad 1. Desarrollo de Aplicaciones Distribuidas
A charla12 arq.3-capas
Copia de unidad 7 diseã‘o_estructructurado_de_datos_microsoft_access.
Unidad # 7 diseño estructurado de datos
Unidad 7 diseã‘o_estructructurado_de_datos_microsoft_access.
Unidad 7 diseño estructructurado de datos microsoft access.
Publicidad

Último (20)

PDF
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
PPTX
Tema 1 Taller de tecnologia y proceso tecnologico.pptx
PPTX
Historia Inteligencia Artificial Ana Romero.pptx
PDF
Tips de Seguridad para evitar clonar sus claves del portal bancario.pdf
PPTX
Control de calidad en productos de frutas
PPT
Protocolos de seguridad y mecanismos encriptación
PPTX
Diapositivas Borrador Rocha Jauregui David Paolo (3).pptx
DOCX
Trabajo informatica joel torres 10-.....................
PDF
TRABAJO DE TECNOLOGIA.pdf...........................
PPTX
Presentacion de Alba Curso Auditores Internos ISO 19011
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PDF
CONTABILIDAD Y TRIBUTACION, EJERCICIO PRACTICO
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PDF
Teoría de estadística descriptiva y aplicaciones .pdf
DOCX
TRABAJO GRUPAL (5) (1).docxsjjsjsksksksksk
PPTX
ccna: redes de nat ipv4 stharlling cande
PPTX
Propuesta BKP servidores con Acronis1.pptx
DOCX
TRABAJO GRUPAL (5) (1).docxsjsjskskksksksks
PPTX
CLAASIFICACIÓN DE LOS ROBOTS POR UTILIDAD
PDF
NREN - red nacional de investigacion y educacion en LATAM y Europa: Caracteri...
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
Tema 1 Taller de tecnologia y proceso tecnologico.pptx
Historia Inteligencia Artificial Ana Romero.pptx
Tips de Seguridad para evitar clonar sus claves del portal bancario.pdf
Control de calidad en productos de frutas
Protocolos de seguridad y mecanismos encriptación
Diapositivas Borrador Rocha Jauregui David Paolo (3).pptx
Trabajo informatica joel torres 10-.....................
TRABAJO DE TECNOLOGIA.pdf...........................
Presentacion de Alba Curso Auditores Internos ISO 19011
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
CONTABILIDAD Y TRIBUTACION, EJERCICIO PRACTICO
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
Teoría de estadística descriptiva y aplicaciones .pdf
TRABAJO GRUPAL (5) (1).docxsjjsjsksksksksk
ccna: redes de nat ipv4 stharlling cande
Propuesta BKP servidores con Acronis1.pptx
TRABAJO GRUPAL (5) (1).docxsjsjskskksksksks
CLAASIFICACIÓN DE LOS ROBOTS POR UTILIDAD
NREN - red nacional de investigacion y educacion en LATAM y Europa: Caracteri...

Monografia top sw

  • 1. UNIVERSIDAD NACIONAL DE TRUJILLO FACULTAD DE CIENCIAS FISICA Y MATEMATICAS INGENIERIA INFORMÁTICA TOPICOS ESPECIALES EN INGENIERIA DE SOFTWARE TEMA : “PROGRAMACION EN TRES CAPAS” ALUMNO : Morales Castillo, José Antonio DOCENTE : Díaz Pulido, José Arturo Trujillo - Perú 2014
  • 2. INDICE Pág. DEDICATORIA………………………………………………………………………….. 3 INTRODUCCION……………………………………………………………………...... 4 CAPITULO I ASPECTOS GENERALES…………….……...................................................... 5 1.1 CONCEPTO……………………………………………………………………….. 5 1.2 CARACTERITICAS……………………………………………………………….. 6 CAPITULO II CAPAS O NIVELES……………..…………………………………………………….. 7 2.1 CAPA DE PRESENTACIÓN……………….……………………………………. 7 2.2 CAPA DE NEGOCIOS ……………………………………..……………………. 7 2.3 CAPA DE DATOS………………………………………………………………… 8 CAPITULO III VENTAJAS Y DESVENTAJA…………………………………………………………. 9 CAPITULO IV TECNOLOGÍAS QUE IMPLEMENTAN LA PROGRAMACIÓN EN CAPAS…………………………………………………………………………………..10 CONCLUSIONES……………………………………………………………………….11 BIBLIOGRAFIA…………………………………………………………………………12
  • 3. DEDICATORIA El presente trabajo está dedicado a todas las personas que de una u otra manera nos motivan a seguir adelante día a día
  • 4. INTRODUCCION En el presente documento se trata de explicar ¿Qué es un modelo de programación en 3 capas?, para poder entender de que se trata debemos entender la arquitectura de un aplicación la cual consiste básicamente en la forma en que son diseñadas las aplicaciones, en aspecto físico como lógico, el diseño físico de una aplicaron se refiere al lugar donde encontraremos las piezas de la aplicación, el diseño lógico por otro lado es la especificación de la estructura y componentes de aplicación sin tener en cuenta donde estos serán localizados los software o la estructura física de la aplicación. Se debe entender además el concepto de cliente-servidor el cual consiste en su forma elemental a una aplicación en la cual dos o más procesos trabajan juntos para completar una tarea. El proceso Cliente solicita al proceso servidor la ejecución de una acción, dando origen de esta forma al proceso “cooperativo”. Si bien trabajan juntos pueden o no estar en una maquina en particular. Ahora pasaremos a ver lo que es el modelo de tres capas, por lógica es el sucesor al modelo de dos capas el cual estaba constituido por Front-end y Back end, entendido cada uno de ellos como: Front end capa donde el usuario interactúa con su PC, el Back end corresponde a un servidor de base de datos como SQL Server u Oracle. El modelo a tres capas implementa una o más capas adicionales las cuales están encargadas de encapsular las reglas del negocio asociadas con el sistema y las separa de la presentación y el código de la Base de datos. Un modelo de tres capas tiene como destino final ayudar a construir componentes físicos a partir de los niveles lógicos, estos niveles están conformados por varios componentes, por tanto pueden suplir a muchos servicios.
  • 5. CAPITULO I: ASPECTOS GENERALES 1.1. CONCEPTO: La programación por capas es un estilo de programación en la que el objetivo Principal es la separación de lógica de negocios de la lógica de diseño. La programación en capas es la técnica más efectiva en aplicaciones empresariales, debido a la fácil administración que implica el dividir los componentes de la aplicación en capas y la rapidez que esto implica en programas orientados a cliente-servidor. Esta arquitectura consiste en dividir los componentes primarios de la aplicación, programarlos por separado y después unirlos en tiempo de ejecución. La programación en capas no es una técnica rígida que debe implementarse solamente de una forma, sino que los desarrolladores de proyectos tienen múltiples maneras de implementarla según las tecnologías y tendencias que se utilicen. La satisfacción de los requerimientos del usuario es la base para escoger el modelo de implementación a seguir. La tendencia a utilizar el modelo de programación en capas es grande cuando se trata principalmente de aplicaciones empresariales donde se deben manejar gran cantidad de subsistemas y módulos, así como generar reportes lo suficientemente complejos como para necesitar un orden estricto a la hora de desarrollar el proyecto. Dentro del concepto de programación en capas, existen dos términos esenciales para el mejor entendimiento de los conceptos relativos a esta metodología, es aquí donde radica la importancia de la cohesión y el acoplamiento dentro de una aplicación generada mediante este método. Cohesión: Este término es utilizado para describir el comportamiento que deben tener los módulos y objetos de un sistema o subsistema,
  • 6. comportamiento que describe la forma en que deben trabajar los objetos y módulos entre si, con alta cohesión para que trabajando en conjunto los módulos y objetos puedan alcanzar un solo propósito de manera más eficaz y rápida. Determina que las operaciones de un objeto deben trabajar en conjunto para alcanzar un propósito común. Es deseable que haya alta cohesión. Acoplamiento: Se refiere al grado de dependencia que existe entre los módulos. Este grado de dependencia debe ser considerablemente bajo ya que el trabajo se divide en módulos para que cada uno tenga un funcionamiento específico y puede ser más factible la implementación por separado de cada uno. En caso de haber alto acoplamiento entre módulos no se estaría alcanzando el principal objetivo de este modelo, el cual es dividir una tarea grande en varias pequeñas, ya que los módulos actuarían como uno solo al estar altamente acoplados entre sí y se perdería el objetivo primordial de dividir el proyecto. 1.2 CARACTERÍSTICAS:  Se asegura avanzar en la programación del proyecto de una forma ordenada, lo cual beneficia en cuanto a reducción de costo por tiempo, debido a que se podrá avanzar de manera más segura en el desarrollo del proyecto.  La aplicación al ser dividida en módulos y capas pueden ser tratados de manera independiente y hasta en forma paralela.  Permite que el software sea escalable, mantenible, consistente y que tenga mucho un aspecto mucho más profesional de desarrollo
  • 7. CAPITULO II: CAPAS O NIVELES 2.1. CAPA DE PRESENTACIÓN (IU): La presentación del programa ante el usuario, debe manejar interfaces que cumplan con el objetivo principal de este componente, el cual es facilitar al usuario la interacción con la aplicación. Para esto se utilizan patrones predefinidos para cada tipo de aplicación y para cada necesidad del usuario. La interfaz debe ser amigable y fácil de utilizar, ya que el usuario final es el que se va a encargar de utilizar el sistema y de dar retroalimentación al equipo de desarrollo en caso de que haya algo que mejorar. Las interfaces deben ser consistentes con la in formación que se requiere, no se deben utilizar más campos de los necesarios, así como la información requerida tiene que ser especificada de manera clara y concisa, no debe haber más que lo necesario en cada formulario y por último, las interfaces deben satisfacer los requerimientos del usuario, por lo cual no se debe excluir información solicitada por el usuario final y no se debe incluir información no solicitada por el mismo. Dentro de la parte técnica, la capa de presentación contiene los objetos encargados de comunicar al usuario con el sistema mediante el intercambio de información, capturando y desplegando los datos necesarios para realizar alguna tarea. En esta capa los datos se procesan de manera superficial por ejemplo, para determinar la validez de su formato o para darles algún orden específico. Esta capa se comunica únicamente con la capa de Reglas de Negocio o Control. 2.2 CAPA DE NEGOCIOS: Es llamada capa de reglas de negocio porque en esta se definen todas las reglas que se deben cumplir para una correcta ejecución del programa. Es aquí donde se encuentra toda la lógica del programa, así como las estructuras de datos y objetos encargados para la manipulación de los
  • 8. datos existentes, así como el procesamiento de la información ingresada o solicitada por el usuario en la capa de presentación. Representa el corazón de la aplicación ya que se comunica con todas las demás capas para poder llevar a cabo las tareas. Por ejemplo, mediante la capa de presentación obtiene la información ingresada por el usuario, y despliega los resultados. Si la aplicación se comunica con otros sistemas que actúan en conjunto, lo hace mediante esta capa. También se comunica con la capa de datos para obtener información existente o ingresar nuevos datos. Recibe los datos que ingresó el usuario del sistema mediante la capa de presentación, luego los procesa y crea objetos según lo que se necesite hacer con estos datos; esta acción se denomina encapsulamiento. Al encapsular los datos, el programa asegura mantener la consistencia de los mismos, así como obtener información precisa de las bases de datos e ingresar en las mismas, solamente la información necesaria, asegurando así no tener datos duplicados ni en las bases de datos, ni en los reportes solicitados por el usuario. 2.3 CAPA DE DATOS: Es la encargada de realizar transacciones con bases de datos y con otros sistemas para obtener o ingresar información al sistema. El manejo de los datos debe realizarse de forma tal que haya consistencia en los mismos, de tal forma los datos que se ingresan así como los que se extraen de las bases de datos, deben ser consistentes y precisos. Es en esta capa donde se definen las consultas a realizar en la base de datos, tanto las consultas simples como las consultas complejas para generación de reportes más específicos. Esta capa envía la información directamente a la capa de reglas de negocio para que sea procesada e ingresada en objetos según se necesite, esta acción se denomina encapsulamiento.
  • 9. CAPITULO III: VENTAJAS Y DESVENTAJAS 3.1. VENTAJAS:  Al implementar este modelo de programación, se asegura un trabajo de forma ordenada y separada, debido a que sigue el principio de “divide y vencerás”.  Cada capa está dividida según su funcionalidad cuando se quiere modificar el sistema basta con cambiar un objeto o conjunto de objetos de una capa. Esto se llama modularidad.  Reutilización de capas.  Dependencias se limitan a intra-capa  Darle seguridad y versatilidad al sistema  Es más ordenado  Clara distribución de las responsabilidades.  Podemos cambiar de repositorio de datos sin afectar al resto de la aplicación.  Los componentes de la aplicación pueden ser desarrollados en cualquier lenguaje.   Los componentes pueden estar distribuidos en múltiples servidores.  La D.B. es solo vista desde la capa intermedia y no desde todos los clientes.  Los drivers del D.B. No tienen que estar en los clientes.  Mejora la administración de los recursos cuando existe mucha concurrencia.  3.2 Los componentes son independientes. Permite reutilización real del software y construir aplicaciones escalables DESVENTAJAS:  Perdida de eficiencia  Realización de trabajo innecesario o redundante entre capas.  Gasto de espacio de la aplicación debido a la expansión de las capas  Alta dependencia entre los objetos y capas que contradice el objetivo principal del modelo
  • 10. CAPITULO IV: TECNOLOGÍAS QUE IMPLEMENTAN LA PROGRAMACIÓN EN CAPAS En la actualidad, la mayoría de las programas comerciales web que se desarrollan se hacen usando dos tecnologías: la herramienta Visual Studio .Net de Microsoft y tecnologías Java como lo son Spring e Hibernate. 4.4 MICROSOFT VISUAL STUDIO.NET Esta plataforma o framework implementa la capa de presentación usando su propia tecnología de HTML llamada ASPX, que provee una gran variedad de herramientas para crear interfaces gráficas visibles en de la mayoría de los navegadores de Internet La capa de datos es accesada mediante herramientas conocidas como Data Set y Data Reader, que fueron creadas con el fin de poder mapear con cierta facilidad los objetos y entidades del lenguaje con las tablas que hay en las bases de datos del programa. 4.5 TECNOLOGÍAS JAVA: SPRING Y HIBERNATE. La máquina virtual Java también ha implementado su forma de programación en capas usando dos plataformas llamadas Spring e Hibernate. La primera es una herramienta que facilita la creación de aplicaciones Java creada con el fin de facilitar el menor acoplamiento entre los objetos, ya que el programa se construye por medio de interfaces y no clases, se puede entonces cambiar en el futuro la implementación de un objeto sin alterar la funcionalidad general del programa. La capa de presentación se implementa por mediante las herramientas JSP, Servlets y Scriptlets con las que se construyen y conectan las interfaces gráficas con la capa de lógica del negocio. La otra herramienta Hibernate, funciona para mapear las tablas de las bases de datos con los objetos creados en Java, esta herramienta sin embargo es más especializada y eficiente que la de Microsoft debido a que es la técnica más cercana a mapear realmente los objetos con las tablas de la base de datos.
  • 11. CONCLUSIONES:  La arquitectura de 3 niveles nos permite tener una mayor facilidad para solucionar los problemas debido a la separación de capas.  La programación en capas ha sido una de las últimas tendencias en cuanto a software comercial se refiere.  No todos los equipos ni empresas desarrolladoras usan un sistema rígido, ni existe una forma estricta en la que tenga que implementarse el modelo de capas, cada quién debe hacerlo según sus necesidades, alcances y lo más importante; las tendencias y nuevas tecnologías que vayan surgiendo.  No importa el lenguaje de programación usada, o el tipo de implementación que se le dé al modelo; se debe buscar una alta cohesión y un bajo acoplamiento dentro de los objetos y capas para lograr que la aplicación sea fácilmente desarmable y sea más sencillo realizar mejoras y actualizaciones al sistema.  Se tiene facilidad para el cambio de interfaz debido a las diferentes tecnologias