Categorías: Todo - reglas - datos - capas - programación

por Miguel Chacon hace 5 años

304

TÉCNICAS AVANZADAS DE PROGRAMACIÓN.

En el diseño de sistemas de software, la arquitectura por capas es una técnica esencial que los arquitectos de software utilizan para organizar y gestionar la complejidad. Esta metodología divide el sistema en varias capas independientes pero interconectadas, cada una con roles específicos.

TÉCNICAS AVANZADAS DE PROGRAMACIÓN.

TÉCNICAS AVANZADAS DE PROGRAMACIÓN.

Capa de datos

Es donde residen los datos y es la encargada de acceder a los mismos. Está formada por uno o más gestores de bases de datos que realizan todo el almacenamiento de datos, reciben solicitudes de almacenamiento o recuperación de información desde la capa de negocio.

Antes de comenzar vamos a aclarar unos pequeños conceptos. La memoria está dividida en tres secciones diferentes, la Zona de Datos, Stack y Heap. ZONA DE DATOS Es donde se almacenan las instrucciones del programa, las clases con sus métodos y constantes (menos los finals). Esta zona de memoria es fija, y no se puede modificar durante el tiempo de ejecución. STACK El tamaño del Stack se define durante el tiempo de compilación y es estático durante su ejecución, por lo que puede llegar un momento en el que lo llenásemos y obtuviésemos un bonito StackOverflow que en java se representa mediante un ‘OutOfMemoryException’ . Es raro que nos encontremos con ello, pero si ejecutamos un método recursivo mal formado, es uno de los errores más comunes. Los datos que se almacenan aquí son las referencias a objetos (instancias de objetos) y los datos primitivos como int, float o char. Cuando ejecutamos un método con variables locales, estas se cargan en el Stack y se eliminan una vez se finaliza el método. HEAP El Heap es la zona de memoria dinámica, almacena los objetos que se crean, en un principio tiene un tamaño fijo asignado por la JVM (Java Virtual Machine), pero según es necesario se va añadiendo más espacio. STACK Y HEAP Por lo que puede deducirse de las definiciones, el Stack y el Heap están estrechamente relacionados, ya que los objetos a los que apuntan las referencias almacenadas en el Stack se habrán creado en el Heap.

Reciclaje de Memoria

Creación de objetos aptos para el reciclaje
Fundamento de Garbage Collector
El Garbage Collector es un proceso de baja prioridad que se ejecuta en la JVM y es el encargado de liberar la memoria que no se emplea. El ser de baja prioridad supone que no pueda estar todo el rato trabajando, y que solo se le asigne su tarea cuando el procesador no tiene un trabajo con mayor prioridad en ejecución. ¿Cómo sabe el Garbage Collector lo que puede borrar y lo que no? Es algo muy simple, si un objeto no tiene referencias desde el Stack tiene que ser eliminado. La magia de este recolector de basura deja asombrados a los programadores que odian tener que gestionar la memoria ellos mismos, y es que es algo muy útil, pero se trata de un arma de doble filo. Entre sus contras tenemos que al tratarse de un proceso de prioridad baja, es poco probable que se ejecute cuando se esté haciendo un uso intensivo de la CPU. Esto se puede solucionar si se solicita una pasada del Garbage Collector desde el propio código. No se tiene que abusar de ello, pero puede resultar interesante tras una serie de operaciones que se sepa a ciencia cierta que puede dejar objetos sin referencias.

Capa de presentación

La que ve el usuario (también se la denomina «capa de usuario»), presenta el sistema al usuario, le comunica la información y captura la información del usuario en un mínimo de proceso (realiza un filtrado previo para comprobar que no hay errores de formato). También es conocida como interfaz gráfica y debe tener la característica de ser «amigable» (entendible y fácil de usar) para el usuario. Esta capa se comunica únicamente con la capa de negocio

Capa de reglas

Es donde residen los programas que se ejecutan, se reciben las peticiones del usuario y se envían las respuestas tras el proceso. Se denomina capa de negocio (e incluso de lógica del negocio) porque es aquí donde se establecen todas las reglas que deben cumplirse. Esta capa se comunica con la capa de presentación, para recibir las solicitudes y presentar los resultados, y con la capa de datos, para solicitar al gestor de base de datos almacenar o recuperar datos de él. También se consideran aquí los programas de aplicación.

Programación Orientada a Objetos en Arquitectura por capas.

Introducción: El patrón de arquitectura por capas es una de las técnicas más comunes que los arquitectos de software utilizan para dividir sistemas de software compilados. Al pensar en un sistema en términos de capas, se imaginan los principales subsistemas de software ubicados de la misma forma que las capas de una torta, donde cada capa descansa sobre el interior. En este esquema la capa más alta utiliza varios servicios definidos por la inferior, pero la última es inconsciente de la superior. Además, normalmente cada capa oculta las capas inferiores de las siguientes superiores a esta.