sábado, 30 de septiembre de 2017

INTERFACES

En programación orientada a objetos las interfaces constituyen un conjunto de métodos abstractos y de constantes teniendo como finalidad determinar el funcionamiento de una clase, pueden tener visibilidad public o package.

CARACTERÍSTICAS

- Sus métodos no pueden ser estáticos por lo que se encuentran re definidos.
- Sus métodos son public y abstract.
- La interfaz puede ocultar constantes y métodos de otras interfaces.
- Las clases que tengan una interfaz deben definir todos los métodos de esta.
- Una clase puede implementar una o más interfaces.
- Para generar herencia entre las interfaces se pone la palabra extends y el nombre de las interfaces que se desean separadas por comas.
- No se pueden crear objetos de esta utilizando "new".
- Todos los nombres de constantes van en mayúsculas.
- No se pueden instanciar.
- Sólo permiten atributos con "public static final".


Por ejemplo:

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS.

domingo, 24 de septiembre de 2017

SOLID III

Finalmente de los principios SOLID tenemos:

I- Interface Segregation (Segregación de interfaces).

Es un principio formulado por Robert Martin y es muy parecido al primero.
Un cliente no debe estar obligado a implementar interfaces que no usa. Muchas interfaces específicas son mejores que una única mas general.

Cuando un cliente depende de una clase que implementa una interfaz cuya funcionalidad este cliente no usa pero que otros clientes si usan, este cliente esta siendo afectado por los cambios que realicen otros clientes en la clase en cuestión. Se debe evitar este tipo de acoplamiento cuando sea posible y esto se consigue separando las interfaces en otras mas pequeñas y especificas.


D- Dependency Inversion (Inversión de Dependencias). 

Fue definido por Robert Martin con el objetivo de desacoplar las clases, en todo diseño debe existir un acoplamiento pero hay que evitarlo en lo posible, puesto que un sistema con alto acoplamiento es muy difícil de mantener.

Las clases de alto nivel no deberían depender de las de bajo nivel, ambas deberían depender de las abstracciones. Las abstracciones no deberían depender de los detalles sino al contrario.




UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

SOLID II

continuando con los principios SOLID, tenemos:

O- Open/Closed (Abierto/Cerrado).

Se utiliza con el fin de no limitar el software a una única versión. Es un principio atribuido a Bertrand Meyer el cual consiste en crear clases extensivas sin necesidad de entrar al código fuente a modificarlas, lo complicado de esto es hallar por donde extenderla. La forma mas común es por medio de herencia, aunque existe otra alternativa en la que se utilizan métodos que acepten una interfase de tal modo que se ejecute cualquier clase que implemente esta interface.

Las entidades software (clases, módulos, funciones) deben:

-Estar abiertos para su extensión, y su comportamiento puede ser extendido por otras clases.
-Estar cerradas para la modificación, el código fuente debe permanecer inalterado.




L-Liskov Substitution (Sustitución Liskov).

Este principio fue creado por Barbara Liskov y trata de la importancia de crear todas las clases derivadas para que estas sean también apropiadas como la clase base.

Las funciones que usen punteros o referencias a clases base deben ser capaces de usar objetos de clases derivadas sin conocerlos. Esto quiere decir que si tenemos una clase y varias subclases de esta, al usar una referencia a la clase principal, esta debe ser capaz de aceptar cualquier objeto de sus clases hijas.


UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

SOLID

En programación orientada a objetos existen principios básicos, SOLID en este caso es un acrónimo inventado por Robert Martin que explica 5 principios básicos de la programación relacionados con la alta cohesión y el bajo acoplamiento. Siempre en programación se trata de tener un buen diseño, para facilitar los casos del almacenamiento, modificación de un código antiguo y mantenimiento.

SOLID generalmente se divide en dos partes, sus dos primeras letras, SO están enfocadas a la alta cohesión y por otra parte LID enfocada en el bajo acoplamiento. El significado de su acrónimo es:

ALTA COHESIÓN
S = Single Responsability (Responsabilidad simple).
O = Open/Closed (Abierto/Cerrado).

BAJO ACOPLAMIENTO
L = Liskov Substitution (Sustitución Liskov).
I = Interface Segregation (segregación de interfaces).
D = Dependency Inversion (Inversión de Dependencias).


Cada uno constituye un significado de gran importancia.

S-Single Responsability (Responsabilidad simple).

Este principio trata de destinar una finalidad sencilla y concreta a cada clase. Una clase solo puede tener una y solo una única causa por la cual puede ser modificada (tiene solo una razón de cambio).
En el caso de que al modificar una clase tiene dos responsabilidades  se deben separar respectivamente en dos clases.

Surge un problema al momento de necesitar utilizar un método en otra clase, porque si no se refactoriza, se creará una clase destinada a la finalidad de ese método.


UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS


domingo, 17 de septiembre de 2017

XAMPP

 XAMPP, es una herramienta de desarrollo que nos permite probar un proyecto o página web en el ordenador sin necesidad de acceder a internet, además es un servidor independiente de plataforma de código libre, es gratuito y consigo trae el servidor web más famoso que es Apache, bases de datos como MySQL y SQLite, incluye PHP que es un lenguaje de programación, entre muchas otras cosas.

Es un sistema de gestión de base de datos. El nombre XAMPP es un acronimo conformado por:

X: cualquiera de los distintos sistemas operativos
A: apache.
M: MySQL.
P: php.
P: perl.

XAMPP está disponible para sistemas operativos como Windows, Linux, MAC o Solaris.

Su instalación es muy sencilla y ligera, al ejecutar el programa se debe prender el servidor Apache.
la dirección o URL que maneja para encontrarlo en tu ordenador es "localhost:80" si ya tienes el servidor configurado podrás hallar tu página adicionando dos números que hayas escogido, como por ejemplo "localhost:8080".

Así se verá una vez instalado XAMPP.


Adjunto les dejo un archivo para que descarguen XAMPP en sus servidores, es muy sencillo y rápido.

                                https://www.youtube.com/watch?v=nZyn-7S8ivc

                   UNIVERSIDAD DISTRITAL  FRANCISCO JOSÉ DE CALDAS

sábado, 16 de septiembre de 2017

DIAGRAMAS DE SECUENCIA

Son un tipo de diagramas UML, que sirve para la interacción entre objetos de un sistema a través del tiempo, se moldea usando casos de uso de un sistema.

La clase describe el comportamiento del objeto, en la activación se describe o representa el tiempo en el cual un objeto realiza una tarea, los mensajes entre objetos son representados con flechas, hay mensajes sincrónicos y a sincrónicos, los primeros necesitan la respuesta inmediata y los a sincrónicos son aquellos los que no esperan una respuesta para continuar con su acción.
Las líneas de vida indican la presencia de un objetos en el tiempo.

También está presente la destrucción de objetos con simplemente una etiqueta acompañada de una flecha. Los diagramas de secuencia son útiles al momento de complementar un diagrama de clases.


Adicional adjunto un vídeo acerca de dichos diagramas, espero lo disfruten.

https://www.youtube.com/watch?v=AnztpKs9TZo

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

DIAGRAMAS UML

"Unified Modeling Language" o "Lenguaje Unificado de Modelado", es el significado de UML,  probablemente la palabra "lenguaje" no es el más apropiado puesto que este no es un lenguaje propiamente dicho, sino más como una serie de normas y estándares utilizados para representar esquemas de software, UML no es un lenguaje de programación. El sentido de estos diagramas se lo da la persona que lo diseña.

UML puede ser usado por empresas con el objetivo de tener registrado o documentado la forma en la cual se construye un programa complejo.
Para construir un diagrama UML se debe poseer un conocimiento de conectores. Se pueden construir distintos tipos de diagramas, entre ellos se encuentran:

-Los diagramas de casos de uso es donde se describe la interacción entre el usuario y el sistema, también representan los procesos principales del desarrollo del software. Producen un valor como el cálculo de un resultado, un caso de uso debe ser claro, simple y conciso. Describen lo que se hace más no como se hace.

-En los diagramas de clases encontramos que estos pueden ser la representación de los conceptos de un problema y su dominio. Muestran las clases del sistema y las interacciones de estas, son estáticos, muestran lo que el sistema puede hacer, son básicos, posibilitan la reducción del acoplamiento, son la fuente de generación del código.

-Diagramas de colaboración, son usados para representar objetos y clases, sus comunicaciones para lograr un objetivo.

Hay otros diagramas como los diagramas de estados los cuales sirven para mostrar los avances del sistema, también se encuentran diagramas de actividad, de paquetes, de arquitectura de software, etc.



UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

sábado, 9 de septiembre de 2017

ANDROID STUDIO

Existen diferentes programas o auxiliares para crear una página web bien sea para teléfonos, tablets, computadores, tv y autos.

ANDROID STUDIO

 Fue presentado en el 2013 por Google en el congreso de desarrolladores Google 1/0.

 Es un entorno dedicado a la programación de aplicaciones en dispositivos andriod (teléfonos, tablets, tv y autos), se basa en IntelliJ IDEA, posee potentes herramientas de diseños, muestra los errores al instante para la rápida solución, posee plantillas predeterminadas que facilitan la creación de dicha aplicación. Es fácil de usar y compatible en las diferentes versiones.

Cuando se va iniciar el proceso de creación de una aplicación normalmente este se divide en cuatro etapas, la primera de ellas se basa en la configuración del entorno, es donde se instala y se realiza la conexión de los elementos del entorno donde se trabajar´la aplicación. La segunda etapa es la configuración del proyecto y desarrollo, en ella se realiza la creación de módulos los cuales contienen lo necesario para la aplicación y también se crean los archivos del código fuente. La tercera, es la realización de pruebas, depuración y construcción de la aplicación donde se construye un paquete depurable que se pueda descargar y depurar en un emulador con Android. Finalmente la cuarta etapa siendo la publicación de la aplicación allí se solicita la distribución libre de la aplicación para los usuarios.

Para funcionar necesita conexión a internet que permite descargar las bibliotecas necesarias para la configuración de la aplicación, necesita más de 4GB de memoria ram y un core mayor a i5.


UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

SQL

Continuando con las bases de datos, existe algo que se relaciona con ellas:

SQL (lenguaje de consulta estructurado), es un lenguaje universal existente en todos los motores de bases de datos, posibilita la realización de consultas teniendo como objetivo la recuperación de datos de forma sencilla y esto a su vez es posible gracias a la aplicación del álgebra y cálculo.
La creación de SQL facilitó y aceleró compartir datos.

Las consultas toman forma de un lenguaje permitiendo se expresadas como insertar, actualizar, averiguar la ubicación del dato, etc. Se pueden agregar y combinar lenguajes de programación. Desde los 70's SQL se ha utilizado en cualquier base de datos relacional en el mundo.  

¿QUÉ ES UNA BASE DE DATOS RELACIONAL?

Se trata como un conjunto de tablas con filas y columnas. Contiene objetos utilizados para almacenar y gestionar los datos, los objetos son funciones, tablas, índices, etc., dichos objetos están relacionados entre si.
Las tablas por ejemplo en sus columnas almacenan los tipos de datos y en las filas representan la recopilación de los valores de un objeto. Al relacionarse no pueden ser nombradas dos tablas de igual forma, ademas estas relaciones se generan a través de llaves primarias o foráneas.


Al realizar la combinación de lenguajes de programación en SQL obtenemos cosas como: 



UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS












BASE DE DATOS

En programación orientada a objetos como lo hemos podido notar hay mucho por hablar, la variedad la hace aun más interesante, hoy abordaremos lo que concierne a base de datos.

¿QUÉ ES UNA BASE DE DATOS?

Es un lugar en el ordenador o entidad que almacena datos o información de forma organizada, facilitando la utilización de datos necesarios, generalmente se relaciona con la red pues también debe permitirse compartir dichos datos. Los datos de una base de datos pueden ser actualizados y varios usuarios pueden ingresar a ella al mismo tiempo.
Se dice que una base de datos es local cuando es utilizada en un equipo por un usuario.

Una base de datos posee varias partes o componentes:

-TABLAS: Es donde se crea el conjunto de datos, es como una hoja de cálculo.
-CONSULTAS: Extraen y muestran la información obtenida.
-FORMULARIOS: Contienen comandos para ejecutar acciones, se utilizan para trabajar los datos obtenidos.
-INFORME: Presenta la información organizada para ser imprimida.
-MACRO: son conjuntos de instrucciones cuando hay procesos repetitivos.
-MÓDULO: Son instrucciones en un lenguaje "visual basic".

También las bases de datos poseen campos, registros y archivos, donde los campos son piezas únicas de información, los registros son un sistema de campos y los registros son una colección de registros.

En las bases de datos también encontramos algo llamado DBMS (data base management system) o SGBD (sistema de gestión de base de datos) encargado de controlar el almacenamiento, organización y recuperación de los datos pertenecientes a dicha base de datos.

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

domingo, 3 de septiembre de 2017

PÁGINA WEB

En cuanto a información se trata existen muchas fuentes para obtenerla, hoy en día la tecnología es un lugar más utilizado para ello, pero en específico las páginas web, las encontramos desde informativas hasta de recreación, pero:

¿Qué es una página web?

Es un lugar web el cual está programado en un lenguaje específico llamado HTML (Lenguaje de marcado de hipertexto), una página web posee una dirección o URL, podemos llegar a una página web mediante un navegador de internet, en una página web se encuentran imágenes, vídeos, texto, etc.

Existen tipos de páginas web, las estáticas y las dinámicas.

Las ESTÁTICAS las cuales no son para actualizaciones constantes, más bien su contenido es fijo. Las DINÁMICAS son realizadas o construidas en PHP o HTML, permiten ser modificadas constantemente, realizar foros, proyectan contenido en tiempo real, etc.

Principalmente una página debe contener texto, imágenes, vídeos, audios, etc.

Para crear páginas web encontramos sitios que nos brindarán dicha ayuda como Wix.

A continuación les adjuntaré un vídeo muy interesante, espero les guste y no olviden dejar sus comentarios.

https://www.youtube.com/watch?v=FkksFZI7LPw

UNIVERSIDAD FRANCISCO JOSÉ DE CALDAS

COHESIÓN

En programación la cohesión hace referencia a la agrupación de unidades de software en una unidad mayor, un ejemplo es cuando agrupamos clases en una librería, se dice que entre mas agrupados estén los elementos o mayor sea su cohesión es mejor y hay varios tipos de cohesión.

La COHESIÓN FUNCIONAL se da cuando agrupamos unidades las cuales en conjunto están encaminadas a realizar un mismo fin, es decir que contribuyen a realizar un objetivo.
Cuando se agrupan unidades las cuales utilizan los datos de salida de una unidad para seguir con el trabajo hasta llegar el objetivo se dice que hay una COHESIÓN SECUENCIAL.
Existe un tipo de cohesión donde se agrupan unidades de software en una categoría lógica, donde dichas unidades no necesariamente están relacionadas, llamada COHESIÓN LÓGICA.
La COHESIÓN TEMPORAL es algo más compleja pues se agrupan unidades de software que no tienen una relación entre ellas fuerte, sino que se ejecutan en un periodo de tiempo más o menos igual.

Cuando la cohesión no encaja en ninguno de los parámetros o descripciones anteriores se dice que es una COHESIÓN CASUAL.

El objetivo es lograr siempre la mayor cohesión posible y el menor acoplamiento, así se facilita el desarrollo y re utilización del software. Además tener una alta cohesión permite agrupar dichas unidades de la mejor manera y el bajo acoplamiento mantiene dichas unidades lo más independiente posible.

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS 

ACOPLAMIENTO

En esta ocasión hablaremos acerca de lo que se denomina acoplamiento en programación orientada a objetos.

El acoplamiento inicialmente se refiere a los niveles de dependencia que poseen dos unidades de software (las unidades de software son aquellas que realizan alguna acción, como funciones, componentes, aplicaciones, librerías, etc.).  Siguiendo con lo anterior el acoplamiento nos da una idea de como estas unidades de software pueden hacer su trabajo sin la otra y en que nivel.

Los niveles de acoplamiento dependen de la interacción de dichas unidades:

- Si las unidades son totalmente independientes lo que significa que el trabajo de una puede hacerse sin necesidad de la otra, se presenta el más BAJO NIVEL DE ACOPLAMIENTO y se dice que dichas unidades son desacopladas. Cuando se programa el objetivo es tener un acoplamiento lo mas bajo pasible, pues así se facilita la detección de errores, el mantenimiento y re utilización de dichas unidades.

- Se le llama ACOPLAMIENTO NORMAL cuando una unidad necesita del trabajo de otra, cuando una función, método, etc., llama a otro dentro del trabajo que realiza se dice que ese método, función, etc., está acoplado al otro.

-Cuando dos unidades necesitan utilizar el mismo conjunto local de datos para funcionar se dice que es un ACOPLAMIENTO DE DATOS y es común en los métodos de una clase al necesitar el acceso a las variables. 

-El ACOPLAMIENTO DE CONTROL es cuando en cierta forma un método, función, etc., controla la ejecución del otro y ocurre cuando se pasa algún parámetro al otro para que realice las operaciones o funciones de cierta manera.

- También hay ACOPLAMIENTOS NO DESEADOS los cuales deben evitarse, entre ellos se encuentra el acoplamiento global, ocurre cuando dichas unidades se pasan datos por medio de una estructura global. En otra instancia se encuentra el acoplamiento por contenido el cual ocurre cuando para programar una función debemos conocer los contenidos de la segunda en cuanto a los puntos de entrada y lo que va a retornar.

Finalmente podemos decir que se desacopla una unidad de software de otra cuando reducimos su nivel de acoplamiento.

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS