Está en la página 1de 24

FACULTAD DE INGENIERÍA

CARRERA DE INGENIERÍA DE SISTEMAS COMPUTACIONALES

NETFLIX

Autores:
Muñoz Arias, Jesús

Cabanillas Sánchez, Julio

Curso:
Técnicas de programación orientada a Objetos

Docente:
José Luis Peralta Lujan

TRUJILLO – PERÚ
2019
2
Capítulo 1 Descripción del Proyecto

1.1 Realidad problemática y Problema


En la actualidad uno de los principales medios de diversión son las películas y las
series, las cuales son creadas por diferentes empresas que cobran subscripciones
de costo accesible y ofreciendo un servicio sublime al momento de acceder en
dichas plataformas, haciendo que los usuarios tengas buena experiencia, sin
embargo, los usuarios no saben cómo es que sus datos son procesado y
guardados en los servidores de la empresa dejando dudas de cómo es el proceso
de recolección de datos.

La empresa NETFLIX es una empresa de servicio de reproducción de series y


películas vía streaming, la cual consiste en proyectar una amplia lista de series y
películas a los usuarios mediante una subscripción la cual puede variar en precios
de acuerdo al tipo de servicio que se apega al usuario.

El proyecto que se desea presentar es una simulación en JAVA, bajo el IDE de


NetBeans, la cual consiste en mostrar como es que el sistema de creación y
registro de cuentas de NETFLIX funciona, además se facilitar posibles
recomendaciones para mejorar los servicios de registro para los usuarios, con
esto propiamente dicho el problema sería: ¿Será posible mejorar y/o encontrar
alguna mejorar en el registro de los clientes al momento de adquirir los servicios
de NETFLIX?

1.2 Objetivos
1.2.1 Objetivo General

 Implementar una aplicación que permita simular el registro de los


usuarios, así mismo usar las diversas funcionalidades de la plataforma.
1.2.2 Objetivos Específicos

 Facilitar el acceso a la plataforma a los usuarios mediante posibles


recomendaciones.
 Promover el paradigma orientado a objetos usando los métodos
aprendidos en clase.
 Optimizar el código de manera que sea entendible y fácil de explicar y
manipular.

3
1.3 Solución

Como solución se presentará la implementación de una aplicación de simulación


llamada NETFLIX, la cual nos permitirá hacer la mayoría de las funciones que
tiene esta plataforma.

1.4 Alcance
El presente proyecto planea utilizar la mayoría de métodos y estrategias
utilizadas en clase, además se plantea investigar ciertos comandos y clases que
no se mostrarán en clase.

4
Capítulo 2 marco teórico

2.1 NetBeans:
NetBeans IDE es un entorno de desarrollo integrado (IDE), modular, de base
estandar (normalizado), escrito en el lenguaje de programación Java. El proyecto
NetBeans consiste en un IDE de código abierto y una plataforma de aplicación,
las cuales pueden ser usadas como una estructura de soporte general
(framework) para compilar cualquier tipo de aplicación.
La plataforma NetBeans permite que las aplicaciones sean desarrolladas a partir
de un conjunto de componentes de software llamados módulos. Un módulo es
un archivo Java que contiene clases de java escritas para interactuar con las APIs
de NetBeans y un archivo especial (manifest file) que lo identifica como módulo.
Las aplicaciones construidas a partir de módulos pueden ser extendidas
agregándole nuevos módulos. Debido a que los módulos pueden ser
desarrollados independientemente, las aplicaciones basadas en la plataforma
NetBeans pueden ser extendidas fácilmente por otros desarrolladores de
software.
El NetBeans IDE soporta el desarrollo de todos los tipos de aplicación Java (J2SE,
web, EJB y aplicaciones móviles). Entre sus características se encuentra un
sistema de proyectos basado en Ant, control de versiones y refactoring.

2.2 JAVA:

Java es un lenguaje de programación de propósito general, concurrente,


orientado a objetos que fue diseñado específicamente para tener tan pocas
dependencias de implementación como fuera posible. Su intención es permitir
que los desarrolladores de aplicaciones escriban el programa una vez y lo
ejecuten en cualquier dispositivo (conocido en inglés como WORA, o "write once,
run anywhere"), lo que quiere decir que el código que es ejecutado en una
plataforma no tiene que ser recompilado para correr en otra. Java es, a partir de
2012, uno de los lenguajes de programación más populares en uso,
particularmente para aplicaciones de cliente-servidor de web, con unos 10
millones de usuarios reportados.

El lenguaje de programación Java fue originalmente desarrollado por James


Gosling de Sun Microsystems (la cual fue adquirida por la compañía Oracle) y
publicado en 1995 como un componente fundamental de la plataforma Java de
Sun Microsystems. Su sintaxis deriva en gran medida de C y C++, pero tiene
menos utilidades de bajo nivel que cualquiera de ellos. Las aplicaciones de Java
son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en

5
cualquier máquina virtual Java (JVM) sin importar la arquitectura de la
computadora subyacente.

La compañía Sun desarrolló la implementación de referencia original para los


compiladores de Java, máquinas virtuales, y librerías de clases en 1991 y las
publicó por primera vez en 1995. A partir de mayo de 2007, en cumplimiento con
las especificaciones del Proceso de la Comunidad Java, Sun volvió a licenciar la
mayoría de sus tecnologías de Java bajo la Licencia Pública General de GNU.
Otros también han desarrollado implementaciones alternas a estas tecnologías
de Sun, tales como el Compilador de Java de GNU y el GNU Classpath.

2.2.1 Historia

Java se creó como una herramienta de programación para ser usada en un


proyecto de set-top-box en una pequeña operación denominada the Green
Project en Sun Microsystems en el año 1991. El equipo (Green Team), compuesto
por trece personas y dirigido por James Gosling, trabajó durante 18 meses en
Sand Hill Road en Menlo Park en su desarrollo.

El lenguaje se denominó inicialmente Oak (por un roble que había fuera de la


oficina de Gosling), luego pasó a denominarse Green tras descubrir que Oak era
ya una marca comercial registrada para adaptadores de tarjetas gráficas y
finalmente se renombró a Java.

Fue inventada por Marcos, el supervisor. Es frecuentada por algunos de los


miembros del equipo. Pero no está claro si es un acrónimo o no, aunque algunas
fuentes señalan que podría tratarse de las iniciales de sus diseñadores: James
Gosling, Arthur Van Hoff, y Andy Bechtolsheim. Otros abogan por el siguiente
acrónimo, Just Another Vague Acronym ("sólo otro acrónimo ambiguo más"). La
hipótesis que más fuerza tiene es la de que Java debe su nombre a un tipo de
café disponible en la cafetería cercana, de ahí que el icono de java sea una taza
de café caliente. Un pequeño signo que da fuerza a esta teoría es que los 4
primeros bytes (el número mágico) de los archivos.class que genera el
compilador, son en hexadecimal, 0xCAFEBABE. A pesar de todas estas teorías, el
nombre fue sacado al parecer de una lista aleatoria de palabras.

Los objetivos de Gosling eran implementar una máquina virtual y un lenguaje con
una estructura y sintaxis similar a C++. Entre junio y julio de 1994, tras una sesión
maratoniana de tres días entre John Gaga, James Gosling, Patrick Naughton,
Wayne Rosing y Eric Schmidt, el equipo reorientó la plataforma hacia la Web.
Sintieron que la llegada del navegador web Mosaic, propiciaría que Internet se
convirtiese en un medio interactivo, como el que pensaban era la televisión por

6
cable. Naughton creó entonces un prototipo de navegador, WebRunner, que
más tarde sería conocido como HotJava.

En 1994, se les hizo una demostración de HotJava y la plataforma Java a los


ejecutivos de Sun. Java 1.0a pudo descargarse por primera vez en 1994, pero
hubo que esperar al 23 de mayo de 1995, durante las conferencias de SunWorld,
a que vieran la luz pública Java y HotJava, el navegador Web. El acontecimiento
fue anunciado por John Gage, el Director Científico de Sun Microsystems. El acto
estuvo acompañado por una pequeña sorpresa adicional, el anuncio por parte
de Marc Andreessen, Vicepresidente Ejecutivo de Netscape, de que Java sería
soportado en sus navegadores. El 9 de enero del año siguiente, 1996, Sun fundó
el grupo empresarial JavaSoft para que se encargase del desarrollo tecnológico.
Dos semanas más tarde la primera versión de Java fue publicada.

La promesa inicial de Gosling era Write Once, Run Anywhere (Escríbelo una vez,
ejecútalo en cualquier lugar), proporcionando un lenguaje independiente de la
plataforma y un entorno de ejecución (la JVM) ligero y gratuito para las
plataformas más populares de forma que los binarios (bytecode) de las
aplicaciones Java pudiesen ejecutarse en cualquier plataforma.

El entorno de ejecución era relativamente seguro y los principales navegadores


web pronto incorporaron la posibilidad de ejecutar applets Java incrustadas en
las páginas web.

Java ha experimentado numerosos cambios desde la versión primigenia, JDK 1.0,


así como un enorme incremento en el número de clases y paquetes que
componen la biblioteca estándar.

2.2.2. filosofía

El lenguaje Java se creó con cinco objetivos principales:

1. Debería usar el paradigma de la programación orientada a objetos.


2. Debería permitir la ejecución de un mismo programa en múltiples
sistemas operativos.
3. Debería incluir por defecto soporte para trabajo en red.
4. Debería diseñarse para ejecutar código en sistemas remotos de forma
segura.
5. Debería ser fácil de usar y tomar lo mejor de otros lenguajes orientados
a objetos, como C++.

Para conseguir la ejecución de código remoto y el soporte de red, los


programadores de Java a veces recurren a extensiones como CORBA (Common
Object Request Broker Architecture), Internet Communications Engine o OSGi
respectivamente.

7
2.2.3 orientado a objetos

La primera característica, orientado a objetos (“OO”), se refiere a un método de


programación y al diseño del lenguaje. Aunque hay muchas interpretaciones
para OO, una primera idea es diseñar el software de forma que los distintos tipos
de datos que usen estén unidos a sus operaciones. Así, los datos y el código
(funciones o métodos) se combinan en entidades llamadas objetos. Un objeto
puede verse como un paquete que contiene el “comportamiento” (el código) y
el “estado” (datos). El principio es separar aquello que cambia de las cosas que
permanecen inalterables. Frecuentemente, cambiar una estructura de datos
implica un cambio en el código que opera sobre los mismos, o viceversa. Esta
separación en objetos coherentes e independientes ofrece una base más estable
para el diseño de un sistema software. El objetivo es hacer que grandes
proyectos sean fáciles de gestionar y manejar, mejorando como consecuencia su
calidad y reduciendo el número de proyectos fallidos. Otra de las grandes
promesas de la programación orientada a objetos es la creación de entidades
más genéricas (objetos) que permitan la reutilización del software entre
proyectos, una de las premisas fundamentales de la Ingeniería del Software. Un
objeto genérico “cliente”, por ejemplo, debería en teoría tener el mismo
conjunto de comportamiento en diferentes proyectos, sobre todo cuando estos
coinciden en cierta medida, algo que suele suceder en las grandes
organizaciones. En este sentido, los objetos podrían verse como piezas
reutilizables que pueden emplearse en múltiples proyectos distintos,
posibilitando así a la industria del software a construir proyectos de envergadura
empleando componentes ya existentes y de comprobada calidad; conduciendo
esto finalmente a una reducción drástica del tiempo de desarrollo. Podemos usar
como ejemplo de objeto el aluminio. Una vez definidos datos (peso,
maleabilidad, etc.), y su “comportamiento” (soldar dos piezas, etc.), el objeto
“aluminio” puede ser reutilizado en el campo de la construcción, del automóvil,
de la aviación, etc.

La reutilización del software ha experimentado resultados dispares, encontrando


dos dificultades principales: el diseño de objetos realmente genéricos es
pobremente comprendido, y falta una metodología para la amplia comunicación
de oportunidades de reutilización. Algunas comunidades de “código abierto”
(open source) quieren ayudar en este problema dando medios a los
desarrolladores para diseminar la información sobre el uso y versatilidad de
objetos reutilizables y bibliotecas de objetos.

8
Capítulo 3 Desarrollo

9
Paso 1:

Como primer paso del proyecto fue modelado del proyecto donde se puede
apreciar en la hoja anterior, decidimos crear 20 clases en las cuales utilizaríamos
para la creación del proyecto.

Paso 2:

Creamos las 20 clases que deseamos implementar y las separamos en paquetes


con la finalidad de tener un orden al momento de trabajar.

La separación se baja de acuerdo a las funciones que realizan cada clase.

10
Paso 3:

Conectamos las respetivas clases que se comunican con la finalidad de poder


acceder a los métodos de las clases para cumplir los requerimientos.

Paso 4:

Implementamos métodos de clases y creamos un menú de referencia con la


finalidad de probar nuestros métodos y verificar que estén correctamente
implementados.

11
Paso 5:

Una vez implementados todos los métodos usados en el proyecto, pasamos a


crear nuestras interfaces con las cuales los usuarios podrán comunicarse con
nuestro programa.

12
Paso 6:

Luego Pasamos el código de los menús que creamos como referencia a las
líneas de código de las interfaces con la finalidad de hacerlas funcionar.

Paso 7:

Conectamos las interfaces de manera que se puedan comunicar con el método


setVisible().

13
Paso 8:

Finalmente, conectados todas las interfaces e implementados todos los métodos


que necesitaremos procederemos a probar nuestra aplicación.

14
15
16
17
18
19
20
21
Capítulo 4 Resultados

4.1. Conclusiones

 Las funciones que cumple nuestra aplicación en java cubren la


mayoría de las funciones que ofrece NETFLIX, siendo estas la de
registrarse, ingresar, crear listas de reproducción y ver videos.
 La simulación nos ayudó a entender el como es que NETFLIX se
encargar de registrar la información de sus clientes y como es que
el usuario interactúa con las GUI.
 El paradigma Orientado a Objetos, pese a que fue complicado de
entender al inicio, demostró ser un método de alto nivel y nos
permitió realizar nuestro programa de tal manera que las clases se
conecten solo si es necesario haciendo que nuestro código se mas
entendible y tenga una estructura que cualquier programador
pueda entender y manipular.
 El modelado realizado en StarUML Permitió tener una vista de
nuestro programa dándonos la facilidad de consultar el diagrama
cada vez que se nos presentó un problema haciendo más fácil las
correcciones.

22
4.2. recomendaciones

 Como primera recomendación hacemos énfasis en siempre


modelar el proyecto que se desea programar, con la finalidad de
tener un mapa de como es que se desea implementar las clases y
las relaciones, además de que ese modelo ayudará a corregir
futuros errores en nuestra aplicación.
 También recomendamos siempre apegarse el paradigma
orientado a objetos, ya que este presenta métodos los cuales nos
ayudan a tener un orden al momento de crear nuestro código y al
comunicar nuestras clases.
 Finalmente, siempre que se nos presente una duda es
recomendable buscar en la documentación de JAVA en la página
de Oracle, ya que ahí es muy probable que se resuelvan nuestras
dudas.

23
Referencias

Recuperado de:
http://www.ictea.com/cs/knowledgebase.php?action=displayarticle&id=8790

https://netbeans.apache.org

recuperado de: https://www.java.com/es/about/whatis_java.jsp?bucket_value=desktop-


opera60-windows10-64bit&in_query=no

24