Programación 3: programación por capas

35
Programación 3 Programación por capas Angel Vázquez-Patiño [email protected] Departamento de Ciencias de la Computación Universidad de Cuenca 6 de abril de 2017

Transcript of Programación 3: programación por capas

Page 1: Programación 3: programación por capas

Programación 3

Programación por capas

Angel Vázquez-Patiñ[email protected]

Departamento de Ciencias de la ComputaciónUniversidad de Cuenca

6 de abril de 2017

Page 2: Programación 3: programación por capas

06/04/17 Angel Vázquez-Patiño 2/35

Objetivos

1. Presentar las tres capas principales de la arquitectura de programación en capas

2. Indicar algunas tecnologías utilizadas para implementar la arquitectura de programación en capas

Page 3: Programación 3: programación por capas

06/04/17 Angel Vázquez-Patiño 3/35

Contenido

Introducción

Características

Capa de presentación

Capa de lógica de negocios

Capa de datos

Ventajas y desventajas

Tecnologías para la implementación

Page 4: Programación 3: programación por capas

06/04/17 Angel Vázquez-Patiño 4/35

Introducción

Page 5: Programación 3: programación por capas

06/04/17 Angel Vázquez-Patiño 5/35

Introducción● Al construir software como producto

empresarial o comercial● Técnicas para un desarrollo ordenado● Asegurar un avance continuo del proyecto● Tener un producto final de calidad● Fácil mantenimiento

Page 6: Programación 3: programación por capas

06/04/17 Angel Vázquez-Patiño 6/35

Introducción● Muchas prácticas de programación,

dependiendo del tipo de software que se va a desarrollar y de la disciplina de programación que se utilicen en el desarrollo del producto

Programación en capas● Dividir el código fuente según su funcionalidad

principal

Page 7: Programación 3: programación por capas

06/04/17 Angel Vázquez-Patiño 7/35

Introducción

Para sacar el mayor provecho

1) Pasos complejos bien definidos para cada proyecto en específico

2) Deben ser revisados para asegurarse de que el modelo adoptado cumpla con las normas necesarias para que la aplicación sea del agrado del usuarioagrado del usuario

3) Debe ser implementado por el grupo de desarrollo siguiendo el modelo propuesto para obtener una herramienta útil para facilitar la labor de programación dividiendo la aplicación en módulos y capas fáciles de pulir

Page 8: Programación 3: programación por capas

06/04/17 Angel Vázquez-Patiño 8/35

Características de la programación en capas

Page 9: Programación 3: programación por capas

06/04/17 Angel Vázquez-Patiño 9/35

Características● Técnica de ingeniería de software propia de la

programación por objetos

Capas que siempre deben estar en este modelo

1) Capa de presentación o frontera

2) Capa de lógica de negocio o control

3) Capa de datos

Page 10: Programación 3: programación por capas

06/04/17 Angel Vázquez-Patiño 10/35

Capa de presentación

Page 11: Programación 3: programación por capas

06/04/17 Angel Vázquez-Patiño 11/35

Capa de presentación● Programa ante el usuario● Interfaces que cumplan con el objetivo principal

del componente: facilitar al usuario la interacción con la aplicación

● Se utilizan patrones predefinidos para cada tipo de aplicación y para cada necesidad del usuario

● Debe ser amigable y fácil de utilizar (carga cognitiva)

● Pruebas de usabilidad (HCI)

Page 12: Programación 3: programación por capas

06/04/17 Angel Vázquez-Patiño 12/35

Page 13: Programación 3: programación por capas

06/04/17 Angel Vázquez-Patiño 13/35

Capa de presentación

Lineamientos en general● Consistencia con la información que se requiere● No más campos de los necesarios● Información requerida especificada clara y

concisamente● No más de lo necesario en cada formulario● Satisfacer requerimientos del usuario: no excluir

información solicitada por el usuario y no incluir información no solicitada por el mismo

Page 14: Programación 3: programación por capas

06/04/17 Angel Vázquez-Patiño 14/35

Capa de lógica de negocio

Page 15: Programación 3: programación por capas

06/04/17 Angel Vázquez-Patiño 15/35

Capa de lógica de negocio● Reglas para una correcta ejecución del sistema● Aquí está la lógica, 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

● Cerebro de la aplicación ya que se comunica las demás capas para poder llevar a cabo las tareas

Page 16: Programación 3: programación por capas

06/04/17 Angel Vázquez-Patiño 16/35

Capa de lógica de negocio● Comunicación con otros sistemas● Recibe los datos desde 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

● El encapsulamiento asegura mantener la consistencia de los datos, así como obtener información precisa de las bases de datos e ingresar en las mismas, solamente la información necesaria

Page 17: Programación 3: programación por capas

06/04/17 Angel Vázquez-Patiño 17/35

Capa de lógica de negocio

Presentación

Lógica de negocio

Datos

Lógica de negocio

Datos

Presentación

Page 18: Programación 3: programación por capas

06/04/17 Angel Vázquez-Patiño 18/35

Capa de datos

Page 19: Programación 3: programación por capas

06/04/17 Angel Vázquez-Patiño 19/35

Capa de datos● Transacciones con BD para obtener o ingresar

información al sistema● El manejo de los datos debe asegurar

consistencia y precisión en los mismos● Consultas a realizar en la BD simples o

complejas para generar reportes● Envía la información a la capa de lógica de

negocio para que sea procesada e ingresada en objetos según se necesite (encapsulamiento)

Page 20: Programación 3: programación por capas

06/04/17 Angel Vázquez-Patiño 20/35

Ventajas y desventajas

Page 21: Programación 3: programación por capas

06/04/17 Angel Vázquez-Patiño 21/35

Ventajas y desventajas● Técnica no rígida: los desarrolladores 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

● Principalmente en aplicaciones empresariales donde se maneja 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

Page 22: Programación 3: programación por capas

06/04/17 Angel Vázquez-Patiño 22/35

Ventajas y desventajasCohesión● Determina que las operaciones de un objeto deben

trabajar en conjunto para alcanzar un propósito común de manera eficaz y eficiente

● Utilizado para describir el comportamiento que deben tener los módulos y objetos de un sistema o subsistema entre sí

Acoplamiento● Se refiere al grado de dependencia que existe entre los

módulos● Debe ser bajo para la subdivisión en módulos con

funcionalidades específicas y factibles de implementación independiente

Page 23: Programación 3: programación por capas

06/04/17 Angel Vázquez-Patiño 23/35

Ventajas● Trabajo ordenado y separado, debido a que

sigue el principio de “divide y vencerás”● Al ser dividida la aplicación general en varios

módulos y capas que pueden ser tratados independientemente y hasta en paralelo

Modularidad● Cuando se quiere modificar el sistema basta

con cambiar un objeto o conjunto de objetos de una capa

Page 24: Programación 3: programación por capas

06/04/17 Angel Vázquez-Patiño 24/35

Ventajas● Reducción de costos por tiempo: se podrá

avanzar de manera más segura en el desarrollo

● Facilidad para actualizaciones● Da al programador una guía para hacer

mejoras a la aplicación sin que esto sea una tarea tediosa y desgastante

Page 25: Programación 3: programación por capas

06/04/17 Angel Vázquez-Patiño 25/35

Desventajas● Balance entre el número de capas y

subcapas que componen el programa● Este debe ser el necesario y suficiente para

realizar un trabajo específico con eficiencia y ser lo más modular posible

Page 26: Programación 3: programación por capas

06/04/17 Angel Vázquez-Patiño 26/35

Desventajas● Pérdida de eficiencia● 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

Page 27: Programación 3: programación por capas

06/04/17 Angel Vázquez-Patiño 27/35

Tecnologías para la implementación

Page 28: Programación 3: programación por capas

06/04/17 Angel Vázquez-Patiño 28/35

Tecnologías para la implementación● Visual Studio .Net de Microsoft● Tecnologías Java

– Spring

– Hibernate

Page 29: Programación 3: programación por capas

06/04/17 Angel Vázquez-Patiño 29/35

Microsoft Visual Studio.NET● 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 accedida 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

Page 30: Programación 3: programación por capas

06/04/17 Angel Vázquez-Patiño 30/35

Spring● 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 con herramientas JSP, Servlets y Scriptlets con las que se construyen y conectan las interfaces gráficas con la capa de lógica del negocio

Page 31: Programación 3: programación por capas

06/04/17 Angel Vázquez-Patiño 31/35

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

Page 32: Programación 3: programación por capas

06/04/17 Angel Vázquez-Patiño 32/35

Conceptos y términos importantes

Page 33: Programación 3: programación por capas

06/04/17 Angel Vázquez-Patiño 33/35

Conceptos y términos importantes● ASP● Data Set● Data Reader● Spring● Hibernate

Page 34: Programación 3: programación por capas

06/04/17 Angel Vázquez-Patiño 34/35

Referencias● Programación en capas, https://goo.gl/JkIsCE

Lectura recomendada● El dominio es lo único importante,

https://goo.gl/oqhs0p

Page 35: Programación 3: programación por capas

06/04/17 Angel Vázquez-Patiño 35/35

Preguntas