jueves, 24 de julio de 2014

VERSIONES - CMMI



VERSIONES

Las mejores prácticas CMMI se publican en los documentos llamados modelos. En la actualidad hay tres áreas de interés cubiertas por los modelos de CMMI: Desarrollo, Adquisición y Servicios.

La versión actual de CMMI es la versión 1.3 la cual corresponde a CMMI-SVC, liberada el 1 de noviembre de 2010. Hay tres constelaciones de la versión 1.2 disponible:
  • CMMI para el Desarrollo (CMMI-DEV o CMMI for Development), Versión 1.2 fue liberado en agosto de 2006. En él se tratan procesos de desarrollo de productos y servicios.
  • CMMI para la adquisición (CMMI-ACQ o CMMI for Acquisition), Versión 1.2 fue liberado en noviembre de 2007. En él se tratan la gestión de la cadena de suministro, adquisición y contratación externa en los procesos del gobierno y la industria.
  • CMMI (CMMI-SVC o CMMI for Services), está diseñado para cubrir todas las actividades que requieren gestionar, establecer y entregar Servicios.
Dentro de la constelación CMMI-DEV, existen dos modelos:
  • CMMI-DEV
  • CMMI-DEV + IPPD (Integrated Product and Process Development)
Independientemente de la constelación\modelo que opta una organización, las prácticas CMMI deben adaptarse a cada organización en función de sus objetivos de negocio.
Las organizaciones no pueden ser certificadas CMMI. Por el contrario, una organización es evaluada (por ejemplo, usando un método de evaluación como SCAMPI y recibe una calificación de nivel 1-5 si sigue los niveles de Madurez (si bien se comienza con el nivel 2). En caso de que quiera la organización, puede coger áreas de proceso y en vez de por niveles de madurez puede obtener los niveles de capacidad en cada una de las Áreas de Proceso, obteniendo el "Perfil de Capacidad" de la Organización.

VENTAJAS Y DESVENTAJAS - CMMI




VENTAJAS
 

  • ·       Reducción del costo de desarrollo
  • ·       Localización y resolución de defectos
  • ·       Mejora en fiabilidad de la planificación en términos de dedicación y de calendario
  • ·       Aumento de la productividad
  • ·       Reducción de los trabajos derivados de correcciones tras las pruebas
  • ·       Aumento de la efectividad sobre la planificación realizada
  • ·       Mejora en la calidad de producto
  • ·       Reducción del número de defectos y detección en las fases tempranas de su ciclo de vida
  • ·       Mejora de la imagen de marca
  • ·       Se puede aplicar a más de una disciplina
  • ·       Mejor atención a las áreas de ingeniería
  • ·       Mejor visibilidad de los proyectos
  • ·       Mejor comunicación de los participantes de cada proyecto
  • ·       Mejora la calidad del producto
  • ·       Se establece más conocimiento sobre la organización
  • ·       Los clientes viven más informados


DEVENTAJAS

  • ·       El problema de CMMI es su falta de adecuación al enfoque al servicio que está experimentando el sector de las TIC (procesos de desarrollo de productos de software) en todas sus líneas de actividad, así como el alto esfuerzo de implantación que exige

  • ·       El proceso de evaluación es muy costoso en tiempo y esfuerzo

  • ·       La complejidad de la evaluación puede atentar contra la definición de objetos concretos de madurez

CMMI - Capability Maturity Model Integration




¿QUE ES?


Capability Maturity Model Integration (CMMI) es una mejora de los procesos de capacitación y un programa de evaluación y el servicio administrado y comercializado por la Universidad Carnegie Mellon y requerido por muchos DOD contratos y del Gobierno de EE.UU., especialmente en el desarrollo de software. Carnegie Mellon University afirma CMMI se puede utilizar para guiar el proceso mejora a través de un proyecto, división o una organización entera. Bajo la metodología CMMI, los procesos se clasifican de acuerdo a sus niveles de madurez, que se define como: inicial, repetible, Definido, Cuantitativamente Gestionado, Optimización. Actualmente compatible CMMI versión 1.3 . CMMI se ha registrado en la Oficina de Patentes y Marcas de los EE.UU. por la Universidad Carnegie Mellon .


Un modelo CMMI también puede ser utilizado como un marco para evaluar la madurez de los procesos de la organización, En enero de 2013, en el CMMI actualmente aborda tres áreas de interés:


Producto y servicio de desarrollo - CMMI para el Desarrollo (CMMI-DEV),
Establecimiento de servicios, gestión, - CMMI para servicios (CMMI-SVC) y
Adquisición de productos y servicios - CMMI for Acquisition (CMMI-ACQ).

CMMI fue desarrollado por un grupo de expertos de la industria, el gobierno y el Instituto de Ingeniería de Software (SEI) en la Universidad de Carnegie Mellon . Modelos CMMI proporcionan una guía para el desarrollo de los neumáticos suite de productos CMMI fue transferido del SEI CMMI para el Instituto, una organización de reciente creación en la Universidad Carnegie Mellon.

CMMI se originó en la ingeniería de software, pero ha sido muy generalizado en los últimos años para abarcar otras áreas de interés, tales como el desarrollo de productos de hardware, la entrega de todo tipo de servicios, y la adquisición de productos y servicios

domingo, 23 de febrero de 2014

Método Burbuja



El bubble sort, también conocido como ordenamiento burbuja, funciona de la siguiente manera: Se recorre el arreglo intercambiando los elementos adyacentes que estén desordenados. Se recorre el arreglo tantas veces hasta que ya no haya cambios. Prácticamente lo que hace es tomar el elemento mayor y lo va recorriendo de posición en posición hasta ponerlo en su lugar.

Procedimiento Bubble Sort
paso 1: [Inicializa i al final de arreglo] For i <- N down to 1 do
paso 2: [Inicia desde la segunda pos.] For j <- 2 to i do
paso 4: [Si a[j-1] es mayor que el que le sigue] If a[j-1] < a[j] then
paso 5: [Los intercambia] Swap(a, j-1, j).
paso 7: [Fin] End.
Tiempo de ejecución del algoritmo burbuja:
Para el mejor caso (un paso) O(n)
Peor caso n(n-1)/2
Promedio O(n2)




La Ordenación de burbuja (Bubble Sort en inglés) es un sencillo algoritmo de ordenamiento. Funciona revisando cada elemento de la lista que va a ser ordenada con el siguiente, intercambiándolos de posición si están en el orden equivocado. Es necesario revisar varias veces toda la lista hasta que no se necesiten más intercambios, lo cual significa que la lista está ordenada. Este algoritmo obtiene su nombre de la forma con la que suben por la lista los elementos durante los intercambios, como si fueran pequeñas "burbujas". También es conocido como el método del intercambio directo. Dado que solo usa comparaciones para operar elementos, se lo considera un algoritmo de comparación, siendo el más sencillo de implementar.

¿Cómo Se Asignan Valores a Un Arreglo?

ASIGNACIÓN DE VALORES

Acceso.


Se puede acceder a los valores de los elementos de un arreglo a través del nombre del arreglo y un subíndice. El subíndice debe escribirse entre corchetes y representa la posición del elemento en el arreglo. Así, podemos referirnos a un elemento del arreglo escribiendo el nombre del arreglo y el subíndice del elemento entre corchetes. Los valores de los subíndices empiezan en cero para el primer elemento, hasta el tamaño del arreglo menos uno.

Ejemplo:



float [ ] distancia = new float[5] ; // Crea el arreglo distancia con 5 elementos.
float x = 25F, y = 10F ; // Crea dos variables de punto flotante y precisión sencilla.
distancia[0] = x + y ; // El valor asignado al primer elemento es 35.
distancia[1] = ++distancia[0] ; // Asigna 36 al segundo elemento.
distancia[2] = distancia[1] - distancia[0] + 4 ; // Asigna 5 al tercer elemento.
distancia[3] = distancia[2]-- ; // Asigna 5 al cuarto elemento
// y disminuye en 1 el valor del tercero.

distancia[4] = distancia[3] * distancia[2] ; // Asigna 20 al quinto elemento.
y = distancia[4] ; // Asigna a y el valor almacenado en el quinto elemento.

¿Cómo Se Define Un Arreglo En C#?

La declaración de un arreglo unidimensional consiste en establecer las características del arreglo y sus elementos, por medio de la siguiente sintaxis:

[ ] < identificador > ; 


Donde:

tipo indica el tipo correspondiente a los elementos del arreglo , identificador es el nombre del arreglo, y el par de corchetes, [ ], representa la dimensión del arreglo y encierra un número entero que corresponde al número de elementos del arreglo. 

Ejemplos:

int [ ] a ;
float [ ] distancia ;

Artículo [ ] art = new Artículo[ 3]; 


Observe que, en la declaración, el espacio entre los corchetes está vacío. Esto se debe a que, durante dicha operación, no se reserva espacio en la memoria.