domingo, 22 de abril de 2018


¿Qué es moprosoft?

Es el Modelo de Procesos para la Industria del Software. Un modelo para la mejora y evaluación de los procesos de desarrollo y mantenimiento de sistemas y productos de software. Desarrollado por la Asociación Mexicana para la Calidad en Ingeniería de Software a través de la Facultad de Ciencias de la Universidad Nacional Autónoma de México (UNAM) y a solicitud de la Secretaría de Economía para obtener una norma mexicana que resulte apropiada a las características de tamaño de la gran mayoría de empresas mexicanas de desarrollo y mantenimiento de software.

Ventajas:
  • Facilita la comprensión del modelo.
  • Simplifica la relación entre el modelo de procesos y la organización.
  • Procesos integrados y relacionados.
  • Basado en normas ISO.


Desventajas
  • No es muy práctico.
  • Evaluaciones formales constantes.
  • Capacidad organizacional de Gestión de proyectos.
  • Mejora de procesos orientado al objetivo del negocio.



¿Qué es CMMI?

Es una guía que ayuda en la mejora de procesos, pero como en cualquier receta cada quién le puede poner de su propio sazón. El enfoque del modelo permite evolucionar desde un proceso en crisis  a un proceso controlado, estandarizado, medido y optimizado que sienta las bases de la mejora continua y permite a la organización adoptar nuevas prácticas sobre un proceso estable y controlado que está institucionalizado.

Ventajas

·         Proporciona un marco y un lenguaje común, lo que se traduce en la ruptura de las barreras de la comunicación en el interior de las organizaciones.
  • ·         Permite que los usuarios puedan enfocarse específicamente en la mejora, ya que ayudan a que no pierdan la idea global.
  • ·         Aporta años de experiencia.
  • ·         Ayudan a mejorar la satisfacción del cliente.
  • ·         Permiten producir productos y servicios de alta calidad.

·          
Algunos beneficios de CMMI

Hacer uso del modelo CMMI para el desarrollo de software, no solo permite optimizar procesos de negocios, sino que también trae consigo una serie de beneficios, entre ellos los siguientes:

  • ·         La gestión y la ingeniería de las actividades se encuentran entrelazadas de una manera explícita, tan es así que facilita el reconocimiento de los objetivos del negocio.
  • ·         Permite hacer la incorporación de la experiencia adquirida en otras zonas de las mejores prácticas. Algunos ejemplos serían la medición, gestión de riesgos y de proveedores.
  • ·         Poder aplicar prácticas de alta madurez mucho más robustas.
  • Cumplir de forma mucho más completa con las normas ISO. 

martes, 13 de marzo de 2018

video puntos de funcion


video psp


Puntos de estimación



El diagrama de clases recoge las clases de objetos y sus asociaciones. En este diagrama se representa la estructura y el comportamiento de cada uno de los objetos del sistema y sus relaciones con los demás objetos, pero no muestra información temporal.
Objetivo
El objetivo principal de este modelo es la representación de los aspectos estáticos del sistema, utilizando diversos mecanismos de abstracción (clasificación, generalización, agregación).

Clases
Una clase describe un conjunto de objetos con propiedades (atributos) similares y un comportamiento común. Los objetos son instancias de las clases.
No existe un procedimiento inmediato que permita localizar las clases del diagrama de clases. Estas suelen corresponderse con sustantivos que hacen referencia al ámbito del sistema de información y que se encuentran en los documentos de las especificaciones de requisitos y los casos de uso.

·  Los atributos de una clase representan los datos asociados a los objetos instanciados por esa clase.
·  Las operaciones o métodos representan las funciones o procesos propios de los objetos de una clase, caracterizando a dichos objetos.
El diagrama de clases permite representar clases abstractas. Una Clase abstracta es una clase que no puede existir en la realidad, pero que es útil conceptualmente para el diseño del modelo orientado a objetos. Las clases abstractas no son instánciales directamente sino en sus descendientes. Una clase abstracta suele ser situada en la jerarquía de clases en una posición que le permita ser un depósito de métodos y atributos para ser compartidos o heredados por las subclases de nivel inferior.

psp


   El psp es una metodología la cual esta permite la mejora del proyecto se consideran aspectos como la planeación, calidad, estimación de costos y productividad tiene como objetivo Lograr una disciplina de mejora continua en el proceso de desarrollo, Medir, estimar, planificar, seguir y controlar el proceso de desarrollo, Mejorar la calidad del proceso de desarrollo, En general, PSP provee calidad y productividad. Uno de los aspectos fundamentales de PSP es el uso de datos históricos para analizar y mejorar el desempeño del proceso. La recolección de datos para PSP es soportada por cuatro elementos importantes

Ventajas de Aplicar PSP
          El PSP se centra en la administración del tiempo y en la administración de la calidad a través de la eliminación temprana de defectos
          Busca proporcionar un marco de trabajo para el personal involucrado en el proceso de desarrollo de software.
          Sirve para producir software de calidad, donde cada ingeniero debe trabajar en la necesidad de realizar trabajo de calidad. (Software Engineering Institute, Carnegie Mellon University)

Desventajas de Aplicar PSP
          El tiempo requerido para conocerlo.
          El costo emocional por mantener una disciplina.
          El ego del cambio en las costumbres.

Niveles del PSP
·         Planeación
·         Diseño de alto nivel
·         Revisión del diseño de alto nivel
·         Desarrollo
·         Análisis de resultado

lunes, 5 de febrero de 2018

factores


Factores de calidad de software
Las posibilidades de que aparezca el fallo humano en el proceso de desarrollo de software son enormes.
Es complicado realizar un buen software, y muchos de los productos que se construyen tienen calidad insuficiente, además de no acertar con las estimaciones de tiempo y recursos inexactos para la construcción de los mismos.

Todos los métodos, herramientas y procedimientos que constituyen la Ingeniería del Software van orientados a un único fin: producir software de calidad.
En este tema introduciremos el concepto de calidad de software, primero a un nivel general como concepto y procesos a nivel de organización, viendo después cuáles son los factores que influyen en la calidad del software, cómo medirlos, y por último qué estrategias podemos utilizar para conseguir un software de mayor calidad.

Aunque en el siguiente apartado se trata de la calidad del software a nivel de empresa, haré referencia en el tema principalmente a calidad de software a nivel de proyecto (factores, métricas y estrategias)
Factores operativos de la calidad del software.
Los factores operativos son aquellos que afectan al uso del software:
Corrección: el software cumple las especificaciones
Fiabilidad: grado en el que el software es confiable, es decir, no tiene fallos
Eficiencia: necesidad de recursos software y hardware del producto
Seguridad: grado en el que puede controlarse el acceso al software y a los datos
Facilidad de uso: grado de esfuerzo necesario para utilizar el software
Factores de mantenimiento de la calidad del software.

Los factores de mantenimiento son aquellos que se aplican a la capacidad de modificación del software:
Flexibilidad: esfuerzo necesario para modificar un programa
Facilidad de prueba: esfuerzo requerido para realizar las pruebas de un programa
Facilidad de mantenimiento: esfuerzo requerido para localizar y reparar un error
Factores evolutivos
Los factores evolutivos son aquellos que indican si el software se puede trasladar con facilidad a otra máquina o a otro producto de base (SO, SGBD, etc.), o incrementar sus prestaciones:
Portabilidad: facilidad para migrar el software de un entorno de operación a otro
Capacidad de reutilización: grado en el que un programa o parte del mismo se puede utilizar en otras aplicaciones.
Capacidad de interoperación: esfuerzo necesario para que un software opere conjuntamente con otros sistemas