Download - 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
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
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
06/04/17 Angel Vázquez-Patiño 4/35
Introducción
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
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
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
06/04/17 Angel Vázquez-Patiño 8/35
Características de la programación en 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
06/04/17 Angel Vázquez-Patiño 10/35
Capa de presentación
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)
06/04/17 Angel Vázquez-Patiño 12/35
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
06/04/17 Angel Vázquez-Patiño 14/35
Capa de lógica de negocio
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
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
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
06/04/17 Angel Vázquez-Patiño 18/35
Capa de datos
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)
06/04/17 Angel Vázquez-Patiño 20/35
Ventajas y desventajas
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
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
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
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
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
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
06/04/17 Angel Vázquez-Patiño 27/35
Tecnologías para la implementación
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
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
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
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
06/04/17 Angel Vázquez-Patiño 32/35
Conceptos y términos importantes
06/04/17 Angel Vázquez-Patiño 33/35
Conceptos y términos importantes● ASP● Data Set● Data Reader● Spring● Hibernate
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
06/04/17 Angel Vázquez-Patiño 35/35
Preguntas