Vous êtes sur la page 1sur 9

A

N
ndice

Modelo Vista-Controlador..........................................................................................2
Tcnica de la navaja Suiza (Swiss Army Knife).....................................................5
Programacin de cortar y pegar.............................................................................5
Sntomas y consecuencias.................................................................................5
Causas tpicas.....................................................................................................6
Fear of Success(Miedo Al xito).............................................................................6
Gestin irracional (Supervisor Paranoico).............................................................7
Sntomas y consecuencias.................................................................................7
Causas tpicas.....................................................................................................7
Modelo Vista-Controlador

El MVC viene de Model, View, Controller, o bien: Modelo, Vista y Controlador. La


idea bsica de este patrn es separar nuestros sistemas en tres capas, el Modelo,
la Vista y el Controlador.
El Modelo se encarga de todo lo que tiene que ver con la persistencia de datos.
Guarda y recupera la informacin del medio persistente que utilicemos, ya sea una
base de datos, ficheros de texto, XML, etc.
La Vista presenta la informacin obtenida con el modelo de manera que el usuario
la pueda visualizar.
El Controlador, dependiendo de la accin solicitada por el usuario, es el que pide
al modelo la informacin necesaria e invoca a la plantilla (de la vista) que
corresponda para que la informacin sea presentada.
Hay algo de esfuerzo necesario para aprender a utilizar un marco MVC. Sin
embargo, para el desarrollador de aplicaciones Web grandes, este esfuerzo debe
ser recompensado por los numerosos beneficios de utilizar un patrn de diseo
MVC, tales como:
Aplica la modularidad y la particin de aplicacin.
Aumenta la creacin de roles especficos en el desarrollo.
Aumenta la capacidad de gestin de cdigo.
Aumento de la extensibilidad del cdigo (Capacidad de adaptacin a
cambios).

Empecemos creando la lgica de la aplicacin, creando una nueva clase llamada


"modelo.java".
package model;
02 /**
03
04
05 * En esta clase se guarda la lgica del sistema, para este sencillo ejemplo
06 * consiste en una SUMA
07 */
08 public class modelo {
09 //Variables
10 private int valor1=28;
11 private int valor2=69;
12 private int total = sumar();
13
14 public modelo(){}
15
16 public void set_valor1(int val){
17 this.valor1=val;
18 }
19
20 public int get_valor1(){
21 return this.valor1;
22 }
23
24 public void set_valor2(int val){
25 this.valor2=val;
26 }
27
28 public int get_valor2(){
29 return this.valor2;
30 }
31
32 public int sumar(){
33 this.total = this.valor1 + this.valor2;
34 return this.total;
35 }
36
37 public int get_total(){
38 return this.total;
39 }
40
41 }

Como vemos, nuestro modelo es sencillo, es nada ms que la suma de dos


valores enteros, con sus respectivos mtodos.
Diseemos ahora la interfaz de usuario, nuestra VISTA.
Se Aade un JFrame llamado "vista.java".
Netbeans, al aadir objetos a nuestro JFrame, automticamente los coloca como
PRIVATE, debemos cambiar esto, para ello se selecciona el objeto y en a sus
propiedades, en la pestaa CODIGO, se elige el campo MODIFICADORES DE
VARIABLE, en la ventana que sale, y se cambia el atributo PRIVATE, por
PUBLIC.

Ahora continuamos con el CONTROLADOR de la aplicacin, crea una clase


"controlador.java".
03 import java.awt.event.ActionEvent;
04 import java.awt.event.ActionListener;
05 import model.modelo;
06 import view.vista;
07
08
09
10
11 public class controlador implements ActionListener{
12
13 private vista vista;
14 private modelo modelo;
15
16 //En el constructor inicializamos nuestros objetos y tambien
17 //aadimos el ActionListener al boton "cmdsumar" de la VISTA
18 public controlador( vista vista , modelo modelo){
19 this.vista = vista;
20 this.modelo = modelo;
21 this.vista.cmdsumar.addActionListener(this);
22 }
23
24 //Inicia los valores del jFrame VISTA con los datos del MODELO
25 public void iniciar_vista(){
26 vista.setTitle( "Ventanita" );
27 vista.setLocationRelativeTo(null);
28 vista.vtxt1.setText( String.valueOf(modelo.get_valor1()) );
29 vista.vtxt2.setText( String.valueOf(modelo.get_valor2()) );
30 vista.vtxt3.setText( String.valueOf(modelo.get_total()) );
31 }
32
33 //La accion del boton de la VISTA es capturado, asi como los valores de
34 //los jtextbox, entonces se realiza la funcion SUMAR y se actualiza
35 //el jtextbox correspondiente al resultado
36 public void actionPerformed(ActionEvent e) {
37 modelo.set_valor1( Integer.valueOf( vista.vtxt1.getText() ) );
38 modelo.set_valor2( Integer.valueOf( vista.vtxt2.getText() ) );
39 modelo.sumar();
40 vista.vtxt3.setText( String.valueOf(modelo.get_total()) );
41 }
42
43 }

Para terminar debemos implementar todo esto en main.java:


02
03 import controller.controlador;
04 import model.modelo;
05 import view.vista;
06
07
08
09
10 public class Main {
11
12 public static void main(String[] args) {
13
14 //nuevas instancias de clase
15 modelo modelo = new modelo();
16 vista vista = new vista();
17 controlador controlador = new controlador( vista , modelo );
18 //se inicia la vista
19 controlador.iniciar_vista();
20
21 vista.setVisible(true);
22
23 }
24
25 }

Tcnica de la navaja Suiza (Swiss Army Knife)

Es una interfaz de clase excesivamente compleja. El diseador intenta


proporcionar todos los usos posibles de la clase. En el intento, l o ella aaden un
gran nmero de firmas de interfaz en un intento intil de satisfacer todas las
necesidades posibles.
Ejemplos del mundo real de la navaja suiza incluyen de docenas a miles de firmas
de mtodo para una sola clase. El diseador no puede tener una clara abstraccin
o propsito para la clase, que se representa por la falta de enfoque en la interfaz.
Los cuchillos de ejrcito suizos son frecuentes en interfaces de software
comerciales, donde los vendedores estn intentando hacer sus productos
aplicables a todas las aplicaciones posibles.
La intencin de la navaja suiza es que el diseador est exponiendo la
complejidad en un vano intento de abordar todas las necesidades previsibles de la
clase.
Programacin de cortar y pegar
Cortar y pegar La programacin es una forma muy comn, pero degenerada de
reutilizacin de software que crea pesadillas de mantenimiento. Se trata de la
nocin de que es ms fcil modificar el software existente que el programa desde
cero. Esto es generalmente cierto y representa buenos instintos de software. Sin
embargo, la tcnica puede ser fcilmente utilizada.
Este AntiPattern se identifica por la presencia de varios segmentos de cdigo
similares intercalados en todo el proyecto de software. Por lo general, el proyecto
contiene muchos programadores que estn aprendiendo a desarrollar software
siguiendo los ejemplos de desarrolladores ms experimentados.
Sin embargo, estn aprendiendo modificando el cdigo que se ha probado que
funciona en situaciones similares y potencialmente la personalizan para soportar
nuevos tipos de datos o un comportamiento ligeramente personalizado. Esto crea
la duplicacin de cdigo, que puede tener consecuencias positivas a corto plazo,
como aumentar las mtricas de recuento de lneas, que pueden utilizarse en las
evaluaciones de rendimiento.
Adems, es fcil extender el cdigo, ya que el desarrollador tiene control total
sobre el cdigo utilizado en su aplicacin y puede cumplir rpidamente
modificaciones a corto plazo para satisfacer nuevos requisitos.

Sntomas y consecuencias
El mismo error de software se repite en todo el software a pesar de muchas
correcciones locales.
Las lneas de cdigo aumentan sin aumentar la productividad general.
Las revisiones de cdigo y las inspecciones se prolongan
innecesariamente.
Se hace difcil localizar y arreglar todas las instancias de un error en
particular.
El cdigo se considera auto documentado.
El cdigo se puede reutilizar con un mnimo esfuerzo.
Causas tpicas
Se necesita un gran esfuerzo para crear cdigo reutilizable, y la
organizacin hace hincapi en la rentabilidad a corto plazo ms que la
inversin a largo plazo.
El contexto o la intencin detrs de un mdulo de software no se conserva
junto con el cdigo.
La organizacin no aboga o recompensa componentes reutilizables, y la
velocidad de desarrollo eclipsa todos los otros factores de evaluacin.
Hay una falta de abstraccin entre los desarrolladores, a menudo
acompaada de una mala comprensin de la herencia, composicin y otras
estrategias de desarrollo.
La organizacin insiste en que el cdigo debe ser una combinacin perfecta
con la nueva tarea para permitir su reutilizacin. El cdigo se duplica para
abordar las insuficiencias percibidas en el cumplimiento de lo que se cree
que es un problema nico.

Fear of Success(Miedo Al xito)

Un fenmeno interesante ocurre a menudo cuando las personas y los proyectos


estn al borde del xito. Algunas personas comienzan a preocuparse
obsesivamente sobre los tipos de cosas que pueden salir mal. Las inseguridades
sobre la competencia profesional salen a la superficie. Cuando se habla
abiertamente, estas preocupaciones e inseguridades pueden ocupar las mentes
de los miembros del equipo del proyecto. Pueden tomarse decisiones irracionales
y adoptar medidas inapropiadas para abordar estas preocupaciones.
El miedo al xito est relacionado con la terminacin de los problemas. En
general, la dinmica de grupo progresa a travs de varias fases, discernibles tanto
para proyectos de una semana como para esfuerzos de duracin ms prolongada.
La primera fase trata temas de aceptacin de grupo.
En la segunda fase, a medida que se forman las relaciones, los individuos asumen
varios roles en el grupo, incluyendo roles formales en la organizacin y roles
informales auto determinados. Este es un factor importante en la construccin de
equipos. Una vez establecidos los roles, se realiza el trabajo (tercera fase).
Muchos problemas de personalidad pueden surgir durante esta fase. Debido a que
la terminacin del proyecto puede resultar en la disolucin del grupo, estos
problemas a menudo surgen como enfoques de terminacin de proyectos (cuarta
fase).
En la fase de terminacin, las preocupaciones sobre el resultado del proyecto, su
ciclo de vida futuro y las actividades posteriores del grupo a menudo se expresan
de manera indirecta. En otras palabras, la gente hace cosas locas.

Gestin irracional (Supervisor Paranoico).


Cubre una gama de problemas de proyectos de software comnmente ocurridos
que se pueden rastrear hasta las personalidades de la persona (s) que ejecutan el
proyecto.
Por ejemplo, el gerente puede tener intereses obsesivos en algn aspecto de la
tecnologa o limitaciones de personalidad que hacen que se conviertan en
administradores ineficaces o irracionales. La gestin irracional puede ser vista
como un conjunto sesgado de prioridades en las que las prioridades personales
del gerente, por ms insensato que sea, guan el proyecto de software en
direcciones irracionales.
Sntomas y consecuencias
El sntoma principal de la Gestin anti patrn irracional es golear proyecto, un
debate en curso sobre un tema crtico. Se debe tomar una decisin para permitir
que el personal de desarrollo progrese. Thrashing tiene varias consecuencias.
Aumento de la frustracin del personal.
Retrasos incrementales a la entrega.
Explotacin por Corncobs.
Causas tpicas
El gerente carece de la capacidad de administrar:
Personal de desarrollo.
Otros gerentes.
Procesos de desarrollo.

Vous aimerez peut-être aussi