buscador

Visita

Mostrando las entradas con la etiqueta Distribuido. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Distribuido. Mostrar todas las entradas

s谩bado, 2 de octubre de 2021

馃搷 Capitulo 1: Introducci贸n a la programaci贸n orientado a objetos (Java ☕️).

Tecnolog铆a Java


Conceptos Fundamentales
El lenguaje Java

El lenguaje de programaci贸n Java naci贸 en 1991 como parte de un proyecto de investigaci贸n
destinado a desarrollar un lenguaje de programaci贸n llamado Oak (en espa帽ol, roble) que resolver铆a
la falta de comunicaci贸n entre numerosos dispositivos de consumo tales como las videograbadoras y
los televisores. En concreto, un equipo de expertos en desarrollo de software (el equipo Green) quer铆a
crear un lenguaje que permitiese a diferentes dispositivos de consumo dotados de diferentes unidades
de procesamiento central (CPU) compartir las mismas mejoras del software.

Este intento inicial fracas贸 despu茅s de varios acuerdos fallidos con varias compa帽铆as de dispositivos
de consumo. El equipo Green se vio obligado a buscar otro mercado para su nuevo lenguaje.

Afortunadamente, empezaba a popularizarse el uso de la World Wide Web y el equipo reconoci贸 que
el lenguaje Oak era perfecto para desarrollar componentes multimedia que mejorasen el contenido de
las p谩ginas web.  Los primeros desarrollos del lenguaje Oak se aplicaron a estas peque帽as 
aplicaciones, llamadas applets, y los programadores que usaban Internet adoptaron lo que se
convertir铆a en el lenguaje de programaci贸n Java.

El lenguaje Java se dise帽贸 para ser:

Orientado a Objetos
Distribuido
Simple
Multihilo
Seguro
Independiente de la Plataforma

Orientado a Objetos
Java es un lenguaje de programaci贸n orientada a objetos (OO) porque uno de los principales
objetivos del programador de aplicaciones Java es crear objetos, fragmentos de c贸digo aut贸nomos
que puedan interaccionar con otros objetos para resolver un problema.

La programaci贸n OO empez贸 con el lenguaje SIMULA-67 en 1967 y ha dado lugar a lenguajes tan
populares como C++, en el que se ha inspirado ligeramente el lenguaje Java.

La programaci贸n OO se diferencia de la programaci贸n por procedimientos en que 茅sta 煤ltima se
centra en la secuencia de pasos del c贸digo necesarios para resolver un problema, mientras que los
lenguajes orientados a objetos se centran en la creaci贸n e interacci贸n de los objetos.

En la figura siguiente se muestra la importancia que tiene la secuencia de operaciones en un
programa basado en procedimientos.


En la figura siguiente se ilustra la importancia de los objetos y sus interacciones en un programa
orientado a objetos.

Distribuido

Java es un lenguaje distribuido porque da cabida a tecnolog铆as de redes distribuidas tales como RMI
(Remote Method Invocation), CORBA (Common Object Request Broker Architecture) y URL
(Universal Resource Locator).

Asimismo, la capacidad de carga din谩mica de clases de Java permite descargar fragmentos de c贸digo
a trav茅s de Internet y ejecutarlas en un equipo inform谩tico de tipo PC.

En la figura siguiente se ilustran las propiedades distribuidas de la tecnolog铆a Java.
 Simple
El lenguaje Java es simple porque sus dise帽adores han suprimido algunas de las construcciones de
programaci贸n m谩s complejas o dif铆ciles de otros lenguajes populares.

Por ejemplo, Java no permite a los programadores manejar directamente los punteros a las
direcciones de memoria, una funci贸n compleja y, a menudo, mal utilizada de los lenguajes C y C++. 

En su lugar, s贸lo les permite manejar objetos utilizando referencias a objetos.
Adem谩s, utiliza una funci贸n denominada reciclaje de memoria din谩mica (garbage collector) para
hacer el seguimiento de los objetos a los que ya no se hace referencia y eliminarlos.

Otro aspecto que hace de Java un lenguaje simple es que los tipos de datos booleanos (boolean) s贸lo
pueden tener los valores true o false, frente a otros lenguajes donde tambi茅n se admiten los valores 1
y 0.

Multihilo
El lenguaje Java admite procesamiento multihilo (multithread), es decir, la ejecuci贸n simult谩nea de
tareas diferentes tales como consultar una base de datos y reproducir en la pantalla una interfaz de
usuario.

Gracias a la ejecuci贸n multihilo, los programas Java pueden hacer un uso muy eficiente de los
recursos del sistema.

En la figura siguiente se ilustra el procesamiento multihilo del lenguaje Java.
Seguro
Los programas Java son seguros porque el lenguaje Java, con el entorno en el que se ejecutan los
programas con esta tecnolog铆a, aplica medidas de seguridad para proteger el c贸digo de posibles
ataques. Estas medidas incluyen:

Prohibir la manipulaci贸n de la memoria mediante el uso de punteros.
Impedir que los programas distribuidos, por ejemplo los applets, puedan hacer operaciones de lectura
y escritura en el disco duro de un equipo.

Verificar que todos los programas Java contengan c贸digo v谩lido.
Facilitar el uso de firmas digitales. Una empresa o una persona puede “firmar” el c贸digo de Java de
forma que quien reciba el c贸digo pueda verificar la legitimidad del mismo.

En la figura siguiente puede verse c贸mo la seguridad integrada en los programas Java impide ejecutar
c贸digo no v谩lido en un equipo.


 Independiente de la Plataforma
Los programas escritos en la mayor铆a de los lenguajes normalmente necesitan numerosas
modificaciones para poder ejecutarse en diferentes tipos de plataformas inform谩ticas (la combinaci贸n
de una CPU y un sistema operativo). Esta dependencia de la plataforma se produce porque la mayor铆a
de los lenguajes exigen que se escriba el c贸digo espec铆fico para la plataforma subyacente.

Lenguajes tan populares como C y C++ obligan al programador a compilar y vincular sus programas,
lo que da lugar a un programa ejecutable exclusivo de una plataforma. Al rev茅s que C y C++, el
lenguaje Java es independiente de la plataforma.

Programas dependientes de la plataforma
Un compilador es una aplicaci贸n que convierte un programa escrito por un programador en un c贸digo
espec铆fico para la CPU denominado c贸digo m谩quina. Estos archivos espec铆ficos de la plataforma
(archivos binarios) a menudo se combinan con otros archivos, tales como bibliotecas de c贸digo
preelaborado, mediante un vinculador para crear un programa dependiente de la plataforma, llamado
ejecutable, que el usuario final puede ejecutar.


En la figura siguiente puede verse la forma en que un compilador crea un archivo binario.
Programas dependientes de la plataforma.
La figura siguiente muestra c贸mo se vincula un archivo binario a las bibliotecas para crear un
ejecutable dependiente de la plataforma.
La figura siguiente muestra c贸mo se vincula un archivo binario a las bibliotecas para crear
un ejecutable dependiente de la plataforma.

Programas independientes de la plataforma
Un programa Java puede ejecutarse, con escasas o ninguna modificaci贸n, en varias combinaciones de
CPU y sistemas operativos como, por ejemplo, el sistema operativo Solaris con un procesador
SPARC®, MacOS en un procesador Motorola y Microsoft Windows en un procesador Intel.

Posiblemente sea preciso realizar algunas modificaciones para hacer que un programa Java sea
independiente de la plataforma. Por ejemplo, puede ser necesario cambiar los nombres de los
directorios a fin de que utilicen los delimitadores adecuados (barras inclinadas e invertidas) para el
sistema operativo de base.

Programas independientes de la plataforma
Al igual que ocurre con los programas C y C++, los programas Java tambi茅n se compilan utilizando
un compilador espec铆fico para la tecnolog铆a Java.

No obstante, el formato resultante de un programa Java compilado es c贸digo de byte Java
independiente de la plataforma en lugar de c贸digo m谩quina espec铆fico de la CPU.

Una vez generado el c贸digo de byte, se interpreta (ejecuta) a trav茅s de un int茅rprete llamado m谩quina
virtual o VM. Una m谩quina virtual es un programa espec铆fico de la plataforma que lee el c贸digo de
byte (independiente de la plataforma) y lo ejecuta en una plataforma concreta. Por este motivo, el
lenguaje Java a menudo se define como un lenguaje interpretado y los programas Java se consideran
como transportables o ejecutables en cualquier plataforma. Entre los lenguajes interpretados se
incluye tambi茅n Perl.


Para que los programas Java sean independientes de la plataforma, es preciso disponer de una
m谩quina virtual llamada m谩quina virtual de Java (JVM™) en cada plataforma donde se vayan a
ejecutar. La m谩quina virtual de Java es la encargada de interpretar el c贸digo Java, cargar las clases
correspondientes y ejecutar los programas Java.

Sin embargo, un programa Java necesita algo m谩s que una m谩quina virtual de Java para ejecutarse.
Tambi茅n precisa una serie de bibliotecas de clases est谩ndar espec铆ficas para la plataforma. Las
bibliotecas de clases de Java son bibliotecas de c贸digo preescrito que puede combinarse con el c贸digo
elaborado por el programador para crear aplicaciones s贸lidas.

La combinaci贸n del software JVM y estas bibliotecas de clases se conocen como el entorno de
tiempo de ejecuci贸n de Java (JRE). Sun Microsystems proporciona entornos de ejecuci贸n de Java
para numerosas plataformas de uso com煤n.

Programas independientes de la plataforma
En la figura siguiente puede verse c贸mo el compilador de Java crea c贸digo de byte.


Programas independientes de la plataforma
En la figura siguiente se muestra c贸mo un archivo de c贸digo de byte de Java se ejecuta en varias
plataformas donde existe un entorno de ejecuci贸n de Java.
Fases del Ciclo de Vida de los Productos

El ciclo de vida de los productos (Product Life Cycle o PLC) representa un conjunto de fases
aceptadas por la industria que un programador deber铆a seguir al desarrollar cualquier producto nuevo.
El ciclo se compone de siete fases. Son las siguientes:

1. An谩lisis
2. Dise帽o
3. Desarrollo
4. Comprobaci贸n
5. Implementaci贸n
6. Mantenimiento
7. Fin del ciclo de vida (EOL)

El ciclo de vida de los productos s贸lo es una filosof铆a para sistematizar las fases de desarrollo de
nuevos productos. Existen otras tales como: Rational Unified Process, XP (Extreme Programming) y
TDD (Test Driven Design).

Fase de An谩lisis
El an谩lisis es el proceso de investigar un problema que se pretende resolver con un producto. Entre
otras tareas, consiste en:

Definir claramente el problema que se quiere resolver, el nicho de mercado al que se dirige o el
sistema que se quiere crear. Los l铆mites del problema tambi茅n se conocen como el 谩mbito del
proyecto.

Identificar los subcomponentes fundamentales que forman parte de la totalidad del producto.

En la figura siguiente se ilustra la fase de an谩lisis.

Fase de Dise帽o
El dise帽o es el proceso de aplicar las conclusiones extra铆das en la fase de an谩lisis al proyecto del
producto. La tarea principal en la fase de dise帽o es desarrollar planos o especificaciones de los
productos o los componentes del sistema.

En la figura siguiente se ilustra la fase de dise帽o.


El desarrollo consiste en utilizar los planos creados durante la fase de dise帽o para crear los
componentes reales.

En la figura siguiente se ilustra la fase de desarrollo.

Fase de Comprobaci贸n
La comprobaci贸n consiste en asegurarse de que cada uno de los componentes o la totalidad del
producto cumplan los requisitos de la especificaci贸n creada durante la fase de dise帽o.

Normalmente la comprobaci贸n la realiza un equipo de personas distinto de aquel que ha desarrollado
el producto. Esto garantiza que se probar谩 de forma objetiva, eliminando la subjetividad del
programador.

 En la figura siguiente se ilustra la fase de comprobaci贸n.

Fase de Implementaci贸n
La implementaci贸n consiste en poner el producto a disposici贸n de los clientes.

 La implementaci贸n es la acci贸n de distribuir un producto de tal forma que los clientes puedan
adquirirlo.

A menudo, la fase de implementaci贸n se conoce en la industria inform谩tica como primera entrega al
cliente o FCS.

En la figura siguiente se ilustra la fase de implementaci贸n.

Fase de Mantenimiento
El mantenimiento consiste en resolver los problemas del producto y publicar nuevas versiones o
revisiones del mismo.

En la figura siguiente se ilustra la fase de mantenimiento.


Fin del Ciclo de Vida (EOL)
Aunque el ciclo de vida de los productos no incluye una fase espec铆fica para iniciar un concepto o un
proyecto, s铆 la tiene para finalizarlo. El fin del ciclo de vida o EOL consiste en realizar todas las
tareas necesarias para garantizar que clientes y empleados sean conscientes de que un producto ha
dejado de venderse y recibir asistencia t茅cnica, y de que hay un nuevo producto disponible.

El fin del ciclo de vida implica sustituir el producto por otro reci茅n desarrollado.

 En la figura siguiente se ilustra la fase final del ciclo de vida de los productos.


¿Por qu茅 debe seguir las fases del ciclo de vida de los productos?

El PLC es una parte importante del desarrollo de los productos porque ayuda a garantizar que 茅stos se
crear谩n y suministrar谩n de forma que se reduzca el tiempo de salida al mercado, la calidad del
producto sea alta y se maximice el retorno de la inversi贸n. Los desarrolladores que no siguen sus
directrices a menudo encuentran problemas que cuesta corregir y que podr铆an haberse evitado.

Raul Tamani A. ©. Im谩genes del tema de fpm. Con tecnolog铆a de Blogger.

Adblock Detectado

Apoya este sitio desactivando el Adblock para seguir navegando. ¡Gracias!

¡Ya Desactive el Adblock!