IntelliJ IDEA se libera como Open Source

Tags: , , ,

logo_intellij_idea

Los IDE’s Eclipse y NetBeans reciben un nuevo competidor open source, hace unos dias en el blog de JetBrains el IDE comercial IntelliJ IDEA será dividido en dos productos a partir de su próxima versión 9: una Community Edition, gratis y de código abierto amparado bajo la licencia de Apache 2.0, y una Ultimate Edition, que seguirá siendo cerrada y comercial.

Community Edition: Libre, Open Source

  • Soporta Java, Groovy, XML, and Regexp
  • JUnit and TestNG testing
  • Subversion and Git support
  • Ant and Maven build integration

Ultimate Edition: Licencia Personal $249, Licencia Comercial $599

  • Supports Ruby, SQL, HTML, PHP, JavaScript, etc.
  • Task management, Structural search & replace, and JavaScript debugger
  • Grails, Rails, Servlets 3.0, Hibernate frameworks available
  • Apache Tomcat, Glassfish v2 and v3 application server support
  • OSGi backing and PHP support.

Para ver en detalle las diferencias entre las dos opciones visiten la tabla de comparación.

Los mejores trabajos en Estados Unidos

Tags: , , , ,

BestJob3

Hoy me llamo mucho la atención esta noticia, donde CNN destaca una encuesta sobre los mejores trabajos en America,  y los trabajos relacionados con las tecnologías de información no han salido tan mal parados, vean.

  • Information Technology     Systems Engineer     1
  • Information Technology     Information Technology Project Manager     5
  • Information Technology     Computer/Network Security Consultant     8
  • Information Technology     Software Developer     12
  • Information Technology     Software Product Manager     16
  • Information Technology     Business Analyst, IT     17
  • Information Technology     Technical Writer     28

La verdad que creo que en Nicaragua esta encuesta estaria encabezada por otras carreras, seguramente Derecho o Turismo. Pero las carreras de informática estan demostrando que si tu te preparas bien podrás tener acceso a muy buenos salarios o incluso trabajar como Freelance por tu cuenta, como he echo yo en algunas ocasiones.

Respecto al nivel de vida que ofrecen las carreras, la de desarrollador de sistemas está en 4º lugar.

  • I1      Education/Training Consultant      35      60.0%
  • 2     Physical Therapist     7     59.5%
  • 3     College Professor     3     59.2%
  • 4     Software Developer     12     59.0%

Otro dato interesante es que el área de desarrollo de sistemas esta dando trabajo

  • 1      Telecommunications Network Engineer      30      53%       21,000
  • 2     Systems Engineer     1     45%     88,000
  • 3     Personal Financial Advisor     N.A.     41%     20,000

Lamentablemente no estamos entre los mejores pagados, estamos en un 8º lugar.

  • 1      Anesthesiologist      11      $292,000
  • 2     Physician/Ob-Gyn1     22     $222,000
  • 3     Psychiatrist     24     $177,000
  • 4     Nurse Anesthetist     15     $157,000
  • 5     Sales Director2     10     $140,000
  • 6     Actuary     N.A.     $129,000
  • 7     Finance Director     29     $121,000
  • 8     Software Architect3     N.A.     $117,00

¿Crees que esta lista refleja la condición laboral en Nicaragua para los Programadores?

Modelando Java con UML I : Clases

Tags: , , , , , , , ,

A muchos programadores, sobretodo en Nicaragua, se lanzan al ruedo sin saber analizado tan si quiera lo mas minimo un sistema, web o de escritorio, mi experiencia es en el ambiente web, y como analista y programador, como a muchos les debe de pasar, las empresas nunca tienen tiempo para dedicarle al Análisis, luego vienen los clavos, y la culpa, siempre del Programador.

La mejor forma de analizar es con la Metodología, UML es un buen lenguaje para analizar. Yo anteriormente presente una Metodología muy buena, que use en mi Monografia, Fusión.

Pero lo dificiles para muchos, sobre todo los que inician programando y luego usan UML como herramienta de documentacion (mala idea), se les hace dificil modelar.

Iniciare con algo sencillo.

Herencia

La herencia, simplemente se dibuja como una Generalización en UML y se representa en Java como un extends.

package org.jp.developer.test;
 
public class Padre {
 
}
 
public class Hijo extends Padre {
 
}

Asociación

Las asociaciones son instancias de clases dentro de otras clases, pero sin ninguna relacion directa o indirecta, solo estan relacionadas.

//Asociacion Directa
public class Hijo {
	Padre padre;
}
Asociacion Directa

En este ejemplo, Padre e Hijo, Padre es el cabeza de familia, pero la Vida del Hijo no depende de la del padre, solo tiene una relacion familiar, por eso la relación directa, se dibuja una flecha de Hijo->Padre, pues Hijo es el que tiene relacion con el Padre. Si en el caso que Padre tuviese una instancia de Hijo la relacion seria Bidireccional y se dibuja como una linea recta.

Asociaciones con Multiplicidad

Existe multiplicidad, cuando existen Objetos como Array, List, Vector, Collection, donde representa que se pueden almacenar uno o muchos objetos, en este caso Padre.

//Asociacion 0 a Muchos
public class Hijo {
	private List ListaPadres;
}

Agregación y Composición

La agregación y la composición pueden ser un poco confusas, una agregación en Java se representa como una Asociación, pero tiene un enfoque diferente, la agregacion representa una parte de un todo, pero no necesariamente tiene que existir para que el todo exista, es el caso de Aplicacion y Base de Datos, una aplicación puede existir sin ella, igualmente una Base de Datos no necesita una Aplicación para existir. En el caso de la composición, es diferente, en el ejemplo puse la clase Codigo, que es parte de la composición de Aplicación, que no puede existir sin Código, por eso se dibujo como una Composición.

package org.jp.developer.test;
 
public class Aplicacion {
	private Codigo codigo;
	private BaseDeDatos bd;
}
public class Codigo {
}
public class BaseDeDatos {
}

Metodología de Fusión III Parte Implementación

Tags: , ,

Implementación

La etapa final de la metodología de Fusión es la conversión del diseño en una implementación efectiva.  La transición es relativamente sencilla ya que las decisiones más complejas en cuanto al diseño ya han sido tomadas.  La implementación debe ser correcta, debe satisfacer los requerimientos, al mismo tiempo debe ser económica y no debe hacer uso excesivo de los recursos ni exceder el tiempo y el almacenamiento estipulado.

El resultado de la fase de implementación es el software que satisface los requisitos funcionales y no funcionales.

El proceso de implementación se encuentra dividido en tres partes: codificación, desempeño y revisión.

  1. Codificación: En esta etapa existen cuatro elementos a traducir: El ciclo de vida, la descripción de las clases, el contenido de los métodos y el diccionario de datos.

  2. Desempeño: El desempeño de una aplicación debe ser considerado desde el análisis, diseño y proceso de implementación.  No es necesario ser obsesivo con respecto al mismo, si la aplicación carece de velocidad se debe examinar cada componente de forma individual para saber en dónde focalizar los esfuerzos.  La depuración de partes individuales puede beneficiar a la aplicación cuando ésta se ejecute de forme integrada.  Los sistemas pueden ser eficientes más no así perfectos, se puede llegar a una condición ideal en el cual la aplicación sea lo suficientemente rápida que satisfaga la demanda de muchos usuarios en cuánto a velocidad y lo suficientemente robusta para que soporte inserciones masivas y/o procesos complejos.  Todo esto es un proceso de suficientes recursos a nivel de hardware (memoria, espacio y conectividad) y el uso adecuado de los mismo.
  3. Revisión: Una vez que el código ha sido producido, este debe ser revisado.  Las inspecciones requieren que el código sea leído y entendido por personas distintas a sus autores.  Se revisa el comportamiento actual del sistema o partes del sistema, contra los requerimientos y especificaciones.  El objetivo de esto es detectar errores antes de que éstos entren en producción.

En la IV y ultima parte presentare un cuadro resumen sobre la Adaptación de la Metodologia de Fusión y ejemplos.

© 2009 JotaDeveloper. Nuestros contenidos están bajo licencia Creative Commons mientras no se indique lo contrario,
y pueden reproducirse libremente sin más que mencionar la fuente ("JotaDeveloper") y la URL concreta del artículo original. .

This blog is powered by Wordpress and JotaDeveloperTheme.