Beruflich Dokumente
Kultur Dokumente
CURSO:
Tecnologa de la Programacin II
DOCENTE:
Mg. Vidal Melgarejo, Zoraida Janet
CICLO:
V
ESTUDIANTES:
ASMAT NUNJA, Junior Alexander
GUZMAN CARRANZA, John David
SANCHEZ VALVERDE, Cristian Humberto
VASQUEZ CRUZATE, David Felipe
PASTOR URQUIAGA, Cristian
ESCUELA:
Ingeniera de Sistemas
INDICE
Descripcin de patrones de diseo para
J2ME..1
1. Patrn de generacin de men en
cascada...1
o 1.1. Modelo.
3
o 1.2.
Controlador.
3
o 1.3.
Vista3
2. Patrn para la generacin de
dilogos......4
3. Patrn de la
paginacin....7
4. Patrn para la creacin de
aplicaciones portables...9
5. Buenas prcticas y recomendaciones
de uso..........12
6 Optimizacin de
cdigo....13
6.1. Optimizacin para la
mantenibilidad...13
6.2. Optimizacin del
tamao..13
6.3. Optimizacin de la
velocidad14
Bibliografa
..15
Patrones de Diseo para J2ME
Optimizacin de Cdigo
J2ME es el acrnimo de Java 2 Micro Edition. J2ME es la versin
de Java orientada a dispositivos mviles. Debido a que los
dispositivos mviles tienen una potencia de clculo baja e interfaces
de usuario pobres, es necesaria una versin especfica de Java,
destinada a estos dispositivos, ya que el resto de versiones de
Java, J2SE O J2EE, no encajan dentro de este esquema. J2ME es
por tanto, una versin reducida de J2SE.
En el desarrollo de aplicaciones para J2ME, hay que tener en
cuenta las restricciones del terminal y del propio lenguaje. Si
buscamos que nuestras aplicaciones utilicen al mximo las
capacidades del dispositivo en concreto en el que se ejecuten,
tendremos que tener en cuenta las caractersticas de cada uno de
estos dispositivos. Esto obliga a hacer una versin de la aplicacin
para cada terminal o grupo de terminales con caractersticas
similares.
Sin embargo, las modificaciones entre las distintas versiones son
mnimas. Por lo tanto, tendremos que tener cuidado al disear
nuestras aplicaciones, para que el esfuerzo de adaptacin a los
distintos terminales sea el mnimo.
Debido a lo mencionado anteriormente, usamos patrones, que
podemos definir como una solucin con nombre que se puede
aplicar en nuevos contextos, con consejos acerca de cmo aplicarlo
en nuevas situaciones.
1
Este tipo de interfaz de
usuario es comn dentro
de los entornos WAP
(Wireless Application
Protocol). Si usamos
elementos de interfaz de
usuario de alto nivel,
podremos implementar
fcilmente estos mens a
travs de elementos List.
Cada objeto de este tipo
List contendr todas las
opciones disponibles en un
men y, cuando un
elemento de la lista sea
seleccionado, el sistema
presentara la lista de sub opciones correspondiente o ejecutara
la accin correspondiente.
MVC (Modelo-Vista-
Controlador) es un patrn de
arquitectura de software, que
separa los datos y la lgica del
negocio de una aplicacin de
la interfaz de usuario y el
modulo encargado de
gestionar los eventos y las
comunicaciones. Este patrn de arquitectura de software se basa
en las ideas de reutilizacin de cdigo y la separacin de
conceptos, caractersticas que buscan facilitar la tarea de
desarrollo de aplicaciones y su posterior mantenimiento.
2
1.1. Modelo
Es la representacin de la informacin con la cual el sistema
opera, por lo tanto gestiona todos los accesos a dicha
informacin, tanto consultas como actualizaciones.
1.2. Controlador
Responde a eventos e invoca peticiones al modelo cuando
se hace alguna solicitud sobre la informacin.
1.3. Vista
Presenta el modelo en un formato adecuado para interactuar
por tanto requiere de dicho modelo la informacin que debe
representar como salida.
3
b. El controlador recibe la notificacin de la accin solicitada
por el usuario.
c. El controlador accede al modelo, actualizndolo, posiblemente
modificndolo de forma adecuada a la accin solicitada por el
usuario.
d. El controlador delega a los objetos de la vista la tarea de
desplegar la interfaz de usuario. La vista obtiene sus datos del
modelo para generar la interfaz de usuario apropiada para el
usuario donde se reflejan los cambios en el modelo.
e. La interfaz de usuario espera nuevas interacciones del
usuario, comenzando el ciclo nuevamente.
4
Un rea de comandos con al menos un botn se
comprometen a comprometerse con la tarea o proceder al
siguiente paso.
5
dems objetos. Para evitar esto, el patrn Mediator, encapsula el
comportamiento de todo un conjunto de objetos en un solo
objeto.
Usar el patrn Mediator cuando:
- Un conjunto grande de objetos se comunica de una
forma bien definida, pero compleja.
- Reutilizar un objeto se hace difcil porque se relaciona
con muchos objetos.
- Las clases son difciles de reutilizar porque su funcin
bsica esta entrelazada con relaciones de dependencia.
Diagrama UML
6
MediatorConcreto: implementa la interface y define como los
colegas se comunican entre ellos. Adems los conoce y
mantiene, con lo cual hace de procesador central de todos ellos.
Colleague: define el comportamiento que debe implementar
cada colega para poder comunicarse el mediador de una manera
estandarizada para todos.
ColleagueConcreto: cada colega conoce su mediador, y lo usa
para comunicarse con otros colegas.
Los colegas envan y reciben requerimientos de un objeto
mediador. El mediador gestiona cada mensaje y se lo comunica
a otro colega si fuese necesario.
3. Patrn de la paginacin
Este patrn nos vuelve a ayudar en la creacin de interfaces de
usuario mucho ms eficientes en cuanto a la usabilidad. Las
limitaciones de pantalla, de las que ya hemos hablado
anteriormente, hacen que el proceso de paginacin de las
interfaces (como las listas) sea muy tedioso para el usuario.
7
En un ejemplo de bsqueda de
restaurantes, una bsqueda amplia
puede resultar en 200 coincidencias.
Esto puede dividirse en 10 pginas, cada
pgina contiene 20 coincidencias en la
lista. Las aplicaciones con paginacin
son ms fciles de usar que las que no
tienen porque requiere menos
pulsaciones de teclado para alcanzar el
elemento de destino. En algunos dispositivos, la paginacin
tambin es necesaria por razones de rendimiento. He visto a los
desarrolladores poner 1.000 artculos en una sola lista de MIDP,
y el telfono del blanco consecuentemente no puede responder a
una sola peticin. Se necesita una gran cantidad de memoria y
poder de procesamiento para mostrar 1.000 cuerdas en un
telfono mvil.
8
dos comandos integrados: los comandos More y Previous.
Cuando los usuarios pulsan el comando Ms, PagableList
avanza automticamente al siguiente conjunto de subList y los
muestra en la pantalla. De forma similar, cuando los usuarios
pulsan el comando Anterior, PagableList devuelve el cursor al
conjunto de datos anterior y los coloca en la pantalla. Mediante la
gestin de un cursor interno, los usuarios pueden desplazarse
rpidamente a travs de cada subconjunto de datos.
Mostrando uso
PagableList implementa un patrn de proxy. Al encapsular List
de PagableList
original desde el exterior, PagableList pone funcionalidad
adicional en la parte superior de List. El patrn de proxy original
sugiere la encapsulacin mediante el uso de un marcador de
posicin para controlar el acceso al tema. Lo modifico para incluir
la encapsulacin sub clasificando y reemplazando la interfaz de
List. Este enfoque me permite preservar la interfaz de List y la
jerarqua de tipos, facilitando el uso y la reduccin de la
sobrecarga de este patrn. Pequeas optimizaciones como esta
pueden mejorar en gran medida el uso de patrones de diseo en
entornos con restricciones J2ME.
9
4. Patrn para la creacin de aplicaciones portables
Hoy por hoy, las diferencias entre los distintos dispositivos que
disponen de J2ME (incluso dentro de un mismo perfil) son muy
grandes, en cuanto a la interfaz de usuario. Es decir, tendremos
terminales con pantalla pequeas con dos colores y tendremos
terminales con pantallas grandes y gran cantidad de colores. De
forma similar, en algunos terminales tendremos un pequeo
joystick que el usuario utilizar para interaccionar con el sistema
y en otros casos tendremos simplemente dos teclas.
10
cambio, el resultado de las mismas no suele ser muy vistoso y,
por supuesto, no aprovechamos al mximo las capacidades de
los terminales ligeramente avanzados.
Otra cuestin que nos obliga a realizar interfaces de usuario
adaptadas al terminal, es la necesidad de hacer los mens y
dems elementos de nuestra aplicacin lo ms parecidos posible
a los mens o dems elementos
nativos del terminal. De esta
forma, la usabilidad de la
aplicacin ser mucho mayor
debido a que el usuario
interacta con un entorno que
ya conoce. Adems, de esta
forma, el usuario nota menos la
diferencia entre aplicaciones
nativas del terminal y
aplicaciones J2ME
descargadas, lo que reduce en gran medida la posible reticencia
del usuario al uso de las aplicaciones externas al terminal.
11
5. Buenas prcticas y recomendaciones de uso
Una buena forma de empezar a disear aplicaciones con las
caractersticas anteriormente descritas, es la separacin entre
los modelos de datos o la lgica de aplicacin y la interfaz de
usuario, de forma similar a lo expuesto en alguno de los patrones
anteriores.
Si optamos por esta separacin de responsabilidades, podremos
compartir totalmente el modelo de datos entre todas las
versiones de la aplicacin y slo tendremos que adaptar la
interfaz de usuario. Una vez conseguido esto, lo nico que
tendremos que hacer ser mejorar el diseo para que la
generacin de interfaces de usuario sea lo ms sencilla y directa
posible. Un patrn de diseo de software conocido para
soluciones de este tipo, son los denominados Factora. Es decir,
tendremos lo que podemos denominar una fbrica o creador
(Factory) de interfaces de usuario, de tal forma, que el creador
genere una interfaz de usuario totalmente adaptada al terminal o
familia de terminales.
Realizar un buen diseo software para permitir al desarrollador el
crear este tipo de secuencias de pantallas de forma sencilla y
flexible. Si implementamos el patrn conocido
como Mediador (Mediator), tendremos una forma elegante y
limpia de desarrollar este tipo de soluciones.
12
-APIs de desarrollo de terceros para nuevas caractersticas en
los equipos de nueva generacin.
Sin embargo, J2ME tambin puede tener algunas desventajas,
entre las cuales estn:
-Es un lenguaje interpretado, una aplicacin Midlet mal planeada
puede ser lenta.
-La memoria libre de cada telfono y el tamao mximo del
archivo JAR/JAD.
6. Optimizacin de cdigo
La mayora de los telfonos mviles tienes importantes
restricciones en cuanto a memoria y capacidad de proceso. Esto
nos obliga a optimizar en la medida de lo posible los MIDlets.
Hay tres importantes facetas en las que optimizar un MIDlet,
entre otras:
Mantenibilidad
Tamao
Velocidad
Lo mejor que se puede hacer de cara a la optimizacin, es hacer
los MIDlets lo ms simple posible.
Es decir, debemos hacer los interfaces de usuario sencillos, para
reducir el nmero de componentes y comandos.
6.1. Optimizacin para la mantenibilidad
Esta optimizacin har que el cdigo sea manejable en el
futuro y ms sencillo de comprender. Depende
bsicamente de la estructura y la organizacin del cdigo.
13
Otro punto a considerar son los recursos usados por el
MIDlets y los datos que gestiona.
Para reducir el uso de memoria, podemos usar alguna de
las siguientes tcnicas:
Evitar el uso de objetos siempre que sea posible
Cuando usamos objetos, debemos reciclarlos
siempre que sea posible
Limpiar los objetos explcitamente cuando
finalicemos de usarlos. El garbage collector de
J2ME no es del todo eficiente, ya que su prioridad es
muy baja.
14
Expandir los bucles
El siguiente cdigo:
BIBLIOGRAFIA
http://www.juntadeandalucia.es/servicios/madeja/contenido/rec
urso/208
https://en.wikipedia.org/wiki/Wizard_(software)
https://es.wikipedia.org/wiki/Mediator_(patr%C3%B3n_de_dise
%C3%B1o)
15
http://www.javaworld.com/article/2074754/mobile-java/mobile-
java-big-designs-for-small-devices.html
http://www.juntadeandalucia.es/servicios/madeja/contenido/rec
urso/208#Patron_para_la_creacion_de_aplicaciones_portable
s
https://sg.com.mx/revista/05/j2me-desarrollo-aplicaciones-
para-tel-fonos-celulares#.WTSZTpI1_IU
http://www.ajpdsoft.com/modules.php?
name=News&file=article&sid=437
https://es.wikipedia.org/wiki/Modelo%E2%80%93vista
%E2%80%93controlador
https://si.ua.es/es/documentacion/asp-net-mvc-3/1-
dia/modelo-vista-controlador-mvc.html
16