jueves, 23 de abril de 2015

Estadísticas de proyectos exitosos y fallidos en la actualidad



El resultado del Chaos Manifesto 2012 revela otro incremento en proyectos exitosos, con un 39% de todos los proyectos logrando el éxito (entregado a tiempo,  dentro del presupuesto, con características y funciones de acuerdo a los requerimientos); 43% fueron puestos a prueba (entrega tardía, sobre el presupuesto, y/o con menos de las funciones y características de acuerdo a los requerimientos); y un 18% falló completamente (cancelados antes de su finalización o entregados y nunca usados). Estos números representan un repunte en el rango de éxito desde el estudio anterior, así como también un decremento en los fracasos. El punto bajo en los últimos 5 periodos de estudio fue en 2004, in el que solo un 20% de los proyectos fueron exitosos. 




El uso de chequeos de vida del proyecto, retrospectivas, tableros, y sistemas de seguimiento proporcionan un sistema de advertencia temprana y así se pueden emplear acciones para corregir el problema. 

El avance particular mas importante para mejorar la tarifa de proyectos exitosos es el aumento de la competencia de patrocinadores exclusivos. 





Determinando la relación entre sobrecostos de proyecto y características entregadas en el proceso analítico. Una revisión de los analístas desafió cada proyecto. La figura de este año muestra un leve incremento en tiempo y sobrecostos de tiempo. Los sobrecosidos incrementaron desde un 56% en el año 2004 hasta un 59% en el año 2012. Los sobrecostos de tiempo también han aumentado. desde un 71% en 2010 hasta un 74% en el año 2012. 

A menudo los proyectos se hacen demasiado grandes para poder ser realizados. CIOs y tecnologías de información ejecutiva están siendo constantemente llamadas para hacer mas por menos. 
La verdadera llave para el éxito es poder hacer menos por menos. 




viernes, 17 de abril de 2015

Java orientado a objetos

Java orientado a objetos


La programación orientada a objetos o POO, es un paradigma de programación que usa los objetos en sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo, acoplamientos y encapsulamiento. Su uso se popularizó a principios de la década de los años 1990. En la actualidad, existe gran variedad de lenguajes de programación que soportan la orientación a objetos






Polimorfismo                                                                                                                            

El polimorfismo es uno de los 4 pilares del a programación orientada a objetos, junto con la Abstracción, Encapsulamiento y Herencia. "Polimorfismo" Es una palabra de origen griego que significa "Muchas formas". Se utiliza en la POO para referirse a la propiedad por la que es posible enviar mensajes sintácticamente iguales a objetos de tipos distintos.

El polimorfismo consiste en obtener un método con diferentes funciones, es decir, suponiendo que tengamos una clase Saludos con el método Saludo el cual sería su constructor, pero en este caso tendríamos varios constructores pero siempre siguiendo las reglas de independencia en cuestión a los parámetros de cada constructor para que así puedan diferenciarse uno de otro, sin embargo cada uno tendrá diferentes procesos internos en sí mismo.




Un ejemplo en java:





Herencia                                                                                                                                    

¿Que significa herencia?

La herencia es un mecanismo que permite la definición de una clase a partir de la definición de otra ya existente. La herencia permite compartir automáticamente métodos y datos entre clases, subclases y objetos.

Ejemplo:

 HerenciaV2_jarroba 

Codigo


SuperClase
 
public class SeleccionFutbol
{

 protected int id;
 protected String Nombre;
 protected String Apellidos;
 protected int Edad;

 // constructor, getter y setter

 public void Concentrarse() {
  ...
 }

 public void Viajar() {
  ...
 }
}
 
Clases Hijas  
 
public class Futbolista extends SeleccionFutbol
{
 private int dorsal;
 private String demarcacion;

        public Futbolista() {
  super();
 }

 // getter y setter

 public void jugarPartido() {
  ...
 }

 public void entrenar() {
  ...
 }
} 
-------------------------------------------------------------------------------- 
public class Entrenador extends SeleccionFutbol
{

 private String idFederacion;

        public Entrenador() {
  super();
 }

 // getter y setter

 public void dirigirPartido() {
  ... 
 }

 public void dirigirEntreno() {
  ...
 }
}
-------------------------------------------------------------------------------- 
public class Masajista extends SeleccionFutbol
{

 private String Titulacion;
 private int aniosExperiencia;

        public Masajista() {
  super();
 }

 // getter y setter

 public void darMasaje() {
  ...
 }
} 



Encapsulamiento                                                                                                                        

Como java es un lenguaje de programación orientado a objetos, existen en un programa, diversos atributos y métodos que servirán para el funcionamiento de éste. Para la interacción del usuario con el objeto es necesario que se apliquen, o se encuentren disponibles, solo aquellos métodos que le servirán al usuario para utilizar ese objeto, manteniendo “ocultos” aquellos que servirán para el funcionamiento interno.
Es por ello que el encapsulamiento consiste en permitir la visibilidad de atributos y/o métodos, en una clase determinada, teniendo así tres niveles de: privados (private) que se utilizaran solo en esa clase, protegidos (protected) que se utilizaran por todas los métodos, clases y /o atributos mientras se encuentre en el mismo package, y los públicos (public) que pueden ser usados por cualquier clase o método





en java: